# Bonding driver sends no gratious arp

## LordZero

Hi @all,

I've just been around with testing a fault tolerant system using the linux bonding driver. I've a server with two NICs (Broadcom BNX2). Each NIC is connected to one switch (Cisco 3750). I've loaded the bonding module as follows

```

modprobe bonding "mode=active-backup" "primary=eth0" "use_carrier=0" miimon="100"

```

and in /etc/conf.d/net I have:

```

slaves_bon0="eth0 eth1"

config_bond0=( "10.255.255.110/24")

```

Every thing works fine when we start the network with two NICs connected. After unplugging eth0 the bonding drivers makes eth1 as the new active one, sends a gratuitous ARP on eth1 and the server keeps reachable as desired. After plugging eth0 back in bonding makes eth0 the active one (as told them while loading the moduel). The problem is that the bonding driver now doesn't send a gratuitous ARP. The server is no more reachable because the switch thinks the MAC is at the port of eth1 (no more active). After unplugging eth1 the server is reachable again because the switch delete the MAC address of the bonding interface from port connected to eth1.

The problem is that there is no second gratuitous arp sent when eth0 becomes active again. So the change from eth0 to eth1 is no problem but the change back (from eth1 to eth0) is one. Is there a configuration error with my setup or is this an issue with the bonding driver?!?!?

Any ideas?

As a solution I left the primary statement off when loading the module. Than eht1 stays the active link even eth0 is back on line. This is OK as an work around but not that good because you could not determine which way the packets are sent at the moment (in an large infrastrucutre where link changes may occour).

Thanks for comments...

Regards

Werner

----------

