Enable arp_accept for all interfaces
authorIhar Hrachyshka <ihrachys@redhat.com>
Wed, 24 May 2017 01:13:28 +0000 (18:13 -0700)
committerIhar Hrachyshka <ihrachys@redhat.com>
Thu, 25 May 2017 20:24:51 +0000 (13:24 -0700)
commit804fd3427eeb31a2846ee096dbdac924ec39bcbc
tree555ea1b05435776f0d9cfc3d754236eb9249a3ef
parentaeb11f384fe8e221c9bd62b8b86ecb1da4003777
Enable arp_accept for all interfaces

OpenStack heavily relies on gratuitous ARP updates when moving floating
IP addresses between devices. When a floating IP moves, Neutron L3 agent
issues a burst of gratuitous ARP packets that should update any existing
ARP table entries on all nodes that belong to the same network segment.

Due to locktime kernel behavior, some gratuitous ARP packets may be
ignored [1], rendering ARP table entries broken for some time. Due to a
kernel bug [2], the time may be as long as hours, depending on other
traffic flowing to the node.

With the current EL7 kernel, the only way to make sure that nodes honor
all sent gratuitous ARP updates is to set arp_accept to 1; this will
disable locktime mechanism for the packets sent by Neutron L3 agent, and
will make sure ARP tables are always updated.

[1] https://patchwork.ozlabs.org/patch/762732/
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1450203

Related-Bug: #1690165
Change-Id: I863b240e0ab4c4d5bb844f91b607fd0937d5cedf
puppet/services/kernel.yaml
releasenotes/notes/enable-arp_accept-6296b0113bc56b10.yaml [new file with mode: 0644]