内部网关协议RIP
- 距离矢量路由协议
- 基于跳数选择最优路径
- 每隔30s向邻居广播自己的整个RIP路由表
RIP是一种分布式的基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录(因此这是一组距离,即为”距离向量”)。协议RIP的”距离”也称为”跳数”,并且每经过一个网络,跳数就加1。RIP认为好的路由就是它通过的网路数目少,即”距离短”。RIP允许一条路径最多只能包含15个网络。可见RIP只适用于小型互联网。
RIP协议的特点是:好消息传得快,而坏消息传播得慢。
RIP协议的工作原理
如下图,分别有RTA、RTB、RTC三个路由器,每个路由器首先学习到己的直连路由,形成路由表。
然后我们在路由器上配置RIP协议,配置完成后路由器每隔30s就会向他的直连路由通告自己的路由表。比如RTB会将自己的路由表发给RTC,RTC会将自己表中没有的20.0.0.0网段添加进去,记住下一跳,并标记跳数为1。
在经过第一个30s的更新之后,这3个路由器的路由表如下图:
路由器的第二个更新周期到来,路由器将会再次向邻居发送路由表。RTA发送路由表给RTB,但是RTB已经不需要学习了。
不用学习的原因:RTB的路由表中包含RTA的所有网段。
RTB将自己的路由表发送给RTA,RTA会将40.0.0.0这个网段加到自己的路由表中,添加下一跳地址标志为20.0.0.2(因为是通过这个端口收到的),并添加距离标记为2。RTC也会同样更新自己的路由表。最后的路由表如下图:
RIP协议缺点:
1.以跳数评估的路由并非最短路径
若传输1Gb数据流,则从S0/1传输需15625s,如果选择G0/0传输,则会缩短3s
2.最大跳数15导致网络规模小
3.更新发送全部RIP路由浪费网络资源
4.收敛速度慢
内部网关协议OSPF
- 链路状态路由协议
- 基于链路开销选择最短路径
- 触发更新或每隔30分钟向邻接路由器发送链路状态信息的摘要,增量更新机制
OSPF协议工作过程
1.发现邻居
- 通过组播hello包
- 通过同一个广播域内的接口建立一组邻居关系
- 所有邻居都可能跟自己交换链路状态信息
2.建立邻接关系(为了提高第三步的交换效率)
- 只有建立邻接关系的路由器之间才会交换链路状态信息
- 在同一个广播域的接口中选举DR和BDR,网络内所有路由器只与DR和BDR建立邻接关系
- 广播型网络中会选DR和BDR,P2P网络中不会选举DR和BDR
(DR必须由BDR变成,不是直接出现的)
3.交换链路状态信息
- 每台设备都有一个LSDB(Link State Database,链路状态数据库)
- LSDB 中 每 一 条 就 是 LSA(Link StateAdvertisement,链路状态公告):描述链路状态信息,例如网络中某台路由器的ID是什么,其直连的网段是什么,开销是多少等等
- 触发更新或每隔30分更新一次(触发更新:如果网络发生变化,不需要等到30分钟周期,立刻向邻居发送信息)
- 增量更新机制,只发邻居需要的LSA
- 收敛以后,区域内所有路由器具有相同的LSDB。
- 这个LSDB能体现全区域的拓扑结构(该网络中有哪些路由器,各自ID是什么,每台路由器直连的网段是什么,开销是什么)
4.计算路由(每台路由器根据自己的LSDB独立计算路由)
OSPF分区域管理
不同区域之间是通过区域边界路由器ABR连接起来的
- 同一个区域内路由器才会建立邻居关系,交换LSA,收敛后,同一个区域内所有设备具有相同的LSDB,这个LSDB反映了区域内的链路状态,再计算区域内的路由。
- 不同区域之间,由区域边界路由器ABR直接转发路由。
- 每个区域有一个ID,ID是32位二进制,可以表示为一个十进制数,也可以表示为点分十进制形式。(例如:区域0等价于区域0.0.0.0;区域1等价于0.0.0.1)
- 骨干区域——区域0
- 非骨干区域之间不能直接通信,要通过骨干区域0转发,防止产生路由环路。
- 如果网络中有不同的ospf区域,肯定有个区域是区域0