-
Notifications
You must be signed in to change notification settings - Fork 3.4k
[v1.16] bpf: Ensure BPF host routing works with tunnel #35861
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[v1.16] bpf: Ensure BPF host routing works with tunnel #35861
Conversation
/test-backport-1.16 |
The broken connection is from pod to local pod via ingress (pod-to-ingress-service/pod-to-ingress-service), the expected flow is: forward direction:
return direction:
This PR breaks step 1 in return direction. The expected datapath behavior is to punt to stack for proxy hijack, but this patch makes skb be fib_redirected to eth0. But why main didn't suffer this issue is still unclear to me 😬 Looking at handle_ipv4_from_lxc(), |
Hey all! I was pointed here from #35977 since I encountered this bug in my GKE clusters. Since it looked like there were still some questions around exactly what's going on in the bug I wanted to provide details on what we saw. We're running the same Cilium version in EKS and GKE, but only saw the failures in GKE. edit: Note, I found that this issue does not occur in AKS with BYOCNI, the issue is limited to just gke What I can provide is the values for each cloud that we use (below). The differences that I know are present are:
Hopefully this is helpful! |
[ upstream commit 1adcc15 ] When BPF host routing is enabled with tunnel, encap_and_redirect_lxc() returns DROP_NO_TUNNEL_ENDPOINT for pod-to-world traffic, which then goes up stack instead of being fib_redirected. This patch ensures to-world traffic follow the expected path. Please note that we handled this correctly for IPv6, so only IPv4 is being amended. Fixes: cilium#35023 Signed-off-by: gray <gray.liang@isovalent.com> Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
e0a4463
to
6ba07bd
Compare
/test-backport-1.16 |
(my PR branch didn't have Jarno's endpoint changes 😬) |
ci-clustermesh turns green! 🟢 |
Once this PR is merged, a GitHub action will update the labels of these PRs: