30 Minutes NetWorking
No.RA01

30Minutes NetWorking

BCRAN

第1回NAT(1) NATの基礎

■ 4つのアドレス

スーパーインター博士

ネット君。NAT、聞き覚えがあるだろう?

ハイパーネット助手

あ〜、はいはい。Network Administratable Transaction。ネットワーク管理者のお仕事のことですよね。

スーパーインター博士

ネット君。

ハイパーネット助手

はい……。

スーパーインター博士

マジボケなら許さんし、ボケとしてもキレがないから許さん

ハイパーネット助手

ご…ごめんなさい。以後気をつけます。

スーパーインター博士

うむ、今回だけは見逃してやろう。次にやったら、君の残りの人生がとても楽しくなることだけは間違いない。
ともかく、NATだ。Network Address Translation。

ハイパーネット助手

3分間の第46回第47回のやつですよね。ネットワークアドレス変換。

スーパーインター博士

そうだ。今回からは、CiscoルータのNAT機能の説明をする。
動作の説明は、3分間の方で済ませているので省略する。

ハイパーネット助手

省略ッスか。

スーパーインター博士

あ〜、わかったわかった。基本動作をもう一度載せておこう。
忘れていたら思い出すように。

[Figure46-02:NAT]

ハイパーネット助手

でしたでした。プライベートIPアドレスをグローバルIPアドレスに変換するんでしたよね。

スーパーインター博士

ふむ。プライベートIPアドレスとグローバルIPアドレス。 ▼ link
CiscoルータのNATでは、アドレスには4種類ある

ハイパーネット助手

4種類? プライベートと、グローバルと、あとなんだろう?

スーパーインター博士

以下の4つだ。

  1. 内部ローカルアドレス
  2. 内部グローバルアドレス
  3. 外部ローカルアドレス
  4. 外部グローバルアドレス
ハイパーネット助手

えぇっと、内部と外部ってのは、LAN側とインターネット側ってことですよね。
プライベートとローカルは同じでしょ。

スーパーインター博士

ネット君、プライベートとローカルは違うぞ。
それに、内部と外部ってのは、LAN側とインターネット側というわけではない。

ハイパーネット助手

んんん? どういうことです?

スーパーインター博士

ちょっとややこしいよな、この種類分けは。
定義はこう。

  • 内部・外部 … 内部ネットワークと、NATルータをはさんでその反対側にある(外部)ネットワーク
  • ローカル・グローバル … 内部ネットワークで通用するローカルアドレス と ネットワーク上で一意のグローバルアドレス
ハイパーネット助手

NATルータをはさんで内部と外部?
内部で通用するローカルと、一意のグローバル?

スーパーインター博士

図で説明しよう。

アドレスの種類

[FigureRA01-01:アドレスの種類]

スーパーインター博士

外部ローカルはこっちの図。

アドレスの種類・2

[FigureRA01-02:アドレスの種類・2]

ハイパーネット助手

なんすか、その「内部ネットワークから見た場合」ってのは?

スーパーインター博士

つまり、そのホストのアドレスが実際はどうあっても関係ない。
あくまでも「内部ネットワークから見た場合のアドレス」が外部ローカルアドレスだ。

ハイパーネット助手

実際のアドレスと内部から見た場合のアドレスが違うんですか?

スーパーインター博士

そういうこともある、という話だ。ネットワークの重複のところで説明する。

ハイパーネット助手

ははぁ。

スーパーインター博士

つまり、以下のような形になる。
グローバルはネットワーク上で一意、ローカルは内部ホストから見たアドレスになるのだよ。

  1. 内部ローカルアドレス … 内部ネットワークでのみ通用する内部ホストアドレス
  2. 内部グローバルアドレス … ネットワーク上で一意の内部ホストのアドレス
  3. 外部ローカルアドレス … 内部ネットワークから見た外部ホストのアドレス
  4. 外部グローバルアドレス … ネットワーク上で一意の外部ホストのアドレス
ハイパーネット助手

ううぅぅ、なんかややこしい。

■ NATの種類

スーパーインター博士

さてさて、Ciscoルータが扱うNATはこれまた4種類ある。

  1. 内部ローカルアドレス変換
  2. 内部ローカルアドレスのオーバーロード
  3. TCPロードディストリビューション
  4. 重複ネットワークのNAT
スーパーインター博士

順番に行こう、(1)の内部ローカルアドレス変換は普通のNATだ。

ハイパーネット助手

普通の、って。3分間の第46回の?

スーパーインター博士

