スタティックNAT設定
NATにはスタティックNAT、ダイナミックNAT、そしてPATの3つの方式があることを前回の記事で紹介しました。
今回は下図のような構成でスタティックNATの設定を行います。
まずは、RouterA、RouterBそれぞれのインターフェイスを設定します。
RouterA設定RouterA(config)#interface fastEthernet 0 RouterA(config-if)#ip address 10.0.0.1 255.255.255.0 RouterA(config-if)#exit RouterA(config)#interface ethernet 0 RouterA(config-if)#ip address 192.168.0.100 255.255.255.0 RouterA(config-if)#exit RouterA(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2
RouterB設定
RouterB(config)#interface fastEthernet 0 RouterB(config-if)#ip address 10.0.0.2 255.255.255.0 RouterB(config-if)#exit RouterB(config)#interface ethernet 0 RouterB(config-if)#ip address 20.0.0.100 255.255.255.0
内部ローカルアドレスと内部グローバルアドレス
設定の前に用語の確認をしておきます。
Ciscoは、内部ネットワークに割り当てたIPアドレスを『内部ローカルアドレス』
外部ネットワークから見た内部のホストを示すアドレスを『内部グローバルアドレス』と定義しています。
基本的に、「内部ローカルアドレス=プライベートIPアドレス」「内部グローバルアドレス=グローバルIPアドレス」と捉えても問題ありません。
NATは、内部ローカルアドレスと内部グローバルアドレスを変換する機能と表現できます。
スタティックNATを定義
スタティックNATは「ip nat inside source static」コマンドで設定します。
RouterA(config)#ip nat inside source static 192.168.0.1 10.0.0.1
「192.168.0.1」が内部ローカルアドレス、「10.0.0.1」が内部グローバルアドレスとなります。
内部ローカルの設定
ルータのいずれかのインターフェイスを内部ローカル側として設定します。
上図ではethernet0インターフェイスを内部ローカル側として設定しています。
RouterA(config)#interface ethernet 0 RouterA(config-if)#ip nat inside
内部グローバルの設定
ルータのいずれかのインターフェイスを内部グローバル側として設定します。
上図ではfastethernet0インターフェイスを内部グローバル側として設定しています。
RouterA(config)#interface fastEthernet 0 RouterA(config-if)#ip nat outside
以上で、スタティックNATの設定は完了です。
では、アドレス変換が正常に行われているかどうか、「PC A」から「PC B」に対してPingを投げて確かめてみます。
C:\Users\gran>ping 20.0.0.1 20.0.0.1 に ping を送信しています 32 バイトのデータ: 20.0.0.1 からの応答: バイト数 =32 時間 =1ms TTL=255 20.0.0.1 からの応答: バイト数 =32 時間 =1ms TTL=255 20.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=255 20.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=255
Pingの応答は正常に返ってきています。
次に、送信先となっている「PC B」にはどのようなパケットが届いているのか、パケットキャプチャソフトを使って確認します。
「PC A」から送信したrequestパケットの送信元IPアドレスが「10.0.0.1」になっています。
つまり、正常にアドレス変換が行われています。
NATテーブルの確認
現在のNATテーブルはshow ip nat translationsコマンドで確認できます。
RouterA#show ip nat translations Pro Inside global Inside local Outside local Outside global --- 10.0.0.1 192.168.0.1 --- ---
また、アドレス変換の様子をリアルタイムで確認したい場合はdebug ip natコマンドを使用します。
RouterA#debug ip nat Apr 18 20:36:16.115: NAT*: s=192.168.0.1->10.0.0.1, d=20.0.0.1 [32753] Apr 18 20:36:16.119: NAT*: s=20.0.0.1, d=10.0.0.1->192.168.0.1 [92] Apr 18 20:36:17.115: NAT*: s=192.168.0.1->10.0.0.1, d=20.0.0.1 [31910] Apr 18 20:36:17.119: NAT*: s=20.0.0.1, d=10.0.0.1->192.168.0.1 [98]
「*」はキャッシュを使用したことを示す。「s」は送信元、「d」は宛先、[ ]内の数字はパケットの識別番号
debug ip natコマンドを使用することで、アドレス変換が行われる度、ターミナル上にその内容が表示されるようになり、適切にアドレス変換されているかを検証することができます。