Qemu 网网络
提供guest虚拟的网络设备
网络的后端和模拟的网卡交互。
默认情况下,Qemu会创造一个SLiRP用户网络后端和为guest创建一个虚拟的网络设备(E1000 PCI 对x86机器来说),比如你写了-net nic -net user
Network Backends
-netdev TYPE,id=Name,...
User Networking(SLIRP) 用户网络是默认的网络后端,也是最容器使用的,不需要root/Administrator权限,有着如下的限制:
- 性能差。
- icmp不能用。
- guest不能被访问。
-netdev user,id=mynet0,net=192.168.67.0/24,dhcpstart=192.168.76.9
-netdev user,id=mynet0,restrict=y
-netdev type=user,id=mynet0,restrict=yes
Tap
-netdev tap,id=mynet0
Socket
-netdev socket,id=mynet0,listen=:1234
-netdev socket,id=mynet0,connect=:1234
虚拟网络设备 Virtual Network Devices
在有PCI的总线的设备上,有大量的选择,e1000是qemu默认的网卡。rtl8139是qemu-kvm默认的网卡,在两个项目中,virtio-net 有最好的性能,但是需要guest驱动支持。
使用-device添加一个特定的虚拟网络设备。
-device TYPE,netdev=NAME
-netdev与-device是相关联的。
-device DEVNAME,netdev=NET-ID,mac=MACADDR,DEV-OPTS
网络监控
info netowrk, info usernet命令 可以监控网络
也可以抓取流量从qemu使用filter-dump对象
-netdev user,id=u1 -device e1000,netdev=u1 \
-object filter-dump,id=f1,netdev=u1,file=dump.dat
禁用网卡
-net none
建立tap网卡
modprobe tun tap
ip link add br0 type bridge
ip tuntap add dev tap0 mode tap
ip link set dev tap0 master br0
ip link set dev eth0 master br0
ip link set dev br0 up