Loading

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

posted @ 2025-11-05 11:50  azureology  阅读(38)  评论(0)    收藏  举报