我的网络设置有点复杂,我正尝试使用树莓派作为三个网络之间的路由器,并设置静态路由。请参阅下面的当前设置图片。
基本上,这意味着我有一个带有 3 个网络接口的 Raspberry Pi:
- Eth0:IP 192.168.1.100 连接到防火墙/VPN 硬件。所有到 84.0.0.0/8 的连接都应通过此接口
- Eth2:IP 192.168.2.1 连接到连接互联网的路由器
- Eth1:192.168.99.100 连接本地网络
所有这些 IP 地址都是静态的。我还已经在 Raspberry 上为 84 条规则设置了静态路由:
route add -net 84.0.0.0/8 gw 192.168.1.100
我还删除了 eth0 的默认网关
route del default gw 192.168.1.100 eth0
我的路由表现在如下所示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 204 0 0 eth2
84.0.0.0 192.168.1.100 255.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 204 0 0 eth2
192.168.99.0 0.0.0.0 255.255.255.0 U 203 0 0 eth1
IP 路由输出
default via 192.168.2.1 dev eth2 metric 204
84.0.0.0/8 via 192.168.1.100 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10 metric 202
192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.28 metric 204
192.168.99.0/24 dev eth1 proto kernel scope link src 192.168.99.100 metric 203
如果我在 Raspberry 上对 84 的 IP 进行跟踪路由,它看起来是正确的,流量通过 eth0 路由,所有其他流量都通过 eth2 路由。
traceroute to 84.72.108.96 (84.72.108.96), 30 hops max, 60 byte packets
1 192.168.1.100 (192.168.1.100) 9.253 ms 9.047 ms 8.786 ms
2 84.72.0.228 (84.72.0.228) 34.397 ms 34.840 ms 34.753 ms
我也设置了
net.ipv4.ip_forward = 1
问题是,如果我通过 PC(例如 PC1)连接到网络,则无法访问互联网。PC 的网关设置为 192.168.99.100。
我认为我现在必须在 Raspberry 上为 eth1 创建静态路由,但我有点卡住了。
有人能帮助我完成这个设置并使其正常工作吗?
答案1
Raspberry Pi 上的路由可能没问题。您需要确保面向 Internet 的路由器具有指向 192.168.2.1 的 192.168.99.* 路由。此外,您需要将防火墙/VPN NAT (PAT) 源 IP 从 192.168.99.* 设置为防火墙/VPN 与路由器之间串行链路上的 IP。
如果路由器收到源 IP 为 192.168.99.* 的数据包,它将始终将回复数据包路由到同一个网关,在您的情况下可能是 192.168.2.1,而不是防火墙/VPN 的 IP。