目次
NAT/PATの設定
CiscoルータでNATの設定を行う主な手順は次の2つです。
- 内部ネットワーク、外部ネットワークの指定
- アドレス変換の定義
内部ネットワーク、外部ネットワークの指定
NAT変換を行うためには、まず、内部ネットワークと外部ネットワークを指定します。インタフェースコンフィグレーションモードで次のコマンドを入力します。
(config-if)#ip nat {inside|outside}
内部ネットワークのインタフェースとしてip nat inside、外部ネットワークのインタフェースにはip nat outsideを指定します。内部ネットワークのインタフェース、外部ネットワークのインタフェースは複数になることもあります。NATのアドレス変換は、内部ネットワークのインタフェースと外部ネットワークのインタフェース間でNAT変換対象のパケットを転送する際に行われます。そのため、内部ネットワークと外部ネットワークの指定を間違えてしまうと、意図したようなアドレス変換が行われないので注意してください。
また、NAT変換対象のパケットはこのあとの「アドレス変換の定義」の中で決定します。
アドレス変換の定義
内部ネットワークと外部ネットワーク間のフローについて、どのようなアドレス変換を行うかを設定します。
ここでは、一番多いNATのアドレス変換である内部ネットワークから外部ネットワークへのフローのアドレス変換の設定のみ解説します。NATの変換は双方向で行いますが、設定は行きのフローについてのみでOKです。行きのフローの設定をすれば、戻りのフローのアドレス変換は自動的に行われます。
最も一般的なNATのアドレス変換の設定は、グローバルコンフィグレーションモードでip nat inside sourceコマンドを利用します。
(config)#ip nat inside source …
ip nat inside sourceはそのまま解釈してください。「内部ネットワークで受信したIPパケットの送信元IPアドレスを変換する」という意味です。そのあとに、どのようなアドレス変換をするかについてコマンドを続けて入力します。内部ローカルアドレスを内部グローバルアドレスに変換しますが、そのための設定方法として、3つのパターンがあります。
パターン | 内部ローカルアドレス | 内部グローバルアドレス |
---|---|---|
1. | スタティック指定 | スタティック指定 |
2. | アクセスリストでpermitされたパケットの送信元IPアドレス | ルータの特定のインタフェースのIPアドレス |
3. | アクセスリストでpermitされたパケットの送信元IPアドレス | NATプールのIPアドレス |
パターン1の内部ローカルアドレスと内部グローバルアドレスの対応が必ず決まるアドレス変換をスタティックNATと呼んでいます。そして、パターン2/パターン3のように内部ローカルアドレスが設定のときには特定されずに実際に変換されたときに決まるアドレス変換をダイナミックNATと呼んでいます。
内部ローカルアドレス/内部グローバルアドレスの意味は、以下の記事をご覧ください。
パターン1
パターン1は、内部ローカルアドレス、内部グローバルアドレスをともにスタティックに指定します。
(config)#ip nat inside source static <inside-local> <inside-global>
<inside-local> : 内部ローカルアドレス
<inside-global> : 内部グローバルアドレス
<inside-local>のIPアドレスが送信元IPアドレスとなっているパケットがNAT変換の対象で、指定した<inside-global>に変換します。なお、この設定で指定した内部ローカルアドレスと内部グローバルアドレスの対応は、スタティックにNATテーブルに保持されます。
パターン2
パターン2は、NATのアドレス変換の対象パケットをアクセスリストで指定します。アクセスリストでpermitされたIPパケットの送信元IPアドレスが内部ローカルアドレスです。そして、内部グローバルアドレスとしてルータのインタフェースを指定します。
(config)#ip nat inside source list <ACL-num> interface <interface-name> [overload]
<ACL-num> : アクセスリスト番号
<interface-name> : 内部グローバルアドレスとして利用するルータのインタフェース
内部グローバルアドレスは、ルータのインタフェースを利用するので1つです。overloadをつけることで、1つの内部グローバルアドレスと複数の内部ローカルアドレスの対応が可能なPATの動作になります。
パターン3
パターン3は、内部グローバルアドレスの範囲をNATプールとして設定します。パターン2と同様にNATの対象パケットをアクセスリストで指定します。アクセスリストでpermitされたIPパケットの送信元IPアドレスが内部ローカルアドレスで、NATプール内の内部グローバルアドレスに変換します。
NATプールの設定は、次のコマンドです。
(config)#ip nat pool <pool-name> <start-ip-address> <end-ip-address> netmask <subnetmask>
<pool-name> : NATプールの名前
<start-ip-address> : NATプールの先頭IPアドレス
<end-ip-address> : NATプールの終わりのIPアドレス
<subnetmask> : サブネットマスク
そして、ip nat inside sourceコマンドで内部グローバルアドレスとしてNATプールを指定します。
(config)#ip nat inside source list <ACL-num> pool <pool-name> [overload]
ACL-num> : アクセスリスト番号
<pool-name> : NATプール名
パターン2と同様にoverloadをつけるとPATです。
アクセスリストの設定の詳細については、以下の記事をご覧ください。
NAT/PATの確認
NATの動作を確認するための主なコマンドは次の通りです。
コマンド | 概要 |
#show ip interface | 内部ネットワーク、外部ネットワークを確認します。 |
#show running-config | include nat | running-config上のNATに関連する設定のみを表示します。 |
#show ip nat translations | NATテーブルを表示します。 |
#debug ip nat | NATのアドレス変換処理をリアルタイムにコンソールに表示します。 |
NATの設定例
以下のネットワーク構成でNATの設定例を考えます。
設定を行う条件は次の通りです。
- Fa0/0を内部ネットワーク、Se0/0を外部ネットワークとします。
- Webサーバ 192.168.1.100のIPアドレスは100.1.1.100に変換されるようにします。
- 192.168.1.0/24上の複数のホストから外部ネットワークへ通信するときには、R1のSe0/0のIPアドレス100.1.1.1に変換します。
内部ネットワーク、外部ネットワークの指定
R1では、まず、内部ネットワークと外部ネットワークを決めます。
R1
R1(config)#interface FastEthernet0/0 R1(config-if)#ip nat inside R1(config-if)#interface Serial0/0 R1(config-if)#ip nat outside
アドレス変換の定義
そして、内部ローカルアドレスと内部グローバルアドレスの変換について設定します。WebサーバのIPアドレス192.168.1.100のIPアドレスを100.1.1.00に変換する設定はパターン1の設定です。192.168.1.0/24のホストのIPアドレスをR1のSe0/0に変換する設定はパターン2の設定です。R1 Se0/0の同じIPアドレスに変換するのでoverloadが必要です。
R1
R1(config)#ip nat inside source static 192.168.1.100 100.1.1.100 R1(config)#ip nat inside source list 1 interface Serial0/0 overload R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
NATの内部ネットワーク、外部ネットワークの確認を行うためにshow ip interfaceを利用します。R1でFa0/0とSerial0/0のshow ip interfaceは次のようになります。
R1
R1#show ip interface fastethernet 0/0 FastEthernet0/0 is up, line protocol is up Internet address is 192.168.1.1/24 Broadcast address is 255.255.255.255 Address determined by setup command MTU is 1500 bytes ~省略~ Network address translation is enabled, interface in domain inside ~省略~ R1#show ip interface serial 0/0 Serial0/0 is up, line protocol is up Internet address is 100.1.1.1/24 Broadcast address is 255.255.255.255 Address determined by setup command MTU is 1500 bytes ~省略~ Network address translation is enabled, interface in domain outside ~省略~
R1のNATテーブルを確認するのがshow ip nat translationsコマンドです。192.168.1.0/24上に192.168.1.3のIPアドレスを持つホストが存在して、外部ネットワークの10.1.1.1のホストへTelnetをした場合のNATテーブルは次のようになります。
R1
R1#show ip nat translations Pro Inside global Inside local Outside local Outside global tcp 100.1.1.1:57756 192.168.1.3:57756 10.1.1.1:23 10.1.1.1:23 --- 100.1.1.100 192.168.1.100 --- ---
このコマンド出力の1つ目のエントリは、次のNATの設定によって変換されたときのエントリです。
R1(config)#ip nat inside source list 1 interface Serial0/0 overload R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
overloadのオプションがあるために、IPアドレスだけでなくポート番号の対応も保持しているPATの動作をしていることがわかります。
そして、2つ目のエントリは、次の1対1のスタティックなNAT変換のエントリです。
R1(config)#ip nat inside source static 192.168.1.100 100.1.1.100
このエントリはスタティックNAT変換の設定がある限り、NATテーブルに登録されています。
そして、ルータで行われるNAT変換をリアルタイムに確認するコマンドがdebug ip natです。内部ネットワークの192.168.1.3、192.168.1.100から外部ネットワークの10.1.1.1へTelnetアクセスしたときのR1のdebug ip natの出力の抜粋は次のようになります。
R1
R1#debug ip nat IP NAT debugging is on R1# *Mar 7 06:21:02.751: NAT: s=192.168.1.3->100.1.1.1, d=10.1.1.1 [0] *Mar 7 06:21:02.771: NAT: s=100.1.1.2, d=100.1.1.1->192.168.1.3 [49649] *Mar 7 06:22:16.913: NAT: s=192.168.1.100->100.1.1.100, d=10.1.1.1 [0] *Mar 7 06:22:16.933: NAT: s=100.1.1.2, d=100.1.1.100->192.168.1.100 [49650]
NATの動作の仕組みとCiscoでの設定の理解を深めるために、以下の記事の設定ミスの切り分けと修正も参考にしてください。
IPアドレッシング
- IPアドレスとは?
- なぜIPアドレスだけでなくMACアドレスも必要なの? ~IPアドレスとMACアドレスの違い~
- 通信の用途とIPアドレス ~宛先は1つ?それとも複数?~
- ユニキャストIPアドレスの構成
- クラスフルアドレス ~区切りを8ビット単位で~
- クラスレスアドレス ~区切りを好きなところに~
- IPアドレス設定の意味
- Cisco IPアドレスの設定・確認コマンド
- CiscoルータをDHCPクライアントに : ip address dhcpコマンド
- サブネッティング ~ネットワークアドレスを分割~
- サブネッティングの計算のポイント(サブネットのネットワークアドレスの簡単な求め方)
- IPアドレス計算ツール(ベータ)
- IPアドレス計算問題 ~CCNA試験対策~
- 不連続サブネット
- ネットワークアドレスの集約 ~ネットワークアドレスをまとめる~
- 自動集約
- グローバルアドレスとプライベートアドレス
- なぜプライベートアドレスではインターネットの通信ができない?
- NAT/PAT ~プライベートアドレスでもインターネットへ~
- Cisco NAT/PATのアドレスの意味
- Cisco NAT/PATの設定と確認
- Cisco NATの処理順序
- NAT 設定ミスの切り分けと修正 Part1