NATとPAT:完全な説明

ネットワーク アドレス変換(NAT)は、トラフィック ルーティング デバイスを通過中にIPパケット ヘッダー内のIPアドレス情報を変更するプロセスです

NATには、2種類のタイプがあります。 これは、しばしば1対1NATとも呼ばれます。 このタイプのNATでは、IPアドレス、IPヘッダーのチェックサム、およびIPアドレスを含む上位のチェックサムのみを変更する必要があります。 パケットの残りの部分はそのままにしておくことができます(少なくとも基本的なTCP/UDP機能については、一部の上位プロトコルはさらなる変換が必要な場合があります)。 基本的なNATは、互換性のないアドレスを持つ2つのIPネットワークを相互接続する必要がある場合に使用することができる。 静的NATでは、静的NATコマンドを設定するとすぐに翻訳がNAT翻訳テーブルに存在し、静的NATコマンドを削除するまで翻訳テーブルに残ります。

  • 動的NAT:動的NATは静的NATと比較していくつかの類似点と相違点があります。 静的NATと同様に、NATルーターは内部のローカルアドレスと内部のグローバルアドレスの間に1対1のマッピングを作成し、パケットが内部ネットワークから出たり入ったりするときにパケットのIPアドレスを変更します。 しかし、内側のローカルアドレスと内側のグローバルアドレスのマッピングは、動的に行われる。 ダイナミックNATは、インサイドグローバルアドレスの候補のプールを設定し、NATで変換すべきインサイドローカルIPアドレスを決定するためのマッチング基準を定義する。 動的なエントリーは、トラフィックが時々流れている限り、テーブルに残ります。 ルータが翻訳を必要とするトラフィックを受信するまで、動的NATでは、翻訳はNATテーブル内に存在しません。 動的な変換にはタイムアウト期間があり、その後変換テーブルから消去されます。
  • PAT
    • 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:

    1. The Web server (172.16.0.0).5) は tcp ポート 80 で待ち受けています。このサーバーはインターネット (外部) からパブリック アドレス 88.88.88:80 で応答します。
    2. 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」はインターネットに接続されるインタフェースに設定されます。

    内側から外側へ。

    1. IPSecの場合、入力アクセスリストをチェック
    2. 復号化 – CET (Cisco Encryption Technology) またはIPSec
    3. 入力アクセスリストをチェック
    4. 入力レート制限をチェック
    5. 入力アカウンティング
    6. リダイレクト
                                1. ポリシールーティング
                                2. ルーティング
                                3. NAT 内部から外部へ(ローカルからグローバルへの変換)
                                4. crypto (マップと暗号化のマークをチェック)
                                5. チェック出力アクセスリスト
                                6. inspect (コンテキスト -)
                                7. TCP intercept
                                8. encryption
                                9. Queueing

                                Outside to Inside:

                                1. IPSecの場合、入力アクセスリストをチェック
                                2. 復号化 – CETまたはIPSec
                                3. 入力アクセスリストをチェック
                                4. 入力レート制限をチェック
                                5. 入力会計
                                6. Webキャッシュにリダイレクト
                                7. NAT 外→内(グローバル→ローカル)
                                8. NAT 外→内(グローバル→ローカル)
                                9. NAT 外→内(グローバル→ローカル)
                                10. NAT 外→内(グローバル→ローカル)
                                11. NAT 外→内(グローバル→ローカル 翻訳)
                                12. policy routing
                                13. routing
                                14. crypto (check map and mark for encryption)
                                15. check output access list
                                16. inspect CBAC
                                17. TCP intercept
                                18. encryption
                                19. queueing

                                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
  • コメントを残す

    メールアドレスが公開されることはありません。