OSPF(开放最短路径优先协议)笔记部分

@努力的小王  November 13, 2017

1、由IETF Internet工程任务组开发,市场上所有网络设备都支持。
2、OSPF链路状态协议,使用最短路径优先算法(SPF,SPF算法也被称为Dijkstra算法,这是因为最短路径优先算法SPF是由荷兰计算机科学家狄克斯特拉于1959年提出的)
3、OSPF基本特性:
1) 使用了区域的概念,有效的减少了动态路由协议对路由器CPU的内存的占用,降低了通信量,构建了一个层次化的网络。
2) 无类路由协议,支持VLSM(可变长子网掩码)和CIDR(无类别遇见路由)。
3) 支持多条路线的等价负载均衡。
4) 使用组播进行更新,减少不参与OSPF的系统负载,组播地址:224.0.0.5 ;224.0.0.6,只有LSU和LSACK两个报文
5) 支持明文认证、MD5认证。
6) 使用可以跟踪外部路由的路由标记。
7) 支持周期更新和触发更新。
8) 范围:IGP,内部网关协议,处于一个AS(同一个自治系统)之内 //与之不同:EGP,外部网关协议,(连通不同的AS)
9) OSPF封装在IP协议中,协议号:89
10) 路由器之间的点对点链路不需要每端都有一个IP地址,实现无编号网络,节省IP地址资源。(IP地址借用)

4、OSPF的3张表
1) 邻居表=Neighbor,列出所有已经与Router建立双向通信关系的Router
2) 拓扑表=Topology=LSDB,列出关于网络中其它所有Router的信息,网络的拓扑结构,一个网络中所有的Router都有相同的LSDB。
3) 路由表=Router,OSPF Router通过SPF算法计算出来的路由。
注:所有路径都存储在LSDB,最佳路径被放入到Router Table。

  1. 基础知识
    1.1. OSPF基本原理与实现

1) 启动OSPF协议的路由器朋所有的接口发出Hello数据包,经过协商一些特定的参数(详见OSPF邻居建立过程),建立起Neighbor。
2) 要想进一步发展,即相互传LSA,要继续往下建立邻接(Adjacency),这是一个复杂的过程,在OSPF中,分网络类型、区域类型及链路类型,类型不同会产生不同的LSA Type。(邻居关系和邻接关系是不同的概念。
邻居关系是指,当双方收到对方的hello报文的时候,报文里面的参数(hello time.dead interval , area id.authentication ,mask 等)一致的时候,并且邻居关系为2-way的时候,这个就可以成为是建立了邻居关系,但是还不是邻接关系。
邻接关系是指在建立的邻居关系之后继续发送DD,LSR,LSU等报文,最终双方的LSDB达到同步之后,邻居状态为FULL时,才成为邻接关系。ospf的重要概念
3) 每台路由器从邻居路由器收到LSA之后,会把这些LSA放入到自己的LSDB当中,并且把这份LSA原封不动的Flooding到所有接口。
4) 通过LSA Flooding到整个Area,All Router都会形成同样的LSDB。
5) 当All Router的LSDB完全相同时,每一台Router会以自身为Root,使用SPF算法来计算一个无环的Topology,用来描述它所知道的到达每一个目的地最短路径信息,这个Topology Map也称为SPF算法树。
6) 每一台Router都将从Topology Table中构建自己的Router Table。
7) 生成了Router Table之后,OSPF就变成了一个“安静”的协议,但仍有Hello数据包(10s)在链路上传输,用来维护Neighbor,这种方式称为Keep alive,并且每隔30min和重传一次LSA,如果拓扑稳定,那么网络不会有什么活动行为发生。

1.2. AS 自治系统
同一个AS中的所有路由器都必须运行相同的路由协议,且必须相互连接,中间不能被其它路由协议隔断,分配相同的AS号,在OSPF网络中,只有在同一个AS中的路由器才会交换LSA,共同组成及维护一个LSDB。

