Repository navigation
Replies: 4 comments 16 replies
|
Thank you for the detailed report. Everything seems in place, I see no obvious mistakes or errors. I suggest checking with https://github.com/cilium/pwru using the |
|
Also adding in: var ts unix.Timespec
if err := unix.ClockGettime(unix.CLOCK_MONOTONIC, &ts); err != nil {
log.Fatal(err)
}
log.Printf("CLOCK_MONOTONIC: %+v", ts)for good measure, and printing that out with the configmap list: Assuming [edit] it sounds like cgroups could change this value, but: (from the cilium pod) |
That is a really good find. So... with XDP we answer ARP in the XDP program, without it in TC which is later in the network stack. So that sort of narrows it down to the ARP being processed and dropped by the kernel between XDP and TC. Which is odd, since as far as I know ARP should be processed after TC (hence why this feature works most of the time). So that sort of narrows it down to the kernel. Not sure if its to do with kernel version, kernel config or something Talos did to their kernel. In your very first message you said |
|
Thanks a ton for going to the lengths of debugging this. I've been revisiting this exact issue in my homelab on and off for months, and never found a solution (until now). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hello!
I'm having trouble with L2 Announcements after having upgraded my cluster OS to talos-1.9.0. I have a sneaking suspicion there's a kernel misconfig (although everything in https://docs.cilium.io/en/stable/operations/system_requirements/ checks out.
CONFIG_IP_NF_IPTABLES_LEGACY=yis the oddest change between the two kernels), but am attempting to further debug.I've followed the troubleshooting steps in https://docs.cilium.io/en/stable/network/l2-announcements/#troubleshooting and have gotten to the point where the map
cilium_l2_responder_v4shows no responses.(But.. curiously, the working node shows the same responses_sent: 0, and there's still frequent ARP responses)
With a bit of tcpdumping, I can see that the gratuitous ARP happens when grabbing a lease, but not any replies to ARP requests (the ARP requests make it to the physical device).
(that's even from the same host namespace!)
I've read through some of the code
cilium/bpf/bpf_host.c
Line 1054 in 0aa1204
How can I debug further? I think I need a better understanding of how the IP addressing works in Cilium. Is there something else besides the bpf program that tells the network subsystem to not drop packets destined for other IP addresses? I know that's a pretty common feature, I'm wondering if the packet is getting dropped before BPF (and how I would debug something like that)
Is there something besides bpf_host.c that would be responding to ARP requests for these IPs? One other odd thing I've noted: on my working host (out of 4, I have 1 running Talos 1.8.3 with a custom kernel for my hardware; the reason I want to upgrade to 1.9.0 is because of upstream kernel support) I still see "0" responses in the bpf map:
I hope the output of this discussion turns into:
--
I have a dump, but would appreciate debugging advice! cilium-sysdump-20241226-201519.zip
All reactions