わかりやすく NAT とは
家にはスマホもノートパソコンもテレビもあります。ところが、外の世界から見たわが家の住所はたった一つです。たくさんの機器が、どうやって一つの住所でいっしょにインターネットへ出ていけるのでしょうか。その秘密は、家の中のルーターが握っています。
たくさんの機器、一つの住所
家の中でインターネットを使う機器は一台ではありません。スマホもノートパソコンもテレビもルーターにつながっていて、ルーターは機器ごとに家の中だけで通じる住所を一つずつ配ります。これをプライベートアドレスといいます。マンションの中だけで使う部屋番号のようなものです。
けれども、外のインターネットから見たわが家の住所は、ルーターが持つグローバルアドレス一つだけです。そこで機器が外へ出るとき、ルーターはプライベートアドレスを外してグローバルアドレスを付け、送り出します。この仕組みをNAT(ネットワークアドレス変換)といいます。
どの機器を押しても、外へ出ていく住所は同じでした。スマホもノートパソコンもテレビも同じグローバルアドレスを付けて出ていったので、外から見れば三つとも一つの家から来た要求です。
こうして住所を分け合うのには理由があります。いまも広く使われている住所の仕組みでは、作れる住所の数が世界の人口よりも少ないので、家ごとに機器の数だけグローバルアドレスを配ることはできません。ところが住所が同じだと、疑問が一つ生まれます。返事が戻ってきたとき、それがどの機器あてなのかを、ルーターはどうやって見分けるのでしょうか。
だれが送ったかを表に書く
ルーターは、外へ出ていく要求ごとに記録を残します。その記録を集めたものがNAT表です。どの機器が外のどのサーバーへ送ったかを一行ずつ書いておくのです。「テレビが動画サーバーへ送った」というぐあいです。
このとき、前に学んだポート番号もいっしょに書きます。二つの機器が同じサーバーへ同時に要求を送っても、行ごとにポート番号が違うので組が混ざらないからです。出ていく要求が一つずつ表に残るので、あとで返事が来たら表を調べればすみます。
機器を押して外へ送りましょう。ルーターが「機器 ↔ 外への要求」の組を表に一行ずつ書きます。
機器を送るたびに、表に新しい行が一行ずつ増えました。もう表を見るだけで、どの行がどの機器の要求なのかがはっきりわかります。
この表こそがNATの要です。住所は一つにまとめて送り出し、だれが送ったかは表が覚えておきます。表の行はずっと残るわけではなく、しばらく何も行き来しなければルーターが消します。では、外から返事が戻ってきたとき、この表がどう使われるかを見てみましょう。
返事を戻す
外のサーバーが答えを送ってきました。この答えはまず、わが家のグローバルアドレス、つまりルーターに届きます。家の中には機器がいくつもありますが、この答えはだれに渡せばよいのでしょうか。
ルーターは、さっき書いておいた表を調べます。答えに書かれたポート番号と送り主のサーバーを表の行と照らし合わせると、「テレビが動画サーバーへ送った要求の答え」だとわかります。そこでグローバルアドレスを外してテレビのプライベートアドレスを付け直し、テレビへ正確に渡します。表一枚が、帰り道をたどり直してくれるわけです。
外から来た返事を見て、表で組を探し、合う機器を押して戻しましょう。
表が指す機器を押すと、返事は元の場所へ戻りました。ほかの機器を押すと、表と合わないので戻りませんでした。
住所は一つにまとめられましたが、表のおかげで迷うことはありません。出ていくときはたくさんの住所を一つに集め、戻ってくるときは表を見てまた分けます。家で動画を見たりメッセージをやり取りしたりしている間も、ルーターはこの仕事を休みなく繰り返しています。
外から先には入れない
ここで、おまけに得られるものがあります。返事が入ってくるには表に組が必要で、その組は中の機器が先に要求を送ったときにできました。
では、外から先にかけてくる接続はどうでしょうか。表にはそんな組がありません。ルーターはだれに渡せばよいかわからないので、そのまま捨ててしまいます。中から始めた接続だけが戻ってこられるのです。そのためNATは天然のファイアウォールの役目を果たします。
中から始めた要求の返事と、外から先にかけてくる接続を押してみましょう。表に組があれば通り、なければ止められます。
中から始めた要求の返事は表に組があったので、無事に中へ入りました。外から先にかけた接続は組がないので、戸口で止められました。
だれかがわざと止めるように決めたのではありません。表を見て戻すやり方なので自然にそうなったのであり、だから「天然の」ファイアウォールと呼びます。ただし、NATはもともと安全のために作られた仕組みではないので、これだけで家を守りきることはできません。何をどう守るかは、セキュリティの領域で改めて取り上げます。
まとめ
一言でまとめるとこうです。家の中の機器はそれぞれプライベートアドレスを持っていますが、外へ出るときはルーターを通って一つのグローバルアドレスで出ていきます。
ルーターは、だれがどこへ送ったかをポート番号といっしょに表に書いておき、返事が来たら表を見て合う機器へ戻します。だから一つの住所をたくさんの機器で分け合っても迷いません。外から先に入ることもできないので、天然のファイアウォールの役目まで果たします。これがNATです。
要点を順に押して振り返りましょう。(一つの住所で出る → 表で覚える → 返事を戻す → 天然のファイアウォール)
これで、一つの家が一つの住所でどうやってインターネットを分け合うのかがわかりました。家の中の機器が外とデータをやり取りする道が整ったことになります。
では、その道を実際に何が行き来するのでしょうか。私たちがいちばんよくするのは、ブラウザーでウェブページを開くことです。次のレッスンでは、ブラウザーとウェブサーバーがウェブページをやり取りするときの約束、HTTPを取り上げます。