我正在尝试将虚拟机配置为像我的 LAN 上的设备一样,而不是隐藏在主机后面。
这是我遵循的教程:RHEL8 Network Bridged Interface
我的路由器/DHCP 位于 10.10.1.254
主机是在 ESXi 内运行的 CentOS 8 虚拟机 - 在 IP 为 10.10.1.54 的 DHCP 上,主机可以访问互联网/LAN 和虚拟机。
来宾也是 CentOS 8 - 设法获得 IP 10.10.1.55 的 DHCP 租约,但不能连接到主机以外的任何东西。它甚至无法在 10.10.1.254 上 ping 路由器,即使它以某种方式获得了 DHCP 租约。我尝试在主机上启用 net.ipv4.ip_forward 但这并没有解决它。
我还尝试了 CentOS7 来宾的 netinstall。它设法通过 DHCP 提取设置,但它也没有网络访问权限。
这是主机配置:
ifcfg-bridge-slave-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
最后在虚拟机网卡下的 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
问题不在桥接网络配置中。
由于 KVM 主机作为 VM 在 ESXi 内运行,因此我必须在 ESXi vSwitch 上启用混杂模式。
在 vSwitch 安全设置中启用混杂模式解决了我的问题。