-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Description
Is there an existing issue for this?
- I have searched the existing issues
Version
equal or higher than v1.18.1 and lower than v1.19.0
What happened?
When using a L2 Announcement Policy on an interface where the host doesn't have assigned IP the Cilium daemon set will error with failed to open ARP socket: no IPv4 address available for interface.
ARP does not need a IP address in order to broadcast which MAC address has an IP as it's layer 2. When responding to a ARP request Cilium should respond on Layer 2 using MAC address. If absolutely required Cilium should use the load balancing IP as expected.
How can we reproduce the issue?
- Install cilium with configuration following the L2 Announcement docs
- Create Cilium Load Balancer IP Pool resource
- Create Cilium L2 Announcement Policy resource that uses host interface with no IP
- Observer logs in Cilium's daemon set on relevant host
Cilium Version
cilium-cli: v0.18.6 compiled with go1.24.5 on linux/amd64
cilium image (default): v1.18.0
cilium image (stable): v1.18.1
cilium image (running): 1.18.1
Kernel Version
Linux storm 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
Client Version: v1.32.5
Kustomize Version: v5.5.0
Server Version: v1.32.5
Regression
No response
Sysdump
cilium-sysdump-20250912-170046.zip
Relevant log output
time=2025-09-11T13:52:14.468318084Z level=error msg="error during partial reconciliation" module=agent.datapath.l2-responder error="garp 10.0.17.50@25: failed to open ARP socket: no IPv4 address available for interface"
time=2025-09-11T13:57:14.306088508Z level=error msg="Error(s) while full reconciling l2 responder map" module=agent.datapath.l2-responder error="garp 10.0.17.50@25: failed to open ARP socket: no IPv4 address available for interface"Anything else?
I've followed the troubleshooting documentation for L2 announcement. If asked I'll post the result here, but it all checks out. When I added an IP to the interface everything worked fine afterwards.
I found the location in the v1.18.1 source where error log is created. Looks like it might of gotten fixed in v1.19.0-pre.0 and the main branch. Updated source is here. I figure at least the docs should be updated to mentioning this.
Cilium Users Document
- Are you a user of Cilium? Please add yourself to the Users doc
Code of Conduct
- I agree to follow this project's Code of Conduct