1.3. Area Type
1) 骨干区域(即传输区域,又叫中转区域) :area 0.0.0.0,作用是汇总一个区域网络类型到其它所有区域,所有其它区域之间通信必须经过骨干区域,非骨干之间不能直接通信,杜绝了区域间路由环路。
2) 非骨干区域(即常规区域):除area 0.0.0.0之外的其他所有许可范围内的区域

     非骨干区域又可划分如下:
  1. 标准区域:即正常传输数据的区域2.末梢区域:禁用外部AS的信息进入,即禁用LSA 4,LSA 5类信息进入(5类信息都禁用了。要4类通告ASBR来也没用了。)
  2. 完全末梢区域:禁用外部AS信息很区域间的信息,即LSA 5 和LSA 3类信息进入
  3. NSSA区域:禁用非直连的外部AS信息进入,同时会产生LSA 7类信息,在路由表中表示为 O N2(N2代表类型2,默认的是2,可以改成1,即metric-type 1)
    注:虽然末梢区域和完全末梢区域都禁用了外部AS信息和区域间的信息,但是是不是代表就不可达其他区域或者外部了呢?当然不是,它们在禁用之后都会向相应区域内通告一条Type3类的默认路由以指向外部,保持可达性。

其它特殊区域见Special Area

1.4. 路由器 Type
1) 区域内路由器(Internal Routers)该类路由器的所有接口都属于同一个OSPF 区域。
2) 区域边界路由器ABR(Area Border Routers)该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR 用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
3) 骨干路由器(Backbone Routers)该类路由器至少有一个接口属于骨干区域。因此,所有的ABR 和位于Area0 的内部路由器都是骨干路由器。
4) 自治系统边界路由器ASBR(AS Boundary Routers)与其他AS 交换路由信息的路由器称为ASBR。ASBR 并不一定位于AS 的边界,它可能是区域内路由器,也可能是ABR。只要一台OSPF 路由器引入了外部路由的信息,它就成为ASBR。
注:
关于ASBR:1 用Import-Router导入了其它协议路由的路由器;2 产生了5类路由的路由器;3 配置成NSSA区域,即使没有外部路由产生的路由器。
1.5. 路由Type
1) 区域内(Intra Area)路由:仅用于区域内的IR路由器之间的路由,不向区域外通告。
2) 区域间(Inter Area)路由:仅用于区域间的ABR之间的路由,用于骨干区域与其它区域相互通告路由信息。
3) 第一类外部(Type1 External)路由,到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销
4) 第二类外部(Type2 External)路由,只考虑ASBR到自治系统之外的开销,第二类外部的开销=ASBR到该路由目的地址的开销
注:第一、第二类外部路由可以手动更改,默认为第二类外部路由。

1.6. 邻居和邻接
邻居:相邻设备仅交互HELLO信息。
邻接:除了交互HELLO信息外,也交互了LSA信息,LSDB已经同步。
说法:邻接关系一定是邻居关系,但邻居关系不一定是邻接关系。

1) 在发送任何LSA之前,OSPF之间都必须建立好邻接关系。
2) 每一台OSPF Router都要提供一个Router ID,Router ID是在OSPF Area内使用的唯一标识。
3) OSPF Router利用Hello数据包来通告它的Router ID,方便往后建立邻接关系。
注:P2P的串行链路上2台路由器之间建立完全邻接关系,使用封装类型通常是高级数据链路控制(HDLC)或者PPP协议。

1.7. LS协议和DV协议的比较
1) 报文复杂性:LS算法要求每个节点知道网络中每条链路的费用,无论何时一条链路的费用改变,必须向所有节点发送新的链路费用,链路状态路由协议比距离矢量协议存储更多的信息(如知道路由生成者,整个网络的拓扑信息)。DV协议是“传闻”式的,邻居通告什么信息,接收并信任该信息。
2) 收敛速度:LS算法的实现是一个要求O(|N||E|)个报文的算法。DV算法收敛较慢。且在收敛时会遇到选路环路。
3) 健壮性:LS算法下,路由计算是有些是孤立的,每个Router生成一棵SPF树,因此具备一定程度的健壮性。DV算法中一个不正确的节点计算值会扩展到整个网络。
4) 链路状态协议需采用层次化结构

  1. 减小路由表的条目,通过“域间汇总”实现。
  2. 本地拓扑变化只有影响到本区域,域间汇总带来的好处。
  3. 某些LSA只在本地区域传递,不会范围到其他区域。
  4. 采用层次化结构,涉及IP地址规划等。
    1.7.1. LS算法基本工作过程

