CCNP ENCOR合格のための技術解説(NAT)

CCNP

こんにちは、トラ男です。
CCNP ENCOR試験では以下の6つの大分類から出題されます。

  • デュアルスタック(IPv4 および IPv6)アーキテクチャ
  • 仮想化
  • インフラストラクチャ
  • ネットワークアシュアランス
  • セキュリティ
  • 自動化

今日はTwitterで質問を頂いたので、アーキテクチャ分野の技術知識(NAT)についてまとめていきたいと思います。

NAT(Network Address Translation)

NATとはIPアドレスの変換技術になります。NATにはいくつかの種類があります。

スタティックNAT特定のローカルアドレスと特定のグローバルアドレスを一対一で紐付けてIPアドレス変換を行います。
ダイナミックNATローカルアドレスとアドレスプールを対応させてIPアドレス変換を行います。
複数のグローバルIPアドレスをプールに登録しておき、そのプールの中のIPアドレスでアドレス変換します。
PAT
NAPT
IPマスカレード
複数のローカルアドレスに対して一つのグローバルIPアドレスとTCP/UDPポート番号の組み合わせでアドレス変換を行います。
一つのグローバルアドレスで複数のローカルアドレスが同時にNATできるのが特徴です。

スタティックNATの設定例

スタティックNATは特定のローカルアドレスと特定のグローバルアドレスを紐付ける必要があります。
そのため、以下の設定が必要になります。

(config)#ip nat inside source static [内部ローカルアドレス] [内部グローバルアドレス]

また、NATの内部インターフェースと外部インターフェースを決める必要がありますので、以下の設定が必要になります。

(config-if)#ip nat inside

(config-if)#ip nat outside

上記の2つの設定によって、ip nat insideが設定されたインターフェースに着信したトラフィックで、ip nat inside source staticで設定した内部ローカルアドレスにマッチしたIPアドレスのパケットであれば、ip nat outsideが設定されたインターフェースからNATされて送信されスタティックNATが実現できます。

ダイナミックNAT

ローカルアドレスとアドレスプールを対応させてIPアドレス変換を行うため、内部ローカルアドレスの定義とアドレスプールの定義が必要になります。

(config)#access-list [ACL番号] permit [内部ローカルアドレス] [ワイルドカードマスク]

上記のようにACLを使って、内部ローカルアドレスを定義します。

(config)#ip nat pool [プール名] [開始アドレス] [終了アドレス] netmask [サブネットマスク]

or

(config)#ip nat pool [プール名] [開始アドレス] [終了アドレス] prefix-length [プレフィックス長]

そして、上記のようにアドレスプールを定義します。

上記を定義した後、スタティックNATと同様にip nat inside sourceコマンドで内部ローカルアドレスとアドレスプールの紐付けを定義します。

(config)#ip nat inside source list [ACL番号] pool [プール名]

そして、スタティックNAT同様にNATの内部インターフェースと外部インターフェースを決める必要がありますので、以下の設定が必要になります。

(config-if)#ip nat inside

(config-if)#ip nat outside

これらの設定によって、ip nat insideが設定されたインターフェースに着信したトラフィックで、ip nat inside source staticで設定した内部ローカルアドレスにマッチしたIPアドレスのパケットであれば、ip nat outsideが設定されたインターフェースから定義されたNATプールアドレスでアドレス変換されて送信され、ダイナミックNATが実現できます。

PAT/NAPT/IPマスカレード

PAT(Port Address Translation)はIPアドレスとポート番号の組み合わせでNATテーブルを作成することで一つのグローバルアドレスで複数のローカルアドレスをNATさせることができます。

設定方法はダイナミックNATとほとんど変わりませんが、overloadオプションをつける必要があります。

(config)#ip nat inside source list [ACL番号] pool [プール名] overload

overloadコマンドを使用することでPATが動作するようになります。

NATのステータス確認

NATを動作させるとルータ内にNATテーブルが作られます。
NATテーブルを確認することでIPアドレス変換がどのように行われているのか確認することができます。

show ip nat translations

Router# show ip nat translations

Pro Inside global         Inside local       Outside local        Outside global
tcp 192.168.1.1:514      192.168.2.3:53     192.168.2.22:256     192.168.2.22:256
tcp 192.168.1.1:513      192.168.2.2:53     192.168.2.22:256     192.168.2.22:256
tcp 192.168.1.1:512      192.168.2.4:53     192.168.2.22:256     192.168.2.22:256
Total number of translations: 3

Pro・・・プロトコル
Inside global・・・内部グローバルアドレス
Inside local・・・内部ローカルアドレス
Outside local・・・外部ローカルアドレス
Outside global・・・外部グローバルアドレス

このInside/Outsideとローカル/グローバルアドレスの違いがNATにおいて混乱を招く原因となるかと思います。

内部/外部ローカルアドレスはip nat insideが設定されたローカルインターフェース側のアドレスです。
内部/外部グローバルアドレスはip nat outsideが設定されたグローバルインターフェース側のアドレスとなります。

図にすると上記のようになります。

#debug ip nat

デバッグコマンドによってリアルタイムでNAT変換を表示させることができます。

#show ip nat statistics

NATの統計情報はこのコマンドで確認することができます。
スタティックNATの数やダイナミックNATの数などの統計値やNAT成功/失敗の統計値なども確認できます。

Twitterで質問をもらった問題

問:FastEthernet0/2に接続されているホストがインターネットにアクセスできるようにするコマンドはどれか

interface FastEthernet0/1
ip address 109.165.200.255 255.255.255.224
ip nat outside

interface FastEthernet0/2
ip address 10.10.10.1 255.255.255.0
ip nat inside

access-list 10 permit 10.10.10.0 0.0.0.255

解答を以下の4つから選択

A:ip nat inside source list 10 interface FastEthernet0/1 overload
B:ip nat inside source list 10 interface FastEthernet0/2 overload
C:ip nat outside source list 10 interface FastEthernet0/2 overload
D:ip nat outside source static 209.165.200.225 10.10.10.0 overload

答えは?

答えはAです。

まずDですが、スタティックNATの設定でoverloadオプションがついているのがおかしいので解答から外れます。
続いて問題文よりFa0/2(ip nat inside)側のホストがPATしてインターネットアクセスするための設定ですので、ip nat inside source が正解となるためAかBに絞られます。
さらに内部グローバルアドレスはip nat outsideが設定されているFa0/1のアドレスとなるので、Aが正解となります。

今回はここまでとなります。続けてCCNP ENCORアーキテクチャ分野に関してまとめていきたいと思います。

第11回はこちら

コメント

タイトルとURLをコピーしました