Skip to content

B #7691: loosen inherited ARP strictness in netns#7692

Open
atodorov-storpool wants to merge 1 commit into
OpenNebula:masterfrom
atodorov-storpool:tproxy-disable-arp-ignore
Open

B #7691: loosen inherited ARP strictness in netns#7692
atodorov-storpool wants to merge 1 commit into
OpenNebula:masterfrom
atodorov-storpool:tproxy-disable-arp-ignore

Conversation

@atodorov-storpool
Copy link
Copy Markdown
Contributor

Description

to allow cross-subnet ARP replies.

Network namespaces can inherit strict ARP policies (where arp_ignore is greater than 0) from the host's default configurations. When this strictness is inherited, it breaks cross-subnet ARP resolution. Specifically, the namespace silently drops and fails to reply to the VM's cross-subnet ARP requests for local endpoints, such as the 169.254.16.9.

This PR explicitly loosens the inherited ARP strictness by forcing arp_ignore=0 inside the namespace. By applying this to both all and the specific interface, it guarantees the namespace will successfully reply to the VM's ARP requests for local IPs.

Branches to which this PR applies

  • master
  • one-6.10.1+
  • one-7.2

  • Check this if this PR should not be squashed

@atodorov-storpool atodorov-storpool force-pushed the tproxy-disable-arp-ignore branch from 0a76be1 to ba242ba Compare May 18, 2026 16:10
to allow cross-subnet ARP replies.

Network namespaces can inherit strict ARP policies (where arp_ignore is greater than 0) from the host's default configurations. When this strictness is inherited, it breaks cross-subnet ARP resolution. Specifically, the namespace silently drops and fails to reply to the VM's cross-subnet ARP requests for local endpoints, such as the 169.254.16.9.

This PR explicitly loosens the inherited ARP strictness by forcing arp_ignore=0 inside the namespace. By applying this to both all and the specific interface, it guarantees the namespace will successfully reply to the VM's ARP requests for local IPs.
Copy link
Copy Markdown
Contributor

@sk4zuzu sk4zuzu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. This is indeed precise fix. I've included it also here sk4zuzu/tproxy-rs@1e1b9e3 in the integration tests of my rust version of tproxy. 🙏😇

@rsmontero rsmontero added this to the Release 7.4 milestone May 20, 2026
@atodorov-storpool
Copy link
Copy Markdown
Contributor Author

@sk4zuzu
Took a look at the rust patch. Please note that when there is a dot ('.') in the interface name (think for vlan interfaces, for example onebr0.1234), the dot in the interface name should be replaced with '/' for the sysctl because the dot is reserved for path separation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants