TCP/IPへの疑問 その2
このドキュメントは、実際に筆者が ChatGPT に投げかけた質問とその回答を 輪読形式 でまとめたものです。単なる Q&A の羅列ではなく、背景→課題→回答→深掘り → コード例/実践Tips という流れで理解が定着するよう構成しています。
1. サブネットマスクはなぜ必要?
背景
IP アドレス (IPv4) は 32bit。ここをネットワーク部とホスト部に分ける「境界線」がサブネットマスクです。
課題
境界線が無いと PC は「宛先が同じネットにいるのか?」を判断できず、すべてをブロードキャスト or すべてをルータ送りにしてしまう。結果、輻輳 or ブラックホール通信に。
回答 & 深掘り
| 問題 | サブネットマスクが解決すること |
|---|---|
| ARP ブロードキャストが洪水 | /24 で切れば 254 台までに限定 |
| ルータの経路表が巨大化 | プレフィックスごとに集約できる (CIDR) |
| アドレスの無駄遣い |
/26 /30 と可変で割り当て可 |
Python 実例 : IP とマスクからネットワーク部を取り出す
from ipaddress import ip_network
net = ip_network('192.168.1.123/26', strict=False)
print(net.network_address) # -> 192.168.1.64
print(net.broadcast_address) # -> 192.168.1.127
2. プライベート IP アドレスの正体と歴史
RFC1918 (1996) で次の 3 範囲が予約。
| クラス | 範囲 | ホスト数 | 主な用途 |
|---|---|---|---|
| A | 10.0.0.0/8 |
1,677 万 | 企業・DC |
| B | 172.16.0.0/12 |
104 万 | 企業 LAN |
| C | 192.168.0.0/16 |
65,534 | 家庭用ルータ |
なぜ “中途半端” な数字? 当時比較的空いていて、クラス A/B/C それぞれ 1 つずつ確保できたため。
3. IPv4 アドレス枯渇をどう乗り越えている?
- NAT / PAT : 1 つのグローバル IP を数百台で共有
- CGNAT : ISP レベルでさらに共有
- CIDR : 可変長プレフィックスで空きアドレス削減
- IPv6 : 3.4×10^38 個で実質無限
IPv6の利用率:43.14 % ... Google IPv6 Adoption〈2025-05-06 時点〉
https://www.google.com/intl/en/ipv6/statistics.html#tab=ipv6-adoption
4. curl ifconfig.me で出る IP は?
- 何? ルータ or CGNAT が持つ “今外から見える” グローバル IP
- 変わる要素 : ルータ再起動・回線再接続・VPN/テザリング・回線切替
- 変わらない要素 : PC 再起動・LAN ケーブル抜き差し
5. トレースルートで通信の旅を覗く
実行例
traceroute www.google.com
1 192.168.11.1 (自宅ルータ)
2 bbtec.net (ISP)
4 10.9.203.6 (CGN内)
5 209.85.149.253 (Google AS15169)
8 nrt13s72-in-f4.1e100.net (142.251.222.36) (成田DC)
観察ポイント
- ISP ドメインで自宅回線種別がわかる
- 10.x.x.x は ISP 内私設ネット
- Google IP は whois で AS15169 確認可
6. 企業が持つ巨大 IP ブロックを調べる
whois 例
whois 3.165.11.67 | grep -E 'OrgName|CIDR'
# OrgName: Amazon Technologies Inc.
# CIDR: 3.128.0.0/9
7. グローバル IP はユニーク?動的?
- ユニーク性 : RIR (ARIN, APNIC, etc.) が重複なく割当
- 動的 or 固定 : ISP の契約次第 (家庭=動的, 法人=固定)
- 個人特定 : ISP がログ保持&法的手続きで紐づけ可能
8. ルーターは IP をいくつ持てる?
WXR‑1750DHP2 のケース
| 項目 | 仕様 |
|---|---|
| WAN ポート | 1 (PPPoE 1セッション) |
| 最大グローバルIP | 1 |
| DHCP 配布可能数 | 253 (192.168.11.2‑254) |
| マルチWAN | 非対応 |
| 固定IP対応 | 1個まで (要ISP契約) |
9. 光コンセントの数と IP 数は無関係
光コンセント = 物理層 termination。IP=OSI Layer3。レイヤ違いの話なので関係しない。
10. ルーターで接続端末と MAC アドレスを確認する
- ブラウザで
http://192.168.11.1→ ログイン - 「ステータス → 無線LAN接続状況」
- IP / MAC / 電波帯域を確認
11. ifconfig から読み解く Mac の状態
| IF | 用途 | IP/MAC | 状態 |
|---|---|---|---|
| en0 | Wi‑Fi | 192.168.11.2 | Active |
| awdl0 | AirDrop | fe80::.. | Active |
| utunX | VPN/Private Relay | IPv6 Only | Active |
| lo0 | Loopback | 127.0.0.1 | Active |
| その他 | 仮想/未使用 | - | Inactive |
Tip:
netstat -rnでルーティングテーブルを確認すれば、どの IF を経由して外に出るか分かる。
12. HTTP は TCP? UDP?
- 従来 HTTP/1.1・HTTP/2 = TCP (Port 80/443)
- HTTP/3 = QUIC (UDP/443) で 0‑RTT・接続移動を実現
TCP 3‑Way Handshake おさらい
QUIC 0‑RTT イメージ
次回予告
- IP ヘッダ詳細フィールドをバイナリで分解
- NAT テーブルのリアルタイム観察方法
- IPv6 でのプレフィックス委譲と RA ガード
© 2025 Keita & ChatGPT