1) 每个节点必须找出它的所有邻居。
2) 每个节点测量到它的每个邻居的时延或其他参数。
3) 建立链路-状态报文。
4) 分发链路-状态报文。
5) 计算新路由。
1.8. Metric值的计算
接口Metric=100M/接口带宽,一条路由上的Metric由该路由器从来源一路过来的所有入口方向的接口Metric值的总和,这意味着高带宽的传输介质在OSPF中可能会计算出一个小于1的分数,但在OSPF中是不允许的,会被四舍五入为1。扩展:环回口的路由,掩码为/32,既我们所说的“主机路由”。在实际应用中,环回口以32位的居多,用作OSPF的管理接口。但是如果你想让环回口模拟一个网段,我们可以通过以下配置来消除。
[R1]#int loopback 0
[R1-loopback0]#OSPF network type p2p
环回口只能配置成point-to-point这种类型,不可以配置成其它的类型。(华为里面可以配置成任何类型,但好像是不生效的)

1.9. Router ID
推荐在全局配置Router ID
确定Router ID的规则
1) 若是有Loopback口,选最大的Loopback口地址
2) 若是无则选择物理接口中IP地址最大有作为Router ID
注:在确定了Router ID之后,如果该ID对应的接口Down掉或者出现一个更大的IP,OSPF不会改变原来的Router ID,就算重启OSPF进程,Router ID也不会改变,除非手工配置Router ID,再重启进程便可改变(Huawei好像随便选Router ID,Cisco遵从上面的规则)

1.10. Timers
Hello Interval
BMA网络上默认10s,NBMA网络上默认30s,修改Hello时间,Dead时间默认也会改变
Router dead Interval
多长时间没收到邻居的分组,认为其失效,默认为Hello Interval的4倍
LSA Refresh Timer
默认每隔30min发送一次链路状态条目的摘要,刷新之后LSA Seq加1
LSA Max Age
默认Wait 60min,如果该时间内没有收到LSA,则从LSDB中删除
Wait Timer
等待计时器,在选举DR/BDR时的等待时间(该时间在收集选举人的信息)
Retransmit
指在没有得到确认的情况下,路由器重传OSPF数据包将要等待的时间,默认为5s
Poll Interval
用于NBMA网络上相关的邻居路由器,NBMA上可能无法自动发现邻居,那么路由器将每经过Poll
Interval的时间就会发送一个Hello给它的邻居,这个时间比Hello Interval要长

1.11. DR /BDR选举
选举原则
1) 优先级(0~255;默认为1,0代表不参加选举)
2) 比较Router-id,越大越优先。优者为DR,次者为BDR。
3) 在P2P, P2MP(广播与非广播)这三种网络Type不选取DR与BDR; Broadcast, NBMA选取DR与BDR。

选举过程
启动OSPF进程的路由器互发Hello报文,通过Hello报文建立邻居,然后构建3个集合(优先级为0不加入集合)
使能的时候
DR合集:【 空 】
BDR合集:【 空 】
DR others合集:【例如:Router1;Router2;Router3】
详细过程:开始先选BDR,选了最大的Router3为BDR,这个时候DR缺失,BDR会成为DR,因此Router3变成了DR,这个时候BDR没了,便再次选BDR,选择Router2为BDR,其它的Router为DR others。过了40s Wait Timer之后。

解析例子深一步理解
问1:例如有4台设备
1) 如果4台设备一起开局,那么需要40s Wait Timer来选举DR和BDR。
2) 如果先开了1台设备而且过了40s,那么这台设备就是DR,其它设备不能抢(不可抢占性)。
3) 如果新来了1台设备,接口优先级比现在的DR和BDR还优,也不能选举为DR或者BDR。
4) 如果新来了1台设备,在此之前这个设备的接口已经是DR,此时再接入上面的4台设备,接口优先级比现在的DR和BDR还优,那么它就可以抢占DR,而之前的DR不能成为BDR,只能成为DR others。
深度理解
1) 选DR会放进DR合集里面,从中选一个最优的,没选上的DR会直接变成DR others。
2) 选BDR会放进BDR里面,从中选一个最优的,没选上的BDR会直接变成DR others。

问2:为什么需要选举DR/BDR?
回答::1、减少路由器
如果不选举,那么就无法同步LSDB数据库,由DR来Flooding LSA将大大减小OSPF路由器的系统负载。

