IP アドレスはネットワーク上のホストを識別します。IPv4 は 32 ビットを使い、4 つのオクテット(192.168.1.10)で書かれ、約 43 億のアドレスを与えます — これでは足りず、それが NAT と IPv6 を推し進めます。IPv6 は 128 ビット(2001:db8::1)を使い、実質的に無限の空間です。
表記は、アドレスを と の部分に の接尾辞で分割します。 は先頭の何ビットがネットワークを識別するかです:
/nn192.168.1.10 / 24
└──────┬─────┘ └┬┘
address prefix length (24 bits = network, 8 bits = host)
/24 → 192.168.1.0 network, 192.168.1.1–254 hosts, 192.168.1.255 broadcast
(256 addresses, 254 usable)
/16 → 192.168.0.0 larger network (65,536 addresses)
subnet は、prefix によって切り出されたアドレス空間の一片です。短い prefix(/16)はより大きなネットワークとより多くのホストを意味し、長い prefix(/28)は小さな subnet を意味します。サブネット化により、組織化とセキュリティのためにネットワークをセグメント化できます — 例えばデータベースを、web サーバーから分離したプライベートな /24 に置く、など。
NAT(Network Address Translation)は、多数のデバイスが 1 つのパブリック IPv4 アドレスを共有する仕組みです。家庭のルーターはプライベートアドレス(192.168.x.x、10.x.x.x のような、インターネット上でルーティングできない範囲)を配り、送出パケットの送信元アドレス/ポートを自身の唯一のパブリック IP に書き換え、返信をルーティングし戻すために変換テーブルを保持します:
Private LAN NAT router Internet
192.168.1.10:51000 ──▶ translate to 203.0.113.5:40001 ──▶ server
192.168.1.11:51000 ──▶ translate to 203.0.113.5:40002 ──▶ server
(router's table maps public port → private host:port for the return trip)
NAT は希少な IPv4 空間を節約し(付随的に隔離も加え)ますが、直接の受信接続を壊します — これが、あらゆるデバイスに十分なアドレスを持つ IPv6 がその必要をなくそうとする理由です。
アドレッシングと subnet はクラウドネットワーキングの基礎です。あらゆる VPC、subnet、security group、ファイアウォールルールは CIDR で書かれるため、それなしにクラウドネットワークを設計することはできません。面接官は、あなたが /24 を読み、ネットワークのサイズとセグメント化について推論できるかを確かめます。NAT は、プライベート対パブリック IP という日常の現実と、「送出はできるが受信はできない」理由を説明します。そして IPv4 枯渇の物語は、NAT と IPv6 の両方の背後にある理由であり — 現代のインターネットを形づくった圧力をあなたが理解していることを示します。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する