### Connect a qemu guest to real network. * Guest: Debian GNU/Linux - eth0 * Host: Debian GNU/Linux - eth0.201 guest host host host eth0 <---> tap0 <---> bridge0 <---> eth0.201 <---> real network * One time: apt-get install bridge-utils apt-get install uml-utilities apt-get install vlan * Bridge connection with vlan As root: vconfig add eth0 201 tunctl -t tap0 -u username brctl addbr bridge0 brctl stp bridge0 off brctl addif bridge0 eth0.201 brctl addif bridge0 tap0 ifconfig eth0.201 up ifconfig tap0 up ifconfig bridge0 up * Bridge connection to physical interface As root: tunctl -t tap0 -u username ifconfig eth0 0.0.0.0 brctl addbr bridge0 brctl stp bridge0 off brctl addif bridge0 eth0 brctl addif bridge0 tap0 ifconfig eth0 up ifconfig tap0 up ifconfig bridge0 192.168.45.X netmask 255.255.255.0 up route add default gw 192.168.45.Z * NAT connection As root: tunctl -t tap0 -u username ifconfig tap0 192.168.45.1 netmask 255.255.255.0 up echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE * As normal user, run the qemu guest: qemu-system-x86_64 \ -name DEVICE1 \ -m 512 \ -smp cpus=1 \ -enable-kvm \ -hda device1.qcow2 \ -serial telnet::2000,server,nowait \ -monitor tcp:127.0.0.1:4000,server,nowait \ -display none \ -daemonize \ -net none \ -net nic,model=e1000,vlan=1,macaddr=00:01:00:ff:01:01 \ -net nic,model=e1000,vlan=2,macaddr=00:01:00:ff:01:02 \ -net nic,model=e1000,vlan=3,macaddr=00:01:00:ff:01:03 \ -net nic,model=e1000,vlan=4,macaddr=00:01:00:ff:01:04 \ -net tap,vlan=1,ifname=tap0,script=no,downscript=no \ -net socket,vlan=2,udp=127.0.0.1:9012,localaddr=:9002 \ -net socket,vlan=3,udp=127.0.0.1:9013,localaddr=:9003 \ -net socket,vlan=4,udp=127.0.0.1:9014,localaddr=:9004