IPv6関係のパケットがブリッジで破棄される問題

Ubuntu11.04などのディストリビューションでIPv6関係のパケット(ICMPv6を含む)がbrctlによって作られるブリッジデバイスを通過できない問題が有るように思われる。

なぜこの問題に気がついたかというと、KVMのゲストがどうやってもルータから流れてくるRAを受信できず、tcpdumpで確認したところtapを物理ethと接続するブリッジを境にパケットが途絶えていた。原因としてはip6tablesでフィルタリングされている可能性が考えられるが、全てルールが空でポリシーもACCEPTの状態でも破棄されてしまう。

解決策としては、sysctlで次のキーを0にしてしまえば良いようだ。ブリッジでのipb6tablesが無効になってしまうようなので環境によっては注意して使う必要がある。

sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0

なんとなく関連してそうなパッチがカーネル2.6.39でコミットされているようなので次のバージョンのUbuntuでは解決しているかもしれない。現状ではDebianなどの他のディストリビューションでも影響を受ける可能性が有る。