====== Channel Bonding to share the same IP for Bridged wired & Wireless interfaces ======
This is a variation of [[linux:bonding]], it replaces the wired interface with a bridged interface. I use this to run kvm, hence I've included the configuration items to bring up a virtual network device (TAP) that can be used by virtual machines to integrate seamlessly with the actual LAN.
Currently only written for Debian systems.
FIXME: This seems to fail in bringing the bridge up automatically and hence you'll need to set it up and run the dhcp client manually after setup
===== Debian-style =====
In Debian this can be achieved directly through ''/etc/network/interfaces'':
allow-hotplug bond0 # or "auto bond0"
iface bond0 inet dhcp
bond-primary br0
bond-slaves br0 wlan1
bond-mode active-backup # or bond-mode 1
bond-miimon 150
pre-up ifconfig bond0 hw ether 00:11:22:33:44:55
pre-up ifconfig eth1 promisc
post-down ifconfig eth1 -promisc
pre-up brctl addbr br0 # Create bridge
pre-up ip link set eth1 up # Bring eth1 up
pre-up ip link set br0 up # Bring br0 up [NOTE: FAILS silently]
post-up ip link set br0 address 00:11:22:33:44:55 # Set br0's MAC to ours instead of a random one. TODO: Doesn't seem to work either
post-down ip link set br0 down # Bring br0 down
post-down brctl delbr br0 # Remove bridge
allow-bond0 wlan1
#allow-hotplug wlan1
iface wlan1 inet manual
bond-master bond0
bond-primary eth1
bond-mode active-backup
bond-miimon 150
# Usually optional: set wlan1 as active temporarily, tell wpa_supplicant to use bond0
#bond-give-a-chance 10
#wpa-bridge bond0
#
# Single Wireless location/access point:
#wpa-ssid "#MY SSID#"
#wpa-psk #MY KEY#
# Multiple wireless locations
wpa-roam /etc/wpa_supplicant/wpa-roam.conf # And set-up wpa-roam.conf with SSIDs and Keys
auto eth1
iface eth1 inet manual
allow-bond0 br0
iface br0 inet manual
bond-primary br0
bond-master bond0
bridge_ports eth1 tap0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
# Set up a TAP interface as tap0
pre-up ip tuntap add dev tap0 mode tap user root
pre-up ip link set tap0 up
post-down ip link set tap0 down
post-down ip tuntap del dev tap0 mode tap
Enable with:
# ifup bond0 # This fails to bring br0 up and hence DHCP will fail
# ifconfig br0 up
# dhclient -v br0
With cable connected, ''eth1'' is used. Without, ''wlan1'' is used.
\\
See status with ''$ cat /proc/net/bonding/bond0'':
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: br0 (primary_reselect always)
Currently Active Slave: br0
MII Status: up
MII Polling Interval (ms): 150
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: wlan1
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:11:22:33:44:55
Slave queue ID: 0
Slave Interface: br0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:aa:bb:cc:dd:ee
Slave queue ID: 0
==== References ====
* https://wiki.debian.org/QEMU#Networking
* https://help.ubuntu.com/community/KVM/Networking
* http://www.linux-kvm.org/page/Networking#Routing_with_iptables