こんにちは!ネットワークやガジェットの世界へようこそ。主筆ライターの私です。
日頃からスマホやパソコン、あるいはスマート家電を使って、私たちは当たり前のようにインターネットの海を泳いでいますよね。「YouTubeで高画質な動画を見る」「お気に入りのワイヤレスイヤホンを連携させる」「オンラインゲームで世界中の仲間とつながる」……。これらはすべて、自宅のWi-Fiルーターが陰でしっかりと汗をかいて交通整理をしてくれているおかげです。
でも、ふとこんな疑問を持ったことはありませんか?
「我が家にはスマホもパソコンもテレビもあって、何台ものデバイスが同時にネットにつながっているのに、どうしてインターネット側からは私の個別の端末が見分けられるんだろう?」と。
実はその裏側で、今回の主役である NAT(ネットワーク・アドレス・トランスレーション) と NAPT(ナップt) という技術が、まるで熟練の郵便局員のように大活躍しています。今回は、このネットワークの心臓部とも言える仕組みを、難しい英語の仕様書を一切脇に置いて、身近な例えと一緒に優しく紐解いていきましょう!
一歩ずつ理解していきましょうね!
—
1. なぜ「NAT」が必要なの? 〜IPアドレスの枯渇問題〜
まず前提として、インターネットの世界には「グローバルIPアドレス」という、世界に一つだけの「家の住所」のようなものが必要です。本来なら、インターネットにつながるすべての機器が、それぞれ固有の住所を持たなければいけません。
しかし、ここで大きな問題が起きました。世界中で使われるスマホやPCの数が爆発的に増えた結果、インターネットの住所(IPv4アドレス)が圧倒的に足りなくなってしまったのです。「一家に一枚の住所」を全員分用意するのは、もう物理的に無理な時代になってしまいました。
そこで登場したのが、「家の中では自由につかえる別の住所(プライベートIPアドレス)」と、「外の世界とやり取りするときに使う、代表の住所(グローバルIPアドレス)」を使い分けようという天才的なアイデアです。
郵便局に例えてみよう
これを身近な例えで考えてみましょう。
ある大きな「シェアハウス(家庭内ネットワーク)」があるとします。このシェアハウスには、Aさん、Bさん、Cさんという3人の住人が住んでいて、それぞれ部屋番号(192.168.1.10 や 192.168.1.20 といったプライベートIPアドレス)を持っています。
住人たちがAmazonでそれぞれ荷物を注文したいとき、個人の部屋番号のまま外の巨大なネット通販の倉庫(インターネット)に注文書を送ったらどうなるでしょう? 配達員は「そんな部屋番号、うちの配送エリア(グローバル空間)にはないよ!」と困ってしまいますよね。
そこで、シェアハウスの玄関には「管理人さん(Wi-Fiルーター)」が常駐することになります。
住人たちが外に荷物を送るときは、一度管理人さんのところに荷物を預けます。管理人さんは、自分の持つたった一つの「代表の住所(グローバルIPアドレス)」に送り主の情報を書き換えてから、外の世界へ発送するのです。
これが、プライベートIPアドレスをグローバルIPアドレスに変換する仕組み、NATの基本的な考え方です。
—
2. 複数の端末が同時に通信できる秘密「NAPT(IPマスカレード)」
さて、ここで一つの疑問が湧いてきます。
「もし、AさんとBさんの2人が同時にYouTubeを見始めたらどうなるの?」
もし単純なNATだけだと、管理人さんは「どっちの部屋からの通信だったっけ?」とパニックになってしまいます。外から見ると、どちらの通信も「同じ代表の住所」からやってきているように見えるからです。
ここで登場するのが、今回のもう一つの主役である NAPT(Network Address and Port Translation) です。別名「IPマスカレード(仮面舞踏会)」とも呼ばれます。
ポート番号という「内線の番号」を使う
NAPTは、IPアドレスだけでなく「ポート番号」という小さな部屋の番号(内線番号のようなもの)を組み合わせて管理します。
先ほどのシェアハウスの例で言うと、管理人さんはこう考えました。
- Aさんが外に手紙を送るときは、「内線100番」のスタンプを押して出す。
- Bさんが外に手紙を送るときは、「内線200番」のスタンプを押して出す。
外の宛先から返事が届いたとき、管理人さんはこう思います。
「おっ、代表の住所宛てに『内線100番』宛ての返事が届いたぞ。これはAさん宛てだな!」
このように、ルーター内部にある「NATテーブル(変換のメモ帳)」に、どの端末のどの通信(ポート)が、外のどの宛先とつながっているかを細かく記録しておくことで、何台ものスマホやパソコンが同時にインターネットアクセスをしても、パケットが迷子にならずにそれぞれの端末へ戻ってくることができるのです。
—
3. 実務や設定で見るNAPTの世界 〜ルーターの設定を覗いてみよう〜
ネットワークの現場(家庭のルーターや小規模オフィスのインフラ構築)では、このNATやNAPTは基本的にルーターが自動的に(よしなに)処理してくれます。
例えば、自宅のWi-Fiルーターの設定画面を開いたり、Linux等のルーターOSでファイアウォールやパケット転送のルール(代表例としておなじみの iptables や nftables など)を設定する際、次のような概念が登場します。
# 【設定例】Linuxルーター環境でプライベート側からグローバル側へのマスカレード(NAPT)を有効化するコマンドのイメージ
# 内部ネットワーク(例: 192.168.1.0/24)からの通信を、外向きのインターフェース(eth0)でNAPT変換する
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
# 丁寧な解説:
# - '-t nat': NATテーブルを操作する指定です。
# - '-A POSTROUTING': ルーターから外の世界へ送り出す直前のタイミングで処理を実行します。
# - '-s 192.168.1.0/24': 我が家のプライベートネットワーク全体のIPアドレス範囲を指定しています。
# - '-o eth0': インターネット側につながっているルーターの物理ポートを指定します。
# - '-j MASQUERADE': ここがキモ!IPアドレスとポート番号を動的に書き換えて(マスカレードして)外へ送り出します。
エンジニアとして現場に立つと、このNAPTの仕組みが壁になる瞬間にも出合います。例えば、自宅のNAS(ネットワークHDD)や防犯カメラに「外からアクセスしたい」というとき、ルーターが勝手にポートを変換してしまうNAPTの仕組みがあるがゆえに、「ポートフォワーディング(静的NAT / 靜的NAPT)」という設定をして、「外からこのポートにきたら、あの機器のこのポートに直接通してね」と管理人さんに特例のルールを教えてあげる必要があるのです。
—
4. まとめ 〜身近な技術の積み重ねが支えるインターネット〜
いかがでしたでしょうか?
NATやNAPTという言葉を聞くと、なんだか分厚いネットワークの教科書に出てくる難解な専門用語のように感じてしまいますよね。
でも、その本質は「限られた住所(IPアドレス)をみんなで賢くシェアし、管理人さん(ルーター)がメモ帳(NATテーブル)と内線番号(ポート番号)を使って、誰宛ての荷物か完璧に仕分けしてくれている」という、非常に泥臭くも温かみのある仕組みです。
私たちが普段、意識することなくスムーズにマルチデバイスで動画を見たり、オンラインゲームを快適に楽しめるのは、こうしたルーターたちの健気な働きのおかげなんですね。
ネットワークの仕組みは、一歩ずつ紐解いていけば、私たちの身の回りの日常のルールと驚くほど同じ形をしています。ぜひ、ご自宅のWi-Fiルーターのランプがチカチカと点滅しているのを見かけたら、「お、今日も管理人さんが一生懸命パケットの交通整理をしてくれているな」と、少しだけその裏側に思いを馳せてみてくださいね。
それでは、また次回のネットワーク・ガジェット解説でお会いしましょう!
コメント