スタティックNAT設定

スタティック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コマンドを使用することで、アドレス変換が行われる度、ターミナル上にその内容が表示されるようになり、適切にアドレス変換されているかを検証することができます。

タグ