ネットワーク アドレス変換(NAT)は、トラフィック ルーティング デバイスを通過中にIPパケット ヘッダー内のIPアドレス情報を変更するプロセスです
NATには、2種類のタイプがあります。 これは、しばしば1対1NATとも呼ばれます。 このタイプのNATでは、IPアドレス、IPヘッダーのチェックサム、およびIPアドレスを含む上位のチェックサムのみを変更する必要があります。 パケットの残りの部分はそのままにしておくことができます(少なくとも基本的なTCP/UDP機能については、一部の上位プロトコルはさらなる変換が必要な場合があります)。 基本的なNATは、互換性のないアドレスを持つ2つのIPネットワークを相互接続する必要がある場合に使用することができる。 静的NATでは、静的NATコマンドを設定するとすぐに翻訳がNAT翻訳テーブルに存在し、静的NATコマンドを削除するまで翻訳テーブルに残ります。
- Static PAT: Static PAT変換は、グローバルアドレス上の特定のUDPまたはTCPポートがローカルアドレス上の特定のポートに変換されることを可能にします。 静的 PAT は、実アドレスとマップされたアドレスのプロトコル (TCP または UDP) とポートを指定できることを除けば、静的 NAT と同じです。 スタティックPATでは、ポートが各ステートメントで異なる場合、多くの異なるスタティックステートメントにわたって同じマップされたアドレスを識別することができます。 複数の静的NATステートメントに同じマップドアドレスを使用することはできません。
- NAT Overload or PAT: 通常、プライベート IP アドレスで構成される IP アドレス空間全体を、別の (通常はパブリック) アドレス空間の単一の IP アドレス (または場合によっては IP アドレスの小さなグループ) の背後に隠すことが一般的です。 このようなNATは、オーバーロードのPATと呼ばれます。 動的エントリーは、トラフィックが時折流れる限り、テーブルに残ります。 PAT in overload では、 ルータが変換を必要 と する ト ラ フ ィ ッ ク を受信す る ま で、 変換は NAT テーブル内に存在 し ません。 翻訳にはタイムアウト時間があり、その後、翻訳テーブルからパージされます。
Example #1: Static Source NAT
172.16.0.5 IP アドレスを 10.16.0.5 ip アドレスに翻訳する方法。
Define the ip nat inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
Define the ip nat outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
静的NAT entry:
ip nat inside source static 172.16.0.5 10.16.0.5
static NATで、翻訳はstatic NATコマンドを設定するとすぐにNAT変換テーブルに存在して、static NATコマンドを削除するまで翻訳テーブルに残っている状態にあります。
Ciscozine#sh ip nat translationsPro Inside global Inside local Outside local Outside global--- 10.16.0.5 172.16.0.5 --- ---Ciscozine#
クライアントがWebサーバーにICMPパケットまたはHTTPリクエストを送信すると、NATテーブルは次のようになります:
Ciscozine#sh ip nat translationsPro Inside global Inside local Outside local Outside globalicmp 10.16.0.5:1 172.16.0.5:1 10.0.0.100:1 10.0.0.100:1tcp 10.16.0.5:56080 172.16.0.5:56080 10.0.0.100:80 10.0.0.100:80--- 10.16.0.5 172.16.0.5 --- ---Ciscozine#
注意: マッピングされたアドレスは静的NATでの連続した接続ごとに同じで、永続的な変換ルールが存在するため、静的NATでは宛先ネットワーク上のホストで、(それを許可するアクセスリストが存在すれば)転送したホストにトラフィックを開始することが可能です。
例 2: 動的ソース NAT
10.16.0.0/29 ネットワークで 172.16.0.0/28 ネットワークを変換する方法です。
Define the ip nat inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
Define the ip nat outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
NAT変換で使用するNATプールを定義します:
Ciscozine(config)#ip nat pool dynamic-ip 10.0.16.1 10.0.16.6 prefix-length 29
どのネットワークが変換されるかを定義してください。
Ciscozine(config)#ip access-list standard client-listCiscozine(config-std-nacl)#permit 172.16.0.0 0.0.0.15
動的ソースNATを定義する:
Ciscozine(config)#ip nat inside source list client-list pool dynamic-ip
動的NATでは、ルータが翻訳を必要とするトラフィックを受信するまで翻訳はNATテーブル内に存在しません。
Ciscozine#sh ip nat translationsCiscozine#
しかし、いくつかのパケットがACLに一致する場合、
Ciscozine#sh ip nat translations Pro Inside global Inside local Outside local Outside globalicmp 10.0.16.1:2 172.16.0.1:2 10.0.0.100:2 10.0.0.100:2tcp 10.0.16.2:35694 172.16.0.2:35694 10.0.0.100:80 10.0.0.100:80tcp 10.0.16.1:56185 172.16.0.1:56185 10.0.0.100:80 10.0.0.100:80--- 10.0.16.1 172.16.0.1 --- ------ 10.0.16.2 172.16.0.2 --- ---Ciscozine#
注:新しいパケットがさらに別の内部ホストから到着し、それがNATエントリを必要とするが、すべてのプールされたIPアドレスが使用されている場合、ルータは単にパケットを廃棄します。
これは、「debug ip nat」を有効にして確認できます。
Feb 12 19:26:09.895: NAT: translation failed (E), dropping packet s=172.16.0.5 d=10.0.0.100
ユーザーは、NATエントリがタイムアウトするまで再度試みる必要があり、その時点で、NAT機能はパケットを送信する次のホストのために機能します。 基本的に、アドレスの内部グローバルプールは、PATを使用しない限り、同時にインターネットを使用する必要がある同時ホストの最大数と同じ大きさである必要があります。 動的NATと静的NATのアドレス範囲の主な違いは、静的NATではリモートホストが変換されたホストへの接続を開始できるのに対し(それを許可するアクセスリストが存在する場合)、動的NATではそれができない点です。
Example #3: Static PAT
How to expose two different services on Internet:
- The Web server (172.16.0.0).5) は tcp ポート 80 で待ち受けています。このサーバーはインターネット (外部) からパブリック アドレス 88.88.88:80 で応答します。
- SSH サーバー (172.16.0.6) は tcp ポート 22 で待ち受けています。このサーバーはパブリック アドレス 88.88.88.88.80 で応答します。88:666 インターネット (外側) から .
Define the ip nat inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
Define the ip nat outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
Define the static PAT:
Web サーバは ‘outside’ インターフェイス上の tcp port 80 で応答していることが確認されました。
ip nat inside source static tcp 172.17.0.5 80 88.88.88.88 80
SSHサーバは’outside’インタフェースのtcpポート666で応答します。
ip nat inside source static tcp 172.17.0.6 22 88.88.88.88 666
静的PAT変換も静的NATと同様に,静的PATコマンドを設定すると同時にNAT変換テーブルに存在し,静的PATコマンドを削除するまで変換テーブルに存在します。
Ciscozine#sh ip nat translations Pro Inside global Inside local Outside local Outside globaltcp 88.88.88.88:80 172.16.0.5:80 --- ---tcp 88.88.88.88:666 172.16.0.6:22 --- ---Ciscozine#
インターネットクライアントがHTTPリクエストまたはSSH接続(tcpポート666)を送信すると、natテーブルは:
Ciscozine#sh ip nat translations Pro Inside global Inside local Outside local Outside globaltcp 88.88.88.88:80 172.16.0.5:80 56.56.56.56:54686 56.56.56.56:54686tcp 88.88.88.88:80 172.16.0.5:80 --- ---tcp 88.88.88.88:666 172.16.0.6:22 56.56.56.56:33704 56.56.56.56:33704tcp 88.88.88.88:666 172.16.0.6:22 --- ---Ciscozine#
Example #4: PAT – NAT Overload
インターネット接続を共有するにはどうすればよいですか。
IP NAT inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
IP NAT outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
Define which network will be translated:
Ciscozine(config)#ip access-list standard client-listCiscozine(config-std-nacl)#permit 172.16.0.0 0.0.0.255
Define the NAT Overload.DEFINED.DECOMMENDED:DEFINED NAT Overload.DEFINED:DEFINED.DEFINED:
Ciscozine(config)#ip nat inside source list client-list interface fastethernet0/1 overload
ダイナミックNATと同様に、ルータが翻訳を必要とするトラフィックを受信するまで、翻訳はNATテーブルに存在しません:
Ciscozine#sh ip nat translationsCiscozine#
しかし、いくつかのパケットがACLに一致したとき。.
Ciscozine#show ip nat translationsPro Inside global Inside local Outside local Outside globaltcp 88.88.88.88:7921 172.16.0.2:7921 95.100.96.233:443 95.100.96.233:443tcp 88.88.88.88:8651 172.16.0.5:8651 173.194.44.18:80 173.194.44.18:80tcp 88.88.88.88:8652 172.16.0.111:8652 173.194.44.18:443 173.194.44.18:443tcp 88.88.88.88:8653 172.16.0.223:8653 173.194.70.84:443 173.194.70.84:443udp 88.88.88.88:64116 172.16.0.222:64116 8.8.8.8:53 8.8.8.8:53udp 88.88.88.88:64756 172.16.0.223:64756 8.8.4.4:53 8.8.4.4:53Ciscozine#
他のタイプの NAT/PAT はありますか? このコマンドは、「外部」インタフェースから入って「内部」インタフェースから出るパケットの送信元アドレスを変換することを許可します。
簡単に言うと、最初の例1
コマンド:
ip nat outside source static 10.0.0.100 192.168.0.100
10.0.0.100 を 192.168.0.100 に変換し、クライアントは 192.168.0.100 に電話しなければならないのです。
もう一つの特別なタイプの nat は、複数の内部デバイスがミラーコンテンツを持つ同一のサーバであり、外部からは単一のサーバの負荷分散に見える場合に使用される ip nat inside destination です。 アクセスリストでは、バーチャルホストのIPアドレス、つまり外界がホストアドレスと考えるものを許可するようになりました。 つまり、バーチャルホストは 123.123.123.132 で、実際のホストは 172.16.0.2 から 10 となります。
Partial configuration
interface FastEthernet0/0ip address 172.16.0.0 255.255.255.0ip nat inside!interface FastEthernet0/1ip address 88.88.88.88 255.255.255.252ip nat outside!ip nat pool real-ip-server 172.16.0.2 172.16.0.10 prefix-length 24 type rotaryip nat inside destination list 1 pool real-ip-server!ip route 0.0.0.0 0.0.0.0 FastEthernet0/1!access-list 1 permit 123.123.123.123
この変換は本質的に双方向ではありません。 これを実現するには、1対1の静的NATを使用する必要があります。 NATプール内の1つのアドレスを使用して、「ip nat inside source static」のような機能を上記の構成で実現することができますが、それは外部から内部へのトラフィックに対してのみ機能します。
nat inside/outsideはどこに適用されますか。
通常、「ip nat inside」は、インターネットにルーティングできないローカル環境のインタフェース (通常は IP アドレスのプライベート範囲) に設定され、「ip nat outside」はインターネットに接続されるインタフェースに設定されます。
内側から外側へ。
- IPSecの場合、入力アクセスリストをチェック
- 復号化 – CET (Cisco Encryption Technology) またはIPSec
- 入力アクセスリストをチェック
- 入力レート制限をチェック
- 入力アカウンティング
- リダイレクト
-
-
- ポリシールーティング
- ルーティング
- NAT 内部から外部へ(ローカルからグローバルへの変換)
- crypto (マップと暗号化のマークをチェック)
- チェック出力アクセスリスト
- inspect (コンテキスト -)
- TCP intercept
- encryption
- Queueing
- IPSecの場合、入力アクセスリストをチェック
- 復号化 – CETまたはIPSec
- 入力アクセスリストをチェック
- 入力レート制限をチェック
- 入力会計
- Webキャッシュにリダイレクト
- NAT 外→内(グローバル→ローカル)
- NAT 外→内(グローバル→ローカル)
- NAT 外→内(グローバル→ローカル)
- NAT 外→内(グローバル→ローカル)
- NAT 外→内(グローバル→ローカル 翻訳)
- policy routing
- routing
- crypto (check map and mark for encryption)
- check output access list
- inspect CBAC
- TCP intercept
- encryption
- queueing
Outside to Inside:
Some useful comands:
- NAT に関する統計情報を表示するには: show ip nat statistics
- static/dynamic NAT/PAT エントリの完全リストを表示するには: show ip nat translations
- dynamic NAT エントリをクリアするには: clear ip na translation *
- NAT をデバッグするには: debug ip nat
-