OSPF基本概念与配置(完整版)

目录

路由分类

OSPF概述

一、OSPF的工作过程

二、报文类型

三、OSPF区域

四、OSPF单区域实验案例

拓扑

需求

配置步骤

配置命令

五、OSPF邻居表解析

六、OSPF路由角色

七、OSPF多区域实验案例

拓扑

需求

配置步骤

配置命令

八、邻居建立失败的原因(已广播型网络为例)

十、OSPF状态机 (7种状态)

十一、OSPF网络类型

        为什么要有网络类型?

        分类

广播类型(Broadcast)

非广播类型(NBMA)

点到点(P2P)

点到多点(P2MP)

        OSPF网络类型

OSPF nbma 网络类型下,建立OSPF邻居实验

OSPF p2p网络类型下,建立OSPF邻居实验

R1和R2不在同一网段,但能够互相ping通,是否可以建立P2P的邻居关系?

OSPF设备,一边是broadcast,另一边是p2p,是否可以建立OSPF邻居?

十二、DR与BDR

1、说明

2、修改接口的DR优先级

十三、链路状态数据库(LSDB)

1、LSDB

        作用:存储各种类型的LSA

2、LSA分类:

3、分析OSPF数据库结构

十四、1、2、3类LSA解析

实验案例

拓扑

需求

配置步骤

配置命令

LSA字段解析

​编辑

1类LSA

2类LSA

3类LSA

十五、4、5类LSA解析

实验案例

拓扑

需求

配置步骤

配置命令

4类LSA

5类LSA

十六、特殊区域

OSPF区域划分

特殊区域的作用

Stub区域的特点:

Stub实验和配置命令

拓扑

需求

配置步骤

配置命令

Totally Stub区域的特点:

NSSA区域的特点:

NSSA实验和配置命令

拓扑

需求

配置思路和配置命令

Totally NSSA区域的特点:

Totally NSSA 配置命令:

特殊区域总结

7类LSA解析

十七、路由汇总

1.概念:

2.作用:

3.汇总实验

区域间路由汇总

概述

配置

        需求:

拓扑:

配置命令:

外部路由汇总

        概述

配置

        1)需求:

2)拓扑:

3)配置步骤:

总结:

十八、安全认证

1. 认证概述

2. 认证方式

3. 认证位置

3. 认证模式

4. 配置认证:

十九、OSPF外部路由的2种度量值


路由分类

-直连路由
-非直连路由
    &:静态路由
    &:动态路由
       @:IGP:内部网关路由协议-在同一个AS内部使用(在企业内部或者数据中心内部使用)
              -DV:距离矢量路由协议
                 -RIP(v1/v2)
                 -IGRP-思科私有协议
                 -EIGRP-思科私有协议
              -LS:链路状态路由协议
                  -OSPF:开放式最短路径优先( 企业用:功能多,可以精细化控制) 
                  -ISIS:中间系统到中间系统( 数据中心用,转发能力强,大流量转发 )
        @:EGP:外部网关路由协议:在不同的AS之间使用(AS:自治系统)
               -BGP:边界网关协议

OSPF概述

1、OSPF是什么

        -开放式最短路径优先协议,一种最受欢迎的动态路由协议

        -版本:OSPFv2(IPv4) 和OSPFv3(IPv6)

        -OSPF位于OSI参考模型的第三层,数据封装在IP报头的后面

-协议号是89

2、场景:适用于中、大型网络规模,常见的场景有

        &政企网,层次化的网络架构中

        &数据中心内部,用于实现把不同的网段打通

3、作用:便于大型网络中对路由的管理和维护

-优点:

▫基于SPF算法,以“累计链路开销”作为选路参考值

▫采用组播形式收发部分协议报文

▫支持区域划分

▫支持对等价路由进行负载分担

▫支持报文认证

一、OSPF的工作过程

-建立邻居表:和小姐姐成为朋友

-同步数据库:交换个人信息(家庭住址)

-计算路由表:计算出从我们家到她家的最优的路径

-建立邻居表:成为朋友,交换个人基本信息

hello报文:建立邻居关系和维护邻居关系
  打招呼,大家好,我是小红
                                            大家好,我是小兰
    你好,小兰,我是小红,我和你是朋友
    你好,小红,我是小兰,我和你是朋友
  周期性发送hello ,用于维护邻居关系(朋友关系)

-同步数据库:把秘密分享给对方(我有有多少邻居,邻居特点,住址)

DBD报文:用于描述数据库摘要信息
        小红家:有蔬菜               小兰家:有肉
         黄瓜                         猪肉
        
LSR报文:用于请求对方数据库中的LSA(链路状态通告)
         小红:兰姐,我想要你家的猪肉
         小兰:红妹,我想要你家的黄瓜
         
LSU报文:根据对方的请求,更新信息,传递LSA
         小兰:红妹,猪肉,你查收一下
         小红:兰姐,黄瓜,你查收一下
LSACK:报文收到对方的更新信息(LSA)进行确认
         小红:兰姐,你的猪肉,我收到了,谢谢你
         小兰:红妹,你的黄瓜,我收到了,谢谢你
         
           
 备注: 数据库同步--厨房蔬菜同步后,就可以炒菜,炒猪肉炒黄瓜
 备注: 这道菜:猪肉炒黄瓜:就是代表一个被计算出来的路由条目
              猪肉:代表计算路由的原材料,在OSPF中称为LSA(链路状态信息)
              黄瓜:代表计算路由的原材料,在OSPF中称为LSA(链路状态信息)
              
 所以,我们可以得出一个结论,OSPF中,所有的路由都是路由器通过OSPF计算出来的,不是学习来的
      但是计算路由的“原材料-LSA”都是通过同步数据库,学习来的,
      所以运行OSPF的路由器,学习的是LSA,计算路由的源材料,
      通过互相学习到这些源材料,就可以计算出来最短路由
                        

-计算路由表:根据得到的信息构建一张地图,根据地图导航最优路径

二、报文类型

-Hello 用于发现、建立、维护邻居关系(交朋友)

-DBD 用于描述数据库摘要信息(发菜单)

-LSR 请求数据库中没有的LSA信息(我要)

-LSU 根据对方的请求信息,更新LSA给对方 (给你)

-LSack 收到对方的更新LSA信息后,进行确认(说谢谢)

三、OSPF区域

1、区域划分:

        OSPF适用于大型网络,采用分层设计,分为骨干区域和非骨干区域。

2、OSPF 骨干区域

        区域号为0,表示的就是“骨干区域”

3、OSPF 非骨干区域

        区域号不为0,表示的就是“非骨干区域”

4、非骨干区域必须和骨干区域“直接”相连,能实现“区域之间的互通”

5、OSPF 区域的表示

        通过十进制表示,例如区域 0、1、2、3等

        通过点分十进制表示,例如区域 0.0.0.0 、0.0.0.1、0.0.0.2等

6、为什么要引入区域

        原因:只有一个区域的不足

        如果只有一个区域,公司内所有路由器都要同步数据库:

不足:

        1)数据报文非常多,所以设备压力大, 带宽占用多

        2)由于数据报文多,所以同步数据库非常慢,占用时间多

        3)由于数据库非常大, 所以计算路由慢,所以计算出来的路由表也非常大

        4)由于路由表非常大,路由器转发数据的时候, 查路由表时会让设备压力大(CPU占用高),查表慢,最终导致,数据转发慢,公司网络性能差

所以我们要引入OSPF区域

引入多个区域的优势:

        1)只有同一个区域内的路由器才需要同步数据库,不同区域的路由不需要同步数据库

        2)所以同步数据库的设备少, 数据报文就少,设备压力也小,也不过多浪费带宽

        3)由于数据报文少,所以数据库最终就小

        4)数据库小,数据库同步的速度就快,计算路由的路由就快

        5)数据库小,最终路由表也小,转发数据的速度就快,公司的网络质量就好

四、OSPF单区域实验案例

拓扑

需求

实现全网互联互通

配置步骤

1)配置PC接口IP地址

2)配置路由器的接口IP地址

3)配置OSPF

        -创建ospf进程,定义router-id

        -指定相应区域

        -宣告网段进入ospf

4)验证结果

配置命令
第一步:配置PC接口IP地址
第二步:配置路由器接口IP地址
第三步:配置OSPF: 
 R1:配置 
ospf 1 router-id 1.1.1.1    //指定ospf进程号, 指定router-id
 area 0.0.0.0               //指定区域id
  network 192.168.1.0 0.0.0.255     //宣告直连网段
  network 192.168.12.0 0.0.0.255    //宣告直连网段
  
 R2:配置 
ospf 1 router-id 2.2.2.2
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  network 192.168.12.0 0.0.0.255 
  
 R3:配置 
ospf 1 router-id 3.3.3.3
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  network 192.168.2.0 0.0.0.255   
  
第四步:验证结果
display  ospf   peer  brief     //查看邻居表简要信息
display  ip routing-table       //查看路由表
PC1  ping  PC2  验证结果


<R1>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    NextHop         Interface

192.168.2.0/24      OSPF    10    3       192.168.12.2     G0/0/0
192.168.23.0/24     OSPF    10    2       192.168.12.2     G0/0/0

  
  

五、OSPF邻居表解析

  
 <R1>display ospf peer brief    //查看邻居表简要信息

   OSPF Process 1 with Router ID 1.1.1.1
      Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             2.2.2.2          Full        
 ----------------------------------------------------------------------------

  
 1、Process : 进程号 
ospf 1   :指定ospf进程号1 
1)作用:在同一个设备上,区分不同的ospf路由协议  
2)通过不同的进程号的ospf 协议所学习到的路由信息是不会自动相互传递的,
从而实现各个ospf 协议之间的隔离
3)ospf 进程号只在本地路由器起作用,不同的路由器的进程号,可以相同,也可以不同
4)进程号范围 <1-65535>


 2、Router ID  
router-id 1.1.1.1   //指定router-id 为1.1.1.1
1)ospf协议给路由器起的一个名字,格式类似于IP地址(点分十进制)但是不是IP地址
2)在ospf 网络中,router-id 是唯一的标识一台路由器
3)router-id  的生产方式
选举规则:-手动指定:最优
        -如果没有手动指定router-id ,会进行自动选举
&:自动选举
   -首先选举本设备上的loopback接口的IP地址,选择IP地址最大的
  --如果没有配置loopback 接口选举物理接口IP地址最大的  
备注:自动选举的前提是,所有的接口同时运行ospf ,如果没有同时运行,那个接口先启用ospf,
     就选择那个接口的地址号,做router-id
  
&:手动配置
  [huawei] ospf   1  router-id    1.1.1.1     //手动指定的命令
  备注:当路由器已选router-id 后,手修改router-id 并不会生效
  为什么? ospf需要稳定,ospf稳定,网络才会稳定,一旦选举router-id,就不会被替代
  -如果已经有了router-id ,后来又手动指定的router-id 想让新的router-id生效,怎么办?
  重启ospf 进程:<huawei> reset  ospf  process   //在用户视图下执行命令   


   3、Area Id :区域号 
 area 0.0.0.0   
  1)表示的是与对方设备建立邻居关系时,所使用的区域号
  2)对于ospf 来说,这个区域号一定不能少
  3)区域号的表示方式有两种
        &: 十进制数:  0-4294967295
        &:点分十进制: 0.0.0.0 - 255.255.255.255
   4)区域分为两类:
         &: 骨干区域: 0
         &:  非骨干区域 : 不为 0
         
   4、Interface  : 使用那个接口与对端建立的邻居
   
   5、Neighbor id  : 邻居的router-id
  
   6、State  : 邻居之间的状态
    full :完美的邻居
  
  
  

报文字段解析:

