我这里有两台服务器,一台是 Qemu VM 主机,另一台是某种存储盒。
它们是 hetzner 机器,我通过 vSwitch 将它们连接起来。
Server1 vSwitch 接口:
3: local@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 10:7b:44:b1:5b:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 brd 192.168.100.255 scope global local
valid_lft forever preferred_lft forever
Server1(VM主机)ip路由:
default via <redacted-public-ip> dev eth0 proto static metric 100
<redacted-public-ip> dev eth0 proto static scope link metric 100
192.168.10.0/24 dev virbr0 proto kernel scope link src 192.168.10.254 metric 425 <-- virbr0 network
192.168.10.253 via 192.168.100.2 dev local <-- srv02 IP to fit in virbr0 net space
Server2 vSwitch 接口:
3: local@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default qlen 1000
link/ether 08:60:6e:44:d6:2a brd ff:ff:ff:ff:ff:ff
inet 192.168.100.2/24 brd 192.168.100.255 scope global local
valid_lft forever preferred_lft forever
inet 192.168.10.253/24 brd 192.168.10.255 scope global local
valid_lft forever preferred_lft forever
Server2 ip路由:
default via <redacted-public-ip> dev eth0 proto static metric 100
<redacted-public-ip> dev eth0 proto static scope link metric 100
192.168.10.0/24 dev local proto kernel scope link src 192.168.10.253 <-- to access virbr0 via vSwitch
我猜我的路由设置是正确的——因为在firewalld服务关闭的情况下一切正常。
但是,如果我打开它,问题就开始了。
这些是 Server1 上的防火墙区域(当我禁用 firewalld 时,一切正常)
libvirt (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: virbr0
sources:
services: dhcp dhcpv6 dns ssh tftp
ports:
protocols: icmp ipv6-icmp
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule priority="32767" reject
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 local
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
我曾尝试同时在其中的每一个上打开伪装,但无济于事。我正在使用从 Server2 到 virbr0 上的一个虚拟机的简单 ping 来“测试”它
我在这里有什么明显的遗漏吗?
谢谢大家。
我已经设法解决了这个问题,在 QEMU 主机上使用以下两个规则