深入讲解静态路由

 

只有懂得静态路由,才能懂得路由的本质

 

路由的几个基本原则

1.有去有回

不仅要验证去往目标网络的路由是正确的,还要验证返回的路径也是正确的。

 

2.沿途所有路由器必须有到达目标网络的路由

IP是无连接的,路由器只能决定如何到达下一跳,不能决定以后的路怎么走,因为路由信息是由邻居告诉我的,剩下的事交给邻居。

走一步算一步,期望是桥到岸边自然直,没准是“桥到岸边自然沉”(路由黑洞)

 

3.路由的类型:

直连路由

静态路由

动态路由

可以不配置,但并不代表不查找路由表

想到达目的网络一定要有路由,不管是以什么形式出现的(直连、静态、动态)

 

关于直连路由

直连路由是由数据链路层协议发现的,是指去往路由器的接口地址所在网段的路径,该路径信息需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于激活状态,路由器就会把直连接口所在网段的路由信息填写到路由表中去。

 

4.路由是根据目的IP地址进行转发,然而源IP地址也同样重要,因为回包的时候要用到它。

 

实验:不同的源,回来的路不同

 

5.关于下一跳和出接口

在配置静态路由时,必须满足一下条件。首先IP路由选择必须启动,如果使用下一跳地址,那么该地址必须可达;其次出站接口必须配置IP地址,接口必须正常工作。

 

一定要查到出接口,因为涉及到封装,然而下一跳可通,出接口未必是通的。

在点到点网络(封装PPPHDLC),写出接口还是下一跳都是没有问题的,但是对于以太网,写出接口就可能有问题了

代理ARP

最后的最后还是要递归查找到出接口,然而路由知道出接口而不知道下一跳是不能通的(之所以通了是因为代理ARP在作怪),在接口看来只指定出站接口但没有下一跳相当于不知道网关在哪,而不知道网关在哪,到达非直连网段,正确的ARP表项就无从建立了。

 

6.静态路由的管理距离和metric

静态路由不能指定metric值,但可以指定distance,通过指定distance可以做浮动静态路由

 

7.递归查找

路由表的递归查找。最后一定递归到某个接口,哪怕是虚拟接口。

 

8.路由器只需要知道目的网段的路由,不需要知道所经网段的路由

 

 

 

情况1:直连ping

image

直连能ping?为什么能ping通?

不要告诉我,直连就是能ping通啊,直连本来就可以ping通。

可以ping通的前提是一定要有路由,直连路由是不需要我们配置的。只有接口的状态是UP的,同时接口下配置了IP地址,就会有直连路由。

 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#int e0/1

R1(config-if)#ip address 12.1.1.1 255.255.255.0

R1(config-if)#no shutdown

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#int e 0/0                   

R2(config-if)#ip address 12.1.1.2 255.255.255.0

R2(config-if)#no shutdown

 

测试:

R1#  show ip route

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route, + - replicated route

 

Gateway of last resort is not set

 

      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        12.1.1.0/24 is directly connected, Ethernet0/1

L        12.1.1.1/32 is directly connected, Ethernet0/1

 

R1#ping 12.1.1.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 4/5/8 ms

 

问题:为什么第一个包没有ping通?

 

 

情况2R1 ping 2.2.2.2

image

虽然2.2.2.2是邻居家的路由,然而我也必须知道如何到达,直连路由都需要有,邻居家的路由就更不必说了。

路由需要写什么?

目标网络2.2.2.0 255.255.255.0

下一跳地址 12.1.1.2

事实上,不管是路由是邻居家的,还是邻居的邻居,还是邻居的邻居的邻居,路由都是这样写,目标网络和下一跳,我只需要知道目的网络如何交给正确的下一跳就可以了,下一跳如何转发,交给哪个下一跳就不是我的管辖范围了。

 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface ethernet 0/0

R1(config-if)#ip address 12.1.1.1 255.255.255.0

R1(config-if)#exit

R1(config)#interface loopback 0

R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config-if)#exit

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface ethernet 0/0

R2(config-if)#ip address 12.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config-if)#interface loopback 0

R2(config-if)#ip address 2.2.2.2 255.255.255.0

R2(config-if)#exit

 

 

R1去往R2loopback0的接口地址,R1应该如何写路由?

R1(config)#ip route 2.2.2.0 255.255.255.0 12.1.1.2

 

测试:

R1#ping 2.2.2.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/20 ms

 

情况3R1 ping 2.2.2.2 source 1.1.1.1

image

制定发送数据包的源地址为1.1.1.1

默认情况下,数据包的源地址为出站接口的IP地址,也就是查找路由表,递归查找,直到查找到出接口,然后把对应出接口上配置的IP地址作为源IP地址

R1上配置路由ip route 2.2.2.0 255.255.255.0 12.1.1.2

指定源ip地址的时候,ping是不通的。

原因:这不满足“有去有回”的原则

去的路由是正确的,R1知道如何到达R2的环回口

