【要約】【IPv6】Linux Bridge 越しに NDP が来ない! [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
Proxmox VE上のVMでKubernetesを運用するエンジニアが、CiliumのL2 Announcement利用時にIPv6通信が成立しない問題に直面した。
- ・CiliumのL2 Announcement試行時にNDPパケットがドロップされる。
- ・IPv4では発生せず、IPv6環境特有の事象である。
- ・eBPFによるL2受信設定が、ブリッジ側の挙動と競合する。
// Approach
著者はパケット監視を行い、通信経路上のLinux Bridgeが原因であることを突き止めた。
- ・MLD Snoopingの仕組みを分析し、ブリッジがグループ参加を認識できていないことを特定。
- ・回避策として、Linux Bridgeの
multicast_snoopingを無効化する。 - ・
echo 0 > /sys/class/net/vmbr0/bridge/multicast_snoopingを実行。 - ・
sysctlを用いて設定を永続化する。
// Result
Linux BridgeのMLD Snoopingを無効化することで、NDPパケットが正常に転送され、IPv6通信が可能となった。
- ・Proxmox VE環境におけるCiliumのIPv6運用における障害回避を実現。
- ・CiliumへのIssue提出により、MLD Queryを扱う修正PRが作成されるという根本解決への道筋をつけた。
Senior Engineer Insight
> 本件は、仮想化レイヤーとコンテナネットワークの仕様の不一致が招いた典型的な事例だ。MLD Snoopingの無効化は、マルチキャストトラフィックの増大を招くため、大規模環境では慎重な判断が求められる。根本解決としてCilium側でのMLD Query対応が進んでいる点は評価できる。インフラ層の挙動を深く理解することの重要性を示す好例だ。