网关可以ping通,但无法添加路由

我想使用10.1.16.189作为网关访问9.36.204.4在redhat 6.4上。 这里是我的机器的networkingconfiguration:

eth0 Link encap:Ethernet HWaddr 06:FB:C1:7B:19:FD inet addr:10.62.56.130 Bcast:10.62.56.255 Mask:255.255.255.128 inet6 addr: fe80::4fb:c1ff:fe7b:19fd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:435639 errors:0 dropped:0 overruns:0 frame:0 TX packets:13729 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:46426471 (44.2 MiB) TX bytes:1502807 (1.4 MiB) Interrupt:32 

我想用作网关的机器的networkingconfiguration:

  eth0 Link encap:Ethernet HWaddr 52:54:00:EA:31:A2 inet addr:9.42.27.23 Bcast:9.42.27.255 Mask:255.255.252.0 inet6 addr: 2002:92a:111:430:5054:ff:feea:31a2/64 Scope:Global inet6 addr: fe80::5054:ff:feea:31a2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:53655370 errors:0 dropped:0 overruns:0 frame:0 TX packets:21812264 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:30987415175 (28.8 GiB) TX bytes:27696977107 (25.7 GiB) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.16.44 PtP:1.1.1.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1450 Metric:1 RX packets:480532 errors:0 dropped:0 overruns:0 frame:0 TX packets:887766 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:70276913 (67.0 MiB) TX bytes:1234059626 (1.1 GiB) 

这是我的行动

 route add -host 10.1.16.189 dev eth0 gw 10.62.56.129 

添加访问主机9.36.204.4到10.1.16.189的方式

 route add -host 9.36.204.4 gw 10.1.16.189 SIOCADDRT: Network is unreachable 

但是我能ping和traceroute 10.1.16.189。

 ping 10.1.16.189 PING 10.1.16.189 (10.1.16.189) 56(84) bytes of data. 64 bytes from 10.1.16.189: icmp_seq=1 ttl=54 time=76.2 ms 64 bytes from 10.1.16.189: icmp_seq=2 ttl=54 time=75.4 ms 64 bytes from 10.1.16.189: icmp_seq=3 ttl=54 time=75.5 ms 

所以我想知道为什么它报告networking无法访问,但我可以ping和访问它,我什至可以ssh它。 以及如何configuration它以访问9.36.204.4(可以在10.1.16.189中find)。 如何确定一个网关是可达的。 谢谢。

您只能将路由添加到知道如何到达该网关的服务器。 当你第一次configuration10.62.56.130/25时,它只能到达地址10.62.56.128到10.62.56.128。 相比之下,它可以使用ARP为这些机器find任何MAC地址(第2层)。

然后,一旦添加了这条路线:

 route add -host 10.1.16.189 dev eth0 gw 10.62.56.129 

它知道它也可以达到10.1.16.189通过发送stream量到10.62.56.129。 它找不到10.1.16.189的MAC地址,但会发送到10.62.56.129,希望达到10.1.16.189。

所以当你尝试:

 route add -host 9.36.204.4 gw 10.1.16.189 

它不能转发stream量到10.1.16.189(没有MAC地址)。 正确的处理方法是使用命令:

 route add -host 9.36.204.4 gw 10.62.56.129 

为了确保10.62.56.129将路由到10.1.16.189 – 谁将路由到可能的下一个目的地(依此类推)最终达到9.36.204.4。

你想通过网关(10.1.16.189)添加一个路由到主机(9.36.204.4),而主机(10.62.56.130)不是本地的(10.62.56.130),这是不能完成的。 您可以pingbuild议的网关(10.1.16.189),因为您的本地网关有一个路由到该网关。 您需要通过本地网关为其他networking添加路由。

实质上,您不能使用远程网关添加路由。 您只能使用本地网关添加路由。