OSPF 开放式最短路径优先(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol),目前针对IPv4协议使用的是OSPFv2,针对IPv6协议使用OSPFv3
OSPF采用最短路径优先(SPF)算法,链路状态路由协议是层次式的,网络中的路由器并不向邻居传递“路由项”,而是通告给邻居一些链路状态
OSPF协议采用组播,组播地址:224.0.0.5和224.0.0.6,其中DR /BDR监听目的IP地址为224.0.0.6的数据包,DRother监听目的IP地址为224.0.0.5的数据包
OSPF协议特点:
OSI层次:OSPF用IP承载,属于传输层协议,协议号89
算法特征:SPF算法
有类无类:无类域间路由
运行范围:IGP内部网关协议
最佳路径:
华为:管理距离10
H3C:管理距离10
思科:管理距离110
度量值:出接口的cost值
认证功能:接口认证和区域认证,同时存在则接口认证优先
OSPF报文类型:
hello:发现、建立和维护邻居关系,选举出DR和BDR
DBD:通告lsa的摘要信息
LSR:请求具体的lsa信息
LSU:通告/更新具体的lsa信息
LSACK:用于隐式确认LSU 保证可靠性
Router-ID:
1、用于标识 OSPF 路由器,是一个 32 位的数值,跟 IPv4 地址格式一样
2、每台设备的唯一标识不能相同,默认为0.0.0.0,华为会优先选择第一个UP接口作为router id,选举之后不会改变,除非重启路由器
3、可以全局设置和在进程下设置,进程下优先,配置之后重启进程生效;配置的Router-ID和接口的IP地址相互独立共存
Router-id 选举:
1、手工指定RID,进程的router-id 优先于全局的router-id
2、优选环回口或物理口IP地址大的
OSPF邻居状态:
down->(attempt)->init->2-way->exstart->exchange->loading->full
down: 表示还没有建立起邻接关系,没有检测到活动邻居,没有收到任何hello报文
attempt: 只存在于NBMA网络中,当一台设备试图联系自己邻居时,没有收到回应报文时
init:表示一台路由器收到另一台路由器的hello报文,但是报文中的邻居表里没有自己的RouterID
2-way:表示一台路由器收到另一台路由器的hello报文,报文的邻居表中有自己的RouterID,标识着邻居建立完成;多路访问网络这时需要选取DR/BDR才能往下进行,其他网络无条件往下继续
exstart: 协商主从关系,RouterID大的为主,主先发送DBD报文,确定DD报文的序列号同时比较MTU。
exchange:在主的带领下开始交换DBD,也向邻居发送LSR来请求新的LSA
loading:发送LSR请求最新LSA,收到新的LSA,对比LSA的序列号
full:已建立完全邻接关系,完成更新过程,其数据库与邻居完全相同
OSPF关系建立:
邻居关系:
邻居建立需要经过的4种状态:down attempt init 2way
Dother设备之间只建立邻居关系
邻接关系:
邻接建立需要经过的状态:exstart exchange loading full
DR和BDR与Dother之间需要建立邻居关系和邻接关系
OSPF网络类型:
1、点到点 P2p 组播建立邻居
2、点到多点 P2mp 组播建立邻居
3、广播 Broadcast 组播建立邻居
4、非广播 NBMA 单播建立邻居
5、虚链路 Vlink 单播建立邻居
OSPF时间关系:
点到点、广播、虚链路类型中 hellointerval是10s deadinterval是40s
非广播、点到多点中hellointerval是30s deadinterval是120s
OSPF 既支持触发更新,也支持周期性更新,默认设备每1800s泛洪一次 LSA,LSA超时时间(删除时间)是3600s。
OSPF区域类型:
骨干区域:连接所有常规区域的区域,也叫做区域0,相当于总部
常规区域:连接骨干区域的区域,也可以叫非骨干区域,相当于分支
末梢区域:连接骨干区域的特殊区域,也可以叫非骨干区域,相当于分支
OSPF设备类型:
DR:指定路由器,其负责在MA网络建立和维护邻接关系并负责LSA的同步,减少LSA的泛洪
BDR:备份指定路由器,接替DR的工作
ABR:区域边界路由器,用来连接骨干区域和非骨干区域
ASBR:自治系统边界路由器,它位于OSPF自主系统和非OSPF网络之间,把一个外部路由导入到OSPF里面
DR/BDR的选举方式:在MA网络中需要选举DR和BDR
1、接口的优先级越大越优先,如果为0则没有选举权,默认为1
2、接口的优先级相等时,比较设备Router-ID,越大越优先
3、DR和BDR选举完成后不能被抢占,除非重启路由器
导致邻接关系建立不起来的原因:
1、 卡在DOWN,网络类型与二层网络类型条件不匹配、有ACL阻挡、hello和dead时间不一致、区域ID不一致、认证错误、特殊区域类型不一致、Route ID相同。
2、 卡在2way,多路访问网络不能选举DR/ BDR,就是priority 都为0。
3、 卡在exstart和exchang,链路两端MTU设置不同,mtu大的可以接受mtu小的报文,可以ip ospf mtu-i gnore忽略.;
4、卡在exchange, 11. 0和12.3IOS的LSA格式不兼容。
5、卡在loading和full状态,使用sdb-overflow-limit 1 限制从邻居收到的路由条目,导致邻居的剩余路由列表不为空
OSPF的LSA类型:
1类(router-lsa):存在本地所在区域内,所有路由器都会通告,描述路由器自身所在区域的直连拓扑(接口的地址、接口类型、接口开销打包成1类LSA通告给邻居),不可被删除
2类(network-lsa):存在本地所在区域内,DR通告(每个MA网络中的DR),描述该MA网络中所有已经形成邻接的路由器(包括DR),也就是指单个MA网络中的拓扑(描述广播网段上的路由器的router-id)
3类(network summary-lsa):存在整个ospf域,ABR通告(在经过下一台ABR时,修改为新的ABR的RID),描述区域间的路由信息,将所连路由器的链路信息以子网的形式传播到相邻区域
4类(asbr-summary-lsa):存在于除了ASBR所在区域的整个OSPF域(ASBR所在区域是基于1类LSA交代的位置),ABR通告(和ASBR同一区域的ABR,在经过下一台ABR时,修改为新的ABR的RID),告诉其他路由器ASBR的位置
5类(as-external-lsa):存在整个OSPF域,ASBR通告,描述AS外部路由信息(被引入的路由信息)
6类:是在MOSPF中用于标识组播组成员用的,交换机不支持
7类(nssa-lsa):存在本地的NSSA区域,ASBR通告,描述的还是本AS之外的路由信息(注意的是该LSA不能直接进入骨干区域,而是需要NSSA区域的ABR将其转换成5类的LSA才能注入骨干区域)
8类:ospfv3新增,包含了本路由器的链路本地地址和这个接口上的所有ipv6地址信息向该链路上的其他所有路由器通告
9类:ospfv3新增,描述路由信息,该类LSA用来通告一个或多个ipv6地址前缀
10类:用于MPLS TE环境中
11类:用于MPLS TE环境中
OSPF环路避免机制:
域内防环:通过SPF算法,区域内部形成一个最短路径树,是一个无环树
域间防环:
1、区域之间存在水平分割机制,从某个区域学到的路由信息不会再通告回这个区域
2、非骨干区域从ABR学习到的路由信息不会在通告到其它非骨干区域
OSPF协议注意点:
1、只有广播和NBMA才会选举出DR和BDR
2、OSPF的进程号只有本地意义,不同设备是通过唯一的router-id识别
3、单区域不需要骨干区域,多区必须有一个骨干区域
4、vlink-peer后面接邻居的router-id 并不是接口地址
5、 华为默认把loopback当作主机路由看待,路由掩码不管多少位都通告成32位,type类型为p2p,如果想通告24位需要把网络类型改成broadcast ;而思科的loopback口通告默认状态是loopback,type类型是loopback,宣告也是32位,如果想要宣告24位 需要把网络类型改成p2p。
---------------------------------------------------------我还会不断更新---------------------------------------------------------