使用 Raspberry 作为三个网络之间的路由器

使用 Raspberry 作为三个网络之间的路由器

我的网络设置有点复杂,我正尝试使用树莓派作为三个网络之间的路由器,并设置静态路由。请参阅下面的当前设置图片。

当前设置

基本上,这意味着我有一个带有 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。

相关内容