1 | Author: Dude |
1 | Last updates: |
https://community.oracle.com/thread/2546040
What is Linux network interface bonding? Simply put, the Linux system provides a kernel driver, which can create a logical network device (bond) using 2 or more Network Interface Controllers (NIC) to accomplish link-aggregation and adapter fault-tolerance. For more information, please see the Deployment Guide at https://linux.oracle.com/documentation/
The channel bonding interface supports several modes of operation. In a typical active-backup set up for fault-tolerance, the system performs MII-based health monitoring of the network interface slaves (eth0, eth1) and assigns them according to bond options and interface availability. In active-backup mode (mode 1), only the current active network device is seen externally.
Linux bonding for fault-tolerance under Oracle VM VirtualBox does not seem to function as advertised. Searching the Internet for more information shows that other people have tried to set up Linux bonding using various virtualization products, virtual host network adapter and bonding options, but without success.
It appears the management of Media Access Control addresses (MAC) interferes with internal routing methods between the host and the virtual machine guest. Using the modinfo bonding command (fig. 1) shows a listing of available parameters for the bonding kernel module. The fail_over_mac parameter addresses the Mac address issue in VirtualBox.
1 | # modinfo bonding |
Configuration Example
1 | Virtualization Product: Oracle VM VirtualBox 4.2.10 |
VM adapter settings: Bridged Adapter, Paravirtualized Network (virtio-net)
1 | Adapter1 (eth0): 080027436617, en0, Ethernet 1 |
Note: If you wish to reset the network adapter names and MAC addresses used by the Oracle Linux guest system, erase the content of /etc/udev/rules.d/70-persistent-net.rules
and restart the virtual machine.
1. Create or modify the following configuration files:
/etc/modprobe.d/bonding-eth0_eth1.conf
alias bond0 bonding
/etc/sysconfig/network-scripts/ifcfg-bond0
1 | DEVICE=bond0 |
/etc/sysconfig/network-scripts/ifcfg-eth0
1 | DEVICE=eth0 |
/etc/sysconfig/network-scripts/ifcfg-eth1
1 | DEVICE=eth1 |
2. Restart the system or network services (root):
# service network restart
Configuration Test
Enter the following commands as user root to verify proper operation of NIC bonding:
1 | # tail /var/log/messages |
1 | # ifconfig |
1 | # netstat -rn |
1 | # ifconfig eth0 down |
1 | # ifconfig eth0 up |
During the above test, the client network connection from host 10.0.0.1 (ssh) was maintained without any noticeable interruption. As it can be seen from the syslog and ifconfig command output, the bond0 interface was automatically assigned either the MAC address of eth0 or eth1 and the fail-over worked as advertised.