本文简要分析RIP协议的原理和应用,利用Cisco Packet Tracer仿真器搭建环境,对RIP协议进行实验配置,供学习记录。
自治系统 (Autonomous System, AS) 是具有统一路由策略的巨型网络或网络群组,每个AS通常由单个大型网络管理机构 (如ISP、大型公司、政府机构等) 运营管理,不同的AS采用的路由技术和路由策略可以不同,多个AS组成了庞大的互联网。互联网地址授权机构 (Internet Assigned Numbers Authority, IANA) 为各个AS分配了唯一的16位 (1-65534) / 32位 (131072-4294967294) 编号 (Autonomous System Number, ASN),用以标识和引用AS。
按照作用于AS的范围,常见路由协议可划分为两类:
- 内部网关协议 (Interior Gateway Protocols, IGP):具体包括RIP、OSPF、IS-IS、EIGRP等,一般由单个ISP运营于一个AS内,有统一的自治系统号,目前大型企业内部多使用OSPF、IS-IS,小型企业内部使用RIP或静态路由
- 外部网关协议 (Exterior Gateway Protocols, EGP):BGP是目前唯一使用的一种EGP协议,它是AS间的路由协议,一般用于不同ISP之间交换路由信息,以及大型企业、政府等具有较大规模的私有网络
下面对最简单的内部网关协议RIP进行介绍:
一、基本原理
RIP(Routing Information Protocols) 由Xerox在20世纪70年代开发的协议,最初在RFC 1058中定义,RIP是一种距离矢量路由协议,报文基于UDP,主要用于规模较小、结构简单的网络。RIP使用跳数来度量到达目的地址的距离,同时跳数也是衡量路径优劣的唯一参数,规定跳数度量值metric为0到15之间的整数,直连网络的metric等于0,当metric大于15时认为网络不可达。
(一) 工作过程
1.建立初始路由表:RIP路由器初始化时,最开始只会包含自身直连网段的路由信息,然后会向其相邻路由器发送请求包,获取完整的路由表信息,从而建立初始路由表;
2.常规路由更新和定时:RIP每隔30秒 (路由更新定时器) 通过UDP 520端口向相邻路由器广播 (RIPv1) 或组播 (RIPv2 224.0.0.9) 本地完整的路由表信息,相邻路由器在收到路由信息后,根据距离选择到达各个网络的最佳路由,具体分下面三种情况分别对待:
① 已有表项的来源端口与新表项的来源端口相同,那么无条件根据最新的路由信息更新其路由表;
② 已有表项与新表项来源于不同的端口,那么比较它们的metric值,将metric值较小的一个最为自己的路由表项;
③ 新旧表项的metric值相等,则保留旧的表项。
随着链路中所有相邻路由器周期宣告路由信息,最终形成完备的路由表,如R1路由表:
如果路由表中的某一条目超过180秒 (路由无效计时器) 都没有再次收到更新,则被标记为不可达;如果连续240秒 (路由刷新计时器) 没收到更新,最后将相应路由从路由表中删除;
3.触发路由更新:当某个路由条目发生变化时,路由器随即发送与变化有关的路由,并不发送完整的路由表。
RIP有两个版本:RIP V1为有类路由协议,不支持VLSM (可变长子网掩码) 和CIDR,不支持认证,路由信息通过广播更新,不可以对路由做标记;RIP V2为无类路由协议,支持VLSM和CIDR,支持明文和MD5认证,路由信息通过组播更新,可以对路由做标记,用于策略限制。
(二) 优缺点分析
优点:
- 配置简单,便于维护和管理,适用于小型网络
- 协议流量占用带宽小,对设备性能要求不高
缺点:
- 只根据跳数判断路径优劣,忽略带宽因素,往往不能准确反映链路的准确情况
- 只能依靠相邻路由来获取全局网络的信息,收敛信息慢 (好消息传得快,坏消息传得慢)
- 最大跳数15,不适用大型网络
二、实验配置
(一) 实验拓扑
(二) 配置命令
(VLAN、DHCP、NAT等基础配置略过,只记录路由配置部分)
关于路由汇总 (聚合)
即当子网段传递到网段边界的时候,将子网段汇总为主类网段再发送,以简化路由表,减少内存和带宽等资源占用。但这种技术在一些情况下路由选路会出错,比如R1与R2连接,R1直连的网段为10.1.1.0/24、10.1.2.0/24,如果R2开启路由汇总则其学到的路由为10.1.0.0/22,缺乏了明细路由,因为10.1.0.0/22可以表示4个C段,除了10.1.1.0/24和10.1.2.0/24两个直连的C段外,还包括了10.1.0.0/24和10.1.3.0/24,这样在R2其他接口后再连接10.1.0.0/24和10.1.3.0/24这两个网段时,路由选路就可能出现问题,因此有时要根据具体情况将自动路由汇总功能关闭。
关于边界路由器
边界路由器指处于内网边界或末端的路由器,在内网和外网之间进行报文转发,这种路由器一般不会配置动态路由协议与ISP路由器交换路由信息,因为ISP路由信息太过庞大,会严重影响边界路由器性能,而且边界路由器要将内网段做NAT,内网段不会配置到路由交换的信息中 (外网路由器不会路由内网段),所以一般只配置静态缺省路由指向ISP路由器。
# R0配置
R0(config)# ip route 0.0.0.0 0.0.0.0 1.1.1.2 // 边界路由器设置静态路由指向ISP的路由器
# R1配置
R1(config)# router rip
R1(config-router)# version 2
R1(config-router)# network 1.1.1.0 // 宣告直连网段
R1(config-router)# network 2.2.2.0
R1(config-router)# no auto-summary // 关闭自动路由汇总功能,以免路由选路时出错
R1(config-router)# exit
# R2配置
R2(config)# router rip
R2(config-router)# version 2
R2(config-router)# network 2.2.2.0
R2(config-router)# network 3.3.3.0
R2(config-router)# no auto-summary
R2(config-router)# exit
# R3配置
R3(config)# ip route 0.0.0.0 0.0.0.0 3.3.3.1
R3(config-router)# exit
配置后可用命令查看路由信息:
# 查看RIP配置信息
Router(config)# show ip rip database
# 查看路由表,可见RIP同步的路由表项目
Router(config)# show ip route