CCNA NAT/PAT問題の解き方|inside/outside・overload・スタティックNATを暗算で攻略【200-301対応】

CCNA NAT/PAT変換イメージ|inside-localとinside-globalの対応関係を示すネットワーク構成図

「CCNAのNAT問題、毎回 inside-local と inside-global でこんがらがる」「PAT overload のコマンドが暗記できない」——自分も最初の頃、まさにこの状態だった。実機を何度も叩いてやっと腑に落ちた。本記事では、CCNA 200-301 で出題されるNAT/PAT問題を最短で解くための考え方と、頻出3パターンの攻略法を現場目線で整理する。

対象は試験を控えた人、それと久しぶりにNATを触る現役エンジニア。コマンド例はすべて Cisco Catalyst 8300 と IOS XE 17.9 で実機検証済み。ぶっちゃけ、用語さえ整理できればNAT問題は半分終わる。

NAT/PATの基本|まず一言で押さえる

NATは「IPアドレス変換」、PATは「ポート番号も使った多重化NAT」

NAT(Network Address Translation)は、その名のとおりIPアドレスを書き換える技術。プライベートアドレス(例:192.168.1.10)をグローバルアドレス(例:203.0.113.1)に変換してインターネットに送り出し、戻ってきた応答パケットは逆方向に書き換えて元の端末に届ける。これがコア。

で、PAT(Port Address Translation)はNATの一種で、ポート番号も併用して1個のグローバルIPに複数の端末を多重化する仕組み。Ciscoでは NAT overload と呼ぶことが多い。家庭のWi-Fiルーターでやってるのもこれ。1個のWAN側IPに家中の端末をぶら下げてるアレ。

📝 補足情報

RFC 1918 で定義されたプライベートIP(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)はインターネットでルーティング不可。だからNAT/PATが必要になる、というのが大前提。

CCNAで一番混乱する4用語|inside-local / inside-global / outside-local / outside-global

用語の覚え方は「内/外 × 変換前/変換後」のマトリクス

この4語、最初は本当に分かりにくい。でも一度マトリクスで整理すると、二度と迷わなくなる。

用語どのホストの?どっちから見たIP?具体例
inside-local内部ホスト内部から見たIP(変換前)192.168.1.10
inside-global内部ホスト外部から見たIP(変換後)203.0.113.1
outside-global外部ホスト外部から見たIP(実IP)198.51.100.50
outside-local外部ホスト内部から見たIP198.51.100.50(多くの場合 outside-global と同じ)
2秒で判別する個人ルール

「inside / outside は誰のIP?」「local / global は誰の視点?」。これだけ。inside-local なら「内部ホストの、内部視点のIP」だから 192.168.1.10。inside-global なら「内部ホストが外から見たIP」だから変換後の 203.0.113.1。outside-* は登場頻度が低いので一旦後回しでOK。

💡 現場での体験談

配属1年目の頃、客先で show ip nat translations を眺めながら「どれが内部でどれが外部か分からん…」って固まってたら、先輩から「内→外の通信なら、左の2列が内部ホスト、右の2列が外部ホスト。それだけ覚えれば全部読める」と。実際、Ciscoの出力フォーマットは Inside global / Inside local / Outside local / Outside global の順で固定。慣れると左から右に流れるように読める。

NAT種別の比較|スタティック・ダイナミック・PAT

3つの方式を「IPの数」と「用途」で覚える

方式マッピング主な用途
スタティックNAT1対1(固定)公開Webサーバ等を外部に見せる
ダイナミックNATN対N(プールから動的割当)プールサイズ分の同時接続を許容
PAT(NAT overload)N対1(ポート番号で多重化)大多数の組織内→外接続。最頻出

図1: 必要なグローバルIP数の比較

スタティックNAT

ホスト数分

ダイナミックNAT

同時数分

PAT(overload)

最低1個

CCNA 200-301 では、PATが圧倒的に出題される。次点でスタティックNAT。ダイナミックNATはたまに「概念の違い」を問う形で混じる程度。

頻出パターン①|PAT overloadの設定を読む問題

PAT overloadの最小構成は4行+ACL

CCNAでもっとも頻出なのが、これ。「下記の設定で正しく動くか」「不足しているコマンドはどれか」みたいな選択肢問題で出る。最小構成を丸暗記してしまうのが結局速い。

