Bonding device on xen kernel: does not send arp request when cable is pulled out

Solution Verified - Updated

Environment

Red Hat Enterprise Linux 5.3

Issue

Bonding is not sending arp requests with xen-kernel when the bonding device fails over.

Resolution

Under these circumstances you should toggle network-script by making the following changes in /etc/xen/xend-config.sxp.

Comment out:

(network-script 'network-bridge netdev=bond0')

And enable (by removing the #):

(network-script 'network-bridge-bonding netdev=bond0')

This ensures pbond0 obtains the valid MAC address of either eth0 or eth1 (whichever is enslaved first), resulting in formation like:

[eth0]---+
              |---[pbond0]---[bond0]---(NAT)---[virbr0]-+-[vif0.0]
[eth1]---+

NOTES:

A bonding device on xen kernel would be similar to this by default:

[eth0]---+
               |---[pbond0]---[xenbr0]-+-[vif0.0]
[eth1]---+                       |
                                      +-[bond0]

Vif bridges packets to domUs if available. Bond0 actually responds as the network interface of dom0. Eth0, eth1, pbond0, and xenbr0 all have address FE:FF:FF:FF:FF:FF, which is done by the xen startup script to collect any packets that come in from eth0 or eth1. Xenbr0 and vifs are set to the same HW address.

Components
Tags

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.