回来的路由是不正确的,因为R2不知道如何到达1.1.1.1,所以R2需要知道到达1.1.1.1的路由:ip route 1.1.1.0 255.255.255.0 12.1.1.1

那为什么情况2,就不需要写路由呢?

因为R1的源地址是出站接口的IP地址,也就回来的时候的目标IP地址,而这个IP地址是R2的直连网段,所以不需要我们手工写静态路由条目。

 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface ethernet 0/0

R1(config-if)#ip address 12.1.1.1 255.255.255.0

R1(config-if)#exit

R1(config)#interface loopback 0

R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config-if)#exit

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface ethernet 0/0

R2(config-if)#ip address 12.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config-if)#interface loopback 0

R2(config-if)#ip address 2.2.2.2 255.255.255.0

R2(config-if)#exit

 

 

R1(config)#ip route 2.2.2.0 255.255.255.0 12.1.1.2

R2(config)#ip route 1.1.1.0 255.255.255.0 12.1.1.1

 

 

 

情况4ping 23.1.1.3


image

原则:沿途所有路由器必须有到达目的网络的路由。

虽然数据包不是由R2发起的,但R2作为传输路由器,需要知道到达目的网络的路由,这个原则和“有去有回”的原则不是冲突的,需要同时满足,也就是说,R2上需要同时有“来的路由”和“去的路由”

在情况4中,源地址是12.1.1.1,目的地址是23.1.1.3,这两个IP地址都是R2的直连网段,所以就不需要我们手工写静态条目了。

同时需要注意的是,12.1.1.0不是R3的直连路由,R3上需要我们手工添加一条到达12.1.1.0的路由。

这就告诉我们:要想通,就必须有路由,区别就在于需要我们写还是不需要我们写,并不代表路由表中可以没有。

 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface ethernet 0/0

R1(config-if)#ip address 12.1.1.1 255.255.255.0

R1(config-if)#no shutdown

R1(config-if)#exit

R1(config)#interface loopback 0

R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config-if)#exit

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface ethernet 0/0

R2(config-if)#ip address 12.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit    

R2(config)#interface ethernet 0/1

R2(config-if)#ip address 23.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config)#interface loopback 0

R2(config-if)#ip address 2.2.2.2 255.255.255.0

R2(config-if)#exit

 

R3#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#interface ethernet 0/1

R3(config-if)#ip address 23.1.1.3 255.255.255.0

R3(config-if)#no shutdown

R3(config-if)#exit

R3(config)#interface loopback 0

R3(config-if)#ip address 3.3.3.3 255.255.255.0

R3(config-if)#exit

 

测试直连连通性

R2#ping 12.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#ping 23.1.1.3

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#

 

R1(config)#ip route 23.1.1.0 255.255.255.0 12.1.1.2

R3(config)#ip route 12.1.1.0 255.255.255.0 23.1.1.2

 

情况5R1 ping 3.3.3.3

image

在这种情况下,根据“沿途所有路由器都必须有到达目的网络的路由”和“有去有回”的原则,R2需要知道3.3.3.3的路由和12.1.1.1的路由,12.1.1.0是直连网段,所以在R2上只需要写到达3.3.3.3的路由。

R1需要写什么路由?R3需要写什么路由?

 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface ethernet 0/0

R1(config-if)#ip address 12.1.1.1 255.255.255.0

R1(config-if)#no shutdown

R1(config-if)#exit

R1(config)#interface loopback 0

R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config-if)#exit

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface ethernet 0/0

R2(config-if)#ip address 12.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit    

R2(config)#interface ethernet 0/1

R2(config-if)#ip address 23.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config)#interface loopback 0

R2(config-if)#ip address 2.2.2.2 255.255.255.0

R2(config-if)#exit

 

R3#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#interface ethernet 0/1

R3(config-if)#ip address 23.1.1.3 255.255.255.0

R3(config-if)#no shutdown

R3(config-if)#exit

R3(config)#interface loopback 0

R3(config-if)#ip address 3.3.3.3 255.255.255.0

R3(config-if)#exit

 

测试直连连通性

R2#ping 12.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#ping 23.1.1.3

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#

 

 

R1(config)#ip route 3.3.3.0 255.255.255.0 12.1.1.2

R2(config)#ip route 3.3.3.0 255.255.255.0 23.1.1.3

R3(config)#ip route 12.1.1.0 255.255.255.0 23.1.1.2

分析

 

情况6R1 ping 3.3.3.3 source 1.1.1.1

image

在这种情况下,根据“沿途所有路由器都必须有到达目的网络的路由”和“有去有回”的原则,R2需要知道3.3.3.3的路由和1.1.1.1的路由。

 

问题:R1需要知道23.1.1.0网段的路由吗,R3需要知道12.1.1.0网段的路由吗?

虽然R1去往R3需要经过23.1.1.0网段,但是我不需要如何到达23.1.1.0。因为IP转发还有一个特点,除非特殊情况(在NAT使用的情况)下,源目IP地址是不会改变的,路由器是根据目标地址进行转发,所以在转发的过程中不会用到23.1.1.0这个网段,所以R1就不需要知道23.1.1.0。当然如何目标网段就是23.1.1.0R1需要有到达23.1.1.0网段的路由。

