通过 vSwitch 的两个主机之间的防火墙/IP 规则问题

通过 vSwitch 的两个主机之间的防火墙/IP 规则问题

我这里有两台服务器,一个是 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

服务器2 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

我想,我已经正确设置了路线 - 因为在关闭防火墙服务的情况下,一切都正常运行。

然而,如果我打开它,问题就开始了。

这些是 Server1 上的防火墙区域(当我禁用防火墙时,一切正常)

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 操作来“测试”这一点

这里有什么明显的东西是我遗漏的吗?

谢谢大家。

答案1

我已经设法解决了这个问题,在 QEMU 主机上使用以下两个规则

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -o local -i virbr0 -j ACCEPT

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -o virbr0 -i local -j ACCEPT

相关内容