![两个 eth 设备、两个子网、pfSense 和 VM](https://linux22.com/image/742534/%E4%B8%A4%E4%B8%AA%20eth%20%E8%AE%BE%E5%A4%87%E3%80%81%E4%B8%A4%E4%B8%AA%E5%AD%90%E7%BD%91%E3%80%81pfSense%20%E5%92%8C%20VM.png)
从 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
灵感来自优秀的文章