结论:我们只需要知道目的网络的路由,不需要知道沿途网段的路由

 

不需要并不代表我们不能这样写——递归,一种闲着蛋疼的做法

R1                                        

ip route 3.3.3.0 255.255.255.0 23.1.1.3

ip route 23.1.1.0 255.255.255.0 12.1.1.2

 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface ethernet 0/1

R1(config-if)#ip address 12.1.1.1 255.255.255.0

R1(config-if)#no shutdown

R1(config-if)#exit

R1(config)#interface loopback 0

R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config-if)#exit

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface ethernet 0/0

R2(config-if)#ip address 12.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit    

R2(config)#interface ethernet 0/1

R2(config-if)#ip address 23.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config)#interface loopback 0

R2(config-if)#ip address 2.2.2.2 255.255.255.0

R2(config-if)#exit

 

R3#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#interface ethernet 0/0

R3(config-if)#ip address 23.1.1.3 255.255.255.0

R3(config-if)#no shutdown

R3(config-if)#exit

R3(config)#interface loopback 0

R3(config-if)#ip address 3.3.3.3 255.255.255.0

R3(config-if)#exit

 

测试直连连通性

R2#ping 12.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#ping 23.1.1.3

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#

 

R1(config)#ip route 3.3.3.0 255.255.255.0 12.1.1.2

R2(config)#ip route 3.3.3.0 255.255.255.0 23.1.1.3

R3(config)#ip route 1.1.1.0 255.255.255.0 23.1.1.2

R2(config)#ip route 1.1.1.0 255.255.255.0 12.1.1.1

 

 

 

 

递归路由(三台路由器)

image

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface ethernet 0/1

R1(config-if)#ip address 12.1.1.1 255.255.255.0

R1(config-if)#no shutdown

R1(config-if)#exit

R1(config)#interface loopback 0

R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config-if)#exit

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface ethernet 0/0

R2(config-if)#ip address 12.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit    

R2(config)#interface ethernet 0/1

R2(config-if)#ip address 23.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config)#interface loopback 0

R2(config-if)#ip address 2.2.2.2 255.255.255.0

R2(config-if)#exit

 

R3#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#interface ethernet 0/0

R3(config-if)#ip address 23.1.1.3 255.255.255.0

R3(config-if)#no shutdown

R3(config-if)#exit

R3(config)#interface loopback 0

R3(config-if)#ip address 3.3.3.3 255.255.255.0

R3(config-if)#exit

 

测试直连连通性

R2#ping 12.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#ping 23.1.1.3

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#

 

R1(config)#ip route 3.3.3.0 255.255.255.0 23.1.1.3

R1(config)#ip route 23.1.1.0 255.255.255.0 12.1.1.2

递归查询

注意:即便有递归查询,“沿途所有路由器都必须有到达目的网络的路由”的原则是不会变的,所以R2也需要有到达3.3.3.0的路由

R2(config)#ip route 3.3.3.0 255.255.255.0 23.1.1.3

 

R3上需要写回来的路由

R3(config)#ip route 12.1.1.0 255.255.255.0 23.1.1.2

 

R2就不用写回来的路由了,因为网段12.1.1.0是直连网段

 

测试

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 100 percent (5/5), round-trip min/avg/max = 4/5/8 ms

 

 

 

 

好玩的递归查询

image

R1上的递归查询路由

 

R1(config)#ip route 10.4.1.0 255.255.255.0 10.1.2.4

R1(config)#ip route 10.4.2.0 255.255.255.0 10.1.2.4

R1(config)#ip route 10.4.3.0 255.255.255.0 10.1.2.4

R1(config)#ip route 10.5.1.0 255.255.255.0 10.1.2.5

R1(config)#ip route 10.5.2.0 255.255.255.0 10.1.2.5

R1(config)#ip route 10.5.3.0 255.255.255.0 10.1.2.5

R1(config)#ip route 10.1.2.0 255.255.255.0 10.1.1.2

现在所有去往R4R5的路由都会从R2

 

R2R3需要有到达目的网络的路由

 

R2(config)#ip route 10.4.1.0 255.255.255.0 10.1.2.4

R2(config)#ip route 10.4.2.0 255.255.255.0 10.1.2.4

R2(config)#ip route 10.4.3.0 255.255.255.0 10.1.2.4

R2(config)#ip route 10.5.1.0 255.255.255.0 10.1.2.5

R2(config)#ip route 10.5.2.0 255.255.255.0 10.1.2.5

R2(config)#ip route 10.5.3.0 255.255.255.0 10.1.2.5

R3(config)#ip route 10.4.1.0 255.255.255.0 10.1.2.4

R3(config)#ip route 10.4.2.0 255.255.255.0 10.1.2.4

R3(config)#ip route 10.4.3.0 255.255.255.0 10.1.2.4

R3(config)#ip route 10.5.1.0 255.255.255.0 10.1.2.5

