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:管理距离越小,代表越可靠,越优先
更新计时器:30s更新路由表 无效计时器:180s不刷新则将该路由条目的度量值设置为16 刷新路由器:默认240s,比无效计时器长60s,刷新后路由条目则删除 抑制计时器:180s
当一个路由器接口连接的是服务器或PC时,可以将该接口设置为被动接口(passive-interface),这样该接口不会主动发送任何RIP协议报文,可以节省链路带宽和PC的CPU资源
1.水平分割:从一个接口收到的同一条路由条目不会再从这个接口发送出去 2.路由毒化和毒性逆转的水平分割:从一个接口收到的路由条目会从这个接口发送出去,但是将这个路由条目标记为16跳不可达 3.毒性反转:路由中毒接收到后回应包 4.触发更新:既支持周期性更新也支持触发更新,在初始化运行RIP时,宣告一个接口进RIP,立即更新路由表,当路由表发生变化时,会立刻发送更新信息 ,默认更新报文只能发送一跳,TTL值为1,因此只能在直连路由器之间传递
1.有类路由协议 2.不支持变长子网掩码(VLSM) 3.更新方式为广播,广播地址 4.不支持认证 5.每个更新包最大支持25条路由条目 6.路由表查询方式主类网段 7.不支持不连续子网 8.只能支持自动汇总,不支持手动汇总
当一台路由器通过一个接口发送路由更新(或路由条目)时,会将这个路由条目的前缀与接口的IP地址进行对比,若在同一主类网段,则直接将路由条目发走,否则会自动将路由条目的前缀转换为对应的主类网络的前缀,然后转发出去
例如路由条目经过R2时被转换为发走,有一台R3想去往网段,他就会将包发给R2,但R2后面并不存在,那么R2将会丢包,但R3并不知道,仍然会一直发给R2,而R2会一直丢包,这个过程称为路由黑洞
1.无类路由协议 2.支持变长子网掩码(VLSM) 3.更新方式为组播,组播地址: 4.支持明文(不安全,抓包就可以看到密钥)及密文认证(MD5加密,思科私有),默认关闭,需要手动配置认证,更新报文中携带密钥,邻居路由器会用自己的密钥进行对比,若一致则接收,否则丢弃 5.路由表查询机制是由小类-->大类(按位查询,最长匹配,精确匹配,先检查32位子网掩码的) 6.支持不连续子网 7.支持手动汇总,但默认开启自动汇总,因此需要关闭自动汇总:no auto-summary
1.主类宣告(模糊宣告):RIP只支持主类宣告,network后面只能接IP地址所属的主类网络号 2.精确宣告(针对接口本身宣告)
使得R4能通过RIPv2协议动态获取到R5分配的ip地址
为R1、R2、R3启用RIPv2协议
R1(中间路由)
R2(中间路由)
R3(中间路由)
R4(内网PC
R5(DHCP服务器)
R1
R2
R3
配置完后查看路由表
R1
R2
R3
可以看到都已经通过RIP获取到了路由条目
R5配置DHCP服务器
R2配置DHCP中继
再看看R4
可以看到已经成功获取到ip地址,实验完成 当一个路由器有多个接口想要运行RIP时,可以直接使用全0宣告:network ,这样直接把路由器所有接口宣告进去