我有一个带有两个网卡的
Linux机箱,每个网卡都连接到不同的局域网:
>网络A:192.168.1.0 255.255.255.0
>网络B:192.168.2.0 255.255.255.0
路由器是:
> 192.168.1.1
> 192.168.2.1
Linux NIC是:
> 192.168.1.2
> 192.168.2.2
我希望网络A中的所有主机能够ping通网络B中的所有主机,反之亦然.
到目前为止我做了什么:
在Linux机器上:sudo sysctl -w net.ipv4.ip_forward = 1
在192.168.1.1:route add 192.168.2.0 255.255.255.0 gw 192.168.1.2
在192.168.2.1:route add 192.168.1.0 255.255.255.0 gw 192.168.2.2
我尝试了两个不同的Linux发行版(Zentyal和Ubuntu)并没有任何工作.
网络A中的主机只能ping 192.168.2.2,但不能ping网络B中的任何其他主机,反之亦然.我究竟做错了什么?
解决方法
您应该设置以下静态路由:
在192.168.1.1路由器上:
192.168.2.0/24 next hop 192.168.1.2
在192.168.2.1路由器上:
192.168.1.0/24 next hop 192.168.2.2
这样,这些网络中的其他计算机将数据包发送到其默认网关(.1),然后使用其静态路由表条目将数据包转发到Linux机箱,然后将该数据包转发到另一个网络.