R3(config)#ip route 10.5.2.0 255.255.255.0 10.1.2.5

R3(config)#ip route 10.5.3.0 255.255.255.0 10.1.2.5

 

经常容易忽略的问题,回来的路由也要有

 

R4(config)#ip route 10.1.1.0 255.255.255.0 10.1.2.2

R4(config)#ip route 10.1.1.0 255.255.255.0 10.1.2.3

 

R5(config)#ip route 10.1.1.0 255.255.255.0 10.1.2.2

R5(config)#ip route 10.1.1.0 255.255.255.0 10.1.2.3

 

两条路由负载均衡

 

 

 

R1#ping         

Protocol [ip]:

Target IP address: 10.4.1.1

Repeat count [5]:

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]: y

Source address or interface:

Type of service [0]:

Set DF bit in IP header? [no]:

Validate reply data? [no]:

Data pattern [0xABCD]:

Loose, Strict, Record, Timestamp, Verbose[none]: r

Number of hops [ 9 ]:

Loose, Strict, Record, Timestamp, Verbose[RV]:

Sweep range of sizes [n]:

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.4.1.1, timeout is 2 seconds:

Packet has IP options:  Total option bytes= 39, padded length=40

 Record route: <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 

Reply to request 0 (1 ms).  Received packet has options

 Total option bytes= 40, padded length=40

 Record route:

   (10.1.1.1)

   (10.1.2.3)

   (10.1.2.4)

   (10.1.2.4)

   (10.1.1.2)

   (10.1.1.1) <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 End of list

 

Reply to request 1 (1 ms).  Received packet has options

 Total option bytes= 40, padded length=40

 Record route:

   (10.1.1.1)

   (10.1.2.3)

   (10.1.2.4)

   (10.1.2.4)

   (10.1.1.3)

   (10.1.1.1) <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 End of list

 

Reply to request 2 (1 ms).  Received packet has options

 Total option bytes= 40, padded length=40

 Record route:

   (10.1.1.1)

   (10.1.2.3)

   (10.1.2.4)

   (10.1.2.4)

   (10.1.1.2)

   (10.1.1.1) <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 End of list

 

Reply to request 3 (8 ms).  Received packet has options

 Total option bytes= 40, padded length=40

 Record route:

   (10.1.1.1)

   (10.1.2.3)

   (10.1.2.4)

   (10.1.2.4)

   (10.1.1.3)

   (10.1.1.1) <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 End of list

 

Reply to request 4 (8 ms).  Received packet has options

 Total option bytes= 40, padded length=40

 Record route:

   (10.1.1.1)

   (10.1.2.3)

   (10.1.2.4)

   (10.1.2.4)

   (10.1.1.2)

   (10.1.1.1) <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 End of list

 

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/8 ms

R1#

 

R1配置递归查询,是网络管理员仅需要修改一条路由,便可把从R1R2的流量重定向到R3

R1(config)#no ip route 10.1.2.0 255.255.255.0 10.1.1.2

R1(config)#ip route 10.1.2.0 255.255.255.0 10.1.1.3

 

 

 

 

 

 

情况7:以太网网络环境出接口问题

image

以太网是多路访问的网络,这里只能填写下一跳的IP地址,而不能是路由器的外出接口。值得注意的是,有的人配置错误,这里填成路由器的外出接口,结果发现还是可以ping通。这里要知道R2虽然能pingR11.1.1.1,并不只是配置的静态路由起作用,还有思科路由器以太接口的代理ARPProxy-arp)在起作用,二者共同起作用,结果R2可以ping通。如果在R2上不指明外出接口,路由器R1不知道从哪个接口向外广播,ping失败;如果R1fa0/0接口开启的Proxy ARP,路由器R1收到R2发过来的广播包,请求的源地址是10.1.1.1,和路由器的R1收到广播的Fa0/0接口IP地址10.1.1.1处在同一网段,且R1上有去往1.1.1.1的路由(即直连路由),这就满足了代理ARP执行的两个条件:

条件1ARP请求的源IP地址和路由器接口的IP地址处在同一子网中

条件2:路由器有ARP请求的IP地址的路由

 

简单地讲,只要指定下一跳,就不会有代理ARP,没有代理ARP,指定出站接口就是不靠谱的。

 

四种配置方法:

1.指定下一跳IP地址

2.指定出站接口

3.两条路由,一条路由指定下一跳IP地址,一条路由指定出站接口,在路由表中显示的是两条负载均衡的路由

4.一条路由同时指定出站接口和下一跳IP地址

 

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#ip route 1.1.1.0 255.255.255.0 e 0/2   

R2(config)#end

R2#

*Aug 14 17:50:29.887: %SYS-5-CONFIG_I: Configured from console by console

R2#ping 1.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/3/4 ms

R2#

可以ping通,看似没有什么问题,其实还忽视了一个问题,接口的代理ARP默认是开启的

现在我们关闭R1

 

R1(config)#int e 0/2

R1(config-if)#no ip proxy-arp

R1(config-if)#end

 

同时注意清除R2ARP缓存表