要点总结
1) 在一个MA网络上,DR/BDR只有一台,而且非抢占。
2) 如果一个MA网络上只有唯一的一台具有选取资格的路由器相连,那么这台路由器将成为DR,而且没有BDR,DRother只与DR建立邻接关系。
3) 如果都没有具有选取资格,那么网络上就没有DR/BDR,而且Router之间也不建立邻接关系。
4) DR与BDR,DR与DRother,BDR与DRother之间都是FULL状态,DRother之间是2way状态,所有的DRother只和DR以及BDR建立全毗邻关系。

1.12. 组播地址
1) DR将使用组播地址224.0.0.5更新数据包泛洪到DR others路由器中(此反射只能由DR完成)
2) DR others使用组播地址224.0.0.6发送更新数据包给DR/BDR
3) 组播的MAC地址分别为:0100.5E00.0005,0100.5E00.0006

  1. OSPF数据包
    2.1. 五种数据包类型

1) Hello:用于建立和维持邻居关系。 //无需确认
2) DD:描述本地LSDB的摘要信息。 //隐式确认
3) LSR:用于向对方请求所需的LSA。只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。
4) LSU:用于向对方发送其所需要的LSA。  //显式确认,也可以隐式确认
5) LSACK:用来对收到的LSA进行确认。 //对LSU显式确认

2.2. 数据包头部

1) OSPF Version 版本号,默认是v2;v3应用在IPV6中。
2) Message Type 消息类型,用来区分OSPF的5种数据包取值1-5。
3) Packet Length 数据包长度,标识整个报文长度。
4) Source OSPF Router * 路由器的RID。
5) Area ID * 区域ID,是一个点分十进制的数,如Area 256,则在报文中表示为0.0.1.0。
6) checksum 校验和,用来校验整个OSPF报文的完整性和正确性(不包括Auth)。
7) Auth Type * 认证类型,置0不认证,1明文认证,2MD5密文认证。
8) Auth Data * 认证数据。
注:“ * ”部分全部匹配或者不冲突才能建立邻居关系。
2.3. Hello Packet解析
作用:
1) 发现邻居
2) 建立邻居关系
3) 维持邻居关系
4) 选举DR,BDR
5) 确保双向通信

1) Network Mask * 发送Hello报文接口对应的掩码,如果这个掩码与接收Packet的网络掩码不匹配,则丢弃该Packet
2) Hello Interval * Hello间隔,缺省为10s,如果发送与接收的路由器Hello时间不一致,将无法建立邻居关系。
3) Options * 可选项,具体看Options字段解析。
4) Router Priority 指定DR的优先级,缺省为1,为0时不参与选举。
5) Router Dead Interval * 死亡时间间隔,缺省为40s。
6) Designated Router 指定DR的接口IP。
7) Backup Designated Router 指定BDR的接口IP。
8) Active Neighbor 可选项,链路上发现的指定邻居路由器的Router ID。
注:1.“ * ”部分全部匹配才能建立邻居关系。

2.3.1. Hello时间间隔
1) 在点对点网络与广播网络中为10秒。
2) 在NBMA网络与点对多点网络中为30秒。
注:
死亡时间默认为hello时间4倍。
虚电路传送的LSA为DNA,时间抑制,永不老化。
2.4. DD Packet解析
发生在Exstart状态中

数据库描述数据包
1) Interface MTU 指出发送DD报文的接口在不分段的情况下,可以发出的最大IP报文长度。
2) Options 见Options字段详解。
3) I位 发送第一个DD报文统一置位为1 第二个开始为0。
4) M位 发送的包不是最后一个数据库描述数据包时,置位为1,如果是最后一个报文则置位为0。
5) MS位 发送第一个DD报文统一置位为1,第二个开始确定了主从关系后,主的设备置位为1,从的设备置位为0,为Exchange交换DD报文做准备,主的先发(带上了序列号),从的后发。
6) DD Seq 指定所发送的DD报文的序列号。
7) LSA Header 指定DD报文中的LSA头部,可以有多个LSA头部
注:最后一个DD报文一定是从的设备发的,遵从隐式确认
小结:主要是LSA的头部信息,也包括接口的MTU,协商主从位Master/Salve,数据库描述序列号等。
2.5. LSR Packet解析

链路状态请求数据包
1) LS Type 指定所以请求的LSA类型
2) Link State ID 指定OSPF所描述的部分区域,内容会根据LSA类型的不同而不同,
3) Adv 指定产生此LSR报文的路由器ID

小结:请求Neighbor Router发送其链路状态数据库中的特定选项。
2.6. LSU Packet解析

