请帮助一个静态路由在centos 5.6上

我目前有一台机器连接到局域网和互联网工作正常。 我现在有了一个到远程办公室的专用连接,并且必须创build从我的机器到新办公室的一台机器的path,但是它必须通过专用线路(不通过互联网)。 我的机器有CentOS release 5.6

这里是我目前的设置图 (我不能在这里发布图片)

基本上从使用eth0到Internet的“MyServer”起作用。 eth0具有以下configuration。

 root@MyServer:/etc/sysconfig/network-scripts $ more ifcfg-eth0 # Intel Corporation 82578DC Gigabit Network Connection DEVICE=eth0 BOOTPROTO=none HWADDR=71:72:bd:ae:1f:49 ONBOOT=yes DHCP_HOSTNAME=MyServer.local IPADDR=192.168.3.11 NETMASK=255.255.255.0 GATEWAY=192.168.3.1 TYPE=Ethernet root@MyServer:/etc/sysconfig/network-scripts $ 

现在我必须在eth0上创build一个别名,并将其路由到“TARGET server”。 所以我所做的就是创build一个名为eth0:0的文件,内容如下:

 root@MyServer:/etc/sysconfig/network-scripts $ more ifcfg-eth0:0 # Intel Corporation 82578DC Gigabit Network Connection DEVICE=eth0:0 BOOTPROTO=none HWADDR=71:72:bd:ae:1f:49 ONBOOT=yes DHCP_HOSTNAME=MyServer.local IPADDR=172.23.10.37 NETMASK=255.255.255.252 TYPE=Ethernet root@MyServer:/etc/sysconfig/network-scripts $ 

有了这个,我现在可以ping 172.23.10.38

 root@MyServer:/etc/sysconfig/network-scripts $ ping 172.23.10.38 PING 172.23.10.38 (172.23.10.38) 56(84) bytes of data. 64 bytes from 172.23.10.38: icmp_seq=1 ttl=255 time=6.30 ms 64 bytes from 172.23.10.38: icmp_seq=2 ttl=255 time=2.07 ms 64 bytes from 172.23.10.38: icmp_seq=3 ttl=255 time=3.13 ms --- 172.23.10.38 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 2.071/3.839/6.309/1.801 ms root@MyServer:/etc/sysconfig/network-scripts $ 

但我的目标是要达到192.168.1.96,并到达那里与源IP地址172.23.10.37

所以我加了下面的路线

 root@MyServer:/etc/sysconfig/network-scripts $ route add -host 192.168.1.96 eth0:0 root@MyServer:/etc/sysconfig/network-scripts $ ip route list 192.168.1.96 dev eth0 scope link src 172.23.10.37 172.23.10.36/30 dev eth0 proto kernel scope link src 172.23.10.37 192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.11 169.254.0.0/16 dev eth0 scope link default via 192.168.3.1 dev eth0 root@MyServer:/etc/sysconfig/network-scripts $ 

或者用netstat -rn

 root@MyServer:/etc/sysconfig/network-scripts $ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.96 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 172.23.10.36 0.0.0.0 255.255.255.252 U 0 0 0 eth0 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.3.1 0.0.0.0 UG 0 0 0 eth0 root@MyServer:/etc/sysconfig/network-scripts $ 

从路由列表中,似乎已经设置。 192.168.1.96 dev eth0 scope link src 172.23.10.37traceroute 192.168.1.96显示了我似乎是真的试图走出eth0:0

 root@MyServer:/etc/sysconfig/network-scripts $ traceroute 192.168.1.96 traceroute to 192.168.1.96 (192.168.1.96), 30 hops max, 40 byte packets 1 172.23.10.37 (172.23.10.37) 3001.699 ms !H 3001.698 ms !H 3001.693 ms !H root@MyServer:/etc/sysconfig/network-scripts $ 

但正如你所看到的主机是无法访问的。 pipe理远程服务器的人向我保证,他们的机器确实会响应ping,而在我这边,iptables暂时停止,以确保没有外部variables。 此外,我们之间的路由器/防火墙上的防火墙服务暂时停止。

所以基本上我有两个问题。 1)我做错了什么? 2)一旦我得到它的工作,如何将临时route add -host 192.168.1.96 eth0:0命令更改为持久路由? 我正在阅读的最干净的方法是添加一个名为/etc/sysconfig/network-scripts/route-eth0:0 ,内容如下

192.168.1.96 via 172.23.10.37 dev eth0:0这是正确的吗?

希望我已经提供了足够的信息来debugging这个。 谢谢,-gk

路由应该使用172.23.10.38(路由器ip)作为网关。 要testing使用:

路由添加主机192.168.1.96 gw 1​​72.23.10.38

route-eth0:0文件入口是:

192.168.1.96/32通过172.23.10.38

/etc.sysconfig/network-scripts方法是在/etc.sysconfig/network-scripts中的route-eth0:0中添加正确的条目,然后运行service network restart 。 那将为该路由使用指定的eth0:0接口。

我build议你尝试做一个traceroute到服务器,从服务器到你的机器。 这可能会丢弃这样一个事实,即有一个路由器将两个networking隔开,并且允许机器之间的通信。