excite光をつかってたので、移行が楽な excite MEC光 という IPoE サービスにしてみました。IPv6 ネイティブかつ DS-Lite による IPv4 接続サービスです。

事前に調べてもさっぱりわからない点があったのでまずそれを検証しました。

ルーターの挙動

  • 貸与ルーター (Aterm WG1810HP) の挙動
    • LAN側は IPv6 ネイティブ接続されるのか? → される。ルーターがRA+DHCPv6 stateless をやってくれる。グローバルIPアドレスが割り当てされる。
    • LAN側の IPv4 アドレスはどうなるのか? → ルータで設定したプライベートIPアドレスがDHCPでくばられる。
    • これまで通りに IPv4 PPPoE セッションははれるのか?
      • レンタルルータだとそもそも設定がなくて貼れない。PPPoE 接続情報自体 excite からもらえない。

この Aterm WG1810HP(MF) は DS-Lite 対応品となっている。DS-Lite 対応ルーターなら他のものも利用可となっているが、このルーターは常に強制的にレンタルする必要がある。

強制レンタルはまぁ許せるけど、それならレンタル料金 (100円/月) を月額料金に含めて書けよと思う。

DS-Lite IPv4 で UPnP のポート解放はできるか

答: できない

DS-Lite では NAT が自宅内ルーターではなく VNE ゲートウェイ (AFTR) 側で行われる (CGN/キャリガグレードナット)ので、手動でポート解放というのが原理的に不可能。それでは UPnP には対応しているのか?という疑問

iijmio ひかりでも答えている。「IPoE接続サービスのDS-Lite方式でのIPv4サービスでは、UPnPによる外部ホストからお客様宅のコンピュータへの通信路確立は行えません。外部へのサービス公開が必要な場合、PPPoE接続を併用されるか、IPv6の利用をご検討ください。」

Mac

デュアルスタック

インターフェイスで IPv6 を有効にすればそれだけで IPv6 ネイティブで繋がるようになる。

なぜか設定でリンクローカルだけの割当になっている端末があったのが罠かった。

Android

デュアルスタック

ZenFone3 (Android 8.0.0)

無線LAN経由で IPv6 接続される。特に設定はなし。

PS4

IPv4 接続

NATタイプ: 2

Nintendo Switch

IPv4 接続

NAT タイプ: B

nasne

IPv4 接続

torne mobileアプリから自宅nasneへ直接接続する機能があるが、機能するか?

アプリから nasne 設定を開くと「通信モード」が表示される。これがNATの状況っぽい? これまでの PPPoE だと通信モードA だった。

IPoE/DS-Lite だとにした直後は通信モード Cで、視聴不可だったが、同一ネットワークから一度つないだら通信モードBになって見れるようになった。

  1. トップ
  2. tech
  3. IPv6 ネイティブ環境に移行 (IPoE + 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 とかになっているのはこのへんの事情なんだろう。

  1. トップ
  2. tech
  3. DS-Lite の挙動の理解