OSPF Header  头部报文解析: 
 【 OSPF Version 】 
     这个字段,指的是OSPF的版本
     版本2——针对的是IPv4的网络
     版本3——针对的是IPv6的网络
     
 【 Message Type 】 
     消息类型
     OSPF中,一共有五种报文:Hello、DD、LSR、LSU、LSAck
     分别对应了1、2、3、4、5
     
 【 Packet Length 】 
     报文的长度,不可修改
     
 【 Source OSPF Router 】 
     发送这个Hello报文的路由器的Router ID
     而在一个OSPF网络中,Router ID就是用来唯一标识一台路由器的
     所以,不同路由器的Router ID不能相同
     
  【 Area ID 】 
     发送这个Hello报文的接口,所在的区域
     两台路由器,想要建立邻居,它们的互联接口,必须在同一个区域中
     
 【 Packet Checksum 】 
     报文的校验和,用来校验报文是否完整
     
 【 Auth Type/Data 】 
     这里指的是OSPF的认证
     认证的类型必须相同,认证的密码必须一致OSPF Header  头部报文解析:

OSPF Hello Packet 报文解析:

【 Network Mask 】 
    子网掩码
    默认情况下:两个建立OSPF邻居的路由器,互联接口的掩码必须相同
     
 【 Hello Interval 】 
    Hello时间间隔/Hello计时器/Hello时间
    就是发送这个Hello报文的路由器,多长时间发一个Hello包
    默认情况下:Hello时间为10秒
    两台路由器,想要建立OSPF邻居,它们的Hello时间必须相同

 
  【 Option 】 
     特殊标记位
     不同的区域类型的标记位也不同
     想要建立OSPF邻居,Option位必须相同
         
  【 Router Priority 】 
     DR优先级,用于DR选举
     如果两台想要建立OSPF邻居的路由器,在互联接口上都配置了自己的DR优先级为0,那么,两台路由器都不会参加DR选举
     而在需要DR的网络中,选举不出DR,邻居就无法继续建立
     所以,两台设备DR优先级为0,在需要DR的网络中,邻居状态会卡在2-way
       
       
  【 Router Dead Interval 】 
      Dead时间/死亡时间
      默认情况下:是Hello时间的4倍=40秒
      Dead时间会随着Hello时间的改变而改变,但还是4倍关系
      所以,我们如果更改Dead时间,一定要注意是否受Hello时间影响,
      即:我们需要单独更改Dead时间(手动配置的Dead时间优先于默认情况——4倍Hello时间)
      
  【Designated  router 】  :  DR :指定路由器

  【backup  Designated  router】   :BDR  :备份指定路由器

  【Active  Neighbor 】 :  活跃的邻居,我认可的邻居

六、OSPF路由角色

  • 骨干路由器:路由器只要有一个接口在骨干区域
  • 非骨干路由器:路由器的所有接口都在非骨干区域
  • ABR(区域边界路由器) 同时连接着骨干区域和非骨干区域的路由器
  • ASBR(自治系统边界路由器)具有产生外部路由能力的路由器

七、OSPF多区域实验案例

拓扑

需求

实现全网互联互通

配置步骤

1)配置PC接口IP地址

2)配置路由器的接口IP地址

3)配置OSPF

        -创建ospf 进程 和 router-id

        -配置ospf 区域id

        -宣告直连网段进ospf

4)验证结果

配置命令
第一步:配置PC接口IP地址
第二步:配置路由器接口IP地址
第三步:配置OSPF: 

 R1配置: 
ospf 1 router-id 1.1.1.1 
 area 0.0.0.12 
  network 192.168.1.0 0.0.0.255 
  network 192.168.12.0 0.0.0.255  

 R2配置: 
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
 area 0.0.0.12 
  network 192.168.12.0 0.0.0.255 

 R3配置: 
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  network 192.168.34.0 0.0.0.255

 R4配置:  
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 192.168.34.0 0.0.0.255 
  network 192.168.45.0 0.0.0.255 

 R5配置:  
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 192.168.45.0 0.0.0.255 
 area 0.0.0.56 
  network 192.168.56.0 0.0.0.255 

 R6配置:  
ospf 1 router-id 6.6.6.6 
 area 0.0.0.56 
  network 192.168.2.0 0.0.0.255 
  network 192.168.56.0 0.0.0.255
  
  
 第四步:验证结果 
display  ospf   peer  brief     //查看邻居表简要信息
<R1>display ip routing-table protocol ospf 
PC1  ping  PC2  验证结果

八、邻居建立失败的原因(已广播型网络为例)

1)两台路由器直连的接口必须互通,才能建立邻居关系

2)两台路由器router-id 不能相同,才能建立邻居关系

3)两台路由器互联接口的Area id 必须相同,才能建立邻居关系

4)两台路由器的接口的IP地址的子网掩码必须一致,才可以建立邻居关系(p2p除外)

5)两台路由器接口的Hello 时间必须一致,才能建立邻居关系

6)两台路由器接口的Dead时间必须一致,才能建立邻居关系

7)两台路由器的优先级不能全为0 (全为0可以建立邻居,无法建立邻接)

8) 认证类型必须相同(才能建立邻居关系)

9) 认证密码必须相同(才能建立邻居关系)

10)特殊标记位必须相同(才能建立邻居关系)

实验1:两台路由器的router-id 不能相同,如果相同,不能建立邻居关系

1)修改R1路由器的的router-id 为2.2.2.2 让R1的router-id 和R2的router-id 相同

        2)配置命令

[R1]ospf   1   router-id   2.2.2.2      //修改R1的router-id  为2.2.2.2 
<R1>reset  ospf    process          //重启ospf 进程

        3)验证:无法建立邻居关系

<R1> dis ospf peer br 

   OSPF Process 1 with Router ID 2.2.2.2
      Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 ----------------------------------------------------------------------------

        4)结论: 两台路由器的router-id 不能相同,如果相同无法建立邻居关系

        5)备注:验证完成,记得恢复配置,把R1的router-id 在改回1.1.1.1

实验2: 两台路由器互联的接口所在的Area id 必须相同,如果不同,无法建立邻居关系

        1)修改R1路由器的的Area id 为2 让R1的Area id 和R2的Area id 不相同

        2)配置命令

[R1]ospf 1 
[R1-ospf-1]area 0
[R1-ospf-1-area 0]undo  network 192.168.12.0  0.0.0.255
[R1-ospf-1-area 0]area  2
[R1-ospf-1-area 0]network  192.168.12.0  0.0.0.255

        3)验证:无法建立邻居关系

<R1> display ospf peer brief  

OSPF Process 1 with Router ID 1.1.1.1
      Peer Statistic Information

Area Id          Interface                        Neighbor id      State

        4)结论:两台路由器互联的接口所在的Area id 必须相同,如果不同,无法建立邻居关系

        5)备注:验证完成,记得恢复配置,把R1的192.1680.10.0/24 网段重新在area 0 中宣告

实验3:(广播型网络)两台路由器互联接口的IP地址的子网掩码必须一致

        1)修改R1路由器的接口IP地址的子网掩码,让R1的g0/0/0口和R2的g0/0/0口的IP地址掩码不一致

        2)配置命令

[R1]interface  g0/0/0
[R1-G0/0/0]undo  ip address
[R1-G0/0/0]ip  address  192.168.12.1  25  

        3)验证:无法建立邻居关系

<R1>display ospf peer brief 

OSPF Process 1 with Router ID 1.1.1.1
      Peer Statistic Information

Area Id          Interface                        Neighbor id      State

        4)结论:两台路由器互联接口的IP地址的子网掩码必须一致

解释:

接口网络类型为Broadcast(广播类型)时,OSPF发HELLO报文发现邻居时,会检查一些参数,而子网掩码是其中一个要检查的参数。当双方的子网掩码不一致时,收到对方发来的HELLO报文不会接受,直接丢弃,从而导致不能正确建立邻居关系

如果网络类型是p2p,路由器不会对Netmask进行检查

        5)备注:验证完成后,记得恢复配置,把R1的g0/0/0口的IP地址的掩码恢复为24

特殊情况:接口IP地址的子网掩码不一致,也建立了邻居关系(网络类型是P2P)

        1)配置命令:

[R1]interface g0/0/0
[R1-G0/0/0]undo  ip address
[R1-G0/0/0]ip  address  192.168.12.1  25  
[R1-G0/0/0]ospf  network-type  p2p


[R1]interface g0/0/0
[R1-G0/0/0]undo  ip address
[R1-G0/0/0]ip  address  192.168.12.2 24 
[R1-G0/0/0]ospf  network-type  p2p

        2)结论:在P2P网络中,接口的掩码不一致,也可以建立邻居关系

        3)备注:验证完成后,记得恢复配置,把接口的掩码和两台路由器的接口的网络类型在改回来

实验4:两台路由器接口的Hello 时间必须一致

        1)修改R1路由器接口的hello时间,让R1接口的Hello时间和R2的不一致

        2)配置命令

先查看R1的hello时间: 
[R1]dis ospf int g0/0/0

   OSPF Process 1 with Router ID 1.1.1.1
     Interfaces 


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


  修改R1的接口的hello时间 
 [R1]interface g0/0/0
 [R1-g0/0/0]ospf  timer  hello 5

 
  再次验证R1的hello 时间 
 [R1-GigabitEthernet0/0/0]dis ospf int g0/0/0

   OSPF Process 1 with Router ID 1.1.1.1
     Interfaces 


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

        3)验证:修改为hello时间为5秒后,dead 也跟着变为20秒, 验证结果无法建立邻居关系

那么到底是因为hello时间改变无法建立邻居关系,还是dead 时间改变无法建立邻居关系呢?

        4)在次配置

[R1]interface g0/0/0
[R1-g0/0/0]ospf  timer dead  40
备注:现在两端的的hello时间不一致,但是dead 时间一致,能否建立邻居关系呢?

        5)再次验证

-验证两端的hello时间不一致, dead 时间一致,无法建立邻居关系

        6)结论:两台路由器接口的Hello 时间必须一致,才能建立邻居关系

        7)备注:验证完成后,记得恢复配置,把接口的hello时间改回来

实验5:两台路由器接口的Dead时间必须一致

思考:如何hello时间一致,而dead 时间不一致能否建立邻居呢

        1)修改R1路由器接口的Dead时间,让R1接口的Dead时间和R2的不一致

        2)配置命令:

[R1]interface g0/0/0
[R1-g0/0/0]ospf  timer dead  50


 [R1-GigabitEthernet0/0/0]dis ospf int g0/0/0

   OSPF Process 1 with Router ID 1.1.1.1
     Interfaces 

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

        3)验证:hello 时间一致,dead 时间不一致,无法建立邻居关系

        4)结论:两台路由器接口的Dead时间必须一致,才能建立邻居关系

        5)备注:验证完成后,记得恢复配置,把接口的dead时间改回来

实验6:两台路由器的优先级不能全为0,全为0可以建立邻居,无法建立邻接

        1)修改路由器的优先级:链路两端的设备的优先级不能全为0

        2)修改R1的g0/0/0的优先级为0,R2的g0/0/0的优先级不做修改,还是默认值1

        3)配置命令

[R1]interface g0/0/0
[R1-g0/0/0]ip address 192.168.12.1 255.255.255.0 
[R1-g0/0/0]ospf dr-priority 0

备注:R1接口优先级改为0,R2不做更改

        4)验证:当链路两端设备接口的优先级一个为0 ,一个为1 的时候,可以建立邻居关系

        5)我们继续实验

[R2]interface g0/0/0
[R2-g0/0/0]ip address 192.168.12.1 255.255.255.0 
[R2-g0/0/0]ospf dr-priority 0

备注:R1和R2两台路由器的接口的优先级都为0

        6)验证:链路两端的设备接口的优先级全为0,无法建立邻接,因为都链路两端的接口都变成DR-other(躺平-永远放弃了成为DR的机会)

当链路两端都是DR-other 的时候,邻居关系会永久的停留在2-way的状态,不会达到full 的状态

