3 Minutes NetWorking
No.46

3Minutes NetWorking

第46回レイヤ3&4 ネットワークアドレス変換

■ ネット君の疑問

ネット助手

博士っ!!
さぁ、前回の謎を解いてください。

インター博士

うむ。

ネット助手

(ドキドキ)

インター博士

じっちゃんの名にかけてっっ!!
謎はすべて解けたっ!!

ネット助手

インター博士

犯人は……。
犯人はこの中にいるっ!!

ネット助手

えええぇぇっ〜!!

インター博士

考えてみれば、「この中」といっても、私とネット君しかいないわけだから。
お前が犯人だっっ!!

ネット助手

そうだったのかっ!!
僕が犯人だったのかっ!!

インター博士

うむ。
謎が解けたところでまた次回。3分間ネットワーキングでした〜♪

インター博士インター博士の今日のポイント
  • 犯人はネット君。
ネット助手

…………、博士?

インター博士

いや、悲惨な事件だった…。
まさかネット君の優しい顔の裏にあのような残虐性を秘めていようとは…。

ネット助手

は・か・せ

インター博士

ん? なんだねネット君。

ネット助手

誰が「残虐性を秘めている」んですって?
まったくもぅ、ちょっとノってあげたら調子にのって。

インター博士

まぁまぁ、そう怒るなネット君。
ちゃんと今から説明するから。

ネット助手

お願いしますよ。

インター博士

うむ。
この事件は、帝都を震撼させたあの「暗闇の切り裂き魔」の事件を模倣するという…。

ネット助手

そっちの説明かよっ!
博士、いい加減にしてくださいっ!!

インター博士

なんだ、ノリが悪い奴だな。
しょうがない、ちゃんと説明してやろう。

ネット助手

ほんとにお願いしますよ。

インター博士

さて、前回のnetstatの出力結果だが。

netstat画面 接続・切断

[Figure45-06:netstat画面 接続・切断]

インター博士

ここで、例えば3行目を例にとると、プライベートIPアドレスである192.168.0.2とグロ−バルIPアドレスの61.193.0.66がコネクションを確立している
そりゃちょっとおかしいよね、という疑問だったな。

ネット助手

そうです。第23回で教えていただいた時は、プライベートIPアドレスはインターネットと接続しない環境で使われるアドレスだと。

インター博士

もちろんそうだ。その理解はまったく間違っていない。

ネット助手

でも、上のnetstat画面では、インターネットと接続してますよ?

インター博士

うむ。
その謎を解明するポイントは、「ネットワークアドレス変換」だ。

ネット助手

ねっとわーくあどれす変換?

■ プライベートとグローバル

インター博士

まず、復習からいこう。
プライベートIPアドレスとは、以下のアドレスのことだ。

第1オクテット第2オクテット第3オクテット第4オクテット
10ホスト番号
17216〜31ホスト番号
1921680〜255ホスト番号

[Table23-01:プライベートアドレス]

インター博士

これらのアドレスはICANNがプライベート専用に割り当てているアドレスだ。

ネット助手

クラスAで1つ。クラスBで16コ。クラスCで255コのプライベートネットワークを作成できるんですよね。

インター博士

うむ。
そして、プライベートIPアドレスでは、インターネットに接続できない

ネット助手

ですよね。
ルータがインターネットへ出さないんですよね。

インター博士

そして一方、アドレスが欲しいとの要求に対して、ICANNのポリシーに従い各レジストラが割り当てるのがグロ−バルIPアドレスだ。
このアドレスはインターネット内でユニークだ。

ネット助手

日本だと、JPNICでしたっけ。 ▼ link
インターネット内でユニークってことは事実上、世界中でユニークってことですよね。

インター博士

まぁそうなるな。
つまり、グロ−バルIPアドレスを持つホストと、グロ−バルIPアドレスを持つサーバがデータ転送を行うというのが、インターネットでのデータ転送だ。

ネット助手

お互い相手を見つけるためユニークなアドレスを持つ必要があるってことですね。

インター博士

そうだ。
だが、実はこれには大きな問題がある。

ネット助手

問題?

インター博士

そうだ。
インターネットに接続する台数があまりにも多すぎて、IPアドレスが不足している、という問題だ。

ネット助手

そうなんですか?
でも、IPアドレスって32ビットだから、2の32乗、4,294,967,296コあるんですよね。足りないんですか?

インター博士

うむ、その42億9496万7296個でも足りないのだ。
特に、企業や学校が使うクラスBアドレスがもっとも不足している。クラスCの254個では足りないし、クラスAの16,777,214個では多すぎるからだ。

ネット助手

ははぁ。確かに1つの会社や学校で1000台ぐらいあってもおかしくないですからね。
1人に1台とか割り当てたらクラスCの254個では足りないですよね。

インター博士

うむ。よって、対抗策として、IPv6や、クラスレスアドレッシングなどが一応あるのだが。 ▼ link
もっとも手軽かつ有効な手段として使用されているのが、ネットワークアドレス変換だ。

ネット助手

ねっとわーくあどれすを変換する?

■ ネットワークアドレス変換

インター博士

頭文字をとって、NAT(ナット)と呼ばれる。まず、以下の図を見てもらおう。

ネットワーク構成図

[Figure46-01:ネットワーク構成図]

インター博士

さて、ネット君。
君がネットワーク管理者ならどうする?

ネット助手

どうすると言われましても。
インターネットに接続したいホストが500台あるんですから、500台分のグローバルIPアドレスが必要ですよね。

インター博士

だが、先ほども話したようにIPアドレスは枯渇している。そうおいそれとクラスBアドレスは手に入らない。
よくて、クラスC。普通、プロバイダから割り当てられると16個ぐらいかな。