設定要素役割忘れがち度
ip nat inside(内側IF)内部側を宣言★★
ip nat outside(外側IF)外部側を宣言★★
access-list 1 permit …変換対象を絞る
ip nat inside source list 1 interface Gi0/1 overloadPATを有効化★★★
Step 1: インターフェースに inside/outside を付ける
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip address 203.0.113.1 255.255.255.252
Router(config-if)# ip nat outside
Step 2: 変換対象を ACL で定義
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Step 3: PATを有効化(overload キーワードを忘れずに)
Router(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload
⚠ よくあるミス

overload を付け忘れるとダイナミックNAT動作になる。グローバルIPが1個しかない場合、最初の1台しか通信できず、残りはエラー扱い。試験ではここを引っ掛けてくる選択肢が頻出。「overloadキーワード=PAT」と一直線で覚える。

頻出パターン②|スタティックNATの設定を読む問題

公開サーバを「内→外」「外→内」両方向で見せる

スタティックNATは内部のサーバを固定のグローバルIPで公開するときに使う。コマンド1行+inside/outside宣言だけ。シンプル。

基本コマンド
Router(config)# ip nat inside source static 192.168.1.100 203.0.113.100

この一行で「内部の 192.168.1.100 ⇔ 外部から 203.0.113.100」の双方向マッピングが固定される。試験では「外部から 203.0.113.100 にアクセスがあったとき、どこに転送されるか」という形で出る。

ポート単位で変換するパターン(PATスタティック)
Router(config)# ip nat inside source static tcp 192.168.1.100 80 203.0.113.1 8080

外部から 203.0.113.1:8080 にアクセスが来たら、内部の 192.168.1.100:80 に飛ばす。FortiGateで言うところのVIPと同じ概念。

頻出パターン③|show ip nat translations の出力を読む問題

出力カラムの順序は決まっている

出力例
Router# show ip nat translations
Pro Inside global       Inside local         Outside local        Outside global
tcp 203.0.113.1:50001   192.168.1.10:1024    198.51.100.50:80     198.51.100.50:80
tcp 203.0.113.1:50002   192.168.1.11:1024    198.51.100.50:80     198.51.100.50:80
--- 203.0.113.100       192.168.1.100        ---                  ---
カラム意味
Proプロトコル(tcp / udp / — =スタティック)
Inside global内部ホストの「外から見たIP(変換後)」
Inside local内部ホストの「内部実IP(変換前)」
Outside local外部ホストを内部から見たIP
Outside global外部ホストの実IP

PATが効いていれば、Inside global のIPが同じでもポート番号で多重化されている(上記例では 50001 と 50002)。スタティックNATは Pro が でポート番号もなし。これでだいたいの試験問題は解ける。

試験で間違えやすいひっかけパターン

採点者が必ず仕込んでくる定番ワナ

🚫 ワナ1:inside/outside の付け間違い

どちらかのインターフェースに ip nat inside(または outside)が無いと、NATは一切動かない。show ip nat statistics で Hits=0、Misses=0 のままなら大抵これ。

🚫 ワナ2:ACLが厳しすぎて変換対象から漏れる

access-list で permit する範囲が狭くて、本来NATされるべきホストが対象外になっているパターン。試験では「192.168.1.0/24 全体を変換したい」のに 0.0.0.15(つまり/28)になっている設定が混ざる。

🚫 ワナ3:overload キーワード抜け

前述のとおり。グローバルIPが1個+overloadなしの場合、2台目以降は通信不可。「最初の1台だけ通信できて他がダメ」という症状の選択肢が出たらほぼこれ。

🚫 ワナ4:PATとスタティックNATの方向を混同

PATは「内→外」スタート(戻りパケットだけ通る)、スタティックNATは「双方向」可。外部から能動的にアクセスしたいならスタティック。これを問う問題が地味に出る。

トラブル時の確認コマンド早見表

この4つを覚えておけば実機検証もラク

コマンド用途注目ポイント
show ip nat translations変換テーブルの中身エントリ有無、ポート番号
show ip nat statisticsHits/Misses/インターフェースinside/outside割当を一覧
debug ip nat変換動作のリアルタイム確認本番では使わないこと
clear ip nat translation *テーブル全消去設定変更後の検証用
⚠ 注意

debug ip nat は本番環境で打つとCPU負荷が跳ね上がる。客先で「ちょっと見たいので…」とノリで打って、後輩がプロセス使用率99%まで持っていったのを見たことがある。検証ラボか conditional debug 限定で使うこと。

まとめ

CCNA NAT/PAT問題は「用語マトリクス+4行設定」で攻略できる

📋 まとめ

inside/outside × local/global のマトリクスを覚えれば、4用語の混乱は終わり。PAT overload は「ip nat inside/outside + ACL + overload付きコマンド」の最小4行が骨。show ip nat translations は左から Inside global → Inside local → Outside local → Outside global の固定順序。試験のひっかけは「overload抜け」「ACLレンジ間違い」「inside/outside未宣言」が3大定番。

よくある質問(FAQ)

Q. NATとPATは何が違うのか?

PATはNATの一形態で、IPアドレスに加えてポート番号も使って多重化する点が違う。Ciscoのコンフィグで言うと、ip nat inside source … に overload を付けたものがPAT。付けないとダイナミックNAT(IP対IPの一時マッピング)。

Q. inside-local と inside-global、現場で使い分けるシチュエーションは?

show ip nat translations の出力を読むときと、トラブル時にACLログと突き合わせるときくらい。「ファイアウォールでログを見ると inside-global のIPが出るので、そこから内部ホストに辿り着くには inside-local を見る」という流れが多い。

Q. CCNA試験ではPATとスタティックNAT、どちらが頻出?

体感では PAT 7割、スタティックNAT 2割、ダイナミックNAT 1割くらい。PATの設定構文と show ip nat translations の読み取りを優先して仕上げると効率がいい。

Q. ACLのワイルドカードマスクが書けない

サブネットマスクを「255 から引く」発想で書けるようになる。192.168.1.0/24 なら 0.0.0.255。/28 なら 0.0.0.15。詳しくは別記事で解説しているのでそちらを参照。

Q. NATを設定したのに通信できない。最初に見るのは?

show ip nat statistics で「Hits」「Misses」と inside/outside の割当インターフェースを確認するのが最速。Hits=0 ならインターフェース宣言かACLが疑わしい。Hits>0 でも届かないならルーティング側を疑う。