こんにちは、トラ男です。
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回はこちら。
コメント