这是我的情况,我有一个路由器 R1,其外部 IP 地址为 11.11.2.1。我有另一个路由器 R2,其外部 IP 地址为 5.5.2.1。
我在 R1 和 R2 上运行 eBGP。但是,我无法从 R1 ping R2,从 R2 ping R1。我怎样才能让他们互相ping通?我知道他们在不同的子网中。但是,这可能是一个实际情况,我不想强制外部 IP 地址与其他路由器接口的子网匹配。
我有一台 linux Fedora -16 机器,它有两个接口——
em1 Link encap:Ethernet HWaddr B8:CA:3A:89:EE:F1
inet addr:136.170.195.17 Bcast:136.170.195.255 Mask:255.255.252.0
inet6 addr: fec0::f:baca:3aff:fe89:eef1/64 Scope:Site
inet6 addr: 2002:88aa:c268:f:baca:3aff:fe89:eef1/64 Scope:Global
inet6 addr: fe80::baca:3aff:fe89:eef1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6363373 errors:0 dropped:2 overruns:0 frame:0
TX packets:1571017 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4502189587 (4.1 GiB) TX bytes:175801460 (167.6 MiB)
Interrupt:20 Memory:f7f00000-f7f20000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:765 errors:0 dropped:0 overruns:0 frame:0
TX packets:765 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:85089 (83.0 KiB) TX bytes:85089 (83.0 KiB)
p3p1 Link encap:Ethernet HWaddr 14:D6:4D:1F:F3:F8
inet addr:10.240.100.110 Bcast:10.240.100.255 Mask:255.255.255.0
inet6 addr: fe80::16d6:4dff:fe1f:f3f8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2615351 errors:0 dropped:0 overruns:0 frame:0
TX packets:2868133 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1081785835 (1.0 GiB) TX bytes:1577912608 (1.4 GiB)
在接口 p3p1 上,我正在运行一个 dhcp 服务器。我在 NFS 上运行的嵌入式设备从 p3p1 获取 IP 地址。p3p1 接口连接到我的嵌入式设备 - 点对点。
现在,从嵌入式框(基于 linux 的系统)中,我想 ping/访问地址 - 136.170.195.17。
我不能执行以下操作,因为 gw 不知道如何为 136.170.0.0 子网路由数据包。所以,我得到一个错误 -
# ping 136.170.195.17
PING 136.170.195.17 (136.170.195.17): 56 data bytes
ping: sendto: Network is unreachable
由于通信是在不同的网络上,我需要在设备中添加路由。所以,我所做的是在我的 linux 机器中启用数据包转发。接下来,我添加了这样的路线。
# /sbin/route add net 136.170.192.0 netmask 255.255.252.0 gw 10.240.100.110
route: resolving net
我收到上述错误。我认为我对网络的理解并不正确。我收到以下错误的原因是什么?实际上,我对上述错误感到困惑。在我看来,我的概念没有任何问题,比如启用数据包转发并为发往不同子网的数据包添加路由。因为对于同一个子网,路由不会出现 - 它只是基于 ARP。我该如何解决这个问题?我的理解有问题吗?
这是盒子路由表 -
# netstat -anr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.240.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
这是我的 PC 路由表 -
$ netstat -arn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 136.170.192.2 0.0.0.0 UG 0 0 0 em1
10.240.100.0 0.0.0.0 255.255.255.0 U 0 0 0 p3p1
136.170.192.0 0.0.0.0 255.255.252.0 U 0 0 0 em1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 p3p1