好吧,一张图片千言万语。3 个私有子网:
+-----+ +-----+
| PC2 | | PC3 |
Linux | .2 | | .3 |
__ +----------+ +-----+ +-----+
i \ | .1| | |
n ) +-----+ | ------|-----+----------+-----
t ( | | 192.168.0.0/24 |.1/ / |eth1 192.168.1.0/24
e > ----|FW .2|------------------| < LR X |
r ( | | eth0| \ \ |eth2 192.168.2.0/24
n ) +-----+ | ------|-----+----------+-----
e__/ | .1| | |
+----------+ +-----+ +-----+
Router | .4 | | .5 |
| PC4 | | PC5 |
+-----+ +-----+
Linux路由器:
ifcace eth0 inet static
address 192.168.0.1/24
gateway 192.168.0.2
dns-nameservers 8.8.8.8
ifcace eth1 inet static
address 192.168.1.1/24
ifcace eth2 inet static
address 192.168.2.1/24
PCx (..1.x):
ifcace eth0 inet static
address 192.168.1.x/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8
PCx (..2.x):
ifcace eth0 inet static
address 192.168.2.x/24
gateway 192.168.2.1
dns-nameservers 8.8.8.8
LR
# echo "1" > /proc/sys/net/ipv4/ip_forward
# ip route list
default via 192.168.0.2 dev eth0 onlink
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.1
Linux 路由器可以轻松 ping 到 FW 并与公共 Internet 通信。LR 也可以 ping 所有的 PC。PCx 可以 ping 到192.168.0.1
地址但不能 ping 到 FW 192.168.0.2
(主机不可达)
它不打算在 和 之间进行路由192.168.1.0/24
,192.168.2.0/24
但非常希望通过 FW 到达公共 Internet。我知道,可以用 iptables NAT 做一些事情,这意味着配置两个防火墙串联,但这不是我们需要的。首选简单的静态路由。
我用谷歌搜索了一个注释,设置“ip规则”可能会有所帮助,但不明白如何。
拜托,你能告诉我,什么该死的配置可以设置预期的路由?
ip route
可能是强大的工具,但是一些带有示例的清晰教程应该非常有用。
网络地址转换 (NAT) 并不特别关心本地 LAN IP 是什么。它只知道从外部接口转发到 Internet 的任何流量都必须在 IP 数据包中携带一个“发件人”地址,该地址与FW的外部接口上的公共 IP 相匹配。因此,您的图表没有理由不适用于传出流量。
但是当流量回来时,再次携带FW外部接口的“To”IP地址,NAT会尽职尽责地将“To”地址转换为匹配NAT表中记录的原始192.168.X.0/24地址。这就是问题开始的地方。如果原始地址是 192.168.0.x/24,没问题,因为FW在那个网络上有一个接口,因此知道如何直接到达那些主机。
但如果原始 IP 是 192.168.1.x 或 192.168.2.x,那么FW不知道这些 IP 在哪里。它在这两个网络上都没有接口,因此无法直接访问它们;并且FW不知道(除非您告诉它)这些 IP 应该被路由回LR,以便LR可以转发它们。
该问题的解决方案是在FW上设置静态路由,告诉它将网络 192.168.1.0/24 和 192.168.2.0/24 的流量路由到哪里,即将两个网络路由到 192.168.0.1。
鉴于您的评论说您可以在FW上使用 NAT 功能,但您不能更改其路由表,最简单的配置是将LR从充当路由器更改为充当网桥。回想一下,网桥连接同一网络广播域上的多个主机(通过学习每个桥接接口上的 MAC 地址),这与网络交换机的做法非常相似。
如果将路由器LR重新配置为桥接LB(桥接eth0、eth1和eth2),全程使用192.168.0.x/24个IP,并将192.168.0.2设置为所有主机的默认网关,那么FW不会只转发NAT 流量输出,但当流量返回时,它将能够毫无问题地将其传送回 192.168.0.X 网络。