Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bpf: Remove ICMPv6 NS Responder on bpf_host
This commit removes the ICMPv6 NS responder from from-netdev, to-netdev, and from-host. Let me explain why this removal won't break anything. First we need to know NS responder handles packets targeting local router or one of the local endpoints, and here is the responding steps in details: 1. if NS is targeting the local router; 2. or if NS is targeting a local endpoint; 3. transform the packet into an ICMPv6 NA with cilium_host's MAC address as the response; 4. modify the packet L3, set the source IPv6 to the router IPv6; 5. redirect_self; From-netdev is on the native devices handling ingress traffic from other nodes. The ingress traffic should be underlay traffic that doesn't expose overlay addresses, like pod or router addresses. Therefore, NS traffic reaching from-netdev can only target native IPv6, and we don't need the responder to deal with that. To-netdev and from-host are in the same host network namespace, one is attached to native devices, and the other is on cilium_host. Prior to issue cilium#23445, we needed NS responder because no host device had that router IPv6. Since cilium#23445 has been resolved, now curling from host to a local pod or local router doesn't require bpf NS responder anymore. The removal of the responder on from-netdev also fixes a known issue cilium#14509, which is caused by forementioned step 4: NS responder sets responding packet's source IPv6 to router IPv6 even if the NS comes from a native device. Fixes: cilium#14509 Signed-off-by: Zhichuan Liang <gray.liang@isovalent.com>
- Loading branch information