そう。内部ローカルを内部グローバルに変換する形だな。
ともかく、普通のNATだ。このNATテーブルのエントリを簡易エントリという。

ハイパーネット助手

NATテーブルのエントリって、NATテーブルの行のことッスね。

スーパーインター博士

そういうことだ。
次、(2)の内部ローカルアドレスのオーバーロードはNAPTになる。

ハイパーネット助手

NAPT…、Network Address Port Translation。ポート番号も変換するNATですよね。
1つのグローバルIPアドレスでも、複数のローカルIPアドレスを変換できるっていう。

スーパーインター博士

うむ。これもやっぱり、内部ローカルを内部グローバルに変換ことになる。
一応、前使った説明をだしておこう。

[Figure47-01:NAPT]

スーパーインター博士

以前はPATと呼んでいた気がするのだが。今はNATオーバーロードってことになってるらしい。

ハイパーネット助手

オーバーロード言われても、トレボーさんぐらいしか思いつきませんが。

スーパーインター博士

それはどうかと思うが。オーバーロード[overload]は過積載とか、過負荷とか。
1つの外部アドレスに対し、複数の内部アドレスを「載せる」ことから来てると思われる。

ハイパーネット助手

なるほどなるほど。

スーパーインター博士

こっちのNATテーブル(NAPTテーブル)のエントリは拡張エントリと呼ばれるわけだ。

ハイパーネット助手

普通のNATが簡易エントリ、NAPTが拡張エントリ。
まぁ、イメージしやすい名前ですね。

スーパーインター博士

うむ。
そして残り2つだが。

ハイパーネット助手

「TCPロードディストリビューション」と「重複ネットワークのNAT」ですね。

スーパーインター博士

これはまだ説明してないので、説明しよう。

■ TCPロードディストリビューション

スーパーインター博士

TCPロードディストリビューションとは、簡単に言えば負荷分散に使われるものだな。 外部からのアクセスに対し、アクセスを複数のホストに割り振る

ハイパーネット助手

複数のホストに? んん?

スーパーインター博士

こういうことだ。

[FigureRA01-03:NATロードディストリビューション]

ハイパーネット助手

は〜。アクセスの度に宛先のホストが変わるわけですか。

スーパーインター博士

このように、アクセスの度に、ラウンドロビンで変換する内部アドレスが変わるわけだな。

ハイパーネット助手

なるほど、負荷分散ってこういう意味だったんですね。

スーパーインター博士

うむ、上の例でいえば、200.100.10.1という実際は3つのホストであるホストが存在するわけだ。
200.100.10.1のようなホストを仮想ホスト。実際の3つを実ホストといい、この3つのアドレスをロータリープールと呼ぶ。

実ホストと仮想ホスト

[FigureRA01-04:実ホストと仮想ホスト]

ハイパーネット助手

仮想ホストと実ホスト。実ホストのアドレスがロータリープール。
回る(ロータリー)アドレスプールってことですね。

■ 重複ネットワークのNAT

スーパーインター博士

もう1つ、重複ネットワークのNATとは、外部と内部で同じネットワークアドレスを使う場合に使われる。

ハイパーネット助手

外部と内部で同じネットワークアドレスを使う? そんなことってありえるんです?

スーパーインター博士

例えば、同じプライベートIPアドレスのネットワークを持つ2つのネットワークをつなげた場合。
今まで別々の部署で、192.168.0.0/24をそれぞれ使っていたが、これをつなげる必要がある場合などだな。

ハイパーネット助手

ははぁ、事前のネットワーク設計が甘かったんですね。

スーパーインター博士

いやまぁ、別々の会社が合併によって同じネットワークになるとかいう場合もあるからな。
ネットワーク管理者だけの責任でもないかもしれん。

ハイパーネット助手

そんなものですか。

スーパーインター博士

他にも、インターネットに接続しないネットワークとして設計したため、適当なIPアドレスを使っていたが、インターネットに接続しなければならなくなった場合。

ハイパーネット助手

これはネットワーク管理者の責任でしょう。最初からプライベートIPアドレスを使っていればよかったんですよ。

スーパーインター博士

いや、まぁ、確かにそうだが。まぁ、そういうこともある。

ハイパーネット助手

やけにネットワーク管理者をかばいますね?

スーパーインター博士

うむ…、まぁ、うん。
ともかく、同じネットワークアドレスを持つ複数のネットワークをつなげた場合だ。さらに、個々のネットワークアドレスは都合上変更したくない場合。

ハイパーネット助手

静的に割り振っていて面倒くさいとかそんな理由ですかね。

