静态路由总结

1由管理员手工配置,管理距离为1,仅次于直连路由。

2.静态路由的配置

ip route prefix mask {address | interface} [distance] [permanent]

3.对于MA网段(以太网、FR),建议使用下一跳地址;对于P2P网段(HDLCPPP,建议使用送出接口

4.静态路由的高级特性

(1)实现路由控制

拓扑如上图所示,三台设备运行RIPV2,需求是不想让R3拥有去往R1环回口的路由。

三台设备完成初始配置,并配置接口地址,启用RIPV2,所有设备配置完成之后,查看三台路由器的路由表,如下

R1路由表

R2路由表

R3路由表

通过上面三个图,可以看到三台设备分别通过RIP协议学习到了所有网段的路由条目,此时,如果我们不想让R3拥有去往R1环回口的路由条目,可以在R2上使用静态路由,将到R1环回口网段的路由,手工指向R1fa0/0,即可实现将R3上到达R1环回口网段的路由从其路由表中去掉。

配置命令:

配置完成之后,到R3上查看路由表

此时,在R1上查看路由表,发现仍然拥有到达其他网段的所有路由,并没有因为在R2上的配置而产生问题

实现路由控制的原理:

对于距离矢量路由协议来讲,将一个接口宣告进路由进程中,是会给邻居发送被宣告进路由进程接口所在网段,以及通过运行该协议接口收到的邻居通过该协议传递过来的路由条目,对于上面的R2来讲,将到达R1环回口的路由条目通过静态路由公告出去,对于RIP进程来讲,来路由条目不是通过RIP 学习到的,所以不会将该路由条目发送给R3,所以R3就不能拥有到达R1环回口网段的路由条目,至此完成路由条目的控制。

(2)浮动路由

浮动路由一般用于多出口环境,正常情况下使用带宽较大的出口作为整个园区网的出口,同时会有一条次优路径,作为整个园区网的出口备份,当正常链路出现故障,园区网无法访问外网时,可通过这条备份链路作为园区网的出口,可通过修改备份链路静态路由的distance值,来达到浮动路由的目的。

实验简单,此处不再做实验

(3)永久路由

静态路由配置使用送出接口或者下一跳地址,当出接口down掉之后,对应的路由条目,将不会出现在路由表中,直至接口恢复up up状态,如果我们想着永久使用一条静态路由,不管接口是否up,此时可以在配置静态路由的时候,在最后面加上关键字permanent,可以保证在接口down掉之后,仍然可以使用该静态路由。

实验简单,此处不再做实验。

5.路由选择原理

(1)直连路由

(2)静态路由

(3)动态路由

不同路由协议下的AD


6.有类无类环境下的路由选择原理

1):有类环境下

有类环境下,首先分析目的地址前缀属于哪个主类网络,然后从路由表中查找是否存在去往该主类网络的路由,如果没有,则查看是否存在默认路由,如果有默认路由,则从默认路由转发出去,没有默认路由直接丢弃;如果存在去往该主类网络的路由,则继续查找子网路由,如果存在子网路由则进行转发,如果没有子网路由,即使存在默认路由,也会将数据包丢弃


2):无类环境下

默认情况下,路由器以无类进行转发,最长匹配原则,路由器不会注意目的地址的类别,它会在目的地址和所有已知的路由之间逐位执行最长匹配,匹配度最长的将会被加入到路由表

3):最长匹配原则

主机路由

子网路由

一组子网路由

主网号(主类网络号)

