17-动态路由协议,RIP

0
 
0
 
 
1.RIP:routing information protocol 路由信息协议
  • 距离矢量路由协议,属于IGP协议
  • 适合中小企业网络,有RIPv1和RIPv2、RIPv3版本
  • 基于UDP,端口号520
  • 周期性(25.5~30.0/次)更新
  • 支持水平分割、毒性反转和触发更新等防环机制
 
0)工作原理
当路由器运行RIP后,首先会发送路由更新请求;
收到请求的路由器会发送自己的RIP路由进行响应;
请求只发送一次,然后路由器之间每30s左右互相发送一次响应;
可以抓包看到,request包只有开始时发一次,后面的都是response数据包;(抓包时,看UDP下的RIPv1或RIPv2数据包)
respons发送的数据包主要是路由器的路由表;
 
1)RIP度量 
如图:
    RIP度量值只看跳数;
    直连网络路由默认是0,10.0.0.0和路由器B是直连的,跳数为0;
    跳数在发送路由器响应时会加1:
        路由器B给路由器A发送RIP响应时,跳数加1;因此从B到A走上面那条路RIP度量值为1跳;
        路由器B给C发送RIP响应时跳数加1,C给A发送响应时,跳数再加1;因此从B到A走下面RI{度量值为2跳;
0
  • RIP把跳数作为度量值来衡量到达目的网络的距离
  • 缺省情况下,直连网络的路由跳数为0,当路由器发送路由更新时,会将度量值加1
  • RIP规定超过15跳为网络不可达(导致RIP不适应于大型网络,每一跳耗时30s导致RIP慢)
 
 
2)RIPv1和RIPv2的区别
 
版本
区别
RIPv1
有类别路由协议(没有掩码)
不支持VLSM,CIDR
以广播的形式发送报文
不支持认证
RIPv2
无类别路由协议
支持VLSM,CIDR
支持以广播或者组播(224.0.0.9)方式发送报文
支持明文认证和MD5认证
如果要使用RIP,最好用RIPv2,不用RIPv1;
如图:
    RIPv1的数据包发给255.255.255.255,是广播地址,给全广播域发,不安全;
    RIPv2的数据包发给244.0.0.9,是组播地址;
 
3)RIPv1与RIPv2报文格式
0
 
0
Command命令:值为1表示请求,值为2表示回应
Version版本:表明使用的版本
协议簇:TCP/IP协议该字段为2
 
0
0
RIPv2的报文相对于v1,使用了v1中为空的字段,多了路由标签、掩码、下一跳;
 
4)路由认证
RIPv2支持路由认证,用来防止路由协议攻击;
 
5)RIP环路
典型的环路:两个路由器,A的下一跳指向B,B的下一跳指向A
 
例如:
    如下图,10.0.0.0到B是直连,直连为0跳;
    1.0.0.0从B到A是1跳;
    B-A-B是2跳;
    也就是说,路由器B的路由表中1.0.0.0为目标地址的路由可能有两条记录:
        直连的0跳;
        B-A-B的2跳;
    正常情况下,RIP以跳数小的优先,不会将B-A-B的路由写在路由表中;
    如果10.0.0.0和路由器之间挂掉了,路由器B的路由表中10.0.0.0的直连路由消失;
    由于RIP发送消息有30s的间隔,有时间差,A并不知道10.0.0.0的网段挂掉了;
    A继续发消息给B,也就是10.0.0.0的2跳的路由,此时B的路由表中没有10.0.0.0小于2跳的路由于是接收了这条信息;
    然后B会在路由表里写去往10.0.0.0的下一跳是A,有3跳;
    然后A收到消息后继续发给B这样形成环路;
    这样的消息知道下一跳变成16时才终止,因为RIP跳数最大值是15;    
    
0
 
6)RIP解决环路的方式:触发更新和水平分割、毒性反转
 
