ospf协议的基本特点
这个协议的名字是开放最短路径优先(Open Shortest Path First OSPF)
“开放”表明OSPF协议并不是受一家厂商控制,而是公开发表的。“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。
OSPF的度量表示费用、距离、带宽等(由网络管理人员来决定。)
OSPF最主要的特征是使用分布式的链路状态路由选择算法,而不是像RIP那样的距离向量路由选择算法。
洪泛法:向本自治系统中所有路由器发生消息。
优点:优点:选路佳、收敛速度快、占用资源少
———————————————————————————————————————————
RIP和OSPFV2的异同点:
相同点:
1.RIPV2和OSPFV2一样,都是无类别的路由协议(传递路由信息的时候携带子网掩码)
2.OSPFV2和RIPV2(224.0.0.9)都是以组播的形式传递信息。 ---- 224.0.0.5/224.0.0.6
3.OSPFV2和RIPV2都支持等开销负载均衡。
不同点:
最主要的不同,RIP只适用于中小型的网络环境中,OSPF可以应用于中大型的网络环境中----结构化部署----区域划分。
———————————————————————————————————————————
OSPF区域概念
区域划分的目的 : 区域内部传递拓扑信息,区域之间传递路由信息 ---- 链路状态型协议的距离矢量特征。
当网络规模不大时,我们可以将OSPF网络划分在一个区域内,这样的OSPF网络称为:单区域OSPF网络。
当一个OSPF网络当中,含有多个OSPF区域,则被称为多区域OSPF网络
区域边界路由器
区域边界路由器 ---- ABR----同时处于多个区域,并且一个接口对应一个区域,至少有一个接口属于骨干区域
区域划分要求:
1.区域之间必须存在ABR
2.区域划分必须按照星型拓扑结构划分----所有区域需要连接在中心区域(骨干区域)
为了方便对各个区域进行区分和管理,人为的给每个区域设计了一个编号----区域ID(area ID ---- 由32位二进制构成,可以通过点分十进制的形式进行表示)
注:骨干区域的区域ID必须为0
———————————————————————————————————————————
OSPF的工作过程
协议启动之后,本地组播(244.0.0.5)发生hello包到所有邻居处,若收集到的hello包中拥有自己的routerID,则建立起邻居关系,生成邻居表。
邻居关系建立后,进行条件匹配,若匹配失败,则停留于邻居关系,仅有hello包周期保活即可。若匹配成功,则建立起邻接关系;邻接关系间将通过DBD(数据库描述分组)、LSR(链路状态请求分组)、LSU(链路状态更新分组)、LSack(链路状态确认)来获取未知的拓扑信息,当获取到所有的拓扑信息后,本地生成LSDB----链路状态数据库表。再本地基于LSDB计算到所有未知网段的最短路径,之后,再加载到路由表中。
———————————————————————————————————————————
OSPF五种数据包
- 类型一:Hello包
用周期发现,建立和保活邻居关系
Hello周期发送时间 ----10S(在以太网中默认时间)/30S(NBMA网络当中)
死亡时间 ---- 4倍的Hello时间(40S/120S)
因为OSPF传递的是拓扑信息,需要将所有路由器的位置关系表示清楚,所以,要有一个参数对所有的路由器进行区分和标定。
Router ID需要满足的条件:
1.唯一性(全网唯一)
2.格式统一: 由32位二进制构成,采用IP地址的格式。
Router ID获取方法:
1.手工配置
2.自动获取:
i.如果忘记手写router ID,那么路由器将会采用本地最大的环回地址作为router ID
ii.如果没有环回地址,将使用本地最大的物理接口IP地址作为router ID
注:Hello包会携带Router ID
- 类型二:DBD包
DBD包(DD包) ---- 数据库描述报文 ---- 携带的是路径信息摘要
数据库 ---- LSDB ---- 链路状态数据库 ---- LSA ----链路状态通告
目的向邻站给出自己的链路状态数据库中,所有链路状态项目和摘要信息。
注:DBD包和Hello包都属于OSPF协议报文
- 类型三:链路状态请求(简称:LSR),向对方请求发送某些链路状态项目的详细信息。
- 类型四:链路状态更新(简称:LSU),用洪泛法对全网更新链路状态。
- 类型五:链路状态确认(简称:LSack),对链路更新分组的确认。
建立邻接关系的条件:网络类型(MA网络、点到点网络)
点到点网络将直接建立邻接关系。
MA网络中将进行DR/BDR的选举
1.比较接口的优先级,默认都为1,大者为主。
2.比较routerID,routerID数字大的为主。
目的:消除重复更新量
———————————————————————————————————————————
OSPF七个状态机
- Down当发出hello包时,将进入下一个状态。
- init----初始化状态;当收到hello包中有本地的routerID ,将进入下一个状态。
- 2-way(Two way)----双向通信----邻居关系建立的标志。建立完成后,将进行条件匹配。
- exstart 状态(预启动)----发送类hello的DBD(目录),进行主从的关系选举,routerID数字大者优先进入下一个状态,这里使用DBD包来完成主从关系的选举,目的在于与之前的邻居关系进行区分。(减少资源的占用)
- exchange (准交换)----使用真正的DBD包进行共享。
目的:获取未知的LS信息。路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB内容。 - loading 加载----使用LSR、LSU、LSack来获取未知的拓扑信息----LSA信息。
- full状态----转发----邻接关系建立的标志。
———————————————————————————————————————————
OSPF的基本配置
注:蓝色为区域1,红色为区域0,绿色为区域2。
第一步:进入OSPF进程并书写routerID
第二步:选择区域,并进行宣告。
宣告的方法:反掩码宣告
掩码的作用:区分网络位和主机位。
反掩码的作用:精确匹配。
R1宣告后
查看邻居表
重置OSPF的进程
查看邻居表摘要信息
查看链路状态数据库表
查看路由表
在ospf当中,所学习的环回路由均为32位的路由
整条链路的cost值之和