cisco双方向NATの設定と陥りやすい間違いを詳しく解説

今回は双方向NATについてご紹介をさせて頂きます。

その前にNATについて簡単に説明をさせて頂きますと、NATとは、Network Address Translationの略でIPアドレスを変換する技術です。

一般的には、プライベートIPアドレスをグローバルIPアドレスに変換する技術とされています。多くの企業様では社内ではプライベートアドレスを使用していて、インターネットに接続する際はグローバルIPアドレスに変換して通信ができるようになっています。

NATにもソースNAT、ディスチネーションNATがあります。それぞれ送信元アドレスの変換、宛先アドレスの変換を行うことを意味しています。

今回ご紹介する双方向NATとは、1台のNAT機能を持ったデバイスで内部の送信元アドレス、および外部の送信元アドレスを同時にNAT変換を行うことを言います。

例えば、ご覧のネットワークがある場合
insideの送信元を、192.168.4.1 から192.168.2.3へ
また、 outsideの送信元を192.168.3.1 から 192.168.1.3 へとIPアドレスを変換します。

cisco双方向NATの設定と陥りやすい間違いを詳しく解説

 

この双方向NATのメリットは、
 内部ホストと外部ホストの両方が相手のネットワークを意識する必要が無い。
 内部ホストと外部ホストともにデフォルトゲートウェイの設定をしなくても通信ができる
 お互いの実IPアドレスを知らなくても通信可能な双方向NATです。

などのメリットがあります。

では、実際に設定をしてみましょう。

cisco双方向NATの設定と陥りやすい間違いを詳しく解説

要件はこのとおりで、
・大阪RT、名古屋RTともにお互い相手のnetworkを知らない。
・大阪RTは東京RTの192.168.1.3しか知らない。
・名古屋RTも東京RTの192.168.2.3しか知らない。

前回、第26回で無料のciscoシミュレーションソフトである「パケットトレーサー」をご紹介させて頂きました。
今回は実際にそのパケットトレーサーを使用しながら設定したいと思います。

まず、最初に大阪RTの設定ですが、このようにとてもシンプルです。
見てお分かりのように名古屋RTへのルーティング192.168.3.0/24は入っておりません。

Osaka_RT#sh run
Building configuration…

Current configuration : 821 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Osaka_RT
!
ip cef
no ipv6 cef
!
license udi pid CISCO2901/K9 sn FTX152438F9-
!
spanning-tree mode pvst
!
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.240
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 192.168.4.254 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
line con 0
logging synchronous
login
!
line aux 0
!
line vty 0 4
logging synchronous
login
!
end

同様に、名古屋RTの設定も行います。
大阪RTへのルーティング192.168.4.0/24は設定されていません。
また、スタティックルートされたパケットが到着しているかどうかを確認する為、gi0/0にアクセスリストを追加しております。

Nagoya_RT#sh run
Building configuration…

Current configuration : 880 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Nagoya_RT
!
ip cef
no ipv6 cef
!
license udi pid CISCO2901/K9 sn FTX152463Q1-
!
spanning-tree mode pvst
!
interface GigabitEthernet0/0
ip address 192.168.2.1 255.255.255.240
ip access-group 100 in
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 192.168.3.254 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
access-list 100 permit ip any any
!
line con 0
logging synchronous
login
!
line aux 0
!
line vty 0 4
logging synchronous
login
!
!
!
end

東京RTの設定ポイントは、この3つのコマンドです。

ip nat inside source static 192.168.4.1 192.168.2.3
ip nat outside source static 192.168.3.1 192.168.1.3
ip route 192.168.1.3 255.255.255.255 gi0/1

上の2つのコマンドでは、
inside側の送信元IPアドレス192.168.4.1を192.168.2.3へ、
outside側の送信元IPアドレス192.168.3.1を192.168.1.3へNAT変換しています。

ここで注意したいのは送信元IPアドレス192.168.4.1を192.168.2.3へ変換するということは、送信先192.168.2.3が192.168.4.1へNAT変換されるということでもあります。

また、3つ目のコマンドは、192.168.1.3へのルートを追加しています。
これはinside側の処理がルーティングをしてからNAT変換される為、このルーティングコマンドがないと通信できませんのでご注意下さい。

outside側はNAT変換してからルーティングされるので特別なルーティングは不要です。

そしてこちらが東京RTの設定です。

Tokyo_RT#sh run
Building configuration…

