Cisco NATの概要

Cisco

Cisco Systems社のルータは多機能なのですが、その分似通った専用の用語が数多く出てきて混乱してしまうことがよくあります。

NAT機能は古くからある基本的な機能なのですが、それでもついつい忘れがちで、誤解したまま設定すると全く期待通りの結果にならず混乱してしまうこともしばしば。

そんなNATの説明です。

insideとoutside

NATは入力されたIPパケットのアドレスを変換してから出力するという比較的単純な仕組みなのですが、他の機能との関わりもあり、明確なルールに基づいています。

NAT機能を使用するインタフェースはinsideもしくはoutsideという分類がされます。insideとoutsideという名前から企業内がinside、インターネット側がoutsideというふうに解釈される事も多く、実際にNATの機能としてその様に動作する様になっていますが、insideとoutsideそれぞれ内部的にどのように動作しているのか理解できればNAT機能の応用や他の機能の設定に役立ちます。

insideのインタフェースとoutsideのインタフェースは1対1というわけではありません。複数のインタフェースにinsideと設定でき、また複数のインタフェースにoutsideと設定できます。

localとgrobal

インタフェースのinsideとoutsideという考え方に加え、localとgrobalという考え方があります。簡単に言ってしまえばlocalというのはNATで変換前の値、実際の値となります。また、grobalというのは変換後の値、NAT機能で置き換えた値という事になります。

localやgrobalというと、局所的だったり全体的だったりすることを連想しがちですが、その様な要素は一旦忘れたほうが良いと思います。

insideとoutside、localとgrobalの組み合わせにより次の四つのパターンがあります。

キーワード 解説
inside global outside側から見えるIPアドレス。つまり、NAT後のIPアドレス。
inside local inside側の実IPアドレス。NAT機能から見た変換前のIPアドレス。
outside local outside側の実IPアドレス。NAT機能から見た変換前のIPアドレス。
outside global inside側の機器から見たIPアドレス。NAT後のIPアドレス。

NAT機能と他の処理との関係

ルータにはNAT機能の他にも多くの機能を持っています。それらの機能とNAT機能とで処理する順番はとても密接に関わってきます。NAT機能はinsideのインタフェースとoutsideのインタフェース間の通信で動作しますが、処理の順番はinsideからoutsideへ通信が行われる場合とoutsideからinsideへ行われる場合とで異なります。

insideからoutsideへの通信

insideのインタフェースからoutsideのインタフェースに通信が行われる時、次の順に動作します。

  1. 入力アクセスリストをチェック
  2. ルーティング処理
  3. NAT処理 (通信内容の変換)
  4. 出力アクセスリストをチェック

まず入力アクセスリストをチェックして処理対象となるかどうかが決まります。次にルーティング処理を行い出力先のインタフェース情報などが決定します。この段階ではまだアドレスの変換が行われていませんので、入力アクセスリストやルーティングに関してはNATによる変換前のアドレス情報が使われる事に注意が必要です。

そして実際のNAT処理が行われ、アドレスなどが変換されます。

さらに出力アクセスリストをチェックします。出力アクセスリストではNAT変換後の値が使われます。入力アクセスリストとは使う値が異なることに注意が必要です。

outsideからinsideへの通信

通信がoutsideからinsideへ行われるときは次の順に動作します。

  1. 入力アクセスリストをチェック
  2. NAT処理
  3. ルーティング処理
  4. 出力アクセスリストをチェック

まず入力アクセスリストがチェックされます。この時点ではまだNAT処理がされていないことに注意が必要です。次にNAT処理が行われます。
そしてルーティング処理が行われます、insideからoutsideへの通信と大きく異なるのがNAT処理とルーティング処理の順番です。
最後に出力アクセスリストがチェックされます。

コメント

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