超网(CIDR

缺省路由(默认路由)


7.TCP/IP路由卷一》中,所讲到的使用递归路由实验,根据闫辉老师视频所讲,与书中提到的观点不一致,该实验讲解如下

实验拓扑如上图所示,接口IP地址及loopback地址如上图所示,基本配置完成之后,四台路由器上的静态路由配置如下

1R4上的静态路由配置如下

ip route 10.1.1.0 255.255.255.0 e 0/0 200.1.1.7

ip route 20.1.1.0 255.255.255.0 e 0/0 200.1.1.7

ip route 30.1.1.0 255.255.255.0 e 0/0 200.1.1.7

2R5上的静态路由配置如下

ip route 10.1.1.0 255.255.255.0 e 0/1 200.1.1.7

ip route 20.1.1.0 255.255.255.0 e 0/1 200.1.1.7

ip route 30.1.1.0 255.255.255.0 e 0/1 200.1.1.7

ip route 4.4.4.0 255.255.255.0 e 0/0 100.1.1.4

3R6上的静态路由配置如下

ip route 10.1.1.0 255.255.255.0 e 0/1 200.1.1.7

ip route 20.1.1.0 255.255.255.0 e 0/1 200.1.1.7

ip route 30.1.1.0 255.255.255.0 e 0/1 200.1.1.7

ip route 4.4.4.0 255.255.255.0 e 0/0 100.1.1.4

4R7上的静态路由配置如下

ip route 4.4.4.0 255.255.255.0 e 0/1 100.1.1.4

配置完成之后,我们在R4ping 10.1.1.1 source 4.4.4.4,发现网络是不通的,我们首先考虑R4在给10.1.1.0网段发送数据包的时候,首先查找路由表,发现要将数据包发送给200.1.1.7,跟自己不处于同一个子网,所以需要发送ARP请求,查找200.1.1.7mac表项,才可以将数据包发送给200.1.1.7,此时我哦们在R4上开启debug,抓取R4上的arp数据包,debug arp(由于我现在使用的是新版的GNS3,在debug的时候,没有收到arp的请求和应答,反而是有一个报错信息说封装失败,百度查找解决问题的方法,基本上都是老外提问回答的,基本说是由于交换机vlan导致的问题,由于学术不精没有解决这个问题,所以此处没法提供debug的截图,如果大家感兴趣可以去找闫辉老师的视频看,第一讲),发现R4发送ARP请求,询问200.1.1.7mac地址,由于ARP请求是以广播形式发送,所以R5R6都可以收到R4传递过来的ARP请求,由于R5R6上默认开启代理ARP

(代理ARP工作条件,需要同时满足这三点:请求者与被请求者不处于同一个网段,需要同时拥有到达请求者和被请求者的路由条目,接收ARP请求的接口开启代理ARP),所以R5R6会同时给R4发送代理ARP应答(如果PC收到了一条代理ARP应答,则该PC会无条件的信任该应答,并将其加入到自己的ARP表中,对于一台路由器,如果收到了一条代理ARP应答,则该路由器会判断该应答中,应答者所在的网段是否可达,如果可达,则会将其加入到自己的ARP表中,如果不可达,则将该应答丢弃),根据上述代理ARP工作条件,R4收到R5R6的代理ARP应答之后,由于没有到达200.1.1.0网段的路由,所以不会信任R5R6传递过来的代理ARP应答,所以会将其丢弃,所以R4pingR7的环回口是不通的。所以我们需要在R4上手工添加一条到达200.1.1.0网段的静态路由,指向给R5,配置如下ip route 200.1.1.0 255.255.255.0 100.1.1.5,手工添加该路由条目之后,R4由于拥有了到达200.1.1.0网段的路由条目,所以再次收到R5R6的代理ARP应答之后,就会将其加入到自己的ARP表中(如果同时收到两份代理ARP的应答,则会将最后一个ARP表项加入到自己的ARP表中),所以R4可以将ping包通过R5(此处我们假设R4是最后收到R5的代理ARP请求)发送给R7,同样的问题,R7在给R4回包的时候,也是会先去请求4.4.4.4网段的ARPR5R6同样给R7代理ARP应答,但是由于没有到达100.1.1.0网段的路由,所以会将代理ARP应答丢掉,所以R7上同样需要手工配置一条到达100.1.1.0网段的静态路由,使得R7可以将R5或者R6传递过来的代理ARP加入到自己的ARP表中,配置如下ip route 100.1.1.0 255.255.255.0 200.1.1.5,之后再在R4上使用命令ping 10.1.1.1 source 4.4.4.4,发现可以正常ping通。

后来R4上配置的到达200.1.1.0网段的路由,仅仅是为了让路由器能够将R5R6传递过来的代理ARP应答加入到自己的ARP表中,配置的静态路由,下一跳地址是无所谓的,只是为了能让路由器将代理ARP应答加表,对于路由的选路是没有任何意义的,但是在卷一中的描述,下一跳地址是可以控制路由的,例如R4上如果将到达200.1.1.0网段的静态路由配置指向100.1.1.5,则R4会将到达10.1.1.0网段的信息发送给R5, 如果R4上如果将到达200.1.1.0网段的静态路由配置指向100.1.1.6,则R4会将到达10.1.1.0网段的信息发送给R6。综上所述,能够影响路由选路的只有R4上最后收到的那个代理ARP应答,最后收到的是谁的代理ARP应答,就会选择从哪个路由器发包。

根据卷一所讲,如果后来配置的静态路由,会影响路由的选择,那我们可以查看路由所走的方向,比如R4是通过R5到达10.1.1.0网段,那我们可以将R5e0/0接口shutdown,同时修改静态路由的下一跳是R6e0/0,根据卷一的理论,R4应该会将到达10.1.1.0网段的路由全部切到R6上去,但是根据我们实验结果来看,答案却不是这样的,原因是,虽然将R5e0/0接口shutdown,但是在R4上已经拥有了一条去往200.1.1.7ARP表项,并且这条ARP表项存活时间是四个小时,当R4再次给10.1.1.0网段发送数据包的时候,会直接从自己的ARP表中拿到到达200.1.1.7mac地址(即R5e0/0),然后发包,R5e0/0shutdown,所以无法接受该数据包,所以是ping不通的,跟卷一所讲是不同的。

根据上述理论来讲,如果想要实现路由控制,就是要控制R5R6两台路由器代理ARP应答到达R4的顺序,如果我们希望去的包通过R5发送给R7,则我们可以将R6e0/0手工关闭,这样R6就不会给R4发送代理ARP应答,所以R4ARP表中,只有一条到达200.1.1.7ARP表项,即R5e0/0,如果希望回包是通过R6,则可以在R5e0/1手工关闭代理ARP应答,所以R7ARP表中只会拥有一条到达100.1.1.4ARP表项,即R6e0/1,至此可以实现路由选择。

如果我们不去手工选路,而是希望路由器能够自动进行路径切换,则我们需要修改R4R7路由器接口上的ARP超时时间为1分钟,则R4或者R7ARP表项存活时间就变为1分钟,加入R5或者R6的接口被shutdownR4就会一分钟之后再去请求200.1.1.7mac表项,然后只有存活的接口可以给R4应答,所以就可以实现自动切换。