PAT(IPマスカレード)設定
前回までの記事でスタティックNATとダイナミックNATの設定方法を紹介しましたが、その中で2つの方式について、それぞれ使い勝手が良くない部分が見えてきたのではないでしょうか。
まず、スタティックNATに関しては、プライベートIPアドレスと同じ数だけグローバルIPアドレスが必要となり、IPアドレスの節約という面での意味をなしていません。また、ホストの数だけグローバルIPアドレスを取得するのは困難です。
ダイナミックNATは、グローバルIPアドレスを複数用意しておき、その分を、LAN上のホストで共有するわけですが、同時に接続できる(NAT変換できる)台数はグローバルIPアドレスの数だけになります。
理想は、ひとつのグローバルIPアドレスをLAN上のホスト全てで共有できることになります。
それを実現できるのがPAT(IPマスカレード)です。
PATは、TCP/UDPのポート番号を変換ルールに含めることにより、1つのグローバルIPアドレスで複数のホストからの同時通信を可能にします。
今回は下図のようなネットワーク構成のもと、PATの設定手順を紹介します。
まずは、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.1 255.255.255.0 RouterA(config-if)#exit RouterA(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.100
RouterB設定
RouterB(config)#interface fastEthernet 0 RouterB(config-if)#ip address 10.0.0.100 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
PATを定義
PATの設定はダイナミックNATの設定手順とほとんど同じです。
異なる主な点は、ip nat inside source list poolコマンドにoverloadキーワードを追加するところです。
グローバルIPアドレスのプールを定義
RouterA(config)#ip nat pool patpool 10.0.0.1 10.0.0.1 netmask 255.255.255.0
アクセスリストの設定
RouterA(config)#access-list 10 permit 192.168.0.0 0.0.0.255
アクセスリストを変換用のアドレスプールにマッピング
RouterA(config)#ip nat inside source list 10 pool patpool overload
内部ローカルの設定
ルータのいずれかのインターフェイスを内部ローカル側として設定します。
上図ではethernet0インターフェイスを内部ローカル側として設定しています。
RouterA(config)#interface ethernet 0 RouterA(config-if)#ip nat inside
内部グローバルの設定
ルータのいずれかのインターフェイスを内部グローバル側として設定します。
上図ではfastethernet0インターフェイスを内部グローバル側として設定しています。
RouterA(config)#interface fastEthernet 0 RouterA(config-if)#ip nat outside
以上で、PATの設定は完了です。
では、アドレス変換が正常に行われているかどうか、「PC A」「PC B」「PC C」「PC D」から「PC Z」に対してPingを投げて確かめてみます。
C:\Users\gran>ping 20.0.0.1 -t 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
4台ともPing応答を正常に受け取れます。
次に、「PC A」からPingを送った場合、送信先となっている「PC Z」にはどのようなパケットが届いているのか、パケットキャプチャソフトを使って確認します。
「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 icmp 10.0.0.1:49664 192.168.0.1:49664 20.0.0.1:49664 20.0.0.1:49664 icmp 10.0.0.1:52992 192.168.0.4:52992 20.0.0.1:52992 20.0.0.1:52992 icmp 10.0.0.1:51968 192.168.0.3:51968 20.0.0.1:51968 20.0.0.1:51968 icmp 10.0.0.1:50944 192.168.0.2:50944 20.0.0.1:50944 20.0.0.1:50944
「192.168.0.1:49664」は「10.0.0.1:49664」に変換されています。(ポート番号の情報も加わっていることに着目してください。)
それらのことから、正常にアドレス変換されていることがわかります。
PATは、家庭用の安価なブロードバンドルータにも標準で搭載されており、現在ではNATと言えばPAT(IPマスカレード)と位置付けられています。