R2#ping 1.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/8 ms

R2#clear arp

R2#ping 1.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/8 ms

R2#show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  1.1.1.1                20   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.1                0   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.2                -   aabb.cc00.0220  ARPA   Ethernet0/2

Internet  12.1.1.2                -   aabb.cc00.0200  ARPA   Ethernet0/0

Internet  23.1.1.2                -   aabb.cc00.0210  ARPA   Ethernet0/1

R2#clear arp *

             ^

% Invalid input detected at '^' marker.

 

R2#clear arp  ?

  A.B.C.D    IP address

  interface  Clear the entire ARP cache on the interface

  vrf        Clear entries for a ××× Routing/Forwarding instance

  <cr>

 

R2#clear arp  1.1.1.1

R2#show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  10.1.1.1                0   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.2                -   aabb.cc00.0220  ARPA   Ethernet0/2

Internet  12.1.1.2                -   aabb.cc00.0200  ARPA   Ethernet0/0

Internet  23.1.1.2                -   aabb.cc00.0210  ARPA   Ethernet0/1

R2#

 

R2#ping 1.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

 

R2#show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  1.1.1.1                 0   Incomplete      ARPA  

Internet  10.1.1.1                2   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.2                -   aabb.cc00.0220  ARPA   Ethernet0/2

Internet  12.1.1.2                -   aabb.cc00.0200  ARPA   Ethernet0/0

Internet  23.1.1.2                -   aabb.cc00.0210  ARPA   Ethernet0/1

R2#

 

此时我们重新开启代理ARP

R1(config)#int e 0/2

R1(config-if)#ip proxy-arp

 

R2#ping

*Aug 14 18:14:33.839: %SYS-5-CONFIG_I: Configured from console by console

R2#ping 1.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms

R2#

R2#

R2#show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  1.1.1.1                 0   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.1                3   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.2                -   aabb.cc00.0220  ARPA   Ethernet0/2

Internet  12.1.1.2                -   aabb.cc00.0200  ARPA   Ethernet0/0

Internet  23.1.1.2                -   aabb.cc00.0210  ARPA   Ethernet0/1

R2#

 

观察可以看出,可以ping通,此时就能证明出接口不能ping通吗?

 

此时,再次关闭R1接口的代理ARP功能

R1(config)#int e 0/2

R1(config-if)#no ip proxy-arp

 

R2#clear arp 1.1.1.1

R2#

R2#show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  1.1.1.1                 1   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.1                5   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.2                -   aabb.cc00.0220  ARPA   Ethernet0/2

Internet  12.1.1.2                -   aabb.cc00.0200  ARPA   Ethernet0/0

Internet  23.1.1.2                -   aabb.cc00.0210  ARPA   Ethernet0/1

 

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#

R2(config)#no ip route 1.1.1.0 255.255.255.0 e 0/2 #删除原有指出接口的静态路由

R2(config)#ip route 1.1.1.0 255.255.255.0 10.1.1.1 #添加指下一跳的静态路由

R2(config)#end

 

测试:

R2#show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  10.1.1.1                8   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.2                -   aabb.cc00.0220  ARPA   Ethernet0/2

Internet  12.1.1.2                -   aabb.cc00.0200  ARPA   Ethernet0/0

Internet  23.1.1.2                -   aabb.cc00.0210  ARPA   Ethernet0/1

R2#

R2#

R2#ping 1.1.1.1

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/8 ms

R2#show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  10.1.1.1                8   aabb.cc00.0120  ARPA   Ethernet0/2

Internet  10.1.1.2                -   aabb.cc00.0220  ARPA   Ethernet0/2

Internet  12.1.1.2                -   aabb.cc00.0200  ARPA   Ethernet0/0

Internet  23.1.1.2                -   aabb.cc00.0210  ARPA   Ethernet0/1

 

 

 

ip route 1.1.1.0 255.255.255.0 10.1.1.1

ip rotue 1.1.1.0 255.255.255.0 fa 0/0

R2#show ip route

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route

 

Gateway of last resort is not set

 

     1.0.0.0/24 is subnetted, 1 subnets

S       1.1.1.0 [1/0] via 10.1.1.1

                is directly connected, FastEthernet0/0

     10.0.0.0/24 is subnetted, 1 subnets

C       10.1.1.0 is directly connected, FastEthernet0/0

 

ip route 1.1.1.0 255.255.255.0 fa 0/0 10.1.1.1

R2#show ip route

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route

 

Gateway of last resort is not set

 

     1.0.0.0/24 is subnetted, 1 subnets

S       1.1.1.0 [1/0] via 10.1.1.1, FastEthernet0/0

     10.0.0.0/24 is subnetted, 1 subnets

C       10.1.1.0 is directly connected, FastEthernet0/0

 

 

 

情况8:不同的源地址,回来的路不同

image

需求:当R1以源地址12.1.1.1(默认情况以出接口的IP地址作为源地址)ping目的地址4.4.4.4时,回来的时候从上面的路回来

R1以源地址1.1.1.1ping目的地址4.4.4.4时,回来的时候从下面的路回来

 