[R1]dis ospf peer br
OSPF Process 1 with Router ID 1.1.1.1
      Peer Statistic Information

  Area Id   Interface                Neighbor id   State    

  0.0.0.0   GigabitEthernet0/0/0     2.2.2.2        2-Way

        7)结论:当两端的路由器的接口优先级都为0,邻居关系无法full,永远停留在2-way状态

        8)验证完成后,记得恢复配置,把接口的优先级改回1

备注:

        &4:两端OSPF接口的网络类型是否一致。

        一般情况下,链路两端的OSPF接口的网络类型必须一致,否则双方不能正常建立起OSPF邻居关系。

        -当链路两端的OSPF接口的网络类型一端是广播网而另一端是P2P时,双方仍可以正常的建立起邻接关系,但互相学不到路由信息。

        &1: 修改设备的认证类型:认证类型必须相同(才能建立邻居关系)

        &2:修改设备的密码认证:认证密码必须相同(才能建立邻居关系)

        &3:特殊标记位不同:特殊标记位必须相同(才能建立邻居关系)

十、OSPF状态机 (7种状态)

  • Down:邻居会话的初始阶段,表明还没有收到来自邻居路由器的Hello数据包。准备发送hello报文
  • Attempt:该状态仅发生在NBMA网络中
  • Init:接收到邻居发来的hello报文,但是该hello报文中没有自己的router id
  • Two-way:接收到的hello报文中,有自己的router-id
  • Exstart: 交互第一个dd,报文,确认主从关系,保证传输可靠
  • Exchange:交互数据库描述信息
  • Loading:数据库同步
  • Full:完全邻接状态

•DD报文部分字段解释

▫I:当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。

▫M (More):当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。

▫MS (Master/Slave):当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,RouterID大的一方会成为Master。当值为1时表示发送方为Master。

▫DD sequence number:DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。

•R1开始向R2发送LSR报文,请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。

•R2向R1发送LSU报文,LSU报文中包含了那些被请求的链路状态的详细信息。R1在完成LSU报文的接收之后,且没有其他待请求的LSA后,会将邻居状态从Loading变为Full。

R1向R2发送LSAck报文,作为对LSU报文的确认

十一、OSPF网络类型

        为什么要有网络类型?

                因为OSPF运行在不同的链路层就会有不同的问题,比如运行在以太网,默认为广播的网络环境下,就会存在共享网段中邻居数量多的问题,占用设备资源的问题,所以有了多种网络类型来适应不同的网络环境。

        分类
  • 广播类型(Broadcast)

        数据链路层协议为以太网时,OSPF默认的网络类型为广播

  • 非广播类型(NBMA)

        当链路层协议是fr时,国内都已经不用了,OSPF运行在这个网络环境中,默认使用NBMA的网络类型 (不常见)

  • 点到点(P2P)

        数据链路层运行的协议为PPP或者HDLC时,默认的网络类型为P2P

  • 点到多点(P2MP)

        点到多点就是多个点到点(不常见)

        OSPF网络类型
  • 概述
  • OSPF有四种网络类型:broadcast(广播)、nbma(非广播)、p2p(点到点)、p2mp(点到多点)
  • 默认网络类型 broadcast
  • 存在DR的网络类型 broadcast nbma
  • 不同类型的区别

        【 broadcast】

        是否选DR:是

        是否主动发包:是

        发包方式:组播,目的IP为224.0.0.5

        Hello时间:10秒

        Dead时间:40秒

        【 nbma】

        是否选DR:是

        是否主动发包:否,必须在OSPF进程下使用peer命令才可以

        发包方式:组播,目的IP为邻居接口的IP地址

        Hello时间:30秒

        Dead时间:120秒

        【 p2p 】

        是否选DR:否

        是否主动发包:是

        发包方式:组播,目的IP为224.0.0.5

        Hello时间:10秒

        Dead时间:40秒

        【 p2mp 】

        是否选DR:否

        是否主动发包:是

        发包方式:组播,目的IP为224.0.0.5

        Hello时间:30秒

        Dead时间:120秒

OSPF nbma 网络类型下,建立OSPF邻居实验
  • 拓扑

  • 配置命令
【 R1 】
 interface GigabitEthernet 0/0/0
  ip address 192.168.12.1 24
   ospf network-type nbma               //将OSPF接口的网络类型改成NBMA
 #
 ospf 1 router-id 1.1.1.1
   peer 192.168.12.2                   //一定要用peer命令写上对端设备的接口IP地址
  
  area 0
  network 192.168.12.1 0.0.0.0
  

【 R2 】
 interface GigabitEthernet 0/0/1
  ip address 192.168.12.2 24
   ospf network-type nbma               //将OSPF接口的网络类型改成NBMA
 #
 ospf 1 router-id 2.2.2.2
   peer 192.168.12.1                  //一定要用peer命令写上对端设备的接口IP地址
  
  area 0
  network 192.168.12.2 0.0.0.0
  • 查看OSPF接口命令【 以R1 为例 】
[R1]display  ospf interface  GigabitEthernet  0/0/0

   OSPF Process 1 with Router ID 1.1.1.1
     Interfaces 


 Interface: 192.168.12.1 (GigabitEthernet0/0/0)
 Cost: 1        State: DR        Type: NBMA       MTU: 1500  
 Priority: 1
 Designated Router: 192.168.12.1
 Backup Designated Router: 0.0.0.0
 Timers:  Hello 30 , Dead 120  , Poll  120 , Retransmit 5 , Transmit Delay 1 
 
 【 State 】
     接口的状态,此接口为DR,所以状态标明是DR
     如果接口为BDR,状态标明是BDR
     如果接口是DRother,状态标明是DRother
     
 【 Type 】
     接口的网络类型
     
 【 Hello/Dead 】
     我们往往通过这条命令去看接口的Hello时间和Dead时间 
OSPF p2p网络类型下,建立OSPF邻居实验
  • 拓扑

  • 配置命令
【 R1 】
 interface GigabitEthernet 0/0/0
  ip address 192.168.12.1 24
   ospf network-type p2p               //将OSPF接口的网络类型改成p2p
 #
 ospf 1 router-id 1.1.1.1
  area 0
  network 192.168.12.1 0.0.0.0
  

【 R2 】
 interface GigabitEthernet 0/0/1
  ip address 192.168.12.2 24
   ospf network-type p2p               //将OSPF接口的网络类型改成p2p
 #
 ospf 1 router-id 2.2.2.2
  area 0
  network 192.168.12.2 0.0.0.0
  • R1和R2不在同一网段,但能够互相ping通,是否可以建立P2P的邻居关系?

        可以

        因为,设备的互联接口为p2p、p2mp时,是不检查Hello报文中的Network Mask字段的

        所以,p2p、p2mp网络类型下,R1和R2可以建立邻居

        但是,在broadcast、nbma网络环境下,是检查Hello报文中的Network Mask字段的

        所以,broadcast、nbma网络类型下,R1和R2不可以建立邻居

  • OSPF设备,一边是broadcast,另一边是p2p,是否可以建立OSPF邻居?
  • 拓扑
【 R1 】
 interface GigabitEthernet 0/0/0
  ip address 192.168.12.1 24
   ospf network-type p2p               //将OSPF接口的网络类型改成p2p
 #
 ospf 1 router-id 1.1.1.1
  area 0
  network 192.168.12.1 0.0.0.0
  

【 R2 】
 interface GigabitEthernet 0/0/1
  ip address 192.168.12.2 24
 #
 ospf 1 router-id 2.2.2.2
  area 0
  network 192.168.12.2 0.0.0.0
  • 注意

        这其实是一种特殊情况

        我们在OSPF排错时,如果OSPF的邻居状态是FULL,但是无法计算路由,需要考虑到这种情况

十二、DR与BDR

1、说明

        -在ospf 数据库中,包含很多的链路状态信息:LSA(链路状态通告),这些LSA中,有本设备生成的LSA,也有从邻居哪里学来的LSA

        -每一个ospf 路由器,都是利用自己数据库中的这些LSA的来计算路由条目,然后将最好的路由放到路由表中,形成第三张表,路由表

        -路由器之间,通过ospf 建立邻居关系,互相分享自己的数据库条目(LSA)的过程,称为数据库同步

        -在OSPF邻居之间,同步数据库的时候,大概可以分类这两种情况

        &1:一个网段中(1根网线上,不是一个ospf网络中),只有两台设备,并且互为邻居,这种情况下,数据库同步非常的高效

        &2:一个网段中,存在多个设备,并且互为邻居,这种情况下,数据库同步就非常复杂,同步的非常慢

所以在广播型网络中建立邻居,就有可能很复杂

公式:n(n-1)/2

  1. 为什么要有DR/BDR?

    -共享网络中,邻接关系数量多,重复发送协议报文(DD,LSR,LSU,LSAK),占用网络资源,同步信息效率低

  2. 什么是DR/BDR

    理解:DR就是班长,BDR就是副班长,其他同学只和班长和副班长建立邻

    接,同学之间只需要建立邻居,不需要建立邻接,从而减少了数据库同步频率,降低了设备负载,加快了数据库同步效率

  3. DR的作用

    -减少邻接关系,降低设备负担

    -减少OSPF协议流量

    -加快数据库同步

  4. DR的选举原则

    -比较接口优先级,越大约优, 默认优先级为1,如果优先级相同

    -则比较Router-id,越大越优

  5. DR的特点

    -不能抢占

    -每个网段中DR只有一个,BDR可以没有,DR必须有一个,如果没有DR,邻居将会一直卡在To-way状态

    -当DR优先级为0时,不参加DR选举,直接变成DR-other

  6. 路由器的接口角色

    -DR:指定路由器

    -BDR:备份指定路由器

    -DR-Other

    注意:DR是接口的概念,不是路由器的概念,我们可以说这个接口是不是DR或者BDR,不能说这个路由器是不是DR路由器或者BDR路由器。

    2、修改接口的DR优先级
    [R1]dis ospf int g0/0/0
       OSPF Process 1 with Router ID 1.1.1.1
         Interfaces 
    
     Interface: 192.168.12.1 (GigabitEthernet0/0/0)
                   接口状态:DR        类型 :广播
     Cost: 1       State: DR        Type: Broadcast    MTU: 1500  
     Priority: 1    //DR的优先级,默认为1
     Designated Router: 192.168.12.1       //DR是10.1(本端接口)
     Backup Designated Router: 192.168.12.2  //BDR是10.2(对端接口)
     Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1 
     
     
    [R2-G0/0/0]ospf dr-priority 100   //修改接口的优先级为100
    <R1>reset ospf  process 
    <R2>reset ospf  process 
    备注:修改接口的优先级后(优先级调大后),需要重启ospf进程后,才可以成为DR
    因为DR很重要,所有他要求稳定性
    
    [R2-G0/0/0]ospf dr-priority 0    //修改接口的优先级为0
    备注:接口的优先级改为0,接口的状态立即转为DR-other
    

十三、链路状态数据库(LSDB)

1、LSDB
        作用:存储各种类型的LSA

        LSA:链路状态通告信息

        LSA:其实就是拓扑信息+网段信息

配置完ospf 就可以自动计算出来路由
为什么可以计算路由呢?
因为我们进行数据库同步
数据库是什么呢? LSDB :链路状态数据库

这个是LSDB是做啥的呢? 是用来存储LSA的
LSA是什么?  LSA:链路状态通告
链路状态通告: 其实就是拓扑信息+网段信息
所以LSA就是链路状态通告,LSA就是:拓扑信息+网段信息

拓扑信息: 拓扑图: 我是谁,我连着谁, 我用那个接口连着那台路由器
网段信息:我的接口IP地址是多少,我的接口IP的掩码是多少, 我的接口的cost值是多少

所以 LSA其实就是拓扑信息+网段信息,,而拓扑信息和信息就是计算路由的必备原材料

路由条目:
目的地址192.168.1.0/24     cost=5    下一跳地址:192.168.2.1     出接口:g0/0/1

