在写静态路由时,如果链路是点到点的链路(例如PPP 封装的链路),采用网关地址和接口都是可以的;然而如果链路是多路访问的链路(例如以太网),则只能采用网关地址,
即不能:ip route 192.168.1.0 255.255.255.0 f0/0 。
默认路由,是指路由器在路由表中如果找不到到达目的网络的具体路由时,最后会采用的路由。默认路由通常会在存根网络(Stub network,即只有一个出口的网络)中使
用。网络到Internet 上只有一个出口,因此可以配置默认路由。
(1) 步骤1:在各路由器上配置IP 地址、保证直连链路的连通性
(2)配置静态路由
R1(config)#ip route 2.2.2 .0 255.255.255.0 s0/0/0
//下一跳为接口形式,s0/0/0 是点对点的链路,注意应该是R1 上的s0/0/0 接口
R1(config)#ip route 3.3.3 .0 255.255.255.0 192.168.12.2
//下一跳为IP 地址形式,192.168.12.2 是R2 上的IP 地址
(3) 步骤3:R2 上配置静态路由
R2(config)#ip route 1.1.1 .0 255.255.255.0 s0/0/0
R2(config)#ip route 3.3.3 .0 255.255.255.0 s0/0/1
(4) 步骤4:R3 上配置静态路由
R3(config)#ip route 1.1.1 .0 255.255.255.0 s0/0/1
R3(config)#ip route 2.2.2 .0 255.255.255.0 s0/0/1
实验调试
R1#ping 2.2.2 .2 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2 .2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1 .1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/14/16 ms
R2#ping 1.1.1 .1 source loopback 0
R2#ping 3.3.3 .3 source loopback 0
//从R2 的loopback0 应该可以ping 通R1 和R3 的lopback0 接口。
R3#ping 1.1.1 .1 source loopback 0
R3#ping 2.2.2 .2 source loopback 0
//从R3 的loopback0 也应该可以ping 通R1 和R2 的lopback0 接口。
虽然从R1 的loopback0 可以ping 通R3 的loopback0,数据需要经过192.168.23.0/24 网络,但是在R1 上我们并没有添加192.168.23.0/24 的路由。路由器转发数据包完成是根据路由表的,并且数据是一跳一跳地被转发的,就像接力赛似的。从R1的loopback0 口ping R3 的loopback0 口时,IP 数据包的源IP 为 1.1.1 .1,目的IP 为3.3.3.3。R1 路由器首先查路由表,数据包被发到了R2;R2 路由器也查路由表( 3.3.3 .0/24 路由),数据包被发到了R3;R3 知道这是直连路由。R3 响应R1 的数据包进行类似的过程。
R1可以ping通 2.2.2 .2,直连嘛当然可以通O(∩_∩)O
R1#ping 3.3.3 .3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3 .3, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
//以上无法ping 通,原因在于使用ping 命令时,如果不指明源接口,则R1 路由器使用s0/0/0接口的IP 地址(192.168.12.1)作为IP 数据包的源IP 地址了。R3 上响应R1 的数据包时,数据包是发向192.168.12.1 的,然而由于R3 没有192.168.12.0/24 的路由,数据包无法发送。即:数据包从R1 到了R3 后,无法返回R1。
总结:ping x.x.x.x是由与路由器直连的接口转发出去的,ping x.x.x.x source loopback 0则是由指定的环回口出去的,这样就知道了为什么直接ping不同的道理了。
实际上想全通只需在R2上加两条到环回口的静态路由,R1,R3上各加一条静态路由就行了。