CiscoのNAT/PATは難しい・・・

CiscoルータでNAT/PATの設定をしようとすると難しく感じるでしょう。Cisco独特のNATのアドレス用語があるからです。CiscoルータでNATの設定を行う場合、4つのアドレスの意味を知っておくことが重要です。まず「内部ネットワーク」「外部ネットワーク」があり、そして「ローカル」「グローバル」「内部」「外部」を組み合わせて、次のようなアドレスがあります。

  • 内部ローカルアドレス
  • 外部ローカルアドレス
  • 内部グローバルアドレス
  • 外部グローバルアドレス

これらのアドレスの意味を理解するうえで、「通信は双方向である」ということが重要なポイントです。これらのアドレスの意味がわかれば、CiscoのNAT/PATの設定も難しくはありません!

NATのアドレスの意味

まず、NATを行うルータを基準にして「内部ネットワーク」「外部ネットワーク」となるインタフェースを決めます。NATのアドレス変換のほとんどは、プライベートアドレスとグローバルアドレスの変換で、内部ネットワークはほとんどの場合、プライベートアドレスを設定しているインタフェースです。そして、外部ネットワークはインターネット側のグローバルアドレスを設定しているインタフェースです。

内部ネットワークと外部ネットワークを決めると、「ローカル」と「グローバル」が決まってきます。内部ネットワークから外部ネットワークへの行きのフローに関するアドレスが「ローカル」とつくアドレスです。そして、その戻りとなる外部ネットワークから内部ネットワークへのフローに関するアドレスが「グローバル」とつくアドレスです。

ルータは内部ネットワークと外部ネットワーク間で行きと戻りの双方向のフローの通信ができるようにアドレス変換を行います。具体的には、内部ローカルアドレスと内部グローバルアドレスの変換を行います。

行きのフロー(内部ネットワークから外部ネットワーク):「ローカル」

宛先IPアドレス

外部ローカルアドレス

送信元IPアドレス

内部ローカルアドレス

戻りのフロー(外部ネットワークから内部ネットワーク):「グローバル」

宛先IPアドレス

内部グローバルアドレス

送信元IPアドレス

外部グローバルアドレス

NATのアドレスの例

「図 NATの動作」のネットワーク構成で、どのようにアドレス変換されるかについてあらためて考えます。

図 NATの動作

内部ネットワーク(プライベートアドレス)のPC1から、外部ネットワーク(インターネット)のSRV1へ通信するとき、PC1からSRV1へ何らかのリクエスト(行きのフロー)が発生します。このフローのIPアドレスは、次の通りです。

行きのフロー(ローカル) PC1からSRV1へのリクエスト
宛先IPアドレス:G2 (外部ローカル)
送信元IPアドレス:P1(内部ローカル)

このまま外部ネットワークへ転送すると、その戻りのパケットは破棄されてしまいます。行きのフローの送信元IPアドレスが戻りのフローの宛先IPアドレスになりますが、プライベートアドレスのままだとインターネット上のルータは破棄します。そこで、戻りのフローが戻ってこられるように、送信元IPアドレスをG1へ変換します。そうすれば、戻りのフローの宛先がグローバルアドレスとなり、戻りのフローは破棄されません。G1は内部グローバルアドレスです。つまり、行きのフローの送信元IPアドレスを内部ローカルアドレスから内部グローバルアドレスへ変換します。NATテーブルには、「内部ローカルアドレス」「外部ローカルアドレス」「内部グローバルアドレス」「外部グローバルアドレス」の対応を保持します。

そして、SRV1からPC1へのリプライ(戻りのフロー)が発生します。戻りのフローのIPアドレスは、次の通りです。

戻りのフロー(グローバル) SRV1からPC1へのリプライ
宛先IPアドレス:G1 (内部グローバル)
送信元IPアドレス:G2(外部グローバル)

行きのフローで送信元IPアドレスが内部グローバルアドレスG1となっているので、アドレス変換したルータまで戻ってきます。戻りのフローの宛先IPアドレスは内部グローバルアドレスG1になり、インターネット上でもルーティング可能です。

戻りのフローがルータまで戻ってきたら、ルータはNATテーブルに保持しているアドレスの対応に基づいて、宛先IPアドレスを内部グローバルアドレスG1からもとの内部ローカルアドレスP1へ変換して、PC1へと転送します。

図 NATのアドレス変換の詳細

以上のように、NATのアドレス変換は行きのフロート戻りのフローの両方での変換が行われているということをしっかりと把握しておいてください。何度か触れていますが、「通信は双方向である」ということは、ネットワーク技術を理解するうえでのとても重要なポイントです。

NATは内部ネットワークから外部ネットワーク間における内部ローカルアドレスと内部グローバルアドレスの変換以外にもさまざまなアドレス変換が可能です。上記のようなアドレス変換が一番よく行われているというだけです。