所以:LSA就是计算路由的必备的原材料
所以同步数据库的过程,说人话,就是交换LSA的过程
同步数据库的结果:就是在同一个区域的路由器,他们的数据库完全一抹一样,就是数据库里面的LSA的条目完全相同

2、LSA分类:

1类LSA:Router-LSA

2类LSA:Network-LSA

3类LSA:Network-summary-LSA

4类LSA: ASBR-summary-LSA

5类LSA:AS-external-LSA

7类LSA:NSSA LSA

3、分析OSPF数据库结构
<R1> display ospf lsdb 

   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 

             Area: 0.0.0.0
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2             34  36    80000010       1
 Router    1.1.1.1         1.1.1.1             31  36    80000016       1
 Network   192.168.12.2    2.2.2.2             31  32    80000003       0
 
 
 
  解析: 
-LSDB:链路状态数据库
      作用:存储LSA
-LSA:链路状态通告:由拓扑信息+网段信息组成
     作用:计算路由信息的必备“原材料”
-LSA的结构:
      &:Type:类型:表示的是LSA的各种类型,  包含1、2、3、4、5、71
     &:LinkState ID:名字:表示的LSA的名字
     &:AdvRouter :通告路由器:表示的是产生这个LSA的路由器的router-id 
     &:Age:年龄:表示的是LSA的存活时间或者老化时间,最大时间是3600S
                 LSA可以周期性或者触发性更新
                 LSA周期性更新:默认是1800S刷新一次,每刷新1次,LSA的序列号(sequence)就+1
                 
     &:Len:长度,表示的是LSA的大小(单位是字节)
     &:Sequence :序列号:表示的LSA的新旧程度,数值越大表示越新(初始: 80000001)
     &:Metric  :开销值(就是cost值)

 备注:唯一的标识一个LSA的3个特别重要的字段分别是 
-类型:Type
-名字:LinkState ID 
-通告路由器:AdvRouter

只要记住这三个字段,就能唯一的区分一个LSA,这三个字段,我们可以称为LSA的三元组

十四、1、2、3类LSA解析

实验案例

拓扑

需求

(1)企业核心机房,连接不同楼宇,实现不同楼宇互通;

(2)企业核心机房设置为OSPF骨干区域;

(3)其他办公楼宇为非骨干区域,通过路由器与核心机房互联互通

配置步骤

1)配置接口信息

        - 配置PC的IP地址

        - 配置路由器的接口

2)配置OSPF单区域

        - 创建ospf进程,定义router-id

        - 指定相应区域

        - 宣告网段进入ospf

3)配置OSPF多区域

4)宣告业务网段

5)验证信息

        pc1 ping pc2进行连通性测试

配置命令
第一步:配置PC接口IP地址
第二步:配置路由器接口IP地址
第三步:配置OSPF:
 R1配置: 
interface GigabitEthernet0/0/0
 ip address 192.168.12.1 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 192.168.1.254 255.255.255.0 
#
ospf 1 router-id 1.1.1.1 
 area 0.0.0.12 
  network 192.168.1.0 0.0.0.255 
  network 192.168.12.0 0.0.0.255 
  
 R2配置: 
interface GigabitEthernet0/0/0
 ip address 192.168.23.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.12.2 255.255.255.0 
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
 area 0.0.0.12 
  network 192.168.12.0 0.0.0.255 
  
 R3配置: 
#
interface GigabitEthernet0/0/0
 ip address 192.168.34.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.23.3 255.255.255.0 
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  network 192.168.34.0 0.0.0.255 

 R4配置: 
#
interface GigabitEthernet0/0/0
 ip address 192.168.45.4 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.34.4 255.255.255.0 
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 192.168.34.0 0.0.0.255 
  network 192.168.45.0 0.0.0.255 

 
 R5配置: 
interface GigabitEthernet0/0/0
 ip address 192.168.56.5 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.45.5 255.255.255.0 
#
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 192.168.45.0 0.0.0.255 
 area 0.0.0.56 
  network 192.168.56.0 0.0.0.255 

 R6配置 
#
interface GigabitEthernet0/0/1
 ip address 192.168.56.6 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 192.168.2.254 255.255.255.0 
#
ospf 1 router-id 6.6.6.6 
 area 0.0.0.56 
  network 192.168.2.0 0.0.0.255 
  network 192.168.56.0 0.0.0.255 
测试与验证: 
PC1 ping  PC2
 **常用查询命令** 
display  ip interface brief    //查看接口IP地址
display  ospf interface        //查看DR/BDR信息
display  ospf interface  g0/0/0    //查看接口OSPF信息
display  ospf lsdb             //查看ospf数据库信息
display  ospf brief           //查看ospf简要信息
display  ospf routing          //查看ospf协议路由表
display ip routing-table       //查看IP核心路由表
display ospf peer  brief       //查看邻居表

LSA字段解析

类型(Type):指示本LSA的类型。
名字(LinkState ID):不同的LSA,对该字段的定义不同。
通告路由器(AdvRouter):产生该LSA的路由器的RouterID。
LSAge(链路状态老化时间):此字段表示LSA已经生存的时间,单位是秒。
Options(可选项):每一个bit都对应了OSPF所支持的某种特性。
LSSequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加。
LSChecksum(校验和):用于保证数据的完整性和准确性。
Length:是一个包含LSA头部在内的LSA的总长度值。

备注:
LSA的三元组:链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。
判断LSA新旧:链路状态老化时间、链路状态序列号 、校验和用于判断LSA的新旧

1类LSA

类型:(Type):Router-LSA

名字:(LinkState ID):1类LSA的名字取自-生产这条LSA的路由器的Router-id

通告路由器:(AdvRouter):区域内每一台路由器都会产生一个1类LSA

特点:每一个运行OSPF协议的路由器,都会在这台路由器所处的区域中生成一个1类的LSA

传递范围:只能在区域内传递

作用:区域内的路由器的自我介绍

        自我介绍,介绍什么内容:

        介绍两个内容:拓扑信息+网段信息

        拓扑信息:我是谁,我连着谁

        网段信息:我的接口网段,我接口网段的掩码,我的接口的cost开销值

查询命令:

<R1>dis ospf lsdb router

<R1>dis ospf lsdb router 1.1.1.1

LSA字段解析:参考

1)P2P网络类型:的1类LSA解析 (P2P的1类比较简单,容易理解,先看这个)

备注:为什么说P2P的1类的LSA容易理解呢?

        因为在P2P网络类型中,一个网络中,只有2台设备,也不需要选举DR

        所以在P2P的网络中,只用1类的LSA就可以在本区域中描述清楚1台路由器的自我介绍信息(拓扑信息和网段信息)

先修改网络类型:将区域12内接口的网络类型改为P-2-P 
[R1-G0/0/0]ospf network-type  p2p
[R2-G0/0/1]ospf network-type  p2p

[R1] dis ospf lsdb router 1.1.1.1 
OSPF Process 1 with Router ID-1.1.1.1
         Area: 0.0.0.12
     Link State Database 

  Type      : Router       我是1类的LSA
  Ls id     : 1.1.1.1      我的名字是1.1.1.1
  Adv rtr   : 1.1.1.1      我老爹是1.1.1.1  路由器1.1.1.1 生产的我
  Ls age    : 451          我的年龄451岁(我活来451秒了)
  Len       : 48           我的长度(我的大小48个字节)
  Options   :  E           我有一种能力,就是引入外部路由的能力
  seq#      : 8000000a     我在这个世界上,已经重生了7次(序列号越大,代表LSA越新)
                           默认LSA-1800秒刷新1次,每刷新1次,序列号+1
                           序列号有两种更新方式:周期性更新(1800秒刷新1次)
                                             触发失更新 (拓扑或网段变化的时候更新)
                                             
  chksum    : 0xd0f1       我的校验和(序列号相同的情况下,校验和越大,代表LSA越新)

  Link count: 3                 我有3条链路(LSA表示了两种信息,拓扑信息和网段信息)
   * Link ID: 2.2.2.2           我是邻居的名字
     Data   : 192.168.12.1      我的接口IP地址是192.168.12.1(我用这个IP连接我的邻居)
     Link Type: P-2-P           这是描述的拓扑信息  
     Metric : 1                 我的cost值是1

   * Link ID: 192.168.12.0      我的接口的IP地址段是192.168.12.0
     Data   : 255.255.255.0     我的接口的IP地址段的掩码是24
     Link Type: StubNet         这是描述的网段信息
     Metric : 1                 我的cost值是1
     Priority : Low

   * Link ID: 192.168.1.0       我的接口IP地址段是192.168.1.0
     Data   : 255.255.255.0     我的接口IP地址段的掩码是24
     Link Type: StubNet         这是描述的网段信息
     Metric : 1                 我的cost值是1
     Priority : Low


[R1] dis ospf lsdb router 2.2.2.2 
   OSPF Process 1 with Router ID 1.1.1.1
             Area: 0.0.0.12
     Link State Database 

  Type      : Router      我是1类的lsa
  Ls id     : 2.2.2.2     我的名字是2.2.2.2
  Adv rtr   : 2.2.2.2     我老爹是2.2.2.2
  Ls age    : 64          我的年龄是64
  Len       : 48          我的长度(48个字节)
  Options   :  ABR  E     我的能力(我是ABR,而且我还能引入外部路由)
  seq#      : 80000002    我的序列号
  chksum    : 0x3808      我的校验和

  Link count: 2           我有2条链路信息(拓扑信息和网段信息)

   * Link ID: 1.1.1.1         我的邻居是1.1.1.1
     Data   : 192.168.12.2    我的接口IP是192.168.12.2
     Link Type: P-2-P         这是描述拓扑信息
     Metric : 1               我的开销值是1

   * Link ID: 192.168.12.0    我接口的IP地址段是192.168.12.0
     Data   : 255.255.255.0   我的掩码是24
     Link Type: StubNet       这是描述网段信息
     Metric : 1               我的cost值是1
     Priority : Low

备注:根据P2P网络中的1类LSA就可以清晰的描述出这个区域中的拓扑信息和网段信息

2)广播型网络的1类LSA解析

先修改网络类型:将区域12内接口的网络类型改为广播网络 
[R1-G0/0/0]ospf network-type  broadcast
[R2-G0/0/1]ospf network-type  broadcast

 验证:LSDB数据库中,多了一条2类的LSA 
备注:在P2P网络中,由于不需要选举DR,所以也不会有2类的LSA (network 192.168.12.2) 


[R1]dis ospf lsdb 
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 

             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2             76  36    80000007       1
 Router    1.1.1.1         1.1.1.1             85  48    8000000A       1
   Network   192.168.12.2    2.2.2.2             76  32    80000002       0 
 Sum-Net   192.168.45.0    2.2.2.2           1688  28    80000002       3
 Sum-Net   192.168.23.0    2.2.2.2           1788  28    80000001       1
 Sum-Net   192.168.56.0    2.2.2.2           1688  28    80000001       4
 Sum-Net   192.168.34.0    2.2.2.2           1715  28    80000001       2
 Sum-Net   192.168.2.0     2.2.2.2           1686  28    80000001       5


<R1> display ospf lsdb router 1.1.1.1 
   OSPF Process 1 with Router ID1.1.1.1
             Area: 0.0.0.12
     Link State Database 
     
  Type      : Router     我是1类的LSA
  Ls id     : 1.1.1.1    我的名字是1.1.1.1
  Adv rtr   : 1.1.1.1    我的老爹的名字-生产我的路由器的router-id
  Ls age    : 287        我的年龄
  Len       : 48         我的长度(48个字节)
  Options   :  E         我的能力-引入外部路由
  seq#      : 8000000a   我的序列号
  chksum    : 0x7365     我的校验和

  Link count: 2                  我的链路信息(2条链路)
   * Link ID: 192.168.12.2       我连接着DR,DR的接口的IP地址是192.168.12.2
     Data   : 192.168.12.1       我的接口的IP地址:192.168.12.1 连接着DR
     Link Type: TransNet         这个描述的是拓扑信息
     Metric : 1                  我的cost值是1

   * Link ID: 192.168.1.0        我的接口网段是192.168.1.0
     Data   : 255.255.255.0      我的接口掩码是24
     Link Type: StubNet          这个描述的是网段信息
     Metric : 1                  我的cost值是1
     Priority : Low
     
  
