• Cisco简单配置(十八)—OSPF


    开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由信息。与EIGRP类似,都是“触发式”的路由协议。

    OSPF分为两种:单区域用户简单的网络,多区域用于复杂网络

    SPF 两级区域层次结构

    • 主干区域 - 主要功能是快速高效地传输 IP 数据包的 OSPF 区域。主干区域与其他类型的 OSPF 区域互连。主干区域也称为 OSPF 区域 0(area 0)。分层网络中将区域 0 定义为核心,所有其他区域与其直接连接。
    • 非主干区域 - 连接用户和资源。常规区域通常按功能或地理区域分组进行设置。默认情况下,非主干区域不允许来自另一区域的流量使用它的链路到达其他区域。来自其他区域的所有流量必须经过主干区域

    OSPF路由器的类型

    OSPF 路由器分为四种不同类型:

    内部路由器 – 所有接口位于同一区域的路由器。区域中的所有内部路由器具有相同的 LSDB

    主干路由器 – 主干区域中的路由器。主干区域被设为区域 0。

    区域边界路由器 (ABR) – 接口连接多个区域的路由器。它必须为相连的每个区域维护单独的 LSDB,并能在区域之间路由。ABR 可配置为汇总来自相连区域的 LSDB 的路由信息。ABR 将路由信息分发到主干区域。然后主干路由器将消息转发到其他 ABR。在多区域网络中,一个区域可以有一个或多个 ABR。

    自治系统边界路由器 (ASBR) – 至少有一个接口连接到外部网际网路的路由器。

    OSPF LSA 类型

    LSA 是 OSPF LSDB 的构建基块。单独使用时,它们充当数据库记录并提供特定 OSPF 网络的详细信息。组合使用时,它们描述 OSPF 网络或区域的完整拓扑。

    LSA 第 1 类

    所有路由器使用第 1 类 LSA 通告其直连 OSPF 链路,并将网络信息转发给 OSPF 邻居。LSA 包含直连接口、链路类型、邻居和链路状态的列表.

    LSA 第 2 类

    第 2 类 LSA 仅存在于多接入和非广播多接入 (NBMA) 网络,这些网络已选择了 DR 并且多接入网段上至少有两个路由器

    LSA 第 3 类

    ABR 使用第 3 类 LSA 通告来自其他区域的网络。ABR 在 LSDB 中收集第 1 类 LSA

     LSA 第 4 类

    第 4 类和第 5 类 LSA 共同用于识别 ASBR 和将外部网络通告到 OSPF 路由域。

     LSA 第 5 类

    第 5 类外部 LSA 描述到达 OSPF 路由域之外的网络的路由。

    以使用以下公式计算所需的邻接数。多接入网络上任何数量的路由器要求的邻接关系数量(指定为 n)为:

                                              n (n – 1) / 2

    默认 DR/BDR 选择过程

    1.在网络中,路由器选择具有最高接口优先级的路由器作为 DR。具有第二高接口优先级的路由器被选为 BDR。优先级可配置为 0 - 255 之间的任意数字。路由器的优先级越高,就越可能被选为 DR。

    2.如果路由器的接口优先级相等,则选择路由器 ID 最高的路由器作为 DR。路由器 ID 第二高的路由器被选为 BDR。

    当然我们可以自己配置改变优先级,因而改变选举,最简单的使用 router-id

    也可以是

    • ip ospf priority value - OSPFv2 接口命令
    • ipv6 ospf priority value - OSPFv3 接口命令

    传播默认静态路由 

    default-information originate 路由器配置模式命令

    手动修改 OSPFv2 Hello 间隔和 Dead 间隔:

    • ip ospf hello-interval seconds
    • ip ospf dead-interval seconds
    • 使用 no ip ospf hello-interval  no ip ospf dead-interval 命令将间隔重置为默认值。

    OSPF的数据包类型:

    • Hello 数据包: 用于建立和维护其他OSPF路由器的邻居关系
    • 数据库描述数据包:包含本地的LSDB,以方便建立SPF树
    • 链路状态请求数据包(LSR):路由器通过发送LSR请求DBD中的任意条目的详细信息
    • 链路状态更新信息(LSU)数据包:用于恢复LSR的通告新消息
    • 链路状态确认数据包(LSACK):路由器收到LSU后,发送LSACK用于确认

             

    配置OSPF                                                                                                                                                                                                                                                                                                                                        

     配置接口信息

    1. Router>enable
    2. Router#configure
    3. Router(config)#hostname R1
    4. R1(config)#interface G0/0
    5. R1(config-if)#ip address 10.0.0.1 255.255.255.0
    6. R1(config-if)#no shutdown
    1. Router>enable
    2. Router#configure
    3. Router(config)#hostname R2
    4. R2(config)#interface G0/0
    5. R2(config-if)#ip address 10.0.0.2 255.255.255.0
    6. R2(config-if)#no shutdown
    7. R2(config-if)#exit
    8. R2(config)#interface G0/1
    9. R2(config-if)#ip address 10.0.1.1 255.255.255.0
    10. R2(config-if)#no shutdown
    1. Router>enable
    2. Router#configure
    3. Router(config)#hostname R3
    4. R3(config)#interface G0/1
    5. R3(config-if)#ip address 10.0.1.2 255.255.255.0
    6. R3(config-if)#no shutdown

    配置OSPF 

    1. R1(config-router)#router-id 1.1.1.1
    2. R1(config-router)#network 10.0.0.0 0.0.0.255 area 0
    1. R2(config)#router ospf 1
    2. R2(config-router)#router-id 2.2.2.2
    3. R2(config-router)#network 10.0.0.0 0.0.0.255 area 0
    4. R2(config-router)#network 10.0.1.0 0.0.0.255 area 0
    1. R3(config)#router ospf 1
    2. R3(config-router)#router-id 3.3.3.3
    3. R3(config-router)#network 10.0.1.0 0.0.0.255 area 0

    当我们配置完的时候,可以注意这样的信息

     这样表示,OSPF的邻居已经建立;若配置完,没有出现此信息,可能你的网段没有声明正确哦

    通过show ip ospf neighbor,可以查看邻居信息

     

     当然,我们在一个未知的拓扑的时候,我们应该是首先show ip protocal

     可以查看此时的OSPF的进程,网段,route-id等详细信息。这个主要是在拍错的时候用得多

     通过show ip ospf database查看OSPF的状态

     

     当然,这是单区域OSPF数据库

    我们可以试着配置为OSPF,再来看数据库信息

     添加配置R3、R4、ISP

    1. R3(config)#interface G0/0
    2. R3(config-if)#ip address 10.0.2.1 255.255.255.0
    3. R3(config-if)#no shutdown
    1. Router>enable
    2. Router#configure
    3. Router(config)#hostname R4
    4. R4(config)#interface G0/0
    5. R4(config-if)#ip address 10.0.2.2 255.255.255.0
    6. R4(config-if)#no shutdown
    7. R4(config-if)#exit
    8. R4(config)#interface Serial 0/0/0
    9. R4(config-if)#ip address 10.0.3.1 255.255.255.0
    10. R4(config-if)#no shutdown
    1. Router>enable
    2. Router#configure
    3. Router(config)#hostname ISP
    4. ISP(config)#interface Serial 0/0/0
    5. ISP(config-if)#ip address 10.0.3.1 255.255.255.0
    6. ISP(config-if)#no shutdown

    修改区域ID

    1. R1(config)#router ospf 1
    2. R1(config-router)#network 10.0.0.0 0.0.0.255 area 1

    如果在配置OSPF的时候,遇到这种情况,不要着急,是因为对面的路由器的声明区域不对,只需要修改对面路由器的区域ID即可 

    1. R2(config)#router ospf 1
    2. R2(config-router)#network 10.0.0.0 0.0.0.255 area 1

     配置完后,又重新建立邻居关系

    1. R3(config)#router ospf 1
    2. R3(config-router)#network 10.0.2.0 0.0.0.255 area 0
    1. R4(config-router)#router-id 4.4.4.4
    2. R4(config-router)#network 10.0.2.0 0.0.0.255 area 0

     当我们配置了多区域的OSPF后,OSPF的database就会显示五类的信息

     配置完默认或静态路由,需要在重分布

    R4(config)#ip route 0.0.0.0 0.0.0.0 serial 0/0/0
    ISP(config)#ip route 0.0.0.0 0.0.0.0 serial 0/0/0
    1. R4(config)#router ospf 1
    2. R4(config-router)#default-information originate

     在查看路由表的时候,我们可看见静态路由重新分布了

  • 相关阅读:
    前端TypeScript学习day02-TS常用类型
    PCF8574/ PCF8574A/ PCF8574T I2C to parellal 8-bits I/O
    Linux内存管理(三十一):内存规整简介和 kcompactd详解
    lab1-4 PE结构
    HQS-Part4.指针、一维数组、二级指针、二维数组、指针数组、数组指针。
    第三章 C运算符和控制语句
    [SpringMVC笔记] SpringMVC-05-不同类型的参数传递
    淘宝/天猫优惠券查询 API 返回值说明
    golang学习笔记——编写 FizzBuzz 程序
    壁挂式新风机市场现状及未来发展趋势分析
  • 原文地址:https://blog.csdn.net/m0_59711726/article/details/128050598