第一步:配置IP地址,测试直连接口连通性(一再强调,配置IP地址后测试连通性,这是个好习惯)

 

第二步:有去有回,一跳一跳写路由(为啥一跳一跳的写,出错的机率要小得多)

 

沿途所有路由器必须有到达目的网络的路由

R1没有到达4.4.4.4的路由,所以需要写

R1(config)#ip route 4.4.4.0 255.255.255.0 12.1.1.2

R2也没有到达4.4.4.4的路由,所以需要写

R2(config)#ip route 4.4.4.0 255.255.255.0 23.1.1.3

4.4.4.4R4的直连接口,路由表中有直连路由所以不用写

 

去的路只选择了一条,也可以选择多条,也可以负载均衡

R1数据包的源,就是R4回包的目的

R1以源地址12.1.1.1发送数据包,R4回包需要知道如何到达12.1.1.1

 

R4(config)#ip route 12.1.1.0 255.255.255.0 23.1.1.2

 

R2不需要写路由,因为网段12.1.1.0是直连网段,在路由表中有直连路由

R1也不需要写路由,因为网段12.1.1.0是直连网段,在路由表中有直连路由

 

R1以源地址1.1.1.1发送数据包,R4回包需要知道如何到达1.1.1.

R4没有到达1.1.1.1的路由,所以需要写

 

R4(config)#ip route 1.1.1.0 255.255.255.0 34.1.1.3

R3没有到达1.1.1.1的路由,所以需要写

R3(config)#ip route 1.1.1.0 255.255.255.0 13.1.1.1

R1就不需要写了,因为有直连路由

 

问题:R3需要知道到达4.4.4.0的路由吗?

 

测试(使用扩展ping):

R1#ping

Protocol [ip]:

Target IP address: 4.4.4.4

Repeat count [5]:

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]: y

Source address or interface: loopback0

Type of service [0]:

Set DF bit in IP header? [no]:

Validate reply data? [no]:

Data pattern [0xABCD]:

Loose, Strict, Record, Timestamp, Verbose[none]: r

Number of hops [ 9 ]:

Loose, Strict, Record, Timestamp, Verbose[RV]:

Sweep range of sizes [n]:

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:

Packet sent with a source address of 1.1.1.1

Packet has IP options:  Total option bytes= 39, padded length=40

 Record route: <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 

Reply to request 0 (8 ms).  Received packet has options

 Total option bytes= 40, padded length=40

 Record route:

   (12.1.1.1)

   (24.1.1.2)

   (24.1.1.4)

   (34.1.1.4)

   (13.1.1.3)

   (13.1.1.1) <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 End of list

 

 

R1#ping

Protocol [ip]:

Target IP address: 4.4.4.4

Repeat count [5]: 2

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]: y

Source address or interface:  #没有选择,默认是路由表中出接口的ip地址即12.1.1.1

Type of service [0]:

Set DF bit in IP header? [no]:

Validate reply data? [no]:

Data pattern [0xABCD]:

Loose, Strict, Record, Timestamp, Verbose[none]: r #选择record

Number of hops [ 9 ]:

Loose, Strict, Record, Timestamp, Verbose[RV]:

Sweep range of sizes [n]:

Type escape sequence to abort.

Sending 2, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:

Packet has IP options:  Total option bytes= 39, padded length=40

 Record route: <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 

Reply to request 0 (12 ms).  Received packet has options

 Total option bytes= 40, padded length=40

 Record route:

   (12.1.1.1)

   (24.1.1.2)

   (24.1.1.4)

   (24.1.1.4)

   (12.1.1.2)

   (12.1.1.1) <*>

   (0.0.0.0)

   (0.0.0.0)

   (0.0.0.0)

 End of list

 

关于扩展ping的进一步了解

http://wenku.baidu.com/view/1a91801cfc4ffe473368abf8.html

 

记录路由——当数据包离开时为每台路由器提供空间记录数据包的出站接口地址,以便保存数据包经过所有路由器的记录。记录路由选项提供了类似路由跟踪的功能,但是不同点在于这里记录双向路径上的出站接口信息。

 

 

没有负载怎么保证冗余——浮动静态路由

image

浮动静态路由与其他静态路由不同,路由表中的其他路由总是优选于浮动静态路由,仅在一种特殊的情况下,即在一条首选路由发生失败的时候,浮动路由才会出现在路由表中。

R1(config)#ip route 23.1.1.0 255.255.255.0 12.1.1.2

R1(config)#ip route 23.1.1.0 255.255.255.0 13.1.1.3 10

R1#   show ip route

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route, + - replicated route

 

Gateway of last resort is not set

 

      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        12.1.1.0/24 is directly connected, Ethernet0/1

L        12.1.1.1/32 is directly connected, Ethernet0/1

      13.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        13.1.1.0/24 is directly connected, Ethernet0/2

L        13.1.1.1/32 is directly connected, Ethernet0/2

      21.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        21.1.1.0/24 is directly connected, Serial2/1