スーパーインター博士

あとはアプリケーションの都合上ってのもあるな。急にアドレスを変えるのは非常に手間だからな。
そういう時に使うNATだ。まず、事前準備。

[FigureRA01-05:IPアドレスの再構築]

スーパーインター博士

このように、本来の実アドレスとは別に、他ネットワークから見た場合のアドレスというのを設定する。

ハイパーネット助手

ははぁ。

スーパーインター博士

で、こう動く。

[FigureRA01-06:重複ネットワークのNAT]

スーパーインター博士

同一のネットワーク内へパケットを送る、同一のネットワーク内からパケットが届いた、となってしまってはおかしいから、このような形になるわけだ。

ハイパーネット助手

う、う〜ん。ややこしい。

スーパーインター博士

分解して考えてみたまえ。まず、内部ローカルと内部グローバル。この場合、192.168.0.1と10.10.10.1の変換はごく普通だろう?

ハイパーネット助手

確かに。ネットワーク上で一意のアドレスに変換するんですよね。

スーパーインター博士

そうだ。ここまではいい。だが、困ったことに宛先の外部アドレスが内部ネットワークと同一だった。
困ったので、とりあえず、違うアドレスをつけておく。これが外部ローカル。内部でしか通用しない呼び方だ。

ハイパーネット助手

う〜ん。

スーパーインター博士

こういう例はどうだ。A市とB市が合併してAB市になった。A市とB市は両方とも「中央町」という町があった。このままでは困る。

ハイパーネット助手

困りますね。

スーパーインター博士

よって、B市の中央町を、正式な中央町と決めた。市外からはAB市中央町は旧B市中央町だ。
旧A市中央町は、「外町」に名前が変わった。

ハイパーネット助手

変わりました。

スーパーインター博士

しかし、昔からのA市の住人は名前を変えたくなかった。よって、旧A市内では中央町といったら旧A市中央町のままだ。この場合、旧B市中央町を「偽中央町」と呼ぶことに決めた。

ハイパーネット助手

偽ですか。

スーパーインター博士

A市内から見れば、A市中央町は内部ローカル「中央町」、内部グローバル「外町」。
B市中央町は外部ローカル「偽中央町」、外部グローバル「中央町」だ。

ハイパーネット助手

あ〜、なんかわかってきたような。

スーパーインター博士

もう1つ例をだそう。
こっちの方がわかりやすいかもしれん。

[FigureRA01-07:重複ネットワークのNAT・2]

ハイパーネット助手

あ、ちょっとだけわかりやすいかな?

スーパーインター博士

つまるところ、NATとは内部から外部へ出すときはローカルをグローバルに、外部から内部へ入るときはグローバルをローカルに変換するってことなのだよ。

ハイパーネット助手

ローカルをグローバルに、グローバルをローカルに。

スーパーインター博士

そういうことだな。
さて、今回はこれでお終いにしよう。

ハイパーネット助手

了解です。

スーパーインター博士

次回はNATの設定を説明する。

ハイパーネット助手

いぇっさ〜。
30分間ネットワーキングでした〜♪

プライベートIPアドレス
[Private Address]
一般的には、RFC1918で定義されているアドレスや、APIPA[Automatic Private IP Addressing](169.254.0.0/16)などのインターネット上で使えないアドレスのこと。
PAT
[Port Address Translation]
トレボーさん
RPG「Wizardry I」のサブタイトル「狂王の試練場[Proving UnderGrounds of the Mad OverLoad]の狂王[OverLoad]のこと。リルガミンの狂える王。
ラウンドロビン
[Round Robin]
特に優先度などがなく、エントリの中から順番に均等に選ばれるアルゴリズム。
ロータリープール
[Rotary Pool]
VPN
[Virtual Private Network]
内部ネットワークをインターネットを経由して直接つなげる技術。
詳しくは後述。
ハイパーネット助手ハイパーネット君の今日のポイント
  • CiscoのNATでは4種類のアドレスが定義されている。
    • 内部ローカル、内部グローバル、外部ローカル、外部グローバル。
    • 内部・外部はNATルータから見た分類、内部のみで通用するローカルと、ネットワーク全体で通用するグローバル。
  • 内部ローカルアドレス変換は通常のNAT。
  • 内部ローカルアドレスのオーバーロードはNAPT。
  • TCPロードディストリビューション は負荷分散などに使用する。
  • 重複ネットワークのNATは内部と外部で同じアドレスの場合に使用する。

30 Minutes NetWorking No.RA01

管理人:aji-ssz(at)selene.is.dream.jp