Layer3 RIP

来源:互联网 发布:网络图片女生头像图片 编辑:程序博客网 时间:2024/05/20 13:07
session 1 动态路由协议分类
IGP(按照算法由分为):  DV:距离矢量协议,RIP,谣言式的宣告。
                                        LS:链路状态协议,OSPF
EGP 
 
一、RIP的特点
1、完整的RIB
2、谣言式的宣告
3、周期更新
4、UDP承载,源、目的端口520
5、ripv1使用广播宣告,ripv2使用组播宣告更新路由条目
6、考量参数:距离(Hops跳数相关)、方向(矢量)
 
二、RIP中需要解决的问题
1、路由环路,防环解决方案:
      1)最大跳数16
      2)水平分割,从一个接口收到的路由条目不再从这个接口宣告出去,该接口向外宣告整个RIB中也不会该路由
split horizon打开命令,在Fream relay的主接口需要打开(默认关闭的),而Fream relay多点子接口要关闭,还要让多点子接口支持广播、组播broadcast,来迟滞RIP的更新。
      3)毒性逆转水平分割,从一个接口收到的路由条目不再从这个接口宣告出去,如果该接口向外宣告的RIB中包括这条路由,那么这条路由会被标记为不可达(16跳) ,关键字:Infinity毒
      4)hold times(180s),在某条路由失效的情况下R会将该路由“冻结”,但是该路由如果在hold-times时间内恢复了则可以继续使用,如果在holdtime内,该路由没有恢复,而又收到其他路由器宣告的与该路由目的地址一致的路由则会与失效路由进行比较,如果收到的路由比失效的路由更优(跳数更少)则会选用收到的新路由,如果收到的路由没有失效的路由优,则不会使用新路由,直到失效路由在hold-times时间超时后才会将收到的新路由更新进自己的RIB。防止全网R的路由表不统一。
5)触发更新,避免周期性更新占用带宽,只有当拓扑变化时才发送更新(RIP默认关闭的)
R(config-if)#ip rip triggerd 开启触发更新,只支持广域网(串行化)的P2P接口,以太网不支持。

show ip protocols 查看本路由器上运行协议,可以看到接口是否开启“触发更新”


2、路由次优

show ip rip database 查看rip的数据库
影响rip路由选路的参数:管理距离和metric
1)管理距离的修改只影响本路由的选路而不影响其他路由器的选路
在R1上修改一条去往R5环回口的路由,只会影响R1自己的选路,而不会影响R5的回包选路,比如在R1上修改去往5.5.5.5/32的路由下一跳是14.1.1.1(R4的s1/0)的管理距离为121,那么R1发往5.5.5.5/32的数据包路径为:R1---R2----R3----R5(因为走R2的管理距离还是默认的120,而走R4的管理距离是121,选择从R2走),但是R5并不会受到影响回给R1的数据包依然走R5----R4----R1,所以要实现路由双向都走以太网链路需要在R1和R5上分别修改管理距离:
R1:
R1(config)#router rip                                            进入rip进程
R1(config-router)#distance 121 14.1.1.1 0.0.0.0   从14.1.1.1(R4的s1/0接口)收到的所有路由的管理距离在R1自己上被修改为121,distance 121 14.1.1.2 0.0.0.0 ACL,该命令加ACL参数可以具体到从R4的s1/0接口收到的哪些路由被修改管理距离。
R5上同样
R1(config)#router rip                                            进入rip进程
R1(config-router)#distance 121 45.1.1.1 0.0.0.0  从45.1.1.1(R4的s1/1接口)收到的所有路由的管理距离在R5自己上被修改为121
所以分别在R1与R5(源、目的设备)上修改管理距离可以达到R1与R5的路由优化的效果。

2)metric的修改分为in和out,in影响本路由器及下游的所有路由器,out只影响下游所有的路由器
在R1上修改去往5.5.5.5/32的路由metric,让R1收到R4宣告的去往R5的路由的metric +6
in方向(收到上游宣告的路由)
R1(config)#access-list permit 5.5.5.5 0.0.0.0
R1(config)#router rip
R1(config-router)#offset-list 1 in 6 s2/0  从s2/0口收到的ACL1中的路由的metric将被+6
R1#show ip route
Gateway of last resort is not set
             5.0.0.0/32 is subnetted,1 subents