链路状态更新数据包
1) Number of LSA 指定此报文中共发送的LSA数量。
2) LSA -Header是一条条具体的LSA完整信息,可以有多条LSA。

2.7. LSACK Packet解析

链路状态确认数据包
小结:由于OSPF使用IP分组,并不使用TCP/UDP,而其又对可靠性有要求,因此增加该包来保证可靠性
2.8. LSA Header 解析

  • 只出现在LSU、LSACK报文里面,LSR里面只包含三个唯一性 *
    1) LS Age # 老化时间,LSA产生后所经过的时间。

2) Do Not Age 待补充。
3) Options 可选项,具体看Options字段解析。
4) LS Type * LSA Type,取值范围1-5。
5) Link State ID * 链路状态ID,不同类型的LSA其内容也不同。
6) Adv Router * 始发对应LSA的路由器ID。
7) LS Seq Number # 序列号,对应LSA的序列号,可以依据其判断报文的新旧。
8) LS Checksum # 校验和,是对Age字段外的所有LSA报头信息的校验和。
9) Length LSA报头总长度。

2.8.1. Options 字段解析
(除了LSR,其它4个报文都包含这个字段)

最主要的是N、E位,用来标识Area Type
N
E
Area Type
0
1
Backbone
0
1
normal
0
0
stup
1
0
NSSA

注:
DC置位:处理按需链路
N置位:置1表示支持NSSA,能处理Type-7类LSA,置0为不支持NSSA。
MC置位:转发IP组播报文
E置位:置1表示支持外部路由的能力,有外部路由5类LSA存在,0为不支持。
1) 在所有外部LSA和所有始发于骨干区域以及非末梢区域的LSA中,该置位为1
2) 在所有始发于末梢区域的LSA中,该位置为0。
3) 可以在Hello报文中使用该位来表明一个路由器接口是否具有接收和发送Type5的LSA能力。
4) E位配置错误和邻居路由器不能形成邻接关系,这个限制可以确保一个区域内的路由器同样地具有支持末梢区域的能力。

2.8.2. Link State ID解析
1) 当链路类型为Type 1,内容则为始发路由器的ID;
2) 当链路类型为Type 2,内容则为DR接口的IP地址;
3) 当链路类型为Type 3,内容则为目的网络的网络地址;
4) 当链路类型为Type 4,内容则为ASBR路由器的ID;
5) 当链路类型为Type 5,内容则为目的网络的网络地址;
6) 当链路类型为Type 7,内容则为目的网络的网络地址。

2.8.3. Seq Number解析
序列号
1、 取值范围:0x80000001(负数)-0x7FFFFFF(正数) 棒棒糖算法
2、 变化条件:1、每30min变化一次

          2、拓扑发生变化(接口UP和Down)

2.8.4. Checksum解析
校验码
1、Age时间改变Checsum不会改变
2、Seq Nubmer变化会导致Checksum改变,可以理解为Checksum校验时没有考虑age

2.8.5. 唯一性和新旧程度
问:标识一份LSA靠什么来标识?
回答::3个唯一性 *
1) LSA Typ
2) Link State ID
3) Adv Router
(除了Hello,其它4个报文都包含这个字段,第一个空DD报文没有该字段)

问:标识一份LSA的新旧靠什么来标识?
回答::3个新旧程度 #
1) LS Age
2) LS Seq
3) LS Checksum
(除了Hello以及LSR报文,其它3个报文都包含这个字段,第一个空DD报文没有该字段)

深度理解:如何比较LSA新旧程度?
判断条件:确定是同一始发者发送(唯一性)
1) 比较LSA实例的序列号(Seq),越大越新
2) 序列号相同就比较校验和,越大越新
3) 如果校验和相同就比较老化时间,如果1个LSA有最新的老化时间(3600s),它就是最新的
4) 如果老化时间相差15分钟以外,Age越小越新;15分钟默认以内是一样,先收到谁的就用谁的。
5) 如果上述都无法区分,则认为这2个LSA是相同的
判断新旧程度顺序:Seq-> Checksm -> Age

