L-S路由协议的实例—OSPF
开放的路径优先(Open Shortest Path First)
使用图(graph)来表述真实的网络
- 每个路由器/Lan都是一个节点
- 测量代价/量度(metric)
计算最短路径
OSPF概述
- OSPF是一种基于开放标准的链路状态路由协议,是目前IGP中应用最广、
性能最优的一个协议
- OSPF可以在大型网络中使用
- 无路由自环
- OSPF支持VLSM、CIDR等
- 使用带宽作为度量值(108/BW)
- 收敛速度快
- 通过分区实现高效的网络管理
单域OSPF的基本概念
- 必须划分区域
- Area 0(区域0),骨干区域( Backbone area )
-所有子区域必须连接到区域 0上
OSPF的发展历程
单区域OSPF
RouterID 一个32位的无符号整数,是一台路由器的唯一标识,在整个自治系统内唯一
TTL=1 通常OSPF报文不转发,只被传递一条,即在IP报头的TTL值被设为1,但虚联接除外
OSPF的网络类型
OSPF术语
OSPF分组(packet)类型
OSPF数据包类型 描述
Type 1-Hello 与邻居建立和维护毗邻关系。
Type 2-数据库描述包(DD) 描述一个OSPF路由器的链路状态数据库内容。
Type 3-链路状态请求(LSR) 请求相邻路由器发送其链路状态数据库中的具体条目
Type 4-链路状态更新(LSU) 向邻居路由器发送链路状态通告
Type 5-链路状态确认(LSA) 确认收到了邻居路由器的LSU
OSPF的运行步骤
1 建立路由器毗邻关系
2 选举DR和BDR
3 发现路由
4 选择最佳路由
5 维护路由信息
建立路由器毗邻关系
OSPF 状态
Down
Init(初始)
Two-way(双向)
ExStart(准启动)
Exchange(交换)
Loading(加载)
Full adjacency(全毗邻)
运行OSPF的路由器状态图
为什么要选举DR和BDR?
DR(村长)选举过程
登记选民 本网段内的OSPF路由器 (本村内的18岁以上公民)
登记候选人 本网段内的priority > 0的OSPF路由器 (本村内的30岁以上公民,且在本村居住3年以上)
竞选演说 所有的priority>0的OSPF路由器都认为自己是DR (所有的候选人都自认为应该当村长)
投票 选priority值最大的,若priority值相等,选Router ID最大的 ( 选年纪最大的,若年龄相等,按姓氏笔划排序)
DR选举中的指导思想
DR可能带来的问题
DR带来的变化
同步的次数减少了(O(n)),减少了带宽的利用
路由器的角色:DR、BDR、DROther
路由器间的关系:Unknown、Neighbor、Adjacent
选择最佳路由
SPF算法
负载均衡
维护路由信息
- 触发更新,LSU
- Hello分组发送的时间间隔:缺省10秒
- Hello分组的失效间隔:缺省40秒
- 即使没有拓扑变化,LSA在条目过期(缺省30分钟)后,发送LSU,通告链路存活
为什么说OSPF克服了路由自环?
- 每一条LSA都标记了生成者(用生成该LSA的路由器的RouterID标记),其他路由器只负责传输,这样不会在传输的
过程中发生对该信息的改变和错误理解。
- 路由计算的算法是SPF,计算的结果是一棵树,路由是树上的叶子节点,从根节点到叶子节点是单向不可回复的路径。
- 区域之间通过规定骨干区域避免
小结
- OSPF是内部网关协议(IGP)中性能最优、应用最广的一个协议
- 建立全毗邻关系的目的是:同步链路状态数据库(拓扑数据库)
- OSPF路由器启动之后,随着报文的交互,状态发生了变化(初始、双向、准启动……)
- 选举DR来减少同步次数