L        21.1.1.1/32 is directly connected, Serial2/1

      23.0.0.0/24 is subnetted, 1 subnets

S        23.1.1.0 [1/0] via 12.1.1.2

#在路由表中只显示一条路由

 

R1(config)#int e 0/1

R1(config-if)#shutdown

R1(config-if)#end

R1#

R1#show ip route

*Aug 15 17:28:13.415: %SYS-5-CONFIG_I: Configured from console by console

R1#show ip route

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route, + - replicated route

 

Gateway of last resort is not set

 

      13.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        13.1.1.0/24 is directly connected, Ethernet0/2

L        13.1.1.1/32 is directly connected, Ethernet0/2

      21.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        21.1.1.0/24 is directly connected, Serial2/1

L        21.1.1.1/32 is directly connected, Serial2/1

      23.0.0.0/24 is subnetted, 1 subnets

S        23.1.1.0 [10/0] via 13.1.1.3

R1#

下一跳指向13.1.1.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

静态汇总路由

image

汇总路由的优点:减少CPU、内存资源

汇总路由的缺点:可能会带来次优路径、路由黑洞、路由环路等问题

 

第一步:配置IP地址,测试直连网段连通性

 

第二步:

 

R4:

 

interface Loopback0

 ip address 10.1.0.1 255.255.255.0

!

interface Loopback1

 ip address 10.1.1.1 255.255.255.0

!

interface Loopback2

 ip address 10.1.2.1 255.255.255.0

!

interface Loopback3

 ip address 10.1.3.1 255.255.255.0

!

interface Loopback8

 ip address 10.1.8.1 255.255.255.0

!

interface Loopback9

 ip address 10.1.9.1 255.255.255.0

!

interface Loopback10

 ip address 10.1.10.1 255.255.255.0

!

interface Loopback11

 ip address 10.1.11.1 255.255.255.0

 

R3

interface Loopback4

 ip address 10.1.4.1 255.255.255.0

!

interface Loopback5

 ip address 10.1.5.1 255.255.255.0

!

interface Loopback6

 ip address 10.1.6.1 255.255.255.0

!

interface Loopback7

 ip address 10.1.7.1 255.255.255.0

 

第三步:路由

 

R4到达R3

R4(config)#ip route 10.1.4.0 255.255.255.0 24.1.1.2

R4(config)#ip route 10.1.5.0 255.255.255.0 24.1.1.2

R4(config)#ip route 10.1.6.0 255.255.255.0 24.1.1.2

R4(config)#ip route 10.1.7.0 255.255.255.0 24.1.1.2

 

沿途所有路由器都必须有到达目的网络的路由,所以R2也需要有这几条路由

R2(config)#ip route 10.1.4.0 255.255.255.0 23.1.1.3

R2(config)#ip route 10.1.5.0 255.255.255.0 23.1.1.3

R2(config)#ip route 10.1.6.0 255.255.255.0 23.1.1.3

R2(config)#ip route 10.1.7.0 255.255.255.0 23.1.1.3

 

10.1.4.0

10.1.5.0

10.1.6.0

10.1.7.0

R3的直连网段,R3还需要有到达R4的路由

R3(config)#ip route 24.1.1.0 255.255.255.0 23.1.1.2

 

R4是以loopback接口作为源,R3的路由

R3(config)#ip route 10.1.0.0 255.255.255.0 23.1.1.2

R3(config)#ip route 10.1.1.0 255.255.255.0 23.1.1.2

R3(config)#ip route 10.1.2.0 255.255.255.0 23.1.1.2

R3(config)#ip route 10.1.3.0 255.255.255.0 23.1.1.2

R3(config)#ip route 10.1.8.0 255.255.255.0 23.1.1.2

R3(config)#ip route 10.1.9.0 255.255.255.0 23.1.1.2

R3(config)#ip route 10.1.10.0 255.255.255.0 23.1.1.2

R3(config)#ip route 10.1.11.0 255.255.255.0 23.1.1.2

 

沿途所有路由器都必须有到达目的网络的路由,所以R2也需要有到达R4 loopback接口的路由

 

 

R2(config)#ip route 10.1.0.0 255.255.255.0 24.1.1.4

R2(config)#ip route 10.1.1.0 255.255.255.0 24.1.1.4

R2(config)#ip route 10.1.2.0 255.255.255.0 24.1.1.4

R2(config)#ip route 10.1.3.0 255.255.255.0 24.1.1.4

R2(config)#ip route 10.1.8.0 255.255.255.0 24.1.1.4

R2(config)#ip route 10.1.9.0 255.255.255.0 24.1.1.4

R2(config)#ip route 10.1.10.0 255.255.255.0 24.1.1.4

R2(config)#ip route 10.1.11.0 255.255.255.0 24.1.1.4

 

目前,R4R3R3R4R2R3R2R4的路由(R2是传输路由器)都解决了,现在还有R1的路由没有解决

R1的路由可以这么写

R1(config)#ip route 10.1.0.0 255.255.255.0 14.1.1.4

