Skip to content

Layer 2 Announcement Interface requires IPΒ #41641

@yarokifor

Description

@yarokifor

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?

  1. Install cilium with configuration following the L2 Announcement docs
  2. Create Cilium Load Balancer IP Pool resource
  3. Create Cilium L2 Announcement Policy resource that uses host interface with no IP
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/datapathImpacts bpf/ or low-level forwarding details, including map management and monitor messages.feature/l2-announcementkind/bugThis is a bug in the Cilium logic.kind/community-reportThis was reported by a user in the Cilium community, eg via Slack.needs/triageThis issue requires triaging to establish severity and next steps.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions