DS-Lite の挙動の理解
おおざっぱにいうと
- 家庭内のルーター(B4)で IPv4 パケットを IPv6 にカプセル化 (IP IP tunnel)
- IPv4 ネットワーク接続点 (AFTR) でカプセル化を解き、アドレス変換 (NAT) をして外にアクセスする
だけ。
細かいところで疑問点があったので RFC6333 を見てみた
AFTRのNATの挙動
RFC6333 の B.1.2. Translation Details あたりにAFTR のNATとしての挙動が書いてある。
- B4 は IPv4 パケットを、AFTR 向け IPv6 パケットにする
- AFTR は IPv6 パケットから IPv4 パケットをとりだす
- AFTR はB4グローバルIPv6アドレス・プライベートIPv4アドレスと、グローバルIPv4アドレス・ポートなどをマッピングする
- AFTR はパケットのIPv4ヘッダを書きかえて IPv4 ネットワークで送信する
- AFTR はやってくるパケットの宛先グローバルIPアドレス・ポートをもとに、マッピングテーブルから送信すべき B4 IPv6 アドレス・プライベートIPv4アドレスなどを得る
- AFTR はパケットのIPv4ヘッダを書きかえて、IPv6 パケットにして B4 へ送信する
- B4 は IPv6 パケットから IPv4 パケットをとりだす
- B4 は IPv4 パケットを LAN に送信する
NATテーブルは例は RFC6333に書いてあるので引用しておく。結局一番知りたいのはこれだった。
+------------------------------------+--------------------+
| Softwire-Id/IPv4/Prot/Port | IPv4/Prot/Port |
+------------------------------------+--------------------+
| 2001:db8:0:1::1/10.0.0.1/TCP/10000 | 192.0.2.1/TCP/5000 |
+------------------------------------+--------------------+
Dual-Stack Lite Carrier-Grade NAT Translation Table B4側のプライベートIPv4アドレスは勝手に決めていいのか
だいたいいいけど、 DS-Lite では 192.0.0.0/29 が予約されているので、ルーターのLAN側のDHCPでこのレンジが払出されないようにしないとまずいっぽい。
DS-Lite ルーターがデフォルトで 192.168.10.0/24 とかになっているのはこのへんの事情なんだろう。
関連エントリー
- IPv6 ネイティブ環境に移行 (IPoE + DS-Lite) excite光をつかってたので、移行が楽な excite MEC光 という IPoE サービスにしてみました。IPv6 ネイティブかつ DS...
- さくらのVPSを踏み台にして IPv6 アドレスがついているホストへ ssh さくらのVPSはIPv4/IPv6デュアルスタックで、双方ともにグローバルアドレスがついているため、IPv4 しかない環境から IPv6 ア...
- さくらのVPSのウェブサーバでIPv6の接続をうける 最初からアドレスついてたので意外とやることない。 ifconfig すると既に v6 のアドレスがついている。Scope:Global にな...
- mDNS と IPv6 とアクセス制限 デフォルトでプライベートIPアドレスを許可するようなLAN内向けのアプリケーションがあったりする。つまり192.168.0.13 とかでアク...
- IPv6 対応にした さくらのVPSのウェブサーバでIPv6の接続をうける | tech - 氾濫原 で、IPv6 アクセス環境がないと書いたが、スマフォで簡単に...