做料理网站关键词怎么设置,wordpress搜索对接公众号,别墅设计公司排名前十强,京东慧采入驻条件及费用2023年十、OSPF的邻接/邻居
1、OSPF路由器之间的关系
(1)基本介绍
在OSPF网络中#xff0c;为了交换链路状态信息和路由信息#xff0c;邻居设备之间首先要建立邻接关系#xff0c;邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念。
OSPF路由器的两种关系#x…十、OSPF的邻接/邻居
1、OSPF路由器之间的关系
(1)基本介绍
在OSPF网络中为了交换链路状态信息和路由信息邻居设备之间首先要建立邻接关系邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念。
OSPF路由器的两种关系
1)邻居关系(Neighbor)连接到同一个网络能建立双向通信链路。
2)邻接关系(adjacency)可交换网络的链路状态。建立双向通信链路后由OSPF协议确定。
不是所有的邻居路由器之间都要建立邻接关系
1)广播网络或NBMA网络上DR/BDR与其他路由器之间有邻接关系
2)其他路由器之间不需要邻接关系。
在RIP网络中如果路由器A与路由器B位于同一个二层网络那么就说路由器A与路由器B是“邻居关系”
在OSPF网络中如果路由器A与路由器B位于同一个二层网络只能说路由器A与路由器B“相邻”不能说是“邻居关系”。相邻不等于邻居关系更不等于“邻接关系”
OSPF在进行路由计算时首先要完成邻接关系的建立什么是邻接关系邻接关系建立的过程又是怎么样的
举例考虑一种简单的拓扑两台路由器直连。在双方互联接口上激活OSPF路由器开始发送以及侦听Hello报文。在通过Hello报文发现彼此后这两台路由器便形成了邻居关系。
邻居关系的建立只是一个开始后续会进行一系列的报文交互例如DD、LSR、LSU和LS ACK等。当两台路由器LSDB同步完成并开始独立计算路由时这两台路由器形成了邻接关系。
1)邻居(Neighbor)路由器。OSPF路由器启动后便会通过OSPF接口向外发送Hello报文用于发现邻居。
收到Hello报文的OSPF路由器会检查报文中所定义的一些参数如果双方一致就会形成邻居关系。Hello报文是使用多播方式发送的并且IP头的TIL值为1也就表明了OSPF的邻居关系都是物理链路上直接相连的路由器。
2)邻接(Adjacency)路由器。在路由器形成邻居关系的基础之上进一步建立的但形成邻居关系的双方不一定都能形成邻接关系这要根据网络类型而定。
只有当双方成功交换DD报文并能交换LSA之后才形成真正意义上的邻接关系。但是路由器在发送LSA之前必须先发现邻居并建立邻居关系即建立邻居关系是建立邻接关系的前提。
(2)邻居关系和邻接关系
1、邻居关系(Neighbor Relationship)OSPF使用邻居关系是用来交换路由信息。
当两个OSPF路由器在它们的接口之间建立了邻居关系后它们就可以互相交换路由信息。
例如假设我们有两个相邻的OSPF路由器A和B它们的接口分别是192.168.1.1和192.168.1.2。当它们通过这两个接口建立邻居关系后它们就可以开始交换路由信息。
如果两台路由器共享一条公共数据链路并且能够协商Hello数据包中所指定的某些参数它们就形成邻居关系。
1)OSPF路由器启动后便会通过OSPF接口向外发送Hello报文用于发现邻居。
2)收到Hello报文的OSPF路由器会检查报文中所定义的一些参数如果双方的参数一致就会彼此形成邻居关系状态到达2-way即可称为建立了邻居关系。
3)如果参数不一致不能形成邻居关系。
2、邻接关系(Adjacencies Relationship)相互交换LSA的OSPF邻居建立的关系。
1)在点到点点到多的网络上邻居路由器都形成邻接关系。
2)在广播多路由访问和非广播多路访问网络(NBMA)上要选举指定路由(DR)和备份指定路由(BDR)DR和BDR路由器与所有的邻居路由器形成邻接关系但是DRother路由器之间不能形成邻接关系只能形成邻居关系
(下左图示)RTA通过以太网连接了3个路由器所以RTA有3个邻居但不能说RTA有3个邻接关系。
谁来决定邻居关系路由器是否形成邻接关系呢
答案是OSPF的网络类型。网络类型是指运行OSPF网段的二层链路类型。 一个运行点到点协议(PPP)的64Kb/s串行线路就是一个点到点网络的例子。
点到点网络常见的链路层协议有PPP、链路访问过程平衡(LAPB), HDLC。
广播型网络(Broadcast)则是当链路层协议是Ethernet、FDDI时OSPF默认的网络类型。
非广播网络是指不具有广播能力的网络。
在非广播网络上OSPF有两种运行方式非广播多路访问和点到多点。
非广播多路访问要求网络中的路由器组成全连接。例如使用全连接的ATM网络。在NBMA网络上OSPF模拟在广播型网络上的操作但是每个路由器的邻居需要手动配置。
对于不能组成全连接的网络应当使用点到点方式例如不完全连接的帧中继网络将整个非广播网络看成是一组点到点网络。每个路由器的邻居可以使用底层协议例如反向地址解析协议(Reverse ARP, RAAP)来发现。
点到多点网络类型不是OSPF在非广播网络中默认的网络类型OSPF在非广播网络中默认的网络类型是NBMA。
为什么网络类型会决定邻居关系路由器是否建立邻接关系呢。
回到(上左图)中对于路由器RTA而言它有3个邻居。
如果图中的4台路由器彼此之间都建立邻接关系会有多少呢
答案是6。
如果该网络中的n台路由器都属于广播型或者NBMA网络彼此之间会建立的邻接关系是多少呢
答案是n*(n-1 )/2。
这时大家会发现网络中(广播型或者NBMA)随着路由器数量的增加邻接关系数量也会随之大量增加邻接关系数量增加意昧着网络中需要泛洪大量的报文而大量的报文交互需要足够的带宽资源以及设备性能的支持。
在广播型网络或者NBMA网络中需要减少邻接关系的数量那么怎么减少呢
在全广播型网络和NBMA网络中为了避免两两路由器之间建立邻接关系而导致路由收敛慢设计了DR和BDR两种路由器角色如(上右图)所示每一个含有至少两个路由器的广播型网络和NBMA网络都有一个指定路由器和一个备份指定路由器。
(3)邻居和邻接的区别
1)形成邻居关系的双方不一定都能形成邻接关系这要根据网络类型而定。只有当双方成功交换DD报文并同步LSDB后才形成真正意义上的邻接关系。
2)邻居关系只是进行了关系的确认但是没有进行数据库的同步所以无法实现最终路由的计算。
3)邻接关系已经实现了数据库的同步可以通过已经同步的数据库进行SPF算法的计算。
4)邻居关系止步于“2-Way”邻接关系包含整个过程。(下图示) 是否和邻居建立邻接关系 网络类型 是否和邻居建立邻接关系 Point-to-point(P2P) 总是和邻居建立邻接关系 Point-to-MultiPoint(P2MP) 总是和邻居建立邻接关系 Virtual link(虚链路) 总是和邻居建立邻接关系 Broadcast NBMA DR总是和其他所有路由器包括BDR建立邻接关系 BDR总是和其他所有路由器包括DR建立邻接关系 处于DROther状态的路由器只与DR和BDR建立邻接关系
2、OSPF的邻居状态
(1)OSPF建立邻居关系的三个状态
在建立邻居关系的过程中路由器主要需要经历从Down到2-way状态这个过程的最终状态是2-way状态详细介绍分别如下 状态 含义 Down 这是邻居的初始状态表示没有从邻居收到任何信息。 Init 在此状态下路由器已经从邻居收到了Hello报文但是自己的Router ID不在所收到的Hello报文的邻居列表中表示尚未与邻居建立双向通信关系。 2-Way 在此状态下路由器发现自己的Router ID存在于收到的Hello报文的邻居列表中已确认可以双向通信。
Init和2-way最大的区别
Init收到了对方的hello报文但是没有在active-router看到自己的RID。
2-way收到了对方的hello报文但是在active-router看到自己的RID处于2-way建立了邻居关系。 3、OSPF邻居关系建立
(1)OSPF邻居关系建立过程
1、Down状态:这是邻居的初始状态表示没有从邻居收到任何信息。
启用了OSPF功能的链路默认成为down状态并开始向外发送Hello报文(基于网络类型的不同发送方式也会不同广播类型Hello为组播发送)报文发出之后从Down状态转Init状态。
在NBMA网络上此状态下仍然可以向静态配置的邻居发送Hello报文发送间隔为Poll Interval通常和Router Dead Interval间隔相同。
注意OSPF的每条链路都会经历状态机每条OSPF链路的状态机互不影响。
启用OSPF的链路从Down状态开始向外发送Hello报文后转为Init状态。
2、Init状态在此状态下路由器已经从邻居收到了Hello报文。
在Init状态下的链路如果接收到传来的Hello包中含有自己的router-id则表示对端已经发现了自己此时链路就能成为2-way状态了。
3、Attempt状态(NBMA)
该状态仅发生在NBMA网络中表明该链路在发送Hello报文之后到达了失效时间(dead interval)仍然没有收到对端回复Hello报文。如果Router Dead Interval间隔内未收到邻居的Hello报文则转为Down状态。
处于该状态下的链路仍然会向对端发送Hello报文。
4、2-way状态在此状态下双向通信已经建立但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
其它链路类型在成为2-way之后发送第一个空DD报文后进入Exstart状态。(因为在其它网络类型中DD报文通过单播发送无法确认谁先发送DD报文同时为了保障DD的可靠传递需要进行选举主机设备)
如果链路为P2P类型则直接进入Exchange状态进行交互DD报文(因为p2p类型链路所有报文交互都是组播同时p2p是点到点网络完全不需要担心LSA传递过程中丢失)
在邻居建立过程中为了提高OSPF网络收敛的速度。在广播网络中建立邻居时需要同时进行DR与BDR的选举。(2-way建立之前或之后就已经选举出DR与BDR了)
选举DR与BDR主要为了解决同网络中报文信息相互发送造成网络中流量过大的问题。通过选举DR与BDR实现流量的统一整理与发送减少网络中的OSPF报文过多同时提高收敛的速度。 OSPF使用Hello报文发现和建立邻居关系(Hello报文中包含了路由器的RouterID、邻居列表等)
在以太网链路上缺省时OSPF采用组播的形式发送Hello报文。(目的地址224.0.0.5) 1)RTA和RTB的Router ID分别为1.1.1.1和2.2.2.2。
当RTA启动OSPF后RTA会发送第一个Hello报文。此报文中邻居列表为空此时状态为DownRTB收到RTA的这个Hello报文状态置为Init。
2)RTB发送Hello报文此报文中邻居列表为空RTA收到RTB的Hello报文状态置为Init。
3)RTB向RTA发送邻居列表为1.1.1.1的Hello报文RTA在收到的Hello报文邻居列表中发现自己的Router ID状态置为2-way。
4)RTA向RTB发送邻居列表为2.2.2.2的Hello报文RTB在收到的Hello报文邻居列表中发现自己的Router ID状态置为2-way。
因为邻居都是未知的所以Hello报文的目的IP地址不是某个特定的单播地址。邻居从无到有OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5)。
对于不支持组播的网络可以通过手动配置实现邻居的发现与维护。
(2)影响OSPF建立邻居的条件 基础配置详情
PC1:ip:192.168.1.1 gw:192.168.1.254 PC2:ip:192.168.2.1 gw:192.168.2.254
[AR1] interface GigabitEthernet0/0/0
[AR1_interface GigabitEthernet0/0/0] ip address 192.168.1.254 255.255.255.0
[AR1] interface GigabitEthernet0/0/1
[AR1_interface GigabitEthernet0/0/1] ip address 192.168.12.1 255.255.255.0
[AR1] interface Loopback 0
[AR1_LoopBack0] ip address 1.1.1.1 255.255.255.255
[AR2] interface GigabitEthernet0/0/0
[AR2_interface GigabitEthernet0/0/0] ip address 192.168.12.2 255.255.255.0
[AR2] interface GigabitEthernet0/0/1
[AR2_interface GigabitEthernet0/0/1] ip address 192.168.23.2 255.255.255.0
[AR2] interface Loopback 0
[AR2_LoopBack0] ip address 2.2.2.2 255.255.255.255
[AR3] interface GigabitEthernet0/0/0
[AR3_interface GigabitEthernet0/0/0] ip address 192.168.2.254 255.255.255.0
[AR3] interface GigabitEthernet0/0/1
[AR2_interface GigabitEthernet0/0/1] ip address 192.168.23.3 255.255.255.0
[AR3] interface Loopback 0
[AR3_LoopBack0] ip address 3.3.3.3 255.255.255.255
OSPF配置详情
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0.0.0.0
[R1-ospf-1-area-0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0]network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0]network network 192.168.12.0 0.0.0.255 [R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0.0.0.0
[R2-ospf-1-area-0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0]network 192.168.23.0 0.0.0.255
[R2-ospf-1-area-0]network network 192.168.12.0 0.0.0.255 [R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0.0.0.0
[R3-ospf-1-area-0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0]network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0]network 192.168.23.0 0.0.0.255 OSPF邻居与邻接关系建立的8种必要条件
外部(协议上)
(1)Version版本(OSPFv2、OSPFv3)
(2)router id冲突
情况1)在同一个OSPF的区域内相邻的设备router-id不能相同。
验证将AR2的Router_id由原来的2.2.2.2改为1.1.1.1与 AR1的Router_id矛盾
结果不能建立邻居
命令在AR2上ospf 2 router-id 1.1.1.1 dis ospf error //查看有哪些原因导致OSPF邻居无法建立 情况2)同一个区域不相邻的设备router-id可以相同但是会影响路由的接收。(下左图)
如果是华为的设备会有短暂的路由震荡然后C检测出路由冲突会自动修改router id 情况3)不同的区域不相邻的设备router-id可以相同也不会影响路由的接收。(上右图)
不同区域内冲突不会产生路由影响但是如果引入路由或者有5类LSA就会在自治系统见传递引发路由震荡。
(3)区域ID不一致
直连的接口区域ID一定要相同 内部(链路上)
(3)子网掩码必须相同
MA网络掩码需一致(P2P 不需要)(两端配置的接口地址掩码要一致)
MA网络中需要选DR,BDR,当掩码不一致时,无法选出DR,BDR,从而导致ospf邻居建立失败。
1)默认情况下以太链路(网络类型为broadcast)掩码长度必须相同
2)默认情况下串行链路掩码长度可以不同或者(网络类型为P2P链路掩码长度可以不同)
3)网络类型P2MP掩码长度必须相同(也可以不相同但是必须通过OSPF P2MP-netmask-ignore忽略对网络掩码的检查)
interface Serial4/0/1
ospf network-type p2mp //修改OSPF网络类型为P2MP
ospf p2mp-mask-ignore //忽略对网络掩码的检查
dis ospf error (4)两边的hello时间和dead time必须相同
hello在广播型网络中默认10S后续修改为8S进行实验 dead时间自动变为hello的4倍
interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]ospf timer hello 8 //范围1-65535 修改hello 时间
1)不同的OSPF的网络类型hello time 和dead time时间不一样
2)默认情况下dead time 是hello时间的4倍
3)当修改hello timedead time会自动发生变化
4)如果只修改dead timehello time不会自动发生变化
interface Serial4/0/1
ospf timer hello 15 //修改hello时间15s
ospf timer dead 45 //修改dead 时间45s
[AR1]dis ospf int s4/0/1 (5)认证类型需要保持一致
auth type/Data要相同
认证类型分为空——不认证、明文认证、密文认证。
认证类型、密码认证任何一个认证地方的不同都会导致邻居无法建立(比如认证方式不同明文或密文密码配了或者没配密码不一致等) (6)优先级不能全为0
在MA、NBMA网络类型下
将两边router的dr优先级都设为0这时两个路由器都不参与选举也就是DRother在DRother之间只建立邻居关系(two-way)不建立邻接。
所以就卡在two-way状态了。
在MA网络中,需要选出DR,BDR,当设备优先级都为0时,说明所有设备不参加DR,BDR,的选举,也就导致ospf林记建立失败
(7)option中(E、N)区域类型要一致(OSPF的是否为特殊区域) (7)MTU值 DD报文
只影响邻接关系不影响邻居关系。
MTU字段在exstart状态进行比较MTU在DD报文中如果一致性不通过就会停在exstart状态如果不进行MTU一致性检测报文会被重复分片降低转发效率。华为设备默认将DD中的MTU设置为0并不做MTU的比较如果使用ospf mtu-enable则DD报文中的MTU会被设置为IP MTU并且在本接口对对端接口做MTU比较。
【非必要】对于华为设备来说并不会在意链路的MTU值是否一致。
MTU是在DD报文中携带华为接口默认不开启MTU检查 在dd报文之间携带MTU字段(MTU接口可发出的最大IP报文的长度默认为1500)。
检查MTU字段是否一致如果不一致那么dd报文就不能下一步就会永远卡在exstart状态
如果MTU不一致则会卡在exstart和exchange状态。MTU小的卡在exstartMTU大的卡在exchange。
interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]mtu 1300 //如果不开启MTU检查只修改MTU值也是可以建立邻居的
[R1-GigabitEthernet0/0/0]ospf mtu-enable //接口开启MTU检查(两端都开启才会d导致不能full)
dis interface GigabitEthernet0/0/0 //查看接口mtu dis ospf error //查看ospf报错
1)华为设备默认是不检测MTU的可以通过命令配置检测MTU(思科设备默认是检测MTU)
2)如果MTU不一致会卡在什么状态
3)如果从设备的MTU小于主设备的MTU两端都会卡在Estart状态
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ospf mtu-enable 开启MTU检测 华为设备默认不开启MTU值检测,但是在遇到华为与其他厂商设备对接建立ospf时,必须在两台设备上同时开始MTU检测,或同时关闭MTU检测,否则会导致ospf邻居建立失败。
8.silent-interface (静默端口,端口不收不发)禁止接收和发送OSPF报文
一般配置在连接终端的接口不会影响路由的通告
注意千万不要配置在路由器之间相连的接口
配置
ospf 1 router-id 11.1.1.1
silent-interface all //所有使能OSPF的接口都会被变成静默接口
undo silent-interface Serial4/0/1 //排除S4/0/1接口
在端口上配置静默端口命令,端口对于报文,不收不发,没有报文的交流,自然也就无法建立ospf邻居关系。
9.过滤 OSPF报文
acl number 3000
rule 10 deny ip
interface Serial4/0/1
traffic-filter inbound acl 3000 //接口调用ACL
10.NBMA
单播指定邻居
4、OSPF邻接状态 状态 含义 ExStart 邻居状态变成ExStart状态以后路由器开始向邻居发送DD报文(不包含链路状态描述)。 Master/Slave(主/从)关系是在此状态下形成的初始DD序列号也是在此状态下确定的。 Exchange 在此状态下路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。 Loading 在此状态下路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。 Full LSDB同步过程完成路由器与邻居之间形成了完全的邻接关系。
Exstart: 在该状态下使用DD报文进行主从关系的选举且此时的DD报文中不会包含任何的LSDB的摘要信息简称为空DD |DD报文| [通过seq进行了隐式的确认对收到的报文进行确认至于报文中的数据的好坏此时是不参与确认的]
Exchange:发送的OSPF的DD报文中携带了LSA的摘要信息此时则认为进入该状态。
LSR 链路状态请求报文 //请求自己本地没有的LSA ---摘要
LSU 链路状态更新报文 //向对方发送对方请求的LSA ---详细内容
LSACK 链路状态确认报文 //确认已经收到对方发送的LSU --摘要
Loading彼此通过查看DD报文得知自己本地没有的LSA信息此时会开始发送报文进行请求 。
FULL(稳定状态):所有的LSU都得到确认之后此时双方到达Full的状态。
(1)OSPF邻接关系建立过程 Exstart状态
OSPF为了保障LSA信息在传递过程中的可靠性定义了OSPF主从身份(Master、Slave)。
OSPF为何设计如此复杂的交互机制
1、OSPF基于IP层的协议IP本身是一种不可靠、不安全的。
2、通过设置主从设备序列号让报文有序的进行交互能有效提高OSPF传递报文的可靠性。
选举主从的方式通过OSPF的第一个空DD报文比较router-idrouter-id大的成为主。 Exchange状态
如何通过DD报文确定主从身份 主从设备在Exchange状态下的工作过程
(1)基于选出的主从slave主动向master发送DD(LSA信息)报文描述本地LSDB数据库信息此时报文序列号使用的是master的序列号。
(2)masterr收到DD信息之后序列号递增并回复自己的DD报文(携带自己的链路状态信息)
(3)slavev收到master回复的DD时需要回复确认信息序列号为master的序列号(slave不可递增序列号值)
DD报文交互过程(图片)
1、从设备向主设备发送序列号为Y的DD报文携带自己的设备路由简要信息。
从设备发送的序列号Y为主设备的序列号该序列号是在空DD报文主从选举时知道的。
2、主设备向从设备发送序列号为Y1的DD报文携带主设备路由简要信息。
序列号1对从设备发来的DD报文进行确认。同时也是作为下一个从设备DD报文的序列号。
3、从设备向主设备发送序列号为Y1的空DD报文用于确认收到主设备的DD报文。
仔细观察会发现与TCP协议报文交互相似在给对端发送报文之后对端会给予一个确认的回复报文。如此下来就能够有效提升OSPF报文交互的可靠性这也就是主从机制的作用。 Loading状态
基于DD报文中的描述信息OSPF设备按需求发出LSR与LSA、LSACK等报文。 LSR、LSU、LSA交互过程(图片)
A设备主要向B设备发起LSR请求详细的LSA信息。
B设备通过LSU回复A设备所需的详细LSA信息。
A设备收到LSU确认无误之后回复B设备LSACK。
A设备与B设备在完成所有LSA交互之后就能够进入Full状态了。
这里不需要应用到主从了嘛
不需要主从机制主要是在Exchange状态下保障DD报文的可靠传输。而在Loading状态下有LSACK保障可靠传输。 Full状态
该状态下表示链路LSA已经交互成功邻接关系建立完成。
后继链路将定时发送Hello报文进行维持邻接关系如果链路到达Dead死亡时间未能收到Hello报文则邻接关系断开成为Down状态重新进行建立。
Full状态下会将学习到的LSA信息加入到LSDB表中通过SPF算法计算选举出最优的路由条目加入到路由表中。
邻接关系的建立过程
两台路由器建立起了邻居关系之后才会进行数据库的同步过程邻居关系才得以建立。
在建立起了邻居关系之后路由器之间就开启了数据库的同步过程。数据库的同步过程是通过LSA(链路状态)来实现的。 LSDB同步过程如下
1)、RTA和RTB的RouterID分别为1.1.1.1和2.2.2.2并且二者已建立了邻居关系。
当RTA的邻居状态变为ExStart后RTA会发送第一个DD报文。此报文中DD序列号被随机设置为XI-bit设置为1表示这是第一个DD报文M-bit设置为1表示后续还有DD报文要发送MS-bit设置为1表示RTA宣告自己为Master。
2)、当RTB的邻居状态变为ExStart后RTB会发送第一个DD报文。
此报文中DD序列号被随机设置为Y(I-bit1M-bit1MS-bit1含义同上)由于RTB的RouterID较大所以RTB将成为真正的Master。收到此报文后RTA会产生一个Negotiation-Done(协商结束)事件并将邻居状态从ExStart变为Exchange。
3)、当RTA的邻居状态变为Exchange后RTA会发送一个新的DD报文。
此报文中包含了LSDB的摘要信息序列号设置为RTB在步骤2中使用的序列号YI-bit0表示这不是第一个DD报文M-bit0表示这是最后一个包含LSDB摘要信息的DD报文MS-bit0表示RTA宣告自己为Slave。收到此报文后RTB会产生一个Negotiation-Done事件并将邻居状态从ExStart变为Exchange。
4)、当RTB的邻居状态变为Exchange后RTB会发送一个新的DD报文。
此报文包含了LSDB的摘要信息DD序列号设置为Y1, MS-bit1表示RTB宣告自己为主(Master)。
5)、虽然RTA不需要发送新的包含LSDB摘要信息的DD报文但是作为从(Slave)RTA需要对Master发送的每一个DD报文进行确认。
所以RTA向RTB发送一个新的DD报文序列号为Y1该报文内容为空。发送完此报文后RTA产生一个Exchange-Done事件将邻居状态变为Loading。
RTB收到此报文后会将邻居状态变为Full(假设RTB的LSDB是最新最全的不需要向RTA请求更新)。
6)、RTA开始向RTB发送LSR报文请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。
7)、RTB向RTA发送LSU报文LSU报文中包含了那些被请求的链路状态的详细信息。RTA在完成LSU报文的接收之后会将邻居状态从Loading变为Full。
8)、RTA向RTB发送LSAck报文作为对LSU报文的确认。RTB收到LSAck报文后双方便建立起了完全的邻接关系。
(2)P2P网络和P2MP网络
如果两台邻居路由器之间的二层网络是P2P网络或P2MP网络则这两台邻居路由器之间一定会进入LSDB同步的过程
当这两台路由器之间完成了LSDB同步的过程说明他们之间建立了邻接关系彼此之间成为了对方的邻接路由器
LSDB同步的过程是为了保证参与LSDB同步的路由器最终能够拥有完全一样的LSDB。
LSDB同步是交互DD报文LSR报文和LSU报文来实现的
(3)Broadcast网络和NBMA网络
如果两台邻居路由器之间的二层网络是P2P网络或P2MP网络并且其中一台路由器是这个而层网络的DR或BDR那么这两台邻居路由器一定会进入彼此之间的LSDB同步的过程
当这两台路由器之间完成了LSDB同步之后他们之间建立了邻接关系
如果这两台路由器都不是这个二层网络的DR或BDR那么这两台路由器就不会进入彼此之间的LSDB的同步过程也就是说彼此之间是不可能建立起邻居关系
一个OSPF网络中的邻接关系一定是小于等于邻居关系的
配置NBMA网络 [RTA]router id 1.1.1.1
[RTA]ospf
[RTA-ospf-1]peer 10.1.1.2
[RTA-ospf-1]peer 10.1.1.3
[RTA-ospf-1]area 1
[RTA-ospf-1-area-0.0.0.1]network 1.1.1.10.0.0.0
[RTA-ospf-1-area-0.0.0.1]network 10.1.1.00.0.0.255
[RTA-ospf-1-area-0.0.0.1]return
5、OSPF建立全过程
OSPF建立过程可以简单分为以下三个步骤
1)、建立邻居关系 2)、建立和各自拓扑表 3)、建立邻接关系
OSPF完成邻接关系的建立有四个步骤建立邻居关系、协商主/从、交互LSDB信息同步LSDB。 (1)邻接关系建立流程——建立邻居关系 当一台OSPF路由器收到其他路由器发来的首个Hello报文时会从初始Down状态切换为Init 状态。
当OSPF路由器收到的Hello报文中的邻居字段包含自己的Router ID时从Init切换2-way状态。
(2)邻接关系建立流程——建立和各自拓扑表 邻居状态机从2-way转为Exstart状态后开始主从关系选举∶
。R1向R2发送的第一个DD报文内容为空其Seq序列号假设为X。
。R2也向R1发出第一个DD报文其Seq序列号假设为Y。
。选举主从关系的规则是比较Router ID越大越优。
R2的Router ID比R1大因此R2成为真正的主设备。主从关系比较结束后R1的状态从Exstart转变为Exchange。
R1邻居状态变为Exchange后R1发送一个新的DD报文包含自己LSDB的描述信息其序列号采用主设备R2的序列号。R2收到后邻居状态从Exstart转变为Exchange。
R2向R1发送一个新的DD报文包含自己LSDB的描述信息序列号为Y1。
R1作为从路由器需要对主路由R2发送的每个DD报文进行确认回复报文的序列号与主路由R2一致。
发送完最后一个DD报文后R1将邻居状态切换为Loading。
(3)邻接关系建立流程——建立邻接关系 邻居状态转变为Loading后R1向R2发送LSR报文请求那些在Exchange状态下通过DD报文发现的但是在本地LSDB中没有的LSA。
R2收到后向R1回复LSU。在LSU报文中包含被请求的LSA的详细信息。
R1收到LSU报文后向R2回复LSACK报文确认已接收到确保信息传输的可靠性。
此过程中R2也会向R1发送LSA请求。
当两端LSDB完全一致时邻居状态变为Full表示成功建立邻接关系。 整个华为数通学习笔记系列中本人是以网络视频与网络文章的方式自学的并按自己理解的方式总结了学习笔记某些笔记段落中可能有部分文字或图片与网络中有雷同并非抄袭。完处于学习态度觉得这段文字更通俗易懂融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益可以直接联系我我会把相关文字删除。【VXczlingyun 暗号CSDN】