R              5.5.5.5 [120/8] via 14.1.1.4,00:00:02,Serial2/0     R1-R4-R5原来是metric2,现在+6是8了
然而因为本例中R1没有后续设备,所以无法看出in影响后续设备,而在R4的s1/1口使用in方向的metric修改就可以在R1上看到效果:
R4(config)#access-list 1 permit 5.5.5.5 0.0.0.0
R4(config)#router rip
R4(config-router)#offset-list 1 in 2 s1/1  从R4s1/1口收到的5.5.5.5/32的路由在R4自己和后续设备R1上这条路由的metric被+2,那么分别在R4与R1的路由表中可以看到5.5.5.5/32在R4中的metric是3,而在R1中是10(之前被R1自己修改到8了)
R1#show ip route
Gateway of last resort is not set
             5.0.0.0/32 is subnetted,1 subents
R              5.5.5.5 [120/10] via 14.1.1.4,00:00:02,Serial2/0     本来metric是8
R4#show ip route
Gateway of last resort is not set
             5.0.0.0/32 is subnetted,1 subents
R              5.5.5.5 [120/3] via 14.1.1.4,00:00:02,Serial2/0       本来R4-R5的metric是1
 
out方向(自己向外宣告的路由)
R4(config)#access-list 1 permit 5.5.5.5 0.0.0.0
R4(config)#router rip
R4(config-router)#offset-list 1 out 2 s1/0  从s1/0口接口发出的5.5.5.5/32的路由在后续设备上metric+6,自己的路由表中5.5.5.5/32的路由metric不发生改变,改变的是后面接收这条路由的设备,本例中是R1,所以在R1上看见的5.5.5.5/32的metric为10
R1#show ip route
Gateway of last resort is not set
             5.0.0.0/32 is subnetted,1 subents
R              5.5.5.5 [120/10] via 14.1.1.4,00:00:02,Serial2/0     

3、数据黑洞:有路由,但是无法转发数据(因为谣言式的宣告会更新不及时,导致远端路由下一条路由失效了还不知道,还根据本地路由表中的路由进行数据的转发)
 
session 2 RIP原理
1、路由更新:rip的下一跳与metric的关系(收到多条相同目的的路由条目时)


2、路由计时器

注意在2)路由变为PossibleDown状态的时候还是能够转发数据的,因为FIB中有这条路由,data plan层面就可以转发数据。直到将此路由删除之后,data plan也就不能转发数据了。
以上计时器调整命令
router rip
timers basic 30 180 180 240   对应以上1-4的时间,单位为妙,后面的2个时间不建议修改。

3、RIP路由源检测
       RIP没有邻居的概念,所以自己并不知道发出去的路由更新被什么样的路由器收到,当RIP路由器相互之间IP地址或子网掩码长度不匹配时,都会造成路由不精确或者路由表错误,因此,RIP收到的路由更新源地址必须和接收接口处于相同子网,或者是源地址和接收接口的secondary地址处于相同子网也可以,否则忽略收到的路由更新,该功能称为RIP的更新源有效性,可以手动关闭或打开,默认为开启状态
no validate-update-source  在rip进程下关闭(默认是开启的),关闭源检测,当RIP路由器相互之间IP地址或子网掩码长度不匹配时会造成路由表中有路由却没有出接口和同网段下一跳,造成无用路由占用路由表空间。
 
session 3 RIP扩展功能
      1、network宣告网络,作用两个。宣告这个网络和允许这个网络收发RIP的报文。在RIP中是宣告有类的网络,因为RIP默认是以接口的ip地址作为参考依据,所以比如192.168.1.0自动匹配为C类、172.16.2.0自动匹配为B类、10.0.0.0自动匹配为A类网络,宣告的时候直接写大类就可以了不用写成无类路由的形式(比如3.3.3.0/24的在RIP中宣告为network 3.0.0.0就可以了,因为即使network 3.3.3.0也是和3.0.0.0一样)
R1(config)#router rip
R1(config-router)#network 3.0.0.0
R1(config-router)#network 192.168.1.0
      2、passive功能,让接口只收不发rip组播报文,防止组播报文被交换机泛红到不安全的主机,适用于路由器之间有交换机的rip网络。此功能必须配合neighbor命令使用,否则无法给rip邻居发送rip报文了(neighbor是让路由器将rip报文以单播的形式发送给邻居)
