我正在尝试将虚拟机配置为像局域网上的设备一样运行,而不是隐藏在主机后面。
这是我遵循的教程: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 安全设置中启用混杂模式解决了我的问题。