virt-manager手动桥接物理网卡
诉求
书接上回👆完成virt-manager的基本安装,希望配置一个类似virtaulbox的桥接网络用于桥接物理网卡。
分析
太长不看:手动建立网桥并保证host<->guest之间能够通信,分配与host相网段的ip达到加入局域网效果。
qemu/kvm自带的网桥virbr0则会分配192.168.122.0/24的虚拟ip通过NAT方式接入host网络。
qemu/kvm支持的另一种macvtap工作在L2层,不属于目标mac的数据包将被内核过滤(除非手动绕过)。
VirtualBox通过注入驱动的方式截获并过滤来自物理网卡的数据,用户无感,但无独立拆分方案可供使用。
操作
注意:谨慎使用SSH进行网络配置,断网可能导致服务器失去访问!
目标:创建新网桥br0,将物理网卡eno1加入网桥,将ip移动到br0
以Ubuntu 24.04系统为例,使用netplan进行网络管理,创建/etc/netplan/01-bridge.yaml根据场景选择模板:
自动获取
network:
version: 2
renderer: networkd
ethernets:
eno1: {} # 注意改成你的物理网卡
bridges:
br0:
interfaces: [eno1] # 注意改成你的物理网卡
dhcp4: true
dhcp6: false
parameters:
stp: false
静态地址
network:
version: 2
renderer: networkd
ethernets:
eno1: {} # 注意改成你的物理网卡
bridges:
br0:
interfaces: [eno1] # 注意改成你的物理网卡
dhcp4: false
addresses: [192.0.2.50/24]
gateway4: 192.0.2.1
nameservers:
addresses: [8.8.8.8,1.1.1.1]
parameters:
stp: false
解释:stp用于抑制网桥中的环路,只有一个物理接口无需开启。
完成后执行sudo netpaly try --timeout 60如无报错,重启验证网络是否正常,配置是否持久化。
执行ip a show br0确认ip地址是否绑定在网桥上
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 26:**:**:**:**:6f brd ff:ff:ff:ff:ff:ff
inet 192.0.2.50/24 metric 100 brd 192.0.2.255 scope global dynamic br0
valid_lft 84147sec preferred_lft 84147sec
inet6 fe80::24c0:a8ff:fea8:a56f/64 scope link
valid_lft forever preferred_lft forever
执行ip a show eno1确认物理网卡已被br0接管
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 24:**:**:**:**:14 brd ff:ff:ff:ff:ff:ff
altname enp3s0
确认外网访问正常,即可在virt-manager中配置NIC
Network source: Bridge device...
Device name: br0
启动vm正常分配到host同网段ip地址。
参考
6.5. Bridged Networking
TUN/TAP - Wikipedia
Spanning Tree Protocol - Wikipedia

浙公网安备 33010602011771号