Quantcast
Channel: Active questions tagged ubuntu - Stack Overflow
Viewing all articles
Browse latest Browse all 6410

Why does the bond mode 6 (balance-alb) send gratuitous arp twice every time?

$
0
0

From this doc: https://www.kernel.org/doc/Documentation/networking/bonding.txt

I learned that:

A problematic outcome of using ARPnegotiation for balancing is that each time that anARP request is broadcast it uses the hardware addressof the bond. Hence, peers learn the hardware addressof the bond and the balancing of receive trafficcollapses to the current slave. This is handled bysending updates (ARP Replies) to all the peers withtheir individually assigned hardware address such thatthe traffic is redistributed.

But after trying by myself, I found that the ARP Replies to all the peers was sending twice from tcpdump.

For exmaple, a linux server with bond6 connect to many other hosts via a switch, like this:

enter image description here

docker-ubuntu-1 (with bond mode 6) ping docker-ubuntu-2, I tcpdump on docker-ubuntu-3, it looks like this:

# tcpdump -Q in -i eth0 -n -e10:59:28.459682 ce:ec:f8:48:ec:ae > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.15 tell 192.168.1.10, length 2810:59:30.583316 d6:b9:73:9a:ff:78 > de:b9:f8:4d:14:69, ethertype ARP (0x0806), length 42: Reply 192.168.1.10 is-at d6:b9:73:9a:ff:78, length 2810:59:30.583773 d6:b9:73:9a:ff:78 > de:b9:f8:4d:14:69, ethertype ARP (0x0806), length 42: Reply 192.168.1.10 is-at d6:b9:73:9a:ff:78, length 28

3 packets captured:

  • 1 broadcasing ARP questions
  • and 2 and 3 for "This is handled bysending updates (ARP Replies) to all the peers withtheir individually assigned hardware address such thatthe traffic is redistributed."

But why need twice?

(Not the lab environment problem, cause I tried a different version of Linux and tcpdump from the slave NIC of the docker-ubuntu-1, same result, it's indeed the Linux send out 2 gratuitous ARP replies)


Viewing all articles
Browse latest Browse all 6410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>