<R1>dis ospf lsdb  router 2.2.2.2
   OSPF Process 1 with Router ID 1.1.1.1
             Area: 0.0.0.12
     Link State Database 

  Type      : Router     我是1类LSA
  Ls id     : 2.2.2.2    我的名字是2.2.2.2
  Adv rtr   : 2.2.2.2    我的老爹是2.2.2.2(生产我的路由器的router-id是2.2.2.2)
  Ls age    : 712        我的年龄是712(我活了712秒了)
  Len       : 36         我的大小(36个字节)
  Options   :  ABR  E    我的能力:我是ABR,我可以引入外部路由
  seq#      : 80000007   我的序列号
  chksum    : 0x202d     我的校验和

  Link count: 1                我有1条链路
   * Link ID: 192.168.12.2     我连接着DR,DR的IP地址是192.168.12.2 (DR是伪节点)
     Data   : 192.168.12.2     我用接口IP地址192.168.12.2 连接着DR(192.168.12.2)
     Link Type: TransNet       这是描述的拓扑信息
     Metric : 1                我的cost是1
 
  备注:广播型网络中的1类LSA,给出我们的信息遗漏两个重要的因素
  1)我们连接DR的那个接口的IP地址的掩码信息是多少,1类的LSA没有告诉我们
     192.168.12.1和192.168.12.2的掩码是多少,学习1类LSA的邻居是无法感知到的
    
  2)通过1类的LSA,我们无法感知到邻居的存在,也无法感知用那个接口IP连接着邻居
    只能感知到我们连接着DR

  所以,在广播型网络中,我们学习到拓扑信息和网段信息不全,没有办法精确的计算出来路由
  所以在广播型网络中,我们还需要2类LSA来弥补1类LSA的不足
 

2类LSA

类型:Network-LSA

名字(LinkState ID):2类LSA的名字取自-DR接口的IP地址

通告路由器:DR接口所在的那台路由器的Router-id

传递范围:只能在区域内传递

作用:补全DR所在网段的掩码信息,同时记录了该网段内所有与DR建立邻接关系的OSPF路由器,描述完整的区域内的拓扑信息

查询命令:

<R1>dis ospf lsdb network

<R1>dis ospf lsdb network 192.168.12.2

<R1>display ospf lsdb network 192.168.12.2

   OSPF Process 1 with Router ID 1.1.1.1
             Area: 0.0.0.12
     Link State Database 


  Type      : Network         我是2类的LSA
  Ls id     : 192.168.12.2    我的名字是192.168.12.2(DR接口的IP地址)
  Adv rtr   : 2.2.2.2         我的老爹是2.2.2.2(DR接口所在的那台路由器的router-id)
  Ls age    : 1048            我的年龄(1048秒)
  Len       : 32              我的长度(32个字节)
  Options   :  E              我的能力
  seq#      : 80000003        我的序列号
  chksum    : 0x6d5f          我的校验和

  Net mask  : 255.255.255.0    我的掩码是24 -描述的是192.168.12.0网段的掩码 
  Priority  : Low

     Attached Router    2.2.2.2     我连接着一个小弟是2.2.2.2  (描述的是拓扑信息) 
     Attached Router    1.1.1.1     我连接着另外一个小弟是1.1.1.1 (描述的是拓扑信息) 

     备注:最后两条信息,代表DR的管理范围
           也就是说:2.2.2.2 连接着DR,要和DR建立邻接关系,这个2.2.2.2归DR管理
                     1.1.1.1 连接着DR,要和DR建立邻接关系,这个1.1.1.1归DR管理

           DR是虚拟且独立的存在,虚拟的设备能够收发报文吗?能够转发报文吗?
           不可以,所以DR需要在自己管理的范围内,选举一台路由器的接口来代替自己工作
           选一个最好的接口,这个被选中的接口,就称为DR

3类LSA

类型: Network-summary-LSA

名字:LinkState : 3类LSA的名字取自-区域之间的路由的网段的名字

通告路由器:本区域中的ABR路由器的Router-id

传递范围:3类的LSA仅仅在区域内传播

3类LSA在传播的过程中,每经过一个ABR设备, (通告路由器)都会变化一次,变成所有经过的那台ABR的 Router-id

唯一的标识一个LSA的三元组是,LSA类型、LSA名字、LSA通告路由器,所以3类LSA在传递过程经过一台ABR设备,通告路由器就变成这台ABR的router-id ,所以,三元组中的LSA通告路由器发送变化,我们就不认为条目是同一个3类LSA了

作用:将区域内的1、2类LSA计算出来的路由,变成3类LSA在其他区域泛洪(广播),实现区域与区域之间的通信

查询命令:

<R1>dis ospf lsdb summary

<R1>dis ospf lsdb summary 192.168.56.0

<R1>dis ospf lsdb summary 192.168.56.0

   OSPF Process 1 with Router ID 1.1.1.1
             Area: 0.0.0.12
     Link State Database 

  Type      : Sum-Net    //我是3类LSA
  Ls id     : 192.168.56.0   //我是其他区域的192.168.56.0网段
  Adv rtr   : 2.2.2.2        //在12区域通告我的路由器是2.2.2.2(ABR设备)
  Ls age    : 840 
  Len       : 28 
  Options   :  E  
  seq#      : 80000009 
  chksum    : 0x2b7c
  Net mask  : 255.255.255.0      //掩码是24
  Tos 0  metric: 4                //开销值是4
  Priority  : Low

十五、4、5类LSA解析

实验案例

拓扑

需求

实现PC1和PC3互联互通

配置步骤

1)配置接口信息

        - 配置PC的IP地址

        - 配置路由器的接口

2)配置OSPF单区域

        - 创建ospf进程,定义router-id

        - 指定相应区域

        - 宣告网段进入ospf

3)配置OSPF多区域

4) R6配置去往PC3的静态路由

5)R7上配置去往PC1、PC2的静态路由

6)R6上在OSPF进程下引入外部路由

7) 业务连通性测试

        - pc1 ping pc3进行连通性测试

配置命令
 第一步:配置PC接口IP地址
第二步:配置路由器接口IP地址
第三步:配置OSPF: 
 **R1配置:** 
interface GigabitEthernet0/0/0
 ip address 192.168.12.1 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 192.168.1.254 255.255.255.0 
#
ospf 1 router-id 1.1.1.1 
 area 0.0.0.12 
  network 192.168.1.0 0.0.0.255 
  network 192.168.12.0 0.0.0.255 
  
 **R2配置:** 
interface GigabitEthernet0/0/0
 ip address 192.168.23.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.12.2 255.255.255.0 
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
 area 0.0.0.12 
  network 192.168.12.0 0.0.0.255 
  
 **R3配置:** 
#
interface GigabitEthernet0/0/0
 ip address 192.168.34.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.23.3 255.255.255.0 
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  network 192.168.34.0 0.0.0.255 

 **R4配置:** 
#
interface GigabitEthernet0/0/0
 ip address 192.168.45.4 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.34.4 255.255.255.0 
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 192.168.34.0 0.0.0.255 
  network 192.168.45.0 0.0.0.255 

 
 **R5配置:** 
interface GigabitEthernet0/0/0
 ip address 192.168.56.5 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.45.5 255.255.255.0 
#
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 192.168.45.0 0.0.0.255 
 area 0.0.0.56 
  network 192.168.56.0 0.0.0.255 

 **R6配置** 
#
interface GigabitEthernet0/0/1
 ip address 192.168.56.6 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 192.168.2.254 255.255.255.0 
#
ospf 1 router-id 6.6.6.6 
 area 0.0.0.56 
  network 192.168.2.0 0.0.0.255 
  network 192.168.56.0 0.0.0.255 
  
  
 第四步:R6配置去往PC3的静态路由 
 **R6配置** 
#
interface GigabitEthernet0/0/0
 ip address 192.168.67.6 255.255.255.0 
#
ip route-static 192.168.3.0  24  192.168.67.7
 
 
 第五步:R7配置去往PC1/PC2的静态路由 
 **R7配置** 
interface GigabitEthernet0/0/0
 ip address 192.168.67.7 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.3.254 255.255.255.0 
#
ip route-static 192.168.0.0   16   192.168.67.6
 

 第六步:R6上在OSPF进程下引入静态路由 
 **R6配置** 
ospf 1 router-id 6.6.6.6 
   import-route static


 第七步:验证与测试 
PC1可以访问PC3

4类LSA

类型:ASBR-summary-LSA

名字:4类的LSA的名字取自-ASBR的router-id 6.6.6.6

通告的路由器:ABR的router-id

                第一个创建4类LSA那台设备是 和ASBR在同一个区域的那台ABR创建的

                其实就是和R6在同一个区域的那台R5创建的

传递范围:在同一区域内传输,每经过一台ABR后通告路由器发生改变(-4类的LSA在传输的过程中,每经过一个ABR,通告的路由器都会发生变化,变成所经过的那个ABR的router-id)

作用:在不同的区域传递ASBR的router-id, 带你找到ASBR所在的位置,主要目的是为了配合5类的LSA,计算外部路由的

特性:最初始的4类的LSA 是由和ASBR那台设备在同一个区域的ABR设备自动产生的

查询命令:

<R1>dis ospf lsdb asbr

<R1>dis ospf lsdb asbr 6.6.6.6

  <R1>display ospf lsdb
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 
             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2            693  36    80000022       1
 Router    1.1.1.1         1.1.1.1            699  36    8000001F       1
 Network   192.168.12.2    2.2.2.2            693  32    8000000D       0
 Sum-Net   192.168.45.0    2.2.2.2           1290  28    8000000F       3
 Sum-Net   192.168.23.0    2.2.2.2           1548  28    8000000F       1
 Sum-Net   192.168.56.0    2.2.2.2           1146  28    8000000F       4
 Sum-Net   192.168.34.0    2.2.2.2           1381  28    8000000F       2
 Sum-Net   192.168.2.0     2.2.2.2           1758  28    80000015       5
  Sum-Asbr  6.6.6.6         2.2.2.2            817  28    80000005       4 
 

     AS External Database
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 External  192.168.3.0     6.6.6.6            820  36    80000005       1
 
 
    <R1>dis ospf lsdb asbr 6.6.6.6 
   OSPF Process 1 with Router ID 1.1.1.1
             Area: 0.0.0.12
     Link State Database 
  Type      : Sum-Asbr    //我是4类LSA
  Ls id     : 6.6.6.6     //我的名字是ASBR的router-id
  Adv rtr   : 2.2.2.2     //在区域12通告我的路由器是2.2.2.2 (ABR)
  Ls age    : 1100 
  Len       : 28 
  Options   :  E  
  seq#      : 80000006 
  chksum    : 0x2a09
  Tos 0  metric: 4

5类LSA

类型:AS-external-LSA

名字:5类LSA的名字取自-引入外部路由的网段的名字

通告的路由器:ASBR的router-id

传递范围:在整个OSPF网络内传播

作用:用于通告外部路由

特点:只有ASBR可以产生5类的LSA

        5类的LSA可以传输到OSPF网络中的任何地方,在传输的过程中,LSA没有任何变化

        5类的LSA不属于任何一个区域

查询命令:

dis ospf lsdb ase

dis ospf lsdb ase 192.168.3.0

