跳至正文
Wener Notes

QEMU Networking

约 2 分钟阅读
标签:虚拟化QEMU网络BridgeTAP
bash
qemu-system-x86_64 -nic model=help
qemu-system-x86_64 -netdev ?

User Networking (SLIRP)

Default, easiest, no root required. Slower.

bash
# Forward host 8080 to guest 80
-netdev user,id=mynet0,hostfwd=tcp::8080-:80 -device e1000,netdev=mynet0

TAP Networking

Requires root/capabilities. High performance.

bash
# Basic TAP
-netdev tap,id=net0,script=no,downscript=no,ifname=tap0 \
  -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56

Setup TAP/Bridge

bash
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

MacVTap

Combines tun/tap and bridge.

bash
sudo ip link add link eth1 name macvtap0 type macvtap mode bridge
sudo ip link set macvtap0 address 1a:46:0b:ca:bc:7b up
sudo ip link show macvtap0

# Launch QEMU with MacVTap (using file descriptors)
# Requires getting tap fd index
-netdev tap,id=net0,script=no,downscript=no,ifname=tap$(< /sys/class/net/macvtap0/ifindex) \
  -device virtio-net-pci,netdev=net0,mac=$(< /sys/class/net/macvtap0/address)

Bridge Helper

bash
# Allow bridge
echo 'allow virbr0' >> /etc/qemu/bridge.conf

-netdev bridge,id=net0,br=virbr0 -device virtio-net,netdev=net0

VDE (Virtual Distributed Ethernet)

bash
vde_switch -tap tap0 -daemon -mod 660 -group users
ip link set tap0 up

Tuning

bash
# Enable IP Forwarding
sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.all.proxy_arp=1

关联信息

反向链接、本文链接的其他页面和外部资料。

参考资料

其他外链3 条
最近更新commit 906e816编辑