OSPF动态路由协议②

OSPF数据包(抓包分析):

        OSPF协议是跨层封装的协议,跨四层封装,直接将应用层的数据封装在网络层协议后面的。OSPF数据包的中协议号字段为89。

分析实验图:

OSPF数据包基本结构:头部信息+相应功能数据报文

​​​​​​ OSPF的头部数据:

OSPF报文的头部报文信息 ,是每个OSPF数据包都拥有的相同报文信息

Verison(版本):OSPF版本,IPV4使用OSPFV2,版本号为2

Message Type(类型):OSPF的数据包类型{hello:1,DBD:2,LSR:3,LSU:4,LACK:5}

Packet Length(数据包大小):数据包长度

RID:哪个路由器发的就用它的RID标识

Aera ID(OSPF区域):数据包从哪个区域发出的,就写哪个区域ID

Checksum(校验核):数据校验

Aunth Type(OSPF的认证类型):OSPF的认证类型有三种:

  • null(不认证):0
  • simple(明文认证):1
  • MD5(通过比对摘要值进行认证):2

Auth Data(OSPF认证数据):认证时,需要对应的认证数据

OSPF在进行认证时,需要比较两部分数据:一部分为认证类型,一部分为认证数据

hello包:

 这个包是完成OSPF收敛之前的hello包(1.0.0.1向1.0.0.2发送的hello包)

hello的具体内容:

①网络掩码

        OSPF接口一旦激活就会去发送hello包,而hello包内含有这个接口本身配置的IP地址的掩码信息(我配置的就是1.0.0.1/30 --- 对应掩码就是255.255.255.252)

        华为设备要求,邻居之间hello包携带的子网掩码必须相同,否则无法建立邻居关系只针对以太网接口进行检测,对P2P网络不做限制(P2P网络对ip地址无限制)

②hello时间和死亡时间:

        邻居之间所携带的hello和死亡时间必须相同否则无法建立邻居关系

③8位可选项:

        每一个比特都对应这个路由器携带的某种OSPF特性。这8位特殊标记包含OSPF特殊区域的标记,这个特殊区域的标记在邻居关系建立中也需要检测如果特殊区域标记不同,也无法建立邻居关系

④路由优先级:

        发出该hello包对应的路由器DR选举的优先级(默认为1)

⑤指定路由器/备份指定路由器:

        在DR/BDR选举完成后,会将对应的DR/BDR的信息携带在该字段,在DR/BDR未选出之前,将以0.0.0.0来填充

⑥邻居路由RID:

        本地已知路由的邻居RID,这个是邻居关系建立的重要标志

 这个包是完成OSPF收敛之后的hello包(1.0.0.2向1.0.0.1发送的hello包)

hello包对邻居关系建立的限制条目:    

         如果有一点双方没有配对成功,则无法建立邻居关系:

  1. 网络掩码(只针对以太网口)
  2. hello时间
  3. dead time
  4. OSPF特殊区域标记
  5. 认证  (认证方式和认证数字)

DBD包:

①接口最大传输单元(MTU)

        华为设备默认不设置开启,一般携带值为0

        但是可以在接口上开启检测功,开启后,数据包将携带真实的MTU值。在exstart状态下交互DBD包,如果邻居的MTU值不一致,则将停留在exstart状态

②8位可选项

        每一个比特都表示路由器所携带的某种OSPF的特征。

③DB包描述位(除了R,I,M,MS其他位置0)

        I位(INIT):该位置的置数代表此DBD包是否是进行主从关系选举的DBD包后面是否携带LSB摘要信息(置1为选举包不携带摘要信息,置0则不是选举包携带摘要信息)

        M位(More):该位置数代表是否还有后续的DBD包置1代表后续还有更多的DBD包,置0则代表这个DBD包是最后一个DBD包)

        MS位(Master):该位置数代表发送数据包的路由器在EXCHANG的主从优先顺序置1代表发送DBD包的设备为主,置0则代表该数据包设备为从

        在主从关系没有选举出来之前,邻居双方会将自己的MS置1,认为自己为主,通过后续交换DB觉得主从关系

③DD序列号

        在携带LSA摘要信息的DBD报文共享过程中,会逐次加一。用于DBD报文传输的有序性和可靠性(使用的是隐形确认机制)