<R1>dis ospf lsdb 
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 
             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2           1069  36    80000023       1
 Router    1.1.1.1         1.1.1.1           1075  36    80000020       1
 Network   192.168.12.2    2.2.2.2           1069  32    8000000E       0
 Sum-Net   192.168.45.0    2.2.2.2           1666  28    80000010       3
 Sum-Net   192.168.23.0    2.2.2.2            124  28    80000011       1
 Sum-Net   192.168.56.0    2.2.2.2           1522  28    80000010       4
 Sum-Net   192.168.34.0    2.2.2.2           1757  28    80000010       2
 Sum-Net   192.168.2.0     2.2.2.2           1758  28    80000015       5
 Sum-Asbr  6.6.6.6         2.2.2.2           1193  28    80000006       4
 

     AS External Database
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
  External  192.168.3.0     6.6.6.6           1196  36    80000006       1 
 
 <R1>display ospf lsdb ase 192.168.3.0

   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database

  Type      : External       //我是5类的LSA
  Ls id     : 192.168.3.0    //我引入的外部路由网段是192.168.3.0
  Adv rtr   : 6.6.6.6        //我的通告路由器是ASBR-6.6.6.6
  Ls age    : 1678 
  Len       : 36 
  Options   :  E  
  seq#      : 80000006 
  chksum    : 0x83c5
  Net mask  : 255.255.255.0 
  TOS 0  Metric: 1         // cost值是1
  E type    : 2            //引入外部路由,默认的类型是2
  Forwarding Address : 0.0.0.0     //转发地址0.0.0.0 代表的就是6.6.6.6自己
  Tag       : 1 
  Priority  : Low

十六、特殊区域

OSPF区域划分

1)区域类型

        -骨干区域

        -非骨干区域

2) 另外一种区域类型的说法

        &:普通区域: 骨干区域属于普通区域,非骨干区域也是普通区域

        &:特殊区域

                @:stub area :末梢区域

                @:Totally stub area :完全的末梢区域

                @:NSSA :not so stub area : 不那么末梢的区域

                @: Totally NSSA :完全的NSSA

特殊区域的作用

1.保护一个区域不受来自外部链路和区域间链路不稳定的影响

2.减少LSA的数量,减少路由条目的数量,降低设备负载,

Stub区域的特点:

-作用:保护一个区域不受来自外部链路的影响

        减少LSA的数量,减少路由条目的数量,降低设备负载,

-不学习,4类和5类的LSA

-只学习1类,2类,3类的LSA

-stub 区域的ABR会自动生成一条默认的3类的LSA,用于计算默认路由

-特点:骨干区域不可以设置为stub

-如果要将一个区域做成stub 区域,这个区域的所有设备都要配置为stub 区域

-stub 区域自身不支持外部路由的引入

-stub区域中不能存在虚连接

stub: 区域  叫做末梢区域,是指一个网络的边缘,末梢
      末梢就像一棵树的树梢一样很脆弱,需要保护
      骨干区就像树干一样,很健壮,末梢很脆弱,需要保护
为什么?因为在企业中,骨干区域的设备,一般比较昂贵,性能很强悍,处理数据的速度快,能力强,存储空间大
       但是在普通区域,由于转发数据的有限, 所以购买的路由器价格便宜,性能很弱,没有办法承载大量的路由条目
      现在公司要引入5万条,外部路由,骨干区域的设备,是能够承受,但是末梢区域的设备无法承受
      所以我们要保护末梢区域的路由器
      1)第一,当外部链路不稳定的时候,会对末梢区域的设备有影响,外部链路down掉后,在up, 末梢区域的设备需要重新同步数据库,压力很大
      2)第二,当引入的外部路由过多,末梢区域的路由器扛不住,可能会宕机

      所以我们要保护末梢区域的路由器,怎么保护,很简单:
      1)stub区域,不要5类的LSA   也不要4类的LSA---数据库就下了,路由表也小了,设备的压力也小了,网络稳定性提高来,数据转发效率增强了
      2)stub区域,只要1类的LSA,2类的LSA, 3类的LSA

如何配置:这个区域要做出stub区域,那么这个区域内的所有设备都要配置为stub

Stub实验和配置命令

拓扑

需求

将区域12设置为Stub区域,使区域12的路由设备不受外部链路影响(不接收4/5类LSA)降低区域12(末梢区域)设备压力,还能让区域12的PC1与外部PC3通信

配置步骤

1)配置接口信息

- 配置PC的IP地址

- 配置路由器的接口

2)配置OSPF单区域

- 创建ospf进程,定义router-id

- 指定相应区域

- 宣告网段进入ospf

3)配置OSPF多区域

4) R6配置去往PC3的静态路由

5)R7上配置去往PC1、PC2的静态路由

6)R6上在OSPF进程下引入外部路由

7)将区域12设置为stub区域

8) 验证stub区域特性,验证业务连通性

- pc1 ping pc3进行连通性测试

配置命令
 第一步:配置PC接口IP地址
第二步:配置路由器接口IP地址
第三步:配置OSPF: 
 **R1配置:** 
interface GigabitEthernet0/0/0
 ip address 192.168.12.1 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 192.168.1.254 255.255.255.0 
#
ospf 1 router-id 1.1.1.1 
 area 0.0.0.12 
  network 192.168.1.0 0.0.0.255 
  network 192.168.12.0 0.0.0.255 
  
 **R2配置:** 
interface GigabitEthernet0/0/0
 ip address 192.168.23.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.12.2 255.255.255.0 
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
 area 0.0.0.12 
  network 192.168.12.0 0.0.0.255 
  
 **R3配置:** 
#
interface GigabitEthernet0/0/0
 ip address 192.168.34.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.23.3 255.255.255.0 
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  network 192.168.34.0 0.0.0.255 

 **R4配置:** 
#
interface GigabitEthernet0/0/0
 ip address 192.168.45.4 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.34.4 255.255.255.0 
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 192.168.34.0 0.0.0.255 
  network 192.168.45.0 0.0.0.255 

 
 **R5配置:** 
interface GigabitEthernet0/0/0
 ip address 192.168.56.5 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.45.5 255.255.255.0 
#
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 192.168.45.0 0.0.0.255 
 area 0.0.0.56 
  network 192.168.56.0 0.0.0.255 

 **R6配置** 
#
interface GigabitEthernet0/0/1
 ip address 192.168.56.6 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 192.168.2.254 255.255.255.0 
#
ospf 1 router-id 6.6.6.6 
 area 0.0.0.56 
  network 192.168.2.0 0.0.0.255 
  network 192.168.56.0 0.0.0.255 
  
  
 第四步:R6配置去往PC3的静态路由 
 **R6配置** 
#
interface GigabitEthernet0/0/0
 ip address 192.168.67.6 255.255.255.0 
#
ip route-static 192.168.3.0  24  192.168.67.7
ip route-static 192.168.4.0  24  192.168.67.7
ip route-static 192.168.5.0  24  192.168.67.7
ip route-static 192.168.6.0  24  192.168.67.7
ip route-static 192.168.7.0  24  192.168.67.7
 
 
 第五步:R7配置去往PC1/PC2的静态路由 
 **R7配置** 
interface GigabitEthernet0/0/0
 ip address 192.168.67.7 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.3.254 255.255.255.0 
#
ip route-static 192.168.0.0   16   192.168.67.6
 

 第六步:R6上在OSPF进程下引入静态路由 
 **R6配置** 
ospf 1 router-id 6.6.6.6 
   import-route static

 第七步:**stub区域的配置命令** 

[R1]ospf 1
[R1-ospf-1]area 12
[R1-ospf-1-area 0.0.0.12]stub

[R2]ospf 1
[R2-ospf-1]area 12
[R2-ospf-1-area 0.0.0.12]stub

 **备注:区域12没有配置stub区域前,数据库是这样的** 
<R1>dis ospf lsdb
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 

             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2            558  36    8000000B       1
 Router    1.1.1.1         1.1.1.1            559  48    8000000D       1
 Network   192.168.12.2    2.2.2.2            558  32    80000006       0
 Sum-Net   192.168.45.0    2.2.2.2            814  28    80000005       3
 Sum-Net   192.168.23.0    2.2.2.2            917  28    80000005       1
 Sum-Net   192.168.56.0    2.2.2.2            814  28    80000005       4
 Sum-Net   192.168.34.0    2.2.2.2            858  28    80000005       2
 Sum-Net   192.168.2.0     2.2.2.2            814  28    80000005       5
 Sum-Asbr  6.6.6.6         2.2.2.2            472  28    80000003       4
 
     AS External Database
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 External  192.168.6.0     6.6.6.6            574  36    80000001       1
 External  192.168.7.0     6.6.6.6            558  36    80000001       1
 External  192.168.4.0     6.6.6.6            618  36    80000001       1
 External  192.168.5.0     6.6.6.6            581  36    80000001       1
 External  192.168.3.0     6.6.6.6            476  36    80000003       1
 
 
   第八步:测试与验证:验证stub区域的特点 
  备注:区域12配置stub区域后,数据库是这样的
 备注:没有4类的LSA了,没有5类LSA了,但是多了一个默认的3类的LSA 
 
 [R1] dis ospf lsdb 
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 

             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2             39  36    80000005       1
 Router    1.1.1.1         1.1.1.1             36  48    80000005       1
 Network   192.168.12.2    2.2.2.2             39  32    80000001       0
  Sum-Net   0.0.0.0         2.2.2.2            105  28    80000001       1 
 Sum-Net   192.168.45.0    2.2.2.2            105  28    80000001       3
 Sum-Net   192.168.23.0    2.2.2.2            105  28    80000001       1
 Sum-Net   192.168.56.0    2.2.2.2            105  28    80000001       4
 Sum-Net   192.168.34.0    2.2.2.2            105  28    80000001       2
 Sum-Net   192.168.2.0     2.2.2.2            105  28    80000001       5

 
 
 [R1] dis ip routing-table  protocol ospf  
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 5        Routes : 5        

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

Destination/Mask    Proto   Pre  Cost    NextHop         Interface
**0.0.0.0/0           OSPF    10   2       192.168.12.2    GigabitEthernet0/0/0**
192.168.23.0/24     OSPF    10   2       192.168.12.2    GigabitEthernet0/0/0
192.168.34.0/24     OSPF    10   3       192.168.12.2    GigabitEthernet0/0/0
192.168.45.0/24     OSPF    10   4       192.168.12.2    GigabitEthernet0/0/0
192.168.56.0/24     OSPF    10   5       192.168.12.2    GigabitEthernet0/0/0


 第八步:验证与测试,stub区域的PC1 和外部PC3 可以互通 
PC1可以访问PC3

Totally Stub区域的特点:

-作用:保护一个区域不受来自外部链路的影响,也不受区域间链路的影响

        减少LSA的数量,减少路由条目的数量,降低设备负载,

-不学习,3类、4类、5类的LSA

-学习,1类和2类的LSA

-特殊区域的ABR路由器配置stub no-summary

-区域的ABR会自动产生一条默认的3类的LSA,用于计算默认路由

-特点:骨干区域不能设置为totally stub

-totally stub区域自身不支持外部路由的引入

-totally stub区域中不能存在虚连接

Totally stub区域的配置命令 
[R1]ospf 1
[R1-ospf-1]area 12
[R1-ospf-1-area 0.0.0.12]stub

