[FreeBSD-users-jp 96096] IPv6 route が消える

Hiroo Ono (小野寛生) hiroo.ono+freebsd @ gmail.com
2017年 6月 10日 (土) 07:09:44 UTC


小野寛生です。

http://techlog.iij.ad.jp/contents/dslite-macosx
を参考に、IPoE (IPv6) + DS-Lite (IPv4) で利用しています。

ゲートウェイ部分は

----epair0b [gateway] ue0-----
                               gif0-----

という感じの構成になっています。
IPv4 のゲートウェイになっているコンテナで ipfw を動かしてNAT(IPv4)していて、家のLANでは IPv4 を振って使っています。
epair0b 側の LAN にはIPv4 のプライベートアドレスが振られており、
ue0 は rtsol でIPv6アドレスを取得し、それと transix.jp のゲートウェイアドレスを使って
gif0 が IPv4 over IPv6 なトンネルデバイスになっています。

gateway では
net.inet.ip.forwarding=1
net.inet6.ip.forwarding=0
となっています。

ここまではよいのですが、11-stable の ipfw には NPT6 対応が下りてきているので、
epair0b 側のLANに fd40:なんとか::/64 なアドレスを振って、gateway の ipfw で NPT6 を有効にして、
IPv6 でも通信したいなと思いました。
で、NPT6を使うにせよ、gateway から rtadvd で IPv6 アドレスを割り当てるにせよ、
gateway で net.inet6.ip6.forwarding=1 にする必要があります。
ところが、net.inet6.ip6.forwarding=1 にすると、gateway における IPv6 のデフォルトルートが消えて、
通信ができなくなります。
net.inet6.ip6.forwarding=0 を設定しなおすと通信が復活します。

こちらではエラーの詳細が分からなかったのですが、
http://sanpeisbllog.blogspot.jp/2016/05/freebsdds-lite-with-freebsd.html
によれば
nd6_dad_timer: cancel DAD on gif0 because of ND6_IFF_IFDISABLED.
というエラーが起きているそうです。

質問1: この振る舞いは、IPv6 的に正当な振る舞いなんでしょうか、それともそんなことはないんでしょうか。
質問2: 妥当性にかかわらず、NPT6 を有効にしてもルートが消えず、通信できる方法はないのでしょうか。

IPの仕組みとかろくに分かっていないので、ポイントがどこか分かっていない質問ですみませんが、
よろしくお願いします。


freebsd-users-jp メーリングリストの案内