Monday, April 23, 2012

KVM Guest: Shared Physical Network Device With Host (bridging configuration)

The NAT based connectivity is useful for easy deployments. However I want to use full bridging, where the guest is connected directly to the LAN. How do setup and share physical network with host and rest of the LAN under Linux?

You need to type the following commands under Debian or Ubuntu Linux (you may to disable network manager too) to set bridging option. My default eth0 config looks as follows /etc/network/interfaces:
 allow-hotplug eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
Take down eth0, enter:
# ifdown eth0
Next, edit /etc/network/interfaces network configuration file, enter:
# vi /etc/network/interfaces
Update it as follows to define the interface eth0 as being a bridge and specify its ports:
 auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
bridge_ports eth0
bridge_stp on
bridge_maxwait 0
Save and close the file. Type the following command to start br0:
# ifup br0
Update /etc/sysctl.conf as follows to disable netfilter on the bridge (alternately you can configure netfiler using iptables for security):
 
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
 
Save and close the file. Type the following to update the changes:
# sysctl -p
As I said earlier configure iptables to allow all traffic to be forwarded across the bridge from KMV guest. Add following rule to your iptables script:
 
/sbin/iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
 
Restart / reload your firewall script. Finally, verify that you got a working shared physical device which guests can be attached, enter:
# brctl show
# ip addr show br0
# ip route
# ping 192.168.1.254
# ping cyberciti.biz

No comments:

Post a Comment