RIP(Routing Information Protocol)是一个应用层协议,属于IGP(内部网关协议),属于距离矢量协议,使用贝尔曼福特算法,效率最低,在传递路由条目过程中会自动将路由条目的度量值加1然后发给邻居路由器

使用UDP协议传输,源目的端口号520(IPv6中是521),RIP协议号:17
距离矢量协议:有距离有方向,传递的是路由表的信息

    使用距离矢量路由协议的路由器并不了解网络拓扑,只知道:
    1.自身与目的网络之间的距离
    2.应该往哪个方向或使用哪个接口转发数据包


    RIP通常在一些简单网络中使用,相比高级动态路由选择协议,简单但对路由器资源消耗较高,并且可能出现路由选择环路

最多只能在15台路由器的环境运行RIP,否则无法收敛,跳数超过15不可达

收敛:所有路由器对于所有链路所有网段的路径信息达成一致的过程,路由选择协议越好收敛速度越快

收敛时间:从网络拓扑发生变化到网络中所有路由器都知道这个变化的时间

RIP收敛速度最慢,最长可达30秒收敛一次

RIP的度量值为跳数,跳数越小路径越优,而不考虑带宽,这一点实际上是不科学的

宣告:接口启用一个协议就是将接口宣告进这个协议

所有被宣告进某协议的接口可以传递接口所有的直连路由以及通过该协议学习到的已加入的路由条目

支持ECMP(等价负载均衡),默认最多支持4条路径做负载均衡,可以手动最大设置到16条负载均衡路径

管理距离120:管理距离越小,代表越可靠,越优先


RIP计时器

更新计时器:30s更新路由表
无效计时器:180s不刷新则将该路由条目的度量值设置为16
刷新路由器:默认240s,比无效计时器长60s,刷新后路由条目则删除

抑制计时器:180s

当一个路由器接口连接的是服务器或PC时,可以将该接口设置为被动接口(passive-interface),这样该接口不会主动发送任何RIP协议报文,可以节省链路带宽和PC的CPU资源


防环机制

1.水平分割:从一个接口收到的同一条路由条目不会再从这个接口发送出去
2.路由毒化和毒性逆转的水平分割:从一个接口收到的路由条目会从这个接口发送出去,但是将这个路由条目标记为16跳不可达
3.毒性反转:路由中毒接收到后回应包
4.触发更新:既支持周期性更新也支持触发更新,在初始化运行RIP时,宣告一个接口进RIP,立即更新路由表,当路由表发生变化时,会立刻发送更新信息 ,默认更新报文只能发送一跳,TTL值为1,因此只能在直连路由器之间传递


RIPv1

1.有类路由协议
2.不支持变长子网掩码(VLSM)
3.更新方式为广播,广播地址255.255.255.255
4.不支持认证
5.每个更新包最大支持25条路由条目
6.路由表查询方式主类网段
7.不支持不连续子网
8.只能支持自动汇总,不支持手动汇总

自动汇总(auto-summary)

当一台路由器通过一个接口发送路由更新(或路由条目)时,会将这个路由条目的前缀与接口的IP地址进行对比,若在同一主类网段,则直接将路由条目发走,否则会自动将路由条目的前缀转换为对应的主类网络的前缀,然后转发出去

自动汇总可能导致路由黑洞

例如路由条目24.1.1.0经过R2时被转换为24.0.0.0发走,有一台R3想去往24.1.2.0网段,他就会将包发给R2,但R2后面并不存在,那么R2将会丢包,但R3并不知道,仍然会一直发给R2,而R2会一直丢包,这个过程称为路由黑洞

RIPv2

1.无类路由协议
2.支持变长子网掩码(VLSM)
3.更新方式为组播,组播地址:224.0.0.9
4.支持明文(不安全,抓包就可以看到密钥)及密文认证(MD5加密,思科私有),默认关闭,需要手动配置认证,更新报文中携带密钥,邻居路由器会用自己的密钥进行对比,若一致则接收,否则丢弃
5.路由表查询机制是由小类-->大类(按位查询,最长匹配,精确匹配,先检查32位子网掩码的)
6.支持不连续子网
7.支持手动汇总,但默认开启自动汇总,因此需要关闭自动汇总:no auto-summary


        下面做一个小实验,简单利用GNS3模拟软件搭一个动态RIP路由。

        下面是一个简单的试验拓扑图:

        解释一下IP地址为192.168.10.10的PC1主机,通过上面的三个路由,把数据包传到IP地址为192.168.40.10的PC2。

利用GNS3搭建一个简单的RIP动态路由_第1张图片


        简单的拓扑搭建完成后我们先开启设备然后配置它们。

利用GNS3搭建一个简单的RIP动态路由_第2张图片

利用GNS3搭建一个简单的RIP动态路由_第3张图片


        设置完成后,尝试用PC1ping一下PC2,现在无法连通。

利用GNS3搭建一个简单的RIP动态路由_第4张图片



            接下来进入路由1的端口0/0跟0/1端口,给端口配上IP地址并开启端口。

利用GNS3搭建一个简单的RIP动态路由_第5张图片

利用GNS3搭建一个简单的RIP动态路由_第6张图片


        然后进入RIP协议的编辑模式,然后输入version 2开启版本协议2,然后输入no auto-summary关闭协议的汇聚功能。然后声明自己直联的两个网段,这是路由1号的设置,其他两个路由也是同样的设置。

利用GNS3搭建一个简单的RIP动态路由_第7张图片



        路由2号的设置。

利用GNS3搭建一个简单的RIP动态路由_第8张图片

利用GNS3搭建一个简单的RIP动态路由_第9张图片



        接下就是路由3号的设置了。

利用GNS3搭建一个简单的RIP动态路由_第10张图片

利用GNS3搭建一个简单的RIP动态路由_第11张图片



        然后检查他们有没有学习到路由条目。看来以下结果,三台路由都已经成功的学习到了所有网段的条目,接下来测试PC1能不能跟PC2连通。

利用GNS3搭建一个简单的RIP动态路由_第12张图片

利用GNS3搭建一个简单的RIP动态路由_第13张图片

利用GNS3搭建一个简单的RIP动态路由_第14张图片



        这边这个小实验就成功了。

利用GNS3搭建一个简单的RIP动态路由_第15张图片

利用GNS3搭建一个简单的RIP动态路由_第16张图片