编辑:当我完成这篇疯狂的长篇文章时,我解决了我的问题.我根本没有在我的
Windows防火墙中启用ping回复,这就是为什么我无法从网络1或网络2 ping网络0上的计算机(见下文).当然,当我试图ping网络0上的互联网路由器时,它不起作用,因为我忽略了设置非默认网关就像我做了我的窗口.
所以,我给你“正确”的方式来设置一个Linux盒子作为子网之间的简单网关.只需记住在客户端上正确设置所有网关(简单规则:默认网关应该是到Internet的路由,然后为连接到子网中其他网关的每个子网设置1个网关.
我正在使用连接3个子网的Ubuntu linux盒创建一个测试网络.这是我的拓扑:
*********************** * Internet Router * * 192.168.2.1 * *********************** * *************** * * Client 0 * *************** *192.168.2.117* * Switch * * * * * * * Windows * *************** *************** * * 192.168.2.0/24 = Network 0 * Network 1 *************** Network 2 192.168.1.0/24 * eth0 * 10.25.0.0/16 * * * * * * * * * * * * * * * *eth1 eth2* * * * * * * * * * ************* * Ubuntu Srvr * ************* *192.168.1.5* *************** * 10.25.0.5 * * * * * * client 1 * * client 2 * * * * * ************* *************
我的ubuntu服务器的/ etc / network / interfaces文件是:
auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.2.192 network 192.168.2.0 netmask 255.255.255.0 broadcast 192.168.2.255 gateway 192.168.2.1 # Subnet 1 auto eth1 iface eth1 inet static address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 auto eth2 iface eth2 inet static address 10.25.0.1 network 10.25.0.0 netmask 255.255.0.0 broadcast 10.25.255.255
我在/etc/sysctl.conf中没有注释net.ipv4.ip_forward = 1
我还运行命令echo 1>的/ proc / SYS /网/的IPv4 / IP_FORWARD
客户端1的默认网关是192.168.1.1
客户端2的默认网关是10.25.0.1
网络0上的客户端0有3个网关:
>默认值:192.168.2.1(互联网路由器)
> 192.168.1.0/24:192.168.2.192(ubuntu eth0)
> 10.25.0.0/16:192.168.2.192(ubuntu eth0)
我正在使用ping测试此设置.
>我可以从网络0 ping任何网络上的任何计算机.
>我可以ping网络1或2上的任何计算机,从网络1或2.
>问题是我不能从网络1或2 ping网络0上的任何计算机
使用iptraf,我看到ping请求来自于eth1上的192.168.1.5到192.168.2.117
但是,我没有看到回复.
……只是弄明白了(参见编辑开头).如果你做到这一点,抱歉让人失望.