R1(config-router)#passive-interface f0/1
R1(config)#router rip
R1(config-router)#passive-interface f0/1
R1(config-router)#neighbor 12.1.1.2
      3、rip的触发更新,接口下配置,只支持广域网WAN低速串行口(S1/0),不支持以太网。
R1(config-if)#ip rip triggered
      4、rip的汇总,关闭auto-summary是为了防止出现主类边界。
使用手工汇总,汇总的子路由172.16.1.0/24、172.16.2.0/24、172.16.3.0/24,汇总为172.16.0.0/22
R1(config)#interface f0/1
R1(config-if)#ip summary-address rip 172.16.0.0 255.255.252.0
方法:比较全部子路由,同bit不变,不同bit位写0,看掩码。
路由汇总不影响本地路由器的路由表,只是将汇总发给该接口连接的路由器,影响的是邻居路由器的路由表。
      5、rip中宣告默认路由,方法3个:
1)写一条默认路由,重分部进RIP中
2)在RIP中宣告默认路由,默认路由的吓一跳只能写出接口
3)在RIP中使用R1(config-router)#default-information originate
6、接口汇总到null0的路由
R1(config-if)#ip summary-address rip 0.0.0.0 0.0.0.0
如果有手工汇总路由和null0的,那么必须先ip summary-address rip 0.0.0.0 0.0.0.0,再汇总其他路由才行。
      7、rip的分发列表,用来控制收发的路由条目
R1(config)#router rip
R1(config-router)#distribute-list 1 out f0/1
R1(config-router)#exit
R1(config)#access-list 1 permit 172.16.0.0
只允许172.16.0.0这条路由的rip报文从R1的f0/1接口发送出去,其余的路由不发。
      8、rip的认证,使用钥匙串机制。对于通过认证的路由条目才会接收,防止不安全的设备发来不安全的路由被接
1)明文认证,携带在路由条目中的密码是明文的。
钥匙串没有ID和顺序要求,只看发送方钥匙串中最小的钥匙对应的密码,匹配就可以。
R1(config)#interface f0/1
R1(config-if)#ip rip authentication mode text
R1(config-if)#ip rip authentication key-chain ccie
R1(config-if)#exit
R1(config)#key chain ccie
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string 123456
R1(config-keychain)#key 2
R1(config-keychain-key)#key-string 456789
 
R2(config)#interface f0/1
R2(config-if)#ip rip authentication mode text
R2(config-if)#ip rip authentication key-chain ccie
R2(config-if)#exit
R2(config)#key chain ccie-2
R2(config-keychain)#key 7
R2(config-keychain-key)#key-string 123456
      在R1上配置了认证,建立了一个名为ccie的钥匙串,里面有钥匙1密码123456,钥匙2密码456789。那么R2要获取R1发来的带认证的路由就必须创建和R1对应的认证钥匙来匹配R1发来的认证密码,在明文认证中,R1只会发送钥匙串中的第一把钥匙的密码key1的123456,而R2上只要钥匙串中任意一把钥匙和R1发来的密码能匹配就可以了,比如key7的是123456可以和R1的key1的123456匹配就可以通过认证。
 
2)密文认证,携带在路由条目中的密码是md5的。
钥匙串有ID和顺序的要求,钥匙串中的钥匙ID和密码要对应。
R1(config)#interface f0/1
R1(config-if)#ip rip authentication mode md5
R1(config-if)#ip rip authentication key-chain ccie
R1(config-if)#exit
R1(config)#key chain ccie
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string 123456
R1(config-keychain)#key 2
R1(config-keychain-key)#key-string 456789
 
R2(config)#interface f0/1
R2(config-if)#ip rip authentication mode md5
R2(config-if)#ip rip authentication key-chain ccie
R2(config-if)#exit
R2(config)#key chain ccie-2
R2(config-keychain)#key 1
R2(config-keychain-key)#key-string 123456
密文认证要求认证两端钥匙串中的keyID和密码要对应,R1的key1和R2的key1的ID和密码要对应。这是与明文不同的地方。
 
rip基本配置
router rip
no auto-summary
network 192.168.1.0                 宣告的都是主类
network 172.16.0.0
network 1.0.0.0
 
查看命令
R1#show ip rip database           查看rip数据库

R1#show ip route rip                 查看rip路由条目


0 0