[R2]ospf 1
[R2-ospf-1]area 12
[R2-ospf-1-area 0.0.0.12]stub  no-summary  
 
 备注:区域12只配置了stub区域,没有配置Totally stub 时,数据库是这样的 
 [R1]dis ospf lsdb
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 

             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2             39  36    80000005       1
 Router    1.1.1.1         1.1.1.1             36  48    80000005       1
 Network   192.168.12.2    2.2.2.2             39  32    80000001       0
  Sum-Net   0.0.0.0         2.2.2.2            105  28    80000001       1 
 Sum-Net   192.168.45.0    2.2.2.2            105  28    80000001       3
 Sum-Net   192.168.23.0    2.2.2.2            105  28    80000001       1
 Sum-Net   192.168.56.0    2.2.2.2            105  28    80000001       4
 Sum-Net   192.168.34.0    2.2.2.2            105  28    80000001       2
 Sum-Net   192.168.2.0     2.2.2.2            105  28    80000001       5
 
 
  备注:区域12配置了Totally stub 后,数据库是这样的 
 [R1]dis ospf lsdb
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 
             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2            101  36    80000006       1
 Router    1.1.1.1         1.1.1.1             95  48    8000000A       1
 Network   192.168.12.2    1.1.1.1             95  32    80000002       0
  Sum-Net   0.0.0.0         2.2.2.2           1092  28    80000001       1 

NSSA区域的特点:

-作用:保护一个区域不受来自外部链路的影响,

减少LSA的数量,减少路由条目的数量,降低设备负载,

但是nssa区域又可以引入外部路由

-该区域学习1类,2类,3类,7类的LSA

-该区域不学习,4类,5类LSA

-NSSA区域的ABR会自动产生一条默认的7类的LSA,用于区域内的设备计算默认路由

-7类的LSA只能在特殊区域NSSA内部传播,不会垮区域传播

-NSSA区域的ABR会自动的将7类的LSA转成5类的LSA,在全域泛洪

-骨干区域不能设置为nssa

NSSA实验和配置命令

拓扑

需求

需求:PC2和PC5互通

配置思路和配置命令

3)配置思路:

第一步:先让R1能够和PC5互通,要先配置静态路由

[R1] ip route-static 192.168.4.0 24 192.168.18.8

第二步:在R8上写去往PC1/PC2的路由

[R8]ip route-static 192.168.0.0 16 192.168.18.1

第三步:在R1中的ospf中引入静态路由到ospf 网络中

[R1]ospf 1

[R1-ospf-1] import-route static

备注:配置完成后,查看验证,发现并没有成功引入外部路由

原因:R1所在的区域是stub区域,所以R1不会产生5类的LSA,

我们的目标既然是PC2和PC5 互通,又要保护区域12,不受外部影响,保证OSPF网络的稳定性,那么我们就需要做到两点

第一:区域12 不受外部路由的影响

第二:区域12 还能引入外部路由

所以我们就要配置NSSA

4)NSSA配置命令

[R2-ospf-1]area  12
[R2-ospf-1-area-0.0.0.12]undo stub 
[R2-ospf-1-area-0.0.0.12]nssa


[R1]ospf 1
[R1-ospf-1]area  12
[R1-ospf-1-area-0.0.0.12]undo stub 
[R1-ospf-1-area-0.0.0.12]nssa

5)LSDB数据库查询验证:

 [R1]dis ospf lsdb 
   OSPF Process 1 with Router ID 1.1.1.1
     Link State Database 

             Area: 0.0.0.12
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2              6  36    80000005       1
 Router    1.1.1.1         1.1.1.1              7  36    80000004       1
 Network   192.168.12.2    2.2.2.2              7  32    80000002       0
 Sum-Net   192.168.45.0    2.2.2.2             49  28    80000001       3
 Sum-Net   192.168.23.0    2.2.2.2             49  28    80000001       1
 Sum-Net   192.168.56.0    2.2.2.2             49  28    80000001       4
 Sum-Net   192.168.34.0    2.2.2.2             49  28    80000001       2
 Sum-Net   192.168.2.0     2.2.2.2           1758  28    80000015       5
 NSSA      192.168.4.0     1.1.1.1             70  36    80000001       1
 NSSA      0.0.0.0         2.2.2.2             66  36    80000001       1

6)路由表查询验证:(在R6中也查一下去往192.168.4.0的路由信息)

[R1]dis ip routing-table 192.168.2.1

Destination/Mask   Proto   Pre  Cost      NextHop        Interface

0.0.0.0/0          O_NSSA  150  1        192.168.12.2    GigabitEthernet0/0/0

7)验证测试:

PC2访问PC5,发现可以互联互通

Totally NSSA区域的特点:

-作用:保护一个区域不受来自外部链路的影响,也不受区域间链路的影响

        减少LSA的数量,减少路由条目的数量,降低设备压力

        但是NSSA区域允许引入外部路由

-该区域不学习3类,4类和5类的lSA

-该区域学习,1类,2类、7类的LSA

-特殊区域的ABR路由器需要配置nssa no-summary

-该区域会通过ABR生产成一条默认的3类LSA和默认的7类LSA,用于计算默认路由

-该区域的ABR会自动的将7类的LSA转成5类的LSA

-7类的LSA只能在特殊区域NSSA内部传播

-骨干区域不能设置为totally nssa

Totally NSSA 配置命令:

备注:在区域12的ABR中配置nssa no-summary 
[R2] ospf  1
[R2-ospf-1]area  12
[R2-ospf-1-area-0.0.0.12]nssa no-summary 



[R1] ospf  1
[R1-ospf-1]area  12
[R1-ospf-1-area-0.0.0.12]nssa 

3)验证lsdb 数据库

[R1]dis ospf lsdb 
  OSPF Process 1 with Router ID 1.1.1.1
    Link State Database 

      Area: 0.0.0.12
  Type      LinkState ID    AdvRouter          Age  Len    Sequence   Metric

  Router     2.2.2.2         2.2.2.2            6   36     80000005       1
  Router     1.1.1.1         1.1.1.1            7   36     80000004       1
  Network    192.168.12.2    2.2.2.2            7   32     80000002       0
  Sum-Net    0.0.0.0         2.2.2.2            45  28     80000001       1
  NSSA       192.168.4.0     1.1.1.1            812  36    80000001       1
  NSSA       0.0.0.0         2.2.2.2            808  36    80000001       1

特殊区域总结

1. Stub与Totally stub区域的区别:

        stub不学习4类和5类的LSA

        totally stub 不学习3类,4类,5类的LSA

2.Stub与Nssa区别:

        stub区域不支持外部路由引入

        nssa区域支持外部路由的引入

3.NSSA区域说明:

        1). NSSA是Stub区域的一个升级,它和Stub区域有许多相似的地方。

        2). NSSA区域不学习4类和5类的LSA

        3). NSSA区域允许引入外部路由

        4). 当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA,泛洪到整个OSPF域中。

7类LSA解析

-类型:NSSA

-名字:LinkState ID : 外部路由的网段

-产生的路由器:AdvRouter : NSSA区域的ASBR的Router-id

-作用:用于通告NSSA区域的外部路由

-查询命令:

[R1]display ospf lsdb nssa 0.0.0.0

[R1]display ospf lsdb nssa 192.168.4.0

备注:默认的7类的LSA,通告路由是特殊区域内的ABR设备

十七、路由汇总

1.概念:

将多条具有相同前缀的路由信息聚合成一条,通告到其他区域

2.作用:

  • 减少维护的数据库规模
  • 减少路由表维护数量
  • 减少其他区域不稳定链路的影响

3.汇总实验

区域间路由汇总

概述

        位置:在ABR上配置

        作用:用于聚合在区域之间的路由

        特点:ABR只发送聚合后的路由到其他区域

配置
        需求:

                1)企业内部运营OSPF多区域

                2)降低区域12不稳定链路对区域0的影响

拓扑:

配置命令:
区域间路由汇总:ABR汇总 
第一步:配置接口信息 (在R1上配置) 
interface LoopBack0
  ip address 10.10.1.1 255.255.255.0 
#
interface LoopBack1
  ip address 10.10.2.1 255.255.255.0 
#
interface LoopBack2
  ip address 10.10.3.1 255.255.255.0 
#
interface LoopBack3
  ip address 10.10.4.1 255.255.255.0

interface LoopBack4
  ip address 10.10.5.1 255.255.255.0
  
第二步:宣告路由 (在R1上配置) 
ospf 1 router-id 1.1.1.1
  area 0.0.0.12
    network 192.168.12.0 0.0.0.255
    network 10.10.1.0 0.0.0.255
    network 10.10.2.0 0.0.0.255
    network 10.10.3.0 0.0.0.255
    network 10.10.4.0 0.0.0.255 
    network 10.10.5.0 0.0.0.255
    
    
第三步:配置ABR汇总信息 (在R2上配置-ABR上配置) 
ospf 1 router-id 2.2.2.2
  area 0.0.0.12
     abr-summary 10.10.0.0 255.255.0.0

外部路由汇总

        概述

                位置:在ASBR上配置

                作用:用于聚合OSPF外部引入的路由

                特点:ASBR只发送聚合后的路由到其他区域

配置
        1)需求:

                1)企业内部运营OSPF多区域

                2)降低区域56不稳定链路对区域0的影响

2)拓扑:

3)配置步骤:
第一步:配置接口信息(在R6上配置) 
interface LoopBack0
  ip address 20.20.1.1 255.255.255.0 
#
interface LoopBack1
  ip address 20.20.2.1 255.255.255.0 
#
interface LoopBack2
  ip address 20.20.3.1 255.255.255.0 
#
interface LoopBack3
  ip address 20.20.4.1 255.255.255.0

interface LoopBack4
  ip address 20.20.5.1 255.255.255.0
  
  
 第二步:引入直连路由(在R6上配置) 
ospf 1 router-id 6.6.6.6 
   import-route direct   //引入直连路由 

  

 第三步:配置ASBR汇总信息(在R6上配置-ASBR上配置) 
ospf 1 router-id 6.6.6.6 
  import-route direct   //引入直连路由
   asbr-summary 20.20.0.0 255.255.0.0    //ASBR汇总 

总结:

1)区域间路由汇总:

区域间路由汇总,也叫3类LSA汇总 ,也叫ABR汇总

区域间路由汇总,是在ABR中配置,要进入ospf 在进入area 区域中配置

汇总的是用network 注入的内部路由

2)外部路由汇总:

外部路由汇总,也叫5类LSA汇总 ,也叫ASBR汇总

外部路由汇总,是在ASBR中配置,在OSPF下配置,不需要进入区域

汇总的是用import-route 引入的外部路由

十八、安全认证

1. 认证概述

为什么要有认证?

防止非法路由器接入企业内网的ospf路由器,保护内网安全

2. 认证方式

认证方式分为接口认证和区域认证,接口认证和区域认证没有本质的区别,接口认证是当区域内链路过多的情况下,接口认证配置较为繁琐,容易出错,此时可以采用区域认证,配置量更少。

3. 认证位置

  • 接口认证
  • 区域认证

注:如果同时配置了接口认证和区域认证,则接口人证优先于区域认证

3. 认证模式

        认证报文携带在hello报文中,通过hello包进行协商,所有认证模式和认证密码两端必须一致,如果认证方式或认证密码协商不一致,会导致邻居关系建立失败

认证模式分为:

  • simple 明文认证,密码在传输过程中是明文的,抓包可见
  • MD5 密文认证,密码在传输的过程中是加密的,抓包不可见

4. 配置认证:

注意:simple/md5:表示OSPF报文在传输过程中是否加密         邻居两端必须一致

           cipher/plain:表示秘钥信息在本地存储是否加密               邻居两端可以不一致

接口认证

需求:1) 企业内部运营OSPF多区域

        2) 禁止区域0内有非法用户接入

        3)AR2与AR3、AR3与AR4接口下配置明文认证、AR4与AR5接口下配置密文认证

拓扑

配置命令

接口认证配置:(邻居设备的认证类型、认证密码必须一致,如何不一致邻居会断开)
 AR2和AR3之间配置simple 认证模式: 
 AR2: 
interface GigabitEthernet0/0/0
  ip address 192.168.23.2 255.255.255.0 
  ospf authentication-mode simple cipher hcip
  
 AR3:  
interface GigabitEthernet0/0/1
  ip address 192.168.23.3 255.255.255.0 
  ospf authentication-mode simple cipher hcip 
  

 AR3和AR4之间配置simple 认证模式: 
 AR3:  
