这是我的网络拓扑:
- ISP:192.168.0.1
- pfSense:(ip dhcp)<-> 192.168.1.1
- pfSense 执行出站 NAT,以便从接口 (ip dhcp) 传出的所有流量都是 NAT,以将所有“内部”地址映射到单个 IP
- 这是为了防止 ISP 路由器看到发往(例如)192.168.2.X 的流量但不知道 192.168.2.X 是什么的问题。 (我无法设置静态路由。)
- Raspberry-Pi:(来自 pfSense 的 ip dhcp)<-> 192.168.2.254
- 其他设备通过 dnsmasq 从 Raspberry-Pi 接收 IP 地址。
ISP [192.168.0.1] <-> [DHCP IP] pfSense [192.168.1.1] <->
[192.168.1.220 DHCP reserved] R-Pi [192.168.2.254] <->
devs on my network incl 192.168.2.101
以下是此类设备的示例:
- 192.168.2.101
- Ping 至 192.168.2.254 = 正常
- Ping 到 192.168.1.1 = 失败
相反:
- 192.168.1.1(pfSense)可以成功 ping 通 192.168.2.101
在 pfSense 上,我设置了一个网关(LAN 接口),IP 为 192.168.1.220(由 pfSense DHCP 给出的值,尽管由于显而易见的原因,这是一个保留的 IP)
我还设置了通过 192.168.1.220 到网络 192.168.2.0/24 的静态路由。
Raspberry Pi iptables 已刷新。
以下是使用计算机 192.168.2.101 向 pfSense 框 (192.168.1.1) 发出 ping 请求的数据包捕获。
14:43:41.042222 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 1, length 64
14:43:42.050051 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 2, length 64
14:43:43.074070 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 3, length 64
14:43:44.098041 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 4, length 64
14:43:45.122050 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 5, length 64
14:43:46.146034 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 6, length 64
14:43:47.169980 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 7, length 64
14:43:48.193955 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 8, length 64
14:43:49.218050 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 9, length 64
14:43:50.241974 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 10, length 64
14:43:51.265982 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 11, length 64
14:43:52.290022 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 12, length 64
14:43:53.313970 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 13, length 64
14:43:54.337960 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 14, length 64
14:43:55.361926 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 15, length 64
14:43:56.385927 IP 192.168.2.101 > 192.168.1.1: ICMP echo request, id 2215, seq 16, length 64
看起来 pfSense 路由器根本就不想尝试回复。这看起来真的很奇怪,因为我可以通过 ssh 进入网络192.168.2.101
上使用的设备192.168.1.0
,所以 pfSense 盒子清楚地知道将发往某个192.168.2.0
地址的流量发送到哪里。
我不确定还需要测试什么来诊断这个问题?
树莓派dnsmasq.conf
dhcp-lease-max=11
server=192.168.2.1
server=192.168.1.1
interface=eth0
dhcp-range=192.168.2.128,192.168.2.199,255.255.255.0,24h
dhcp-host=... some stuff here...
ip route
default via 192.168.1.1 dev eth1 proto dhcp src 192.168.1.220 metric 204
192.168.1.0/24 dev eth1 proto dhcp scope link src 192.168.1.220 metric 204
192.168.2.0/24 dev eth0 proto dhcp scope link src 192.168.2.254 metric 202