OSPF:开放式最短路径优先协议
无类别链路状态IGP路由协议,部署时需要结构化---区域划分、地址规划
组播更新:224.0.0.5 正常使用 224.0.0.6 DR/BDR专用地址
支持等开销负载均衡,默认4最大6,IOS12.4以上16条;
跨层封装,协议号89;存在触发更新、30min的周期更新;
一、OSPF的5种数据包:
Hello包:
DBD-数据库描述包:
LSR-链路状态请求:
LSU-链路状态更新----携带各种LSA-拓扑或路由;
LSack-链路状态确认
二、OSPF的状态机:
Down:一旦本地OSPF协议发送hello包进入下一状态
Init初始化:接收到的hello包若存在本地的RID,进入下一状态
2way:双向通信,邻居关系建立标志;
条件匹配:点到点直接进入下一状态;MA网络间进行DR/BDR选举(40s),非DR/BDR间
不能进入下一状态;
Exstart预启动:使用类hello 的DBD包进行主从关系选举,RID大为主,优先进入下一状态
Exchange准交换:使用真正的DBD包进行LSA目录信息的共享;
Loading加载:使用LSR/LSU/LSack来获取未知的LSA信息;
Full转发:邻接关系建立;
三、OSPF的工作过程:
启动协议后,运行了OSPF协议的路由器,向所有的邻居发送hello包;建立邻居关系生成邻居表;再进行条件的匹配,匹配成功者间可以建立邻接关系;
邻接关系的建立,使用DBD进行数据库目录的共享,再使用LSR/LSU/LSack来获取未知的LSA信息,获取完成后生成数据库表--LSDB;
然后,本地基于数据库中的内容计算到达所有未知网段的最短路径,将其加载到路由表中;
收敛完成,仅hello周期保活;每30min周期比对一次DBD;若目录相同,继续保活即可,若不同将再次使用LSR/LSU/LSack来获取未知的LSA信息;
结构突变:
1、新增网段,由新增设备向所有邻接发送DBD告知,之后其他邻接通过LSR/LSU/LSack来获取即可
2、断开网段----直连断开网段设备使用DBD告知即可;
另:OSPF的收敛过程,被称为LSA的洪泛或LSDB的同步;
LSA--链路状态通告---各种类别的拓扑或路由信息;
LSDB--链路状态数据库--所有LSA的集合;
四、OSPF的配置:
r1(config)#router ospf 1 启动协议时需要定义进程号,仅具有本地意义;
r1(config-router)#router-id 1.1.1.1 RID,每台设备需要唯一的ID;手工--环回最大数值--物理
接口最大数值--无进程
宣告:1、激活 2、拓扑 3、区域划分
r1(config-router)#network 1.1.1.1 0.0.0.0 area 0
r1(config-router)#network 12.1.1.1 0.0.0.0 area 0
宣告必须使用反掩码进行匹配;
区域划分的规则:
1、星型拓扑----区域0为骨干,大于0为非骨干,正常所有非骨干必须直连骨干区域;
2、ABR--区域边界路由
启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:
Hello--用于邻居的发现、建立、保活;hello time 10s或30s dead time 为hello time的4倍;
邻居间hello包中必须完全一致的参数: hello和dead time;区域ID;认证字段;末梢区域标示
r2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 0 FULL/ - 00:00:39 12.1.1.1 Serial1/0
3.3.3.3 0 FULL/ - 00:00:31 23.1.1.2 Serial1/1
状态机
邻居关系建立后,进行条件的匹配,匹配成功者可以建立邻接关系;
使用DBD包在exstart状态进行主从关系选举,此时的DBD包不携带目录信息,RID数值大着为主,可优先进入exchange状态;在exchange状态使用DBD来共享目录;
DBD包中携带MTU值,邻居间所有MTU值不同,将卡在exstart状态;
在exstart状态使用的DBD包用于主从关系选择,并没有携带目录信息,故没有使用ACK进行确认,但规定DBD/LSR/LSU三个包均需要ACK;因此在exstart状态时,使用的是隐性确认;
在DBD包中存在的描述字符:
I:为1标示该DBD为本地发出的第一个DBD;
M:为1标示该DBD不是本地的最后一个DBD;
MS:为1标示本地为主,为0标示本地为从;
当邻接关系间获取到网络中所有的LSA后,生成LSDB---数据库表:
r1#show ip ospf database 查看数据库目录
存在12种不同类别的LSA,由不同环境下产生;
当设备LSDB同步完成,基于最短路径规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
使用字母O标示同一区域内的路由---本地通过拓扑计算
O IA 标示其他区域的路由信息---通过ABR共享进入
O E1/2 标示通过非OSPF或其他进程计算所得路由通过ASBR重发布进入
O N1/2 标示通过非OSPF或其他进程计算所得路由通过ASBR重发布进入,但进入所在区域
为NSSA区域;
管理距离为110,度量为cost值;
Cost值=开销值=参考带宽/接口实际带宽
参考带宽默认为100M;选路规则---路径cost值之和最小为最短路径;
注:当参考带宽小于接口实际带宽时,可能出现选路不佳----需要修改参考带宽
r3(config)#router ospf 1
r3(config-router)#auto-cost reference-bandwidth ?
<1-4294967> The reference bandwidth in terms of Mbits per second
全网所有设备需要一致;
五、关于是否能够建立邻接关系的条件---基于网络类型;
点到点:邻居间均可直接建立成为邻接关系
MA:邻居间若全部建立为邻接关系,将可能出现大量重复的更新;故进行DR/BDR选择,
DR/BDR将与所有非DR/BDR间建立为邻接关系,非DR/BDR间为邻居关系,仅hello包周期保活即可;
选举规则:1、先比较接口的优先级,大优;
点到点为0,标示不参选;MA为1,;最大可修改到255;
2、若优先级相同,再比较RID,数值大优;
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3 修改接口优先级
注:干涉选举时,修改优先级后,由于选举是非抢占的,故默认不进行重选;
需要重启所有参选设备的进程;
r2#clear ip ospf process
Reset ALL OSPF processes? [no]: yes
也可以将DR优先级最大,BDR次大,其他设备修改为0,不参选;不需要进行重启进程;
切记:不能所有设备优先级为0,至少必须存在DR;
六、OSPF的接口网络类型
网络的类型存在----点到点、BMA、NBMA
OSPF接口网络类型就是指,OSPF协议在各种网路类型下接口的工作方式;
r1#show ip ospf interface loopback 0
Loopback0 is up, line protocol is up
Internet Address 1.1.1.1/24, Area 0
Process ID 1, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1
Loopback interface is treated as a stub Host
网络类型 ospf 的工作方式(工作网络类型)
Loopback Loopback 无hello;32位主机路由发送;
点到点(串行-PPP/HDLC) POINT_TO_POINT, hello time 10s;不选DR;
BMA(以太网) BROADCAST hello time 10s;选DR;
NBMA(MGRE) 接口默认为 POINT_TO_POINT,只能对应一个邻接关系;
故在MGRE环境中由于处于MA环境,点到点工作方式将导致邻接关系翻滚;
若MBMA环境为星型结构,工作方式被修改为BROADCAST ,将由于分子站点间无法建立邻居关系,最终出现DR位置问题,需要将DR位置定到中心点;
点到多点工作方式:hello time 为30s;不选DR;建议所有的NBMA环境为星型或部分网状使用该技术;