Current configuration : 1226 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Tokyo_RT
!
ip cef
no ipv6 cef
!
license udi pid CISCO2901/K9 sn FTX1524U402-
!
spanning-tree mode pvst
!
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.240
ip access-group 101 in
ip nat inside
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 192.168.2.2 255.255.255.240
ip access-group 102 out
ip nat outside
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip nat inside source static 192.168.4.1 192.168.2.3
ip nat outside source static 192.168.3.1 192.168.1.3
ip classless
ip route 192.168.1.3 255.255.255.255 GigabitEthernet0/1
ip route 192.168.4.0 255.255.255.0 192.168.1.1
ip route 192.168.3.0 255.255.255.0 192.168.2.1
!
ip flow-export version 9
!
!
access-list 101 permit ip any host 192.168.1.3
access-list 102 permit ip any host 192.168.3.1
!
line con 0
logging synchronous
login
!
line aux 0
!
line vty 0 4
logging synchronous
login
!
end

youtubeでもご紹介しておりますのでぜひご覧ください。

 

nginx入門|簡単インストール方法と設定を詳しく解説

ここでは、nginxのインストール方法についてご紹介致します。

CentOSなどRedhat系でのインストール方法と設定になります。

と、その前にnginx(エンジンエックス)をよく知らない方に説明すると、nginxはwebサーバーのミドルソフトウェアです。

メジャーなwebサーバーと言えば、apache、IISなどがありますが、nginxの一番の特徴はリバースプロキシの機能があることです。

ちなみに、このリバースプロキシとは、サーバーの手前に設定してクライアントからの接続を複数のwebサーバーなどを振り分ける働きです。