问?谁没有标识新旧程度的3个要素?为什么不需要呢?
回答::LSR没有包含新旧程度,因为是请求对方的LSA详细信息,请求是不需要标识新旧程度的,难道我要在LSR里面标明,我要你的Age时间为XXs的包,我要你的seq为0x00000006的包,我要你的Checksum为0x7556r的包?这样没有任何意义,我只是请求你的LSA详细信息,不要新旧来衡量,收到请求,不管新旧,不管好坏,都需要通告出来。

  1. 邻居关系建立及维护
    3.1. 邻居状态机

1) Down(失效状态)这是第一个OSPF邻居状态,在这个状态下路由器没有从邻居那收到任何信息(包括hello包),不过在这个状态下,路由器可以主动发出hello包给自己的邻居。当路由器之间是Full状态的时候,如果在Router dead Interval时间段内没有从邻居收到任何hello包,或者手工配置的邻居信息被移除,那么邻居状态会从Full变为Down。
2) Attempt(尝试状态)仅存在与NBMA网络中手工配置邻居的情况中,表明在邻居失效时间间隔超时后仍然没有对端发来的Hello应答报文,此时路由器仍然会以轮询Hello报文发送时间间隔向对端发送Hello报文。
3) Init(初始状态)说明了路由器已经收到了来自邻居发送的hello包,但是hello包中没有包含自己的RID,这时还没有建立双向通信,只是单向通信。
4) 2-way(双向通信状态)已经相互交换了Hello报文,收到的Hello报文中包含自己的RID,建立双向通信,成功建立邻居关系,此时不交互LSA内容。
在上面的状态基础下,路由器决定是否要去跟邻居建立临接关系。在广播和NBMA网络类型中,一个路由器仅与DR和BDR建立Full状态关系,而和其他路由器最终停留在2-way状态。在2-Way状态的结束之前,广播网络和NBMA网络类型中的DR和BDR选举出来,然后继续往下面的状态走,在点对点和电对多点网络类型中,路由器和所有相连接的路由器最终都达到Full状态。注意:在init状态下接受到邻居发来的Database Descriptor (DD)包也会导致路由器转变成2-way状态。
5) Exstart(信息交换初始状态)在进行DR/BDR选举后形成的关系状态,通过不带LSA Header字段内容的DD报文协商主从关系master/salve(RID大的为主,小的为从),并确定DD报文的序列号
选举master/salve的重要性:master决定了序列号“Seq”的起始,以后发送数据包以master的序列号来递增/确认,master路由器同时也是唯一一个可以增加Seq的路由器,需要注意的是,逻辑上可以认为DR/BDR中拥有更高的Router ID的一个可以成为master。但是请记住,DR/BDR的选举可能会因为手工配置了priority而不一样,不仅仅依赖与Router ID。因此有可能DR会在这个状态下充当slave状态。这个阶段在协商MTU,MTU若是不一致就会一直卡在此状态。
6) Exchange(信息交换状态)主从关系协商完毕后,主设备开始向从设备发送带有LSA Header字段的DD报文。
同时会发送链路状态请求报文(LSR)和链路状态更新报文(LSU),用来请求最新的LSA(只包含LSA头部,主的先发DD报文)。每一个DD报文都含有一个seq,并且这个号码会每一次被master增加。接收到的DD报文会和路由器链路状态数据库进行比较以确保是否有任何新的或者更多的链路状态信息是可用的。
7) Loading(信息加载状态)通信双方可以彼此发送LSR报文向对方请求最新的LSA更新,而收到的对方以LSU报文对对方请求进行应答。
基于DD报文所提供的信息,路由器会发送LSR报文。邻居会在LSU报文中提供相应的完整的链路状态信息。在邻接关系下,如果一个路由器收到一个过期或者丢失的LSA,它会发送一个LSR请求相应的LSA。所有链路状态更新数据包都会在这个状态下达到同步。
8) Full(完全邻接状态)路由器和其邻居会达到完全邻接状态。所有路由器和网络LSA都会交换并且路由器数据库达到同步。Full状态是OSPF路由器的一个最常见的状态。如果一个路由器停留在另外一个状态,那么就说明了在路由器建立邻接关系的过程中是存在问题的。唯一的例外是2-way状态,是在广播网络中常见的。在广播网络中,邻居之间(除了和DR,BDR之外)会最终处于2-way状态。
注:
华为设备开启MTU协商后(默认不开启)
建立邻居时一直卡在Exstart状态,一定是MTU不同导致的 //PPP链路Type可以自动协商MTU
两种解决方法:1 关闭MTU协商;2 手动设置MTU一致。


添加新评论