R1(config)#ip route 10.1.1.0 255.255.255.0 14.1.1.4

R1(config)#ip route 10.1.2.0 255.255.255.0 14.1.1.4

R1(config)#ip route 10.1.3.0 255.255.255.0 14.1.1.4

R1(config)#ip route 10.1.4.0 255.255.255.0 12.1.1.2

R1(config)#ip route 10.1.5.0 255.255.255.0 12.1.1.2

R1(config)#ip route 10.1.6.0 255.255.255.0 12.1.1.2

R1(config)#ip route 10.1.7.0 255.255.255.0 12.1.1.2

R1(config)#ip route 10.1.8.0 255.255.255.0 14.1.1.4

R1(config)#ip route 10.1.9.0 255.255.255.0 14.1.1.4

R1(config)#ip route 10.1.10.0 255.255.255.0 14.1.1.4

R1(config)#ip route 10.1.11.0 255.255.255.0 14.1.1.4

 

去的路由已经解决了,回来的路由还没解决

 

R3 R4都需要知道如何到达R1

R3(config)#ip route 12.1.1.0 255.255.255.0 23.1.1.2

14.1.1.0R4的直连网段,所以R4不需要再添加路由

 

第四步:删除明细路由,静态汇总路由

 

R4上汇总

R4(config)#ip route 10.1.4.0 255.255.252.0 24.1.1.2

 

R2上汇总

ip route 10.1.0.0 255.255.252.0 24.1.1.4

ip route 10.1.4.0 255.255.252.0 23.1.1.3

ip route 10.1.8.0 255.255.252.0 24.1.1.4

 

R3上汇总

ip route 10.1.0.0 255.255.252.0 23.1.1.2

ip route 10.1.8.0 255.255.252.0 23.1.1.2

 

R1上汇总

ip route 10.1.0.0 255.255.252.0 14.1.1.4

ip route 10.1.4.0 255.255.252.0 12.1.1.2

ip route 10.1.8.0 255.255.252.0 14.1.1.4

 

第五步:懒人的做法,出问题了

ip route 10.1.0.0 255.255.0.0 14.1.1.4

 

次优——闲着蛋疼,没事绕路走

 

R4

ip route 10.1.4.0 255.255.252.0 24.1.1.2

ip route 23.1.1.0 255.255.255.0 24.1.1.2

 

R2

ip route 10.1.4.0 255.255.252.0 23.1.1.3

ip route 10.1.0.0 255.255.252.0 24.1.1.4

ip route 10.1.8.0 255.255.252.0 24.1.1.4

 

R3

ip route 10.1.0.0 255.255.252.0 23.1.1.2

ip route 10.1.8.0 255.255.252.0 23.1.1.2

ip route 24.1.1.0 255.255.255.0 23.1.1.2

 

R1

ip route 10.1.0.0 255.255.0.0 14.1.1.4

 

还有什么没写的

 

R3

ip route 14.1.1.0 255.255.255.0 23.1.1.2

 

R2

ip route 14.1.1.0 255.255.255.0 24.1.1.2

 

R1#traceroute 10.1.4.1

 

Type escape sequence to abort.

Tracing the route to 10.1.4.1

 

  1 14.1.1.4 16 msec 8 msec 8 msec

  2 24.1.1.2 8 msec 8 msec 8 msec

  3 23.1.1.3 4 msec *  8 msec

 

 

次优路径的解决方法:写明细

 

R1

ip route 10.1.4.0 255.255.252.0 12.1.1.2

 

R4

ip route 12.1.1.0 255.255.255.0 23.1.1.2

 

R1#traceroute 10.1.4.1

 

Type escape sequence to abort.

Tracing the route to 10.1.4.1

 

  1 12.1.1.2 12 msec 8 msec 8 msec

  2 23.1.1.3 4 msec *  4 msec

 

 

路由黑洞

R4没有到达R3的路由,会丢弃,这就是黑洞

 

路由环路

 

R2上既有汇总也有明细

ip route 10.1.0.0 255.255.0.0 24.1.1.4

ip route 10.1.4.0 255.255.255.0 23.1.1.3

ip route 10.1.5.0 255.255.255.0 23.1.1.3

ip route 10.1.6.0 255.255.255.0 23.1.1.3

ip route 10.1.7.0 255.255.255.0 23.1.1.3

 

或者

 

ip route 10.1.0.0 255.255.0.0 24.1.1.4

ip route 10.1.4.0 255.255.252.0 23.1.1.3

 

R4上有去往R3的明细路由

 

这时是没有问题的,但当R2连接R3接口down掉后,明细路由就不存在了,就只有一条下一跳指向R4的汇总路由

 

R4 ping 10.1.4.0 10.1.5.0 10.1.6.0 10.1.7.0 也就是R3上的路由时,就存在问题了,这时会出现环路

 

R4并不知道R2去往R3的路断掉了,路由也没有了,路由表依然会把下一跳指向R2,而R3只有一条汇总路由,查找路由表后会把数据包扔给R4,这样的话,数据包就在R2R4之间来来回回,环路就产生了。