KVM 桥接网络连接上的 IP 冲突

KVM 桥接网络连接上的 IP 冲突

我们正在运行 CentOS 7 服务器,其上安装了 KVM,并且主机连接了 2 个以太网接口(em1 和 em2)。

刚刚创建了一个新的 Windows 7 VM,我们希望将该特定机器连接到办公网络 (192.168.2.X),因此我们采用桥接解决方案,创建一个“br0”接口,并将其与物理接口“em2”桥接。

因此,即使通过“br0”为客户机 W7 VM 分配静态 IP,它也不会使用该特定 IP,而是使用另一个 IP,而且从客户机端我们能够看到同一子网上的其他机器/设备,但它不能以其他方式工作(物理机器无法 ping VM),使用指定的“br0”IP 或其他 IP。

所以我们失踪了?

这是配置文件的副本:

ifconfig em2

em2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 54:9f:35:02:b2:5a  txqueuelen 1000  (Ethernet)
        RX packets 4296203  bytes 5223242102 (4.8 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 655608  bytes 711971529 (678.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17

ifconfig br0

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.34  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::569f:35ff:fe02:b25a  prefixlen 64  scopeid 0x20<link>
        ether 54:9f:35:02:b2:5a  txqueuelen 0  (Ethernet)
        RX packets 562034  bytes 36288591 (34.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 307114  bytes 1132593995 (1.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

/etc/sysconfig/网络脚本/ifcfg-em2

DEVICE=em2
NAME=em2
TYPE=Ethernet
HWADDR=54:9F:35:02:B2:5A
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0

/etc/sysconfig/网络脚本/ifcfg-br0

DEVICE=br0
NAME=br0
TYPE=Bridge
IPADDR=192.168.2.34
PREFIX=24
BOOTPROTO=none
ONBOOT=yes
DELAY=0

/etc/sysconfig/网络

NETWORKING=yes
GATEWAY=192.168.2.1

ipconfig(来宾机器)

IPv4 Address: 192.168.2.159
subnet mask: 255.255.255.0
Default Gateway: 192.168.2.1

brctl 显示 br0

bridge name bridge id       STP enabled interfaces
br0     8000.549f3502b25a   no      em2
                            vnet0

答案1

您似乎没有 ipv4 地址br0。这将阻止您的 CentOS 主机与 VM 客户机通信。

我承认您ifcfg-br0已为此做好了准备,但还没有成功,而且我发现其中有些奇怪的东西 ( BOOTPROTO=none?)。试试看ifdown br0; ifup br0是否有帮助。

如果没有,只需强制使用接口上的地址ifconfig br0 192.168.2.34 netmask 255.255.255.0 up,看看是否能从网络的角度解决问题,然后我们可以讨论如何修复配置文件。

不要在 上设置 IP 地址em2。如果您将 的输出编辑到问题中,也会很有用brctl show br0

编辑:好的,很好,我们已经让您的 ipv4 正常工作了,现在我们只需要修复您的配置文件。尝试以下操作ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.2.34
NETMASK=255.255.255.0
ONBOOT=yes

然后使用 弹出界面ifdown br0; ifup br0,如果有效,请尝试重新启动。

答案2

上的 IP 地址br0不是来宾的 IP 地址。它是主机的地址。通过此设置,您可以想象您有一台单独的物理机器,其中装有 Windows 7,通过从 出来的电缆连接到交换机em2

如果您希望在客户机上使用静态 IP,则需要在客户机上进行设置。或者更新 DHCP 服务器以分配静态 IP。(顺便说一句,请注意,如果您通过 libvirt 进行设置,它可能会dnsmasq在桥接接口上启动 DHCP 服务器,这会导致它在您的办公室网络上执行寄生 DHCP)。

相关内容