KVM-QEMU 桥接网络不工作-客户机只能访问主机

KVM-QEMU 桥接网络不工作-客户机只能访问主机

我正在尝试将虚拟机配置为像局域网上的设备一样运行,而不是隐藏在主机后面。

这是我遵循的教程:RHEL8 网络桥接接口

我的路由器/DHCP 位于 10.10.1.254

主机是在 ESXi 内运行的 CentOS 8 VM - 在 DHCP 上,IP 为 10.10.1.54,主机可以访问互联网/LAN 和虚拟机。

客户机也是 CentOS 8 - 设法获得 IP 10.10.1.55 的 DHCP 租约,但无法连接到主机以外的任何设备。它甚至无法 ping 10.10.1.254 的路由器,尽管它以某种方式获得了 DHCP 租约。我尝试在主机上启用 net.ipv4.ip_forward,但这并没有解决问题。

我还尝试了 CentOS7 客户机的 netinstall。它设法通过 DHCP 提取设置,但它也没有网络访问权限。

这是主机配置:

  • ifcfg-网桥-从属-ens192

    TYPE=Ethernet
    NAME=bridge-slave-ens192
    UUID=...
    DEVICE=ens192
    ONBOOT=yes
    BRIDGE=br0
    
  • ifcfg-br0

    STP=yes
    BRIDGING_OPTS=priority=32768
    TYPE=Bridge
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=dhcp
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=br0
    UUID=....
    DEVICE=br0
    ONBOOT=yes
    

最后,在 VM NIC 下的 virt-manager 中,我将“指定共享设备名称”设置为网络源,然后在桥接名称下我有“br0”并且类型是“virtio”。

# nmcli c show --active

    Name                 -  Type    -  Device
    br0                  -  bridge  -  br0
    bridge-slave-ens192  -  ehernet -  ens192
    vnet0                -  tun     -  vnet0

# virsh net-list -all

    Name  -  State  -  Autostart  -  Persistent
    br0   -  active -  yes        -  yes

# iptables -L

    Chain INPUT (policy ACCEPT)
    target     prot opt source      destination

    Chain FORWARD (policy ACCEPT)
    target     prot opt source      destination

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source      destination

# sysctl net.ipv4.ip_forward

    net.ipv4.ip_forward = 1

答案1

问题不在于桥接网络配置。

由于 KVM 主机在 ESXi 内部作为 VM 运行,因此我必须在 ESXi vSwitch 上启用混杂模式。

在 vSwitch 安全设置中启用混杂模式解决了我的问题。

相关内容