■ 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つだ。
- 内部ローカルアドレス
- 内部グローバルアドレス
- 外部ローカルアドレス
- 外部グローバルアドレス
えぇっと、内部と外部ってのは、LAN側とインターネット側ってことですよね。
プライベートとローカルは同じでしょ。
ネット君、プライベートとローカルは違うぞ。
それに、内部と外部ってのは、LAN側とインターネット側というわけではない。
んんん? どういうことです?
ちょっとややこしいよな、この種類分けは。
定義はこう。
- 内部・外部 … 内部ネットワークと、NATルータをはさんでその反対側にある(外部)ネットワーク
- ローカル・グローバル … 内部ネットワークで通用するローカルアドレス と ネットワーク上で一意のグローバルアドレス
NATルータをはさんで内部と外部?
内部で通用するローカルと、一意のグローバル?
図で説明しよう。
[FigureRA01-01:アドレスの種類]
外部ローカルはこっちの図。
[FigureRA01-02:アドレスの種類・2]
なんすか、その「内部ネットワークから見た場合」ってのは?
つまり、そのホストのアドレスが実際はどうあっても関係ない。
あくまでも「内部ネットワークから見た場合のアドレス」が外部ローカルアドレスだ。
実際のアドレスと内部から見た場合のアドレスが違うんですか?
そういうこともある、という話だ。ネットワークの重複のところで説明する。
ははぁ。
つまり、以下のような形になる。
グローバルはネットワーク上で一意、ローカルは内部ホストから見たアドレスになるのだよ。
- 内部ローカルアドレス … 内部ネットワークでのみ通用する内部ホストアドレス
- 内部グローバルアドレス … ネットワーク上で一意の内部ホストのアドレス
- 外部ローカルアドレス … 内部ネットワークから見た外部ホストのアドレス
- 外部グローバルアドレス … ネットワーク上で一意の外部ホストのアドレス
ううぅぅ、なんかややこしい。
■ NATの種類
さてさて、Ciscoルータが扱うNATはこれまた4種類ある。
- 内部ローカルアドレス変換
- 内部ローカルアドレスのオーバーロード
- TCPロードディストリビューション
- 重複ネットワークの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は内部と外部で同じアドレスの場合に使用する。
- CiscoのNATでは4種類のアドレスが定義されている。