引言
在前文:AS自治系统中我们提到了RIP,它是距离矢量型协议,今天我们就详细看一看 学一学
RIP(路由信息协议---Routing Information Protocol)
在RIP里面,将两台直接相连的设备,具备通信条件的设备称为邻居关系。
使用命令 display IP routing-table 查看路由表信息,其中cost(开销值)十分重要。
Destination/Mask | Proto | Pre | Cost | Flags | NextHop | Interface |
目标网段/掩码信息 | 路由条目类型 | 优先级 | 开销值 | 标记位 | “下一跳” | 出接口 |
RIP中的开销值
在RIP中,传递一条路由条目,主要需要携带的参数是目标网段信息以及开销值(cost)。
开销值是动态路由协议选路的重要依据。
当动态路由协议计算出到达同一个目标网段存在多条路径时,将选择开销值最小的路径加表。
不同动态路由协议的开销值的评判标准可能不同,不同动态路由协议之间开销值没有可比性,开销值仅用于同一种动态路由协议进行选路。
相同协议比开销,不同协议比优先级。
RIP:默认优先级 100 ( 不同路由协议之间其默认的优先级不同,所以,可以通过比较优先级来进行路由加表。)
RIP是以跳数作为开销值的评判标准 (本身存在不合理性)。
RIP协议支持等开销负载均衡。
RIP的工作半径:15跳。如果收到的路由的开销值等于16,则设备将认为该目标网段不可达。
数据包中需要携带的开销值 = 本地路由表中的开销值 + 1
贝尔曼.福特算法
基于以下拓扑进行分析:
1,R2发送2.0/24网段的路由信息给R1,而R1的路由表中没有到达2.0网段的路由。R1将直接把2.0网段的路由信息刷新到本地的路由表中。
Destination/Mask | Proto | Pre | Cost | Flage | NextHop | Interface |
2.2.2.0/24 | RIP | 100 | 1 | D | 12.0.0.2 | G 0/0/0 |
2,R2发送2.0/24网段的路由信息给R1,而R1的路由表中存在到达2.0网段的路由,并且下一跳就是R2。R1将把最新发来的刷新到本地的路由表中。
3,R2发送2.0/24网段的路由信息给R1,而R1的路由表中存在到达2.0网段的路由,本地路由表中的下一跳不是R2,则比较开销值,如果,本地的开销值大于R2发来的开销值,则将R2来的路由刷新到本地的路由表中。
4,R2发送2.0/24网段的路由信息给R1,而R1的路由表中存在到达2.0网段的路由,本地路由表中的下一跳不是R2,则比较开销值,如果,本地的开销值小于R2发来的开销值,则不刷新。
RIP的版本
- RIPV1
- RIPV2 :IPV4
- RIPNG : IPV6
RIPV1和RIPV2的区别:
1.V1是有类别的路由协议,V2是无类别的路由协议。
- 有类别 :传递路由信息时,不携带子网掩码(会出现巨大的路由黑洞)
- 无类别 : 传递路由信息时,携带子网掩码
2.V1不支持手工认证,V2是支持手工认证
3.V1采用广播的形式发送信息,V2采用组播的形式发送信息。
- 224.0.0.9 :所有运行RIPV2的设备默认加入的组播组
交换机在这三种情况下都会泛洪
- 遇到广播帧;
- 遇到组播帧;
- 遇到未知单播帧
RIP协议传输层使用的是UDP协议,使用的端口号是520端口。
RIP的数据包
RIP - REQUEST : 请求报文
RIP - Response :应答报文 —— 真正携带路由信息的数据包(更新包)
在RIP收敛完成之后,RIP会依旧每隔30S发送一次Response报文——RIP的周期更新
为什么要这样设计?
- 为了弥补RIP没有确认机制
- 为了弥补RIP没有保活机制
RIP的周期更新采用异步周期更新(同步会很卡)
RIP的三个计时器
1.周期更新计时器: 30S
2失效计时器 :180S
路由条目在刷新之后,将会启动一个180S的失效计时器。如果时间归0,则代表该路由信息失效。失效后,首先从全局路由表中删除,但是依然会将这条路由信息保存在缓存中,之后,周期更新时依然会携带。只是将这跳路由信息的开销值改为16 ( 带毒传输——传递失效信息)。
3.垃圾收集计时器 :120S
在失效计时器归0后开始计时,120s时间结束后,将彻底删除失效的路由条目。
破环方案
- 15跳的工作半径
- 触发更新 :一旦拓扑结构发生变化,则第一时间将变更信息传递出去,而不去等待周期更新。
- 水平分割 : 从哪个接口学到的路由信息将不再从这个接口发出去。
- 毒性逆转 : 从哪个接口学来的路由信息,依然可以从这个接口发出去,只不过需要将开销值改为16.
因为水平分割和毒性逆转其做法相矛盾,所以,只能选择其中一个来执行。华为设备默认开启水平分割。如果水平分割和毒性逆转同时开启,华为设备将按照毒性逆转来执行。
RIP的配置
理论我们已经学习完了,接下来尝试跟着我一起做个小实验吧!
采用以下拓扑进行实验配置
在进行rip配置之前,需要配置IP地址与环回接口
R1:
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/0]int l0
[R1-LoopBack0]ip address 1.1.1.1 24
R2:
[R2]int g 0/0/0
[R2-GigabitEthernet0/0/0]ip add 12.0.0.2 24
[R2-GigabitEthernet0/0/0]int l0
[R2-LoopBack0]ip add 2.2.2.2 24
[R2-LoopBack0]int g 0/0/1
[R2-GigabitEthernet0/0/1]ip add 23.0.0.1 24
R3:
[R3]int g 0/0/0
[R3-GigabitEthernet0/0/0]ip add 23.0.0.2 24
[R3-GigabitEthernet0/0/0]int l0
[R3-LoopBack0]ip add 3.3.3.3 24
1,启动RIP进程(都需要启动,不一一演示)
[r1]rip 1
//进程号,进具有本地意义,如果需要同时启动多个RIP进程时,需要使用不同的进程号进行区分
2,选择RIP版本(三个都需选择)
[r1-rip-1]version 2
3,宣告(只演示1.0.0.0网段宣告)
[r1-rip-1]network 1.0.0.0
RIP宣告的要求:
- 所有直连网段都必须宣告
- 必须按照主类进行宣告
宣告的作用:
- 激活接口 :只有宣告的网段包含的接口会被激活,只有激活的接口可以收发RIP的数据。
- 发布路由 : 只有激活的接口所对应的直连网段的路由才能被发布
拓展配置
//1.RIPV2的手工认证
//usual:华为标准;plain:明文形式存储;cipher:密文形式存储
[r2-GigabitEthernet0/0/1]rip authentication-mode md5 usual cipher 123456
//2.RIPV2的手工汇总
//此处汇总的例子是192.168.0.1/24、192.168.1.0/24,汇总为192.168.0.0/23
[r1-GigabitEthernet0/0/0]rip summary-address 192.168.0.0 255.255.254.0
//3.沉默接口
如果一个接口配置成为沉默接口,则将只接受,不发送RIP的数据包。
[r1-rip-1]silent-interface GigabitEthernet 0/0/1
//4.加快收敛,减少计时器的时间
[r1-rip-1]timers rip 30 180 120 //周期更新时间 失效(老化)时间 垃圾失效时间
//5.缺省路由
//可以指定配置设备作为缺省路由的源头,所有其他设备将自动生成一条指向该设备的缺省路由。
//但是该设备自身的缺省必须手工配置。
//此处假设R3是边界路由
[r3-rip-1]default-route originate
RIP的配置我们已经讲完了,大家可以自己实际操作一下哦~
也可以关注博主或者订阅专栏,下一篇博客我会对RIP的综合实验进行讲解RIP小实验