ネット助手

クラスCの254個でも全然足りないですよ。
それなのに、16個って…。

インター博士

というわけで、NATの出番だ。
まず、内部ネットワークにはプライベートIPアドレスを割り振る

ネット助手

プライベートじゃインターネットと接続できないじゃないですか。

インター博士

まぁ、待て。焦るな。
プライベートIPアドレスを割り振る理由は、内部ネットワーク内でTCP/IPを使った通信をするためだ。例えインターネットにでなくてもどっちにしろ割り振る必要がある。

ネット助手

そうですね。
内部ネットワークだけでも通信する必要がありますよね。

インター博士

それと、NATのために必要だ
何故かは、下の実際の動きをみれば理解できるだろう。

[Figure46-02:ネットワークアドレス変換]

ネット助手

はわ〜。
まさしくアドレス変換なんですね。

インター博士

うむ。
ホストから見れば、普通に送受信ができるというのがポイントだ。

ネット助手

あ〜、なるほど。ホストからみれば普通に送って、普通に返ってきてますね、コレ。

インター博士

一方、サーバから見れば。
ルータとやりとりしてるように見える。内部のアドレスは全く関係ない

ネット助手

ふむふむ、確かに。

インター博士

近い例を上げるとするならば、そうだな、直接発信できないホテルの電話かな。
外へ電話をかけたい場合、フロントに電話するわけだ。「xxx-xxxxへつなげてください」と。

ネット助手

フロントがルータの役割ですか?

インター博士

そうだ。それでフロントは、その電話を外に接続させる。
ホテル内専用の内線電話が、フロントという交換機によって外と接続できるようになったわけだ。

ネット助手

ははぁ。なんとなくわかります。

インター博士

外から見れば、それはホテルの電話番号で電話を受けていることになるだろう?
一方、中からみれば普通に電話をしてる状態となんら変わりない。

ネット助手

そうか。フロントが、その内線番号の電話機に一時的にホテルの電話番号を貸し出している形になるわけですね。
フロントが、内線番号とホテルの電話番号を変換することによって。

インター博士

そういうことだ。

ネット助手

なるほど〜。便利な機能ですねぇ。

■ NATの弱点

インター博士

だが、このNATにも弱点がある。

ネット助手

弱点?

インター博士

そうだ。以下のような場合だ。

[Figure46-03:NATの弱点]

インター博士

保有するグローバルIPアドレス数以上のホストは、同時に接続できない

ネット助手

あら〜。
それはちょっと不便ですね。どうせ変換するんだから、同じグローバルIPアドレスを割り振ってしまってはどうです?

インター博士

ふむ。もし同じIPアドレスを割り振ったとする。
例えば以下のようにな。

NATで同じIPアドレスを割り振る

[Figure46-04:NATで同じIPアドレスを割り振る]

インター博士

さて、質問だ。
サーバから返ってきた200.1.2.1宛のパケットはどちらのホストだ?

ネット助手

え?
……、あぅ〜。

インター博士

わかったようだな。
NATで変換されるアドレスはユニークである必要がある。

ネット助手

と言うことは、博士。
同時に接続したいホスト数分だけグローバルIPアドレスが必要ってことですか?

インター博士

その通り。

ネット助手

じゃあ、500台のホストがインターネットへ接続したかったら500個のグローバルIPアドレスが必要ってことじゃないですか。

インター博士

もちろん。

ネット助手

結局500個必要で、IPアドレスの枯渇問題にはなんの貢献もしてないってことになりませんか?

インター博士

まぁ、そうなるな。

ネット助手

博士〜〜〜。

インター博士

確かにその通りなのだが、例えば同時にインターネットへ接続するホストの台数があまり多くない時とかには十分これで役に立つのだよ。

ネット助手

そう言われればそうですけど。
なんか納得いきません。

インター博士

そうだな。今時インターネットに接続できないと業務に差し障りがある所も多かろう。
自由にインターネットに接続し、さらにグローバルIPアドレスを消費しないようにするためには別の手立てが必要だ。

ネット助手

その方法があるんですね?

インター博士

ある。
NATを発展させたNAPT。一般的にはIPマスカレードと呼ばれることが多い。

ネット助手

NAPT、IPますかれーど…。

インター博士

それは次回としておこう。
今回はここまで。

ネット助手

はい。
3分間ネットワーキングでした〜♪

ネットワークアドレス変換
[Network Address Translation]
IPv6
[Internet Protocol version 6]
現在のIP(version 4[IPv4])のアドレス長32ビットから、アドレス長128ビットに拡張。
他にもセキュリティ機能などが付加されている。現在はIPv6への移行段階にある。
クラスレスアドレッシング
従来のクラスの概念をなくし、規模などを関係なしにIPアドレスを割り振る方式。CIDRなどが使われている。
CIDRについては参考リンクの30分間ネットワーキング第1回を参照のこと。
16個
プロバイダが自身の持つネットワークをサブネット化して割り当てる。
例えばプロバイダが200.100.10.0のクラスCを持っているとする。200.100.10.0 サブネットマスク255.255.255.240のサブネットワークをプロバイダから割り当てられた場合、16個のグローバルIPアドレスを持つことになる。
NAPT
[Network Address Port Translation]
IPマスカレード
[IP masquerade]
ネット助手ネット君の今日のポイント
  • プライベートIPアドレスではインターネットに接続できない。
  • グローバルIPアドレスは不足気味である。
  • プライベートIPアドレスとグローバルIPアドレスを変換するのがNAT。
  • 保有するグローバルIPアドレス以上のホストは同時接続できない。

3 Minutes NetWorking No.46

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