类型
含义
触发更新:
网络存在变化立即通知邻居
水平分割:
从邻居收到的路由信息不会在转发回去
毒性反转:
从邻居收到的路由信息会转发回去,但跳数置为16
1】触发更新
由于路由器的路由表发生变化时可能由于时间差造成环路;
采用触发更新机制来避免这一缺陷:一旦检测到路由信息变化时,会立即通知邻居路由器更新;
0
 
2】水平分割 
水平分割默认是开启的;
意思是:我告诉你的事情,你不要再告诉我了;
开启命令:
rip sp
rip split-horizon
查看是否开启:
display rip 进程号 interface 接口    
display rip 进程号 interface 接口 verboses
 
0
 
3】毒性反转 
10.0.0.0网段正常时,B给A发送消息,A的路由表中到10.0.0.0网段为1跳;
当10.0.0.0网段挂掉后,B会立即向A发送10.0.0.0网段的跳数为16,表示不可达,此时A的路由表中到10.0.0.0的跳数从1变为16;
A也会继续发消息给B,但由于带的跳数为16,表示不可达,因此B不会相信并修改路由表,也就无法形成环s路;    
毒性反转和水平分割机制矛盾(水平分割不会往回发);如果都开了,以毒性反转为主;
毒性反转默认是关闭的;
开启命令:
rip po
rip poison-reverse
查看是否开启:
dis rip 1 int g0/0/2
dis rip 1 int g0/0/2 ver    //查看进程号为1的接口g0/0/2的详细信息
 
0
 
 
2.RIP配置
1)基本配置
例如:给下面的路由器RTA的三个接口开启RIP
rip
version 2
network 10.0.0.0
network 12.0.0.0
network 13.0.0.0
network命令后面只能带主网地址;
例如:
    12.0.0.0为A类地址,默认掩码8,当输入命令network 12.0.0.0后12.0.0.0网段的所有地址都会开启RIP;
    network命令后的地址不能带掩码来给特定的子网开启RIP;
    如果想给12.0.0.0网段的某个子网单独开启RIP,可以使用Undo rip、slient-interface等命令来实现;
 
2)禁止接口发送RIP
例如:
    从A到C有1跳;
    A-B-D-C有3跳;
    RIP协议以跳数为度量值,默认会走A-C;
    但A-C的带宽远远小于跳数多的路时,根据现实情况,选A-B-D-C更合适;
    可以通过禁止路由器A右下方的接口来实现:
int g0/0/0
undo rip out put
0
 
3)禁止接口接收RIP
例如:
    从A到D有两条路线:A-B-D 和 A-C-D;
    如果希望只走A-B-D;
    可以将路由器D的下方接口禁止接收,导致C-D不通,从而达到目的;
    命令:
int g0/0/1
undo rip input
0
 
4)抑制接口
抑制接口命令的作用是:让目标接口只收不发;
命令:silent-interface g0/0/1
抑制接口的优先级大于rip input和 rip output,同时配置时,以抑制接口命令为主;
也就是说:如果个接口g0/0/1同时配置了抑制接口和禁止接收时,该接口依然能接收;
0
 
 
5)命令解释
命令
备注
Rip 1
开启RIP进程,默认进程为1(可定制进程号,进程号从1到65535)
Version 2
开启RIPv2版本
Network 10.0.0.0
宣告网络,将该IP地址的接口开启RIP功能
Rip metricin 5
设置接口接收路由增加度量值(收的时候度量值加5)
Rip metricout 5
设置接口发送路由修改度量值(发的时候度量值变成5)
Rip split-horizon
开启水平分割,默认开启
Rip poison-reverse
开启毒性反转,默认关闭
Undo rip input
禁止接口接收RIP数据包
Undo rip output
禁止接口发送RIP数据包
slient-interface g0/0/0
配置被动接口,只收不发
Display rip
验证RIP信息
Display rip interface g0/0/0 verbose
验证接口RIP详细信息
 
 
 
posted @ 2020-12-28 17:01  L丶银甲闪闪  阅读(234)  评论(0编辑  收藏  举报