interface GigabitEthernet0/0/0
  ip address 192.168.34.3 255.255.255.0 
  ospf authentication-mode simple cipher hcip 
  
 AR4: 
interface GigabitEthernet0/0/1
  ip address 192.168.34.4 255.255.255.0 
  ospf authentication-mode simple cipher hcip  
  

 
 AR4和AR5之间配置md5 认证模式:  
 AR4: 
interface GigabitEthernet0/0/0
  ip address 192.168.45.4 255.255.255.0 
  ospf authentication-mode md5 1 cipher hcip

 AR5: 
interface GigabitEthernet0/0/1
  ip address 192.168.45.5 255.255.255.0 
  ospf authentication-mode md5 1 cipher hcip

区域认证

需求:1) 企业内部运营OSPF多区域

        2) 禁止区域12内有非法用户接入,要求认证密码不可见,本地存储秘钥信息显示加密

拓扑

配置命令

实验一:配置区域认证
1)OSPF区域认证配置:
AR2:
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  
 area 0.0.0.12 
  authentication-mode md5 1 cipher hcie
  
AR1:
ospf 1 router-id 1.1.1.1
 area 0.0.0.12 
  authentication-mode md5 1 cipher hcie
  network 192.168.12.0 0.0.0.255
实验二:验证接口认证优先于区域认证:

1)OSPF区域12认证配置:
AR2:
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 192.168.23.0 0.0.0.255 
  
 area 0.0.0.12 
  authentication-mode md5 1 cipher hcie
  
AR1:
ospf 1 router-id 1.1.1.1
 area 0.0.0.12 
  authentication-mode md5 1 cipher hcie
  network 192.168.12.0 0.0.0.255
  
 区域认证配置成功后,邻居关系正常,现在修改接口认证模式不一致,
 如果邻居断开说明接口认证优先于区域认证
 
2)配置R1的区域12的接口认证模式为明文
interface GigabitEthernet0/0/0
  ip address 192.168.12.1 255.255.255.0 
  ospf authentication-mode simple plain ntd
  
配置R2的区域12的接口认证模式为密文
interface GigabitEthernet0/0/1
  ip address 192.168.12.2 255.255.255.0 
  ospf authentication-mode md5 1 plain 345
  
  经验证发现,当接口认证不一致时,邻居断开,结论同时配置了接口认证和区域认证,
  接口认证优先于区域认证

十九、OSPF外部路由的2种度量值

引入外部路由,有两种类型:类型1 和类型2

Type描述开销计算
Metric-Type-1可信程度高AS内部开销+AS外部开销
Metric-Type-2 (默认类型2)可信程度低,AS外部开销远大于AS内部开销AS外部开销

怎样查看一台OSPF路由器是否为ABR(ASBR)?

  • display ospf brief
<R1>display  ospf brief  

   OSPF Process 1 with Router ID 1.1.1.1
     OSPF Protocol Information

 RouterID: 1.1.1.1           Border Router:  AREA
  • display ospf abr-asbr
<R1>display  ospf abr-asbr 

   OSPF Process 1 with Router ID 1.1.1.1
     Routing Table to ABR and ASBR 

 RtType      Destination       Area       Cost  Nexthop         Type
 Intra-area  2.2.2.2           0.0.0.0    1      192.168.12.2    ABR 

怎样确定两条LSA是相同的

        如果两条LSA,它们的Type、LS ID、Adv rtr相同

         则,这两条LSA就相同

如何判断一条LSA的新旧

  • 先看序列号

        LSA中的Sequece Number (seq#)

        序列号越大,越新

  • 序列号相同,看校验和

        LSA中的checksum(chksum)

        校验和越大,越新

  • 校验和也相同,看Ls age

        1. 如果LSA的Age是3600秒,表示最新,因为该年龄到达最大老化时间,意味着,该LSA应该消失了

        2. 如果LSA的Age没有到3600秒,就要看这两条LSA的Age间隔是否小于15分钟

            如果小于15分钟,意味着一样新

            如果大于15分钟,Age越小越新

关于LSA的3600秒

  • 说明

        3600秒的LSA,意味着:删除对应的5类LSA,从而撤销OSPF的外部路由

        如果我们要撤销OSPF的外部路由,这个3600秒的LSA,它的序列号,跟已经存在的LSA的序列相同,序列号不变

LSA的更新

  • 周期性更新

                产生LSA的路由器,每1800秒,产生一个新的LSA,序列号+1

  • 触发性更新

                比如ASBR的OSPF进程中undo import-route,触发更新3600秒的LSA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/293535.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

生成式AI:开发效率的提升者

文章目录 摘要引言应用方向应用示例1. 自动化代码生成2. 智能样式生成3. 自动化测试与调试 总结&#x1f636; 写在结尾 摘要 生成式AI作为一种新兴技术&#xff0c;正在迅速改变软件开发的方式。通过自动化和优化开发流程&#xff0c;它可以帮助开发人员更快地生成代码、测试…

springboot项目 java -jar xxx.jar 没有主清单属性解决方法

1.在pom文件中添加如下 <plugins><!--解决SpringBoot打包成jar后运行提示没有主清单属性--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork…

Android中的Intent

一.显式Intent 显示Intent是明确目标Activity的类名 1. 通过Intent(Context packageContext, Class<?> cls)构造方法 2.通过Intent的setComponent()方法 3.通过Intent的setClass/setClassName方法 通过Intent(Context packageContext, Class<?> cls)构造方法 通…

TikTok被限流怎么办?破解0播放方法在这!

Tiktok是目前增长较快的社交平台&#xff0c;也是中外年轻一代首选的社交平台&#xff0c;许多出海品牌已经看到了TikTok营销的潜力&#xff0c;专注于通过视频、电商入驻来加入TikTok这片蓝海&#xff0c;加深品牌影响力&#xff0c;获得变现。 然而TikTok新手往往都会遇到一…

2023春季李宏毅机器学习笔记 05 :机器如何生成图像

资料 课程主页&#xff1a;https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.phpGithub&#xff1a;https://github.com/Fafa-DL/Lhy_Machine_LearningB站课程&#xff1a;https://space.bilibili.com/253734135/channel/collectiondetail?sid2014800 一、图像生成常见模型…

使用 Swagger 导入 Postman: 最佳实践与步骤解析

Swagger和 Postman 都是常用的 API 测试工具&#xff0c;都有各自的优势。为了结合两者的优点&#xff0c;我们可以考虑将 Swagger 中的 API 定义导入到 Postman 中去&#xff0c;这样就可以利用 Postman 更强大的测试功能来测试 Swagger 定义的接口。 下面将以 Swagger Petst…

【本科生通信原理】【实验报告】【北京航空航天大学】实验一:通信原理初步

一、实验目的&#xff1a; 熟悉 MATLAB开发环境、掌握 MATLAB基本运算操作&#xff1b;熟悉和了解 MATLAB图形绘制基本指令&#xff1b;熟悉使用 MATLAB分析信号频谱的过程&#xff1b;掌握加性白高斯噪声信道模型 二、实验内容&#xff1a; 三、实验程序&#xff1a; 1、 f…

Linux编辑器vim的基本操作(详解及GIF演示)

&#x1f4ab;Linux开发工具vim 在我们初学某门语言时可能接触过使用记事本编辑代码&#xff0c;在之后我们开始接触visual studio等集成开发环境&#xff0c;对于这种基于图形化界面的编辑工具我们可以说已经十分熟悉了&#xff0c;那么接下来我们就来介绍一下Linux中的编辑器…

【linux学习】linux概述

操作系统主要的功能有两个部分&#xff0c;一是更有效率的控制计算机硬件资源&#xff08;主要通过核心来控制&#xff09;&#xff0c;二是为程序设计师提供更容易开发软件的环境&#xff08;系统呼叫提供软件开发环境&#xff09;。linux就是一套操作系统&#xff0c;linux就…

【数据结构】二叉树(二)——顺序结构

前言 本篇博客讲解数组实现二叉树的顺序结构 文章目录 一、二叉树的顺序结构及实现1.1 二叉树的顺序结构1.2 堆的概念1.3 堆的实现1.3.1 初始化堆1.3.2 向堆中插入元素1.3.3 从堆顶删除1.3.4 其他操作1.3.5 完整代码Heap.hHeap.c 1.4 堆的应用1.4.1 堆排序1.4.2 TOP-K问题 一、…

Ubuntu18.04 升级Ubuntu20.04

文章目录 背景升级方法遇到的问题 背景 因项目环境需要&#xff0c;欲将Ubuntu18.04升级至Ubuntu20.04&#xff0c;参考网上其他小伙伴的方法&#xff0c;也遇到了一个问题&#xff0c;特此记录一下&#xff0c;希望能帮助其他有同样问题的小伙伴。 升级方法 参考&#xff1a…

【React系列】Hook(一)基本使用

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识hook 1.1. 为什么需要hook Hook 是 React 16.8 的新增特性&#xff0c;它可以让我们在不编写class的情况下…

计算机研究生论文检索方法汇总

计算机研究生论文检索方法汇总 作为一名优质(冤种)计算机在读研究生&#xff0c;检索论文是一项不可或缺的技能之一。 一、paperwithcode paperswithcode是一个免费开放的资源平台&#xff0c;提供了机器学习领域的论文、代码、数据集、方法和评估表。在这里我们可以检索不同…

题目:大石头的搬运工(蓝桥OJ 3829)

问题描述&#xff1a; 解题思路&#xff1a; 官方&#xff1a; 注意点&#xff1a; 1.直观方法无法使用&#xff0c;因为其时间复杂度为O(n2)。带入题目数据n最大为1e5则时间复杂度为1e10&#xff0c;超过了运行限制&#xff08;默认1e8&#xff09;。 2.pair不会自动排序&…

vscode安装Prettier插件,对vue3项目进行格式化

之前vscode因为安装了Vue Language Features (Volar)插件&#xff0c;导致Prettier格式化失效&#xff0c;今天有空&#xff0c;又重新设置了一下 1. 插件要先安装上 2. 打开settings.json {"editor.defaultFormatter": "esbenp.prettier-vscode","…

Hex2Bin转换工具文档、Bootloader 、OTA 、STM32等MCU适用

说明&#xff1a;这个工具可以将 Hex 文件 转换为 Bin 格式文件&#xff0c;软件是按自己开发 STM32 OAT 功能需求开发的一款辅助 上位机软件。 有兴趣的朋友可留言探讨。 附加功能&#xff1a; 1.另外可以生成指定大小的bin 格式文件&#xff0c;文件多余的空余位置填充随机…

GZ075 云计算应用赛题第6套

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷6 某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源OpenSt…

可狱可囚的爬虫系列课程 10:在网站中寻找 API 接口

上一篇文章我们讲述了爬虫中一个比较重要的知识点&#xff0c;如何从 API 接口中获取数据&#xff0c;本篇文章我们继续讲述&#xff0c;如何在网站中寻找 API 接口&#xff0c;我们以“今日头条”网站 https://www.toutiao.com/ 为例。 如上图所示&#xff0c;如果要获取页面…

JumpServer3.0版本-账号管理

账号列表 我这里已经创建好了所以有很多,可以点击资产树列表分类查看 点击创建按钮,添加账号 资产:如果多个设备的账号密码一致可以在资产同事选中 名称:方便辨识即可 用户名:登录设备的账户名 密码:按你登录需求自行选择 添加按钮旁边还有个“模版添加” 此功能便…

Linux第3步_安装Ubuntu操作系统

创建好虚拟机后&#xff0c;就可以安装Ubuntu操作系统了。 1、双击“VMware Workstation Pro”&#xff0c;得到下面的界面。 2、点击“编辑虚拟机设置”&#xff0c;见下图&#xff1a; 3、等几秒钟&#xff0c;得到下面的界面&#xff1a; 4、点击“CD/DVD”&#xff0c;得到…