两个 eth 设备、两个子网、pfSense 和 VM

两个 eth 设备、两个子网、pfSense 和 VM

从 192.168.1.0/24 网络中的笔记本电脑,我能够 ping 通 192.168.2.0/24 网络中的主机(VM),但是我无法使用 192.168.100.0/24 网络中的第二个以太网设备 ping 通同一主机(VM)。

laptop       pfsense    VM host                    VM
.1.116/24 -- .1.20/24   -- bond1 .1.2/24  
             .2.20/24   -- bond1.2/br2 .2.2/24     -- ens3 .2.7/24
             .100.20/24 -- bond1.100/br100 .100/24 -- ens9 .100.7/24

我已经为此苦思冥想了一段时间,所以任何想法都将不胜感激

我有一个具有两个网络接口的虚拟机:

  • ens3:192.168.2.7/24
  • ens9:192.168.100.7/24

route -n 产生:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.20    0.0.0.0         UG    0      0        0 ens3
192.168.2.0     0.0.0.0         255.255.255.0   U     202    0        0 ens3
192.168.100.0   0.0.0.0         255.255.255.0   U     203    0        0 ens9

PFSense 是 192.168.{1,2,100}.0/24 网络的默认网关,它有 192.168.{1,2,100}.20 IP 地址。防火墙规则的配置方式是允许所有网络上的所有 IPv4 流量,基本上在每个网络上:192.168.{1,2.10}/24 它定义了规则:

protocol source port destination port gateway queue
IPV4*    *      *    *           *    *       none

在我的笔记本电脑 192.168.1.116 上,路由 -n 产生:

0.0.0.0         192.168.1.20    0.0.0.0         UG    600    0        0 wlp59s0
192.168.1.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp59s0

在运行 VM 的主机上,我已配置如下接口:

auto bond1
iface bond1 inet static
  address 192.168.1.2
  netmask 255.255.255.0
  gateway 192.168.1.20
  # following by bonding configuration, etc 

auto bond1.2
iface bond1.2 inet manual
  vlan-raw-device bond1

auto br2
iface br2 inet static
  address 192.168.2.2
  netmask 255.255.255.0
  bridge_ports bond1.2

auto bond1.100
iface bond1.100 inet manual
  vlan-raw-device bond1

auto br100
iface br100 inet static
  address 192.168.100.2
  netmask 255.255.255.0
  bridge_ports bond1.100

所有主机上的 iptables:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

答案1

为了能够 ping VM 主机上的两个接口:192.168.2.2 和 192.168.100.2,我按以下方式配置了 iproute2:

在虚拟机管理程序上(192.168.1.2、192.168.2.2、192.168.100.2):

/etc/iproute2/rt_tables
2 rt_lan2
100 rt_lan100

按以下方式配置路线/规则

ip route add 192.168.2.0/24 dev br2 src 192.168.2.2 table rt_lan2
ip route add default via 192.168.2.20 dev br2 table rt_lan2
ip rule add from 192.168.2.2/32 table rt_lan2
ip rule add to 192.168.2.2/32 table rt_lan2

ip route add 192.168.100.0/24 dev br100 src 192.168.100.2 table rt_lan100
ip route add default via 192.168.100.20 dev br100 table rt_lan100
ip rule add from 192.168.100.2/32 table rt_lan100
ip rule add to 192.168.100.2/32 table rt_lan100

在虚拟机上(192.168.2.7,192.168.100.7)

/etc/iproute2/rt_tables
2 rt_lan2
100 rt_lan100

紧随其后

ip route add 192.168.2.0/24 dev ens3 src 192.168.2.7 table rt_lan2
ip route add default via 192.168.2.20 dev ens3 table rt_lan2
ip rule add from 192.168.2.7/32 table rt_lan2
ip rule add to 192.168.2.7/32 table rt_lan2

ip route add 192.168.100.0/24 dev ens9 src 192.168.100.7 table rt_lan100
ip route add default via 192.168.100.20 dev ens9 table rt_lan100
ip rule add from 192.168.100.7/32 table rt_lan100
ip rule add to 192.168.100.7/32 table rt_lan100

灵感来自优秀的文章

相关内容