隐性确认机制:

  1. 进行选举时,双方设备互相发送一个DBD包(不含有LSA的数据链路信息包中含有一个随机的本地标识DD序列号(A:选举前R1设备的DD序列号,B:选举前R2设备的DD序列号)
  2. 此时进行选举,如果此时R1作为选举后的主设备从设备R2发送携带本地LSA数据的DBD包的给主设备而使用的DD序列号为主从选举使用的DD序列号(A),做到确认的作用。
  3. 主设备更新完本地的LSA的信息后主会发送一个携带本地LSA数据的DBD数据包给从设备此时DD序列号为刚才之前选举的DD序列号(A+1),然后将数据传输的主导权(不修改MS置数)给从设备】。
  4. 从设备完成LSA数据库更新后会发送一个DBD包给主设备(包中不含有LSA链路信息且DD序列号为A+1),做到确认作用,此时数据收集完成。

主从关系选举作用:

        1.主设备的可以优先进行LSA交换

        2.主设备可以决定隐性确认包的主导权        

        DBD包的确认机制的通过发送相同的序列号来实现的隐形确认,而通过发送ACK数据包来实现信息确认的方法为显性确认

        !!!BR/BDR和主从选举不是同一个概念!!!

④LSA头部信息

        !这个LSA头部信息并不是一个完整的LSA信息,相当于LSA信息的一个摘要信息

抓包解析具体过程:

①选举前,R1和R2的数据包内容(主从抢占包,init置1,无LSA信息):

1.0.0.1发给1.0.0.2的DB主从抢占包

 1.0.0.2发给1.0.0.1的DB主从抢占包

 ②选举选举完成,1.0.0.1的数据包内容(从发送携带LSA信息,init置0):

        此时1.0.0.1作为从设备主动发送携带LSA目录的DB包给1.0.0.2

 ③1.0.0.2更新完本地LSA数据,发送携带本地的LSA的DB给1.0.0.1:

④1.0.0.1回复DB包给1.0.0.2,代表收到确认作用: 

这个数据包没有任何意义,仅仅只是seq的序列号回复给1.0.0.2代表确认

 ⑤此时完成OSPF的DB包的LSA信息收集

LSR包:

此为1.0.0.2发送给1.0.0.1的请求LSA信息的request包

①申请LSA信息

        基于发送过来的携带LSA信息的DBD包,然后和本地LSDB进行比对,请求未知的LSA信息。通过链路状态类型链路状态ID通过路由器来确定LSA信息。

        链路状态类型,链路状态ID,通过路由器被称为LSA的三元组(确定LSA信息的三个重要组成部分):可以唯一标识出一条LSA

LSU包:

此为1.0.0.1发送给1.0.0.2的请求LSR信息的对应LSA信息的回复包

①携带LSA个数

②LSA对应的信息

     LSU包为真正携带有LSA信息的数据包,此时要注意的是,回复的LSU更新包并不只是发送一次,而是多次发送(通过LSA内的seq来确定最新的LSA信息)

        此时可以看到多次发送LSU包

LSAck:

链路状态确认报文,通过携带LSA头部信息来确认(确认的为最新的LSU包)

OSPF的接口网络类型:

接口网络类型有:P2P,MA(BMA/NBMA),NBMA,P2MP。OSPF的接口网络类型:实际上指的是OSPF接口在不同网络环境下默认的不同工作模式

网络类型   OSPF接口的网络类型(工作方式)
BMA(以太网-广播式)

         Broadcast类型 

        需要进行DR/BDR选举,hello 10S,dead time 40S
P2P(PPP/HDLC/MGRE)

          P2P类型

        P2P网络,只能建立一个邻居关系,不需要进行DR/BDR的选举, hello 10S,dead time 40S

环回接口(虚拟接口)

          P2P类型

        实际无数据收发,默认学习到是32 位主机路由
P2MP(人造的,不存在)

          没有正式的网络环境(NBAM的改进版)

        可以创建多个邻居关系,不需要进行DR和BDR的选 举,hello 30S,dead time 120S
NBMA(帧中继)

          NBMA类型

        不会自动建立邻居关系,需要手工指定。需要进行 DR/BDR的选举,hello 30S,dead time 120S

1.BMA网络:

接口类型为Broadcast,需要进行DR/BDR选举,hello 10S,dead time 40S

 此时打开R4的ospf的G0/0/0的接口表和邻居表

[r4]display  ospf interface  g0/0/0

	 OSPF Process 1 with Router ID 1.1.1.1
		 Interfaces 


 Interface: 192.168.1.1 (GigabitEthernet0/0/0)
 Cost: 1       State: DR        Type: Broadcast    MTU: 1500  
 Priority: 1
 Designated Router: 192.168.1.1
 Backup Designated Router: 192.168.1.2
 Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1

[r5]display ospf peer 

	 OSPF Process 1 with Router ID 2.2.2.2
		 Neighbors 

 Area 0.0.0.0 interface 192.168.1.2(GigabitEthernet0/0/0)'s neighbors
 Router ID: 1.1.1.1          Address: 192.168.1.1     
   State: Full  Mode:Nbr is  Slave  Priority: 1
   DR: 192.168.1.1  BDR: 192.168.1.2  MTU: 0    
   Dead timer due in 36  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:02:16     
   Authentication Sequence: [ 0 ] 

		 Neighbors 

 Area 0.0.0.0 interface 192.168.2.1(GigabitEthernet0/0/1)'s neighbors
 Router ID: 3.3.3.3          Address: 192.168.2.2     
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 192.168.2.1  BDR: 192.168.2.2  MTU: 0    
   Dead timer due in 35  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:00:35     
   Authentication Sequence: [ 0 ] 

         此时会发现MA网络下,网络类型状态为Broadcast能建立多个邻居关系,有DR和BDR

2.P2P网络:

P2P网络,只能建立一个邻居关系,不需要进行DR/BDR的选举, hello 10S,dead time 40S

查看R对应的接口的网络类型:

[R1]display ospf interface  Serial  4/0/0

	 OSPF Process 1 with Router ID 1.1.1.1
		 Interfaces 


 Interface: 1.0.0.1 (Serial4/0/0) --> 1.0.0.2
 Cost: 48      State: P-2-P     Type: P2P       MTU: 1500  
 Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1 

         此时会发现P2P网络下,PPP的网络类型状态为P-2-P接口类型也为P2P类,将自己的邻居直接标注出来,并且没有DR和BDR,而cost为48的原因是因为华为设备的接口遵循的是E1标准,最大的传输速率为2.048Mbps

 ②HDLC网络

        此时修改PPP为HDLC网络,并重新查看接口类型

[R1]display ospf interface Serial 4/0/0

	 OSPF Process 1 with Router ID 1.1.1.1
		 Interfaces 


 Interface: 1.0.0.1 (Serial4/0/0) --> 1.0.0.2
 Cost: 48      State: P-2-P     Type: P2P       MTU: 1500  
 Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1 

        此时在P2P网络下,HDCL的网络类型状态依旧为P-2-P接口类型也为P2P类,将自己的邻居直接标注出来,并且没有DR和BDR,而cost为48的原因是因为华为设备的接口遵循的是E1标准,最大的传输速率为2.048Mbps 

 ③此时再次添加一个路由器,使用P2P进行连接 (重启R1,R2,R3的ospf进程)

此时在R2上查看邻居表

[R2]display  ospf peer 

	 OSPF Process 1 with Router ID 2.2.2.2
		 Neighbors 

 Area 0.0.0.0 interface 1.0.0.2(Serial4/0/0)'s neighbors
 Router ID: 1.1.1.1          Address: 1.0.0.1         
   State: Full  Mode:Nbr is  Slave  Priority: 1
   DR: None   BDR: None   MTU: 0    
   Dead timer due in 31  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:21:29     
   Authentication Sequence: [ 0 ] 

		 Neighbors 

 Area 0.0.0.0 interface 2.0.0.1(Serial4/0/1)'s neighbors
 Router ID: 3.3.3.3          Address: 2.0.0.2         
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: None   BDR: None   MTU: 0    
   Dead timer due in 32  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:17:08     
   Authentication Sequence: [ 0 ] 

证明:P2P网络,只能建立一个邻居关系,并且没有DR和BDR选举

3.环回接口:

实际无数据收发,学习到是32 位主机路由

查看环回接口的网络类型

<r4>display  ospf  interface  LoopBack  0

	 OSPF Process 1 with Router ID 1.1.1.1
		 Interfaces 


 Interface: 1.1.1.1 (LoopBack0)
 Cost: 0       State: P-2-P     Type: P2P       MTU: 1500  
 Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1 

华为设备环回接口的开销值默认为0,这个值不受外界干扰(修改参考带宽不会影响环回接口的开销)

[r4-LoopBack0]ospf network-type broadcast --- 修改接口默认的网络类型
如果将环回接口的默认网络类型从P2P修改为Broadcast,则将还原环回接口真实的网络掩码

//此时去R5上查看,此时R4的环回已经修改为/24,而r6仍然为/32
<r5>display  ip routing-table  protocol ospf 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 2        Routes : 2        

OSPF routing table status : <Active>
         Destinations : 2        Routes : 2

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.0/24  OSPF    10   1           D   192.168.1.1     GigabitEthernet
0/0/0
        3.3.3.3/32  OSPF    10   1           D   192.168.2.2     GigabitEthernet
0/0/1

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

4.NMMA:

可以创建多个邻居关系,不需要进行DR和BDR的选 举,hello 30S,dead time 120S

        在NBMA网络中会存在一个attempt状态(过渡状态,当双方均指定对端为邻居后,将会进入下一个状态init)

5.P2MP:

不会自动建立邻居关系,需要手工指定。需要进行 DR/BDR的选举,hello 30S,dead time 120S

华为设备将管道接口的传输速率定义为64Kbp(实际上改接口为虚拟接口,不存在传速率,传输速率取决于物理接口) -- 目的为了避免选路时选择管道接口,因为走隧道接口需要复杂封装,消耗真实线路的带宽

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值