言わばロードバランサー的な働きをすることです。ですので、webサーバーの負荷を分散したり、また、webサーバーを停止することなくメンテナンスをすることができたりと大変便利な機能なんです(^^♪

nginx入門|簡単インストール方法と設定を詳しく解説

初めてnginxを使用する入門の方から少しご存知の方に向けた内容となっております。

OS/Middleware Version
CentOS 7.6.1810 (x86 64bit)
nginx 1.15.7

nginx入門|簡単インストール方法と設定を詳しく解説

1-1. nginx用のレポジトリー「nginx.repo」を/etc/yum.repos.dフォルダーの下に作成する

#vi /etc/yum.repos.d/nginx.repo
↓↓↓nginx用のレポジトリーファイルnginx.repoを作成し以下を入力↓↓↓

~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
~~~~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~~~~

 

1-2. nginxをインストール

#yum install nginx

Complete!を確認する

 

1-3. nginx起動・再起動・ステータス確認

# systemctl start nginx ← 起動
# systemctl reload nginx ← 再起動(userへの影響ナシ
# systemctl status nginx ← ステータス確認

 

1-4. 設定

nginxの基本的なconfigurationです。設定に必要なファイルはサーバー名毎に定義するファイルとバックエンド側の処理が定義されたupstream.confの2種類です。

[設定条件]
今回設定する条件は、http(port#80)で着弾したアクセスをhttps(port#443)へリダイレクト(301)し、バックエンドサーバーへ接続をします。https(port#443)で来た接続はそのままバックエンドサーバーへ接続をします。

※リダイレクト(301)とは、httpで通信を行う際のステータスコードの一種であり、特定のページから別のページへ転送させる際のステータスコードになります。このリダイレクトには301と302の2種類のステータスコードがあります。301は恒久的な転送を意味しており、302は一時的な転送を意味しています。ちなみに、httpでホームページなどをwebサーバーから正常にGETできた場合のステータスコードは200です。301のコードをもらったパソコンのブラウザーは、その転送先のページが表示されます。その際、ブラウザーのアドレスバーには転送先のURLが表示されます。

nginx入門|簡単インストール方法と設定を詳しく解説

ファイル名:/etc/nginx/conf.d/example.jp.conf
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

server {
listen 443 ssl ;

server_name example.jp;

access_log /var/log/nginx/example.jp_access.log main;
ssl_certificate /cert/example.jp/example.cer;
ssl_certificate_key /cert/example.jp/example.key;

proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;

# ELB X-Forwarded-For Settings
set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;

location / {
proxy_pass https://example-furiwake;
}

}

server {
listen 80;

server_name example.jp;

access_log /var/log/nginx/example.jp_access.log main;

proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;

set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;

location / {
rewrite ^(.*)$ https://example.jp$1 permanent;
proxy_pass https://example-furiwake;
}

}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~

permanent 恒久的なリダイレクトをするときに使用します。HTTPのステータスコードは「301」を返します。
redirect 一時的なリダイレクトをするときに使用します。HTTPのステータスコードは「302」を返します。

 

 

ファイル名:/etc/nginx/conf.d/upstream.confの設定内容
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
upstream example-furiwake {
keepalive 256;
server 192.168.1.154:443 max_fails=0;
server 192.168.1.155:443 max_fails=0;
}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~
※max_fails=0は、サーバーとのヘルスチェックを無効にしている
※keepalive connections数

 

1-5. 文法チェック
再起動の前に文法チェックをします。文法に誤りがあると行番号を表示してエラーがあることを教えてくれます。

# nginx -t   ← 文法チェック。サービスに影響を与えません。
エラーが無くなったらnginxを再起動しましょう。

 

CISCO Router/switchの便利なコンソール設定

ここでは、CISCO Router/switchのコンソールログイン設定や初期に設定しておきたい設定をご紹介致します。

必要最低限のセキュリティ設定やこれから設定を行うにあたって、知っておくと便利なコマンドや設定をご紹介しております。

また、接続ポートを写真入りでご紹介しておりますので、ciscoルーター/スイッチへのケーブル接続が分からないって方はぜひ参考にしてみて下さいね(^^♪

この内容については動画でもご紹介しておりますので、読むのが面倒って方はこちらの動画をご覧下さい。

CISCO Router/switchの便利なコンソール設定

接続方法の種類

ciscoルーター/スイッチにアクセスする方法には、以下の3つの方法があります。

 コンソールポート接続
 AUXポート接続
 VTYポート接続

コンソールとは、ローカルで機器にダイレクト接続し制御・操作ができる入出力装置のことです。コンソールポートから接続ができると、遠く離れた場所(リモート)から接続できなくなっても現地に人が居ればcisco機器に直接ログインして操作を行うことができます。ルーティングを変更していてリモートから入れなくなくなったってことはたまにあります(^^;

AUXは、Auxiliary Portの略で補助のポートという意味です。最近はあまり使用しませんが、モデム経由でルータに接続したい場合に使用します。これは、あらかじめ公衆回線(電話回線/ISDN回線)を利用してAUXポートにモデムを接続しておくことで、万が一、WAN回線が障害で接続できない時に公衆回線から機器へ接続し状態を確認できるとても役立つポートです。また、AUXポートを利用して他のcisco機器のコンソールポートへアクセスしログインすることも可能となります。

VTYポートとは、物理的なポートではありません。VTYは、Virtual Terminal Lineの略で仮想端末のポートを意味しています。Ciscoルータ上で仮想的に複数ポートを
 持つことにより、複数のユーザが同時にアクセスすることが可能になります。デフォルトではVTYポート番号は、line vty 0 4とあることから仮想ポートとしては 0~4 の5ポートあります。ですので、Ciscoルータに同時に5つのtelnetセッションを接続することができます。VTYポートは、小さい番号から使用されていきます。

 

ケーブルの接続

冒頭で、ciscoルーター/スイッチにアクセスする方法を3つご紹介致しましたが物理的はポートは、コンソールポートとAUXポートのみです。VTYポートは仮想端末ポートですからケーブルをさすことはできません。

では、コンソールポートとAUXポートをcisco 892でご紹介を致します。

コンソールポートとAUXポートをcisco 892でご紹介

コンソールポートは分かりやすく、ciscoさんも水色で分かるように印字してくれています。同様に、AUXポートもはっきり記されているのでまず間違うことはないでしょう。

コンソールケーブルは、cisco機器に添付されています。水色のケーブルでパソコンに接続する側はD-sub 9ピンになっています。もう一方のcisco機器側に接続する側はLANケーブルと同じRJ-45のケーブになっています。

ciscoコンソールケーブル

現在、販売されている多くのパソコンには、D-sub 9ピンのインターフェイスが無くなってきているので、USB to D-sub9ピン変換アダプタを使用して接続します。ELECOMやBUFFALO・IODATAなどから2千円前後で販売されています。こちらが私が使用している変換アダプターです。

usb-dsub9pin変換アダプター

 

接続ポート設定

では、具体的にコンソールポートの設定をご紹介致します(^^♪

グローバルコンフィグレーションモードから以下のように投入します。

Switch(config)#line console 0
Switch(config-line)#password パスワード
Switch(config-line)#login

これでコンソールポートの最低限の設定は完了ですが、「logging sync」も投入しておくことをオススメ致します。
この「logging sync」は、ログがコンソールに表示される際に、入力中のコマンドを妨げることなく再表示してくれます。ですので、このコマンドはおまじないだと思って必ず入力するようにしましょう。

Router#
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line console 0       ←コンソールポートを設定
Router(config-line)#password cisco  ←パスワードを設定
Router(config-line)#login        ←ログイン時に認証をすることを明示
Router(config-line)#logging sync   ←ログで入力中のコマンドが邪魔されない
Router(config-line)#

 

VTYポートも基本的にはコンソールポートの設定と同様です。

Router#
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line vty 0 4           ←仮想端末0から4までの5つを設定
Router(config-line)#password cisco  ←パスワードを設定
Router(config-line)#login       ←ログイン時に認証をすることを明示
Router(config-line)#logging sync   ←ログで入力中のコマンドが邪魔されない
Router(config-line)#

 

実際にコンソールポートの設定を動画でもご紹介しております。登録の様子が非常に分かりやすいのでぜひご覧ください。