OSPF一课一心

OSPF

一、了解OSPF的基本概念

  1. 定义:OSPF是一个开放标准的路由选择协议,被广泛应用于各种网络环境。
  2. 特性:支持VLSM和CIDR,拥有不受限跳计数,允许多销售商设备集成(开放的标准),能够最小化路由更新流量并允许可量测性。
  3. 数据包:OSPF使用五种数据包,包括Hello包、数据库描述报文(DBD)、链路状态请求报文(LSR)、链路状态更新报文(LSU)和链路状态确认报文(LSAck)。
  4. 状态机:OSPF的状态机包括Down、Init(初始化)、条件匹配、Exstart(预启动)、Exchange(准交换)、Loading(加载)和Full(转发)等七个状态。

二、掌握OSPF的工作原理

  1. 邻居关系建立:路由器通过发送Hello报文发现和维护邻居。Hello报文中包含路由器ID、区域ID、Hello间隔和失效时间等关键信息。当路由器收到来自其他路由器的Hello报文,并且参数匹配时,它们就会成为邻居。
  2. 链路状态信息交换:邻居关系建立后,路由器之间开始交换链路状态信息。这些信息被封装在链路状态通告(LSA)中进行传播,并存储在本地的链路状态数据库(LSDB)中。
  3. 路由计算:路由器基于LSDB运行最短路径优先(SPF)算法,计算出到达每个目标网络的最短路径。计算结果形成一棵以自己为根的最短路径树,并据此生成路由表。
  4. 网络收敛:当网络拓扑发生变化时,相关路由器会立即产生新的LSA并泛洪到整个区域,触发其他路由器重新计算SPF树和更新路由表,从而实现快速的网络收敛。

三、学习OSPF的配置方法

  1. 启动OSPF进程:在路由器上配置OSPF进程,并指定路由器ID。
  2. 创建区域:在OSPF进程中创建区域,并指定区域ID。
  3. 宣告网络:将需要参与OSPF的网络宣告到指定的区域中。
  4. 配置其他参数:根据需要配置OSPF的其他参数,如Hello时间、Dead时间、参考带宽等。

四、实践OSPF的配置与故障排除

  1. 实验环境搭建:在模拟器或实验室环境中搭建OSPF网络,并进行配置。
  2. 验证配置:使用命令查看OSPF邻居表、LSDB和路由表等关键信息,验证配置的正确性。
  3. 故障排除:模拟网络故障,如链路断开、配置错误等,并学习如何快速定位和解决故障。

五、深入学习OSPF的高级特性

  1. 区域划分:了解如何将大型网络划分为多个OSPF区域,以减少LSA泛洪的范围和提高网络扩展性。
  2. 路由汇总:学习如何在区域边界进行路由汇总,以减小路由表规模和加快路由计算速度。
  3. 特殊区域类型:了解OSPF的特殊区域类型,如末梢区域(Stub Area)、完全末梢区域(Totally Stubby Area)和非纯末梢区域(Not-So-Stubby Area, NSSA)等,并学习它们的配置方法和应用场景。
  4. 认证与加密:学习如何在OSPF网络中进行认证和加密,以确保网络的安全性。

通过以上步骤的学习和实践,你可以逐步掌握OSPF协议的基本概念和工作原理,并能够在实际网络环境中进行配置和故障排除。同时,深入了解OSPF的高级特性也将有助于你更好地优化和管理网络。

单区域OSPF配置

有三台路由器R1、R2和R3,其中R1和R3分别连接网络1.1.1.1/32和3.3.3.3/32(LoopBack0模拟),现需要使用OSPF实现这两个网络的互通。

学习了OSPF(开放最短路径优先)协议后,我深感其强大与灵活性,同时也对路由协议有了更深入的理解。以下是我对学习OSPF的一些感想:

  1. 复杂而精细:OSPF协议相对复杂,它涉及多个状态机、多种数据包类型以及详细的邻居关系建立和维护过程。然而,这种复杂性也带来了精细的控制能力,使得网络管理员能够根据需要定制OSPF的行为,以满足特定网络环境的需求。

  2. 高效与可靠:OSPF通过SPF算法计算最短路径,确保了路由的高效性。同时,它使用多种机制来确保网络的可靠性和稳定性,如邻居关系的快速建立与恢复、LSA的可靠传输以及网络拓扑的快速收敛等。

  3. 区域划分与扩展性:OSPF支持区域划分,这有助于将大型网络划分为多个更小的、易于管理的区域。这种划分不仅减少了LSA的泛洪范围,提高了网络的扩展性,还使得网络更容易进行故障隔离和恢复。

  4. 丰富的配置选项:OSPF提供了丰富的配置选项,如路由汇总、特殊区域类型(如Stub Area、NSSA等)、认证与加密等。这些选项使得网络管理员能够根据实际需求进行灵活配置,以满足不同场景下的网络需求。

  5. 挑战与收获:学习OSPF的过程充满了挑战,需要深入理解其工作原理和配置方法。然而,通过不断的学习和实践,我逐渐掌握了OSPF的核心概念和技术,并在解决网络问题的过程中获得了宝贵的经验。这种成就感和学习过程中的收获让我对OSPF充满了敬意和热爱。

  6. 实际应用价值:OSPF在实际网络环境中具有广泛的应用价值。它不仅能够提供高效的路由选择,还能够支持复杂的网络拓扑和丰富的配置选项。这使得OSPF成为许多大型企业和数据中心网络的首选路由协议。

总之,学习OSPF让我对网络路由协议有了更深入的理解,也让我对网络技术充满了更多的兴趣和热情。我相信,在未来的网络工作中,OSPF将继续发挥重要作用,为我的职业发展提供有力的支持。

OSPF协议原理
OSPF(Open Shortest Path First)是一种使用链路状态路由算法的内部网关协议,广泛应用于大型企业网络。它基于Dijkstra算法,通过构建一个路由器之间的完整拓扑来计算最短路径。OSPF的主要特点包括快速收敛&]、[&无路由环路、支持VLSM(Variable Length Subnet Masking)和CIDR(Classless Inter-Domain Routing),以及能够在自治系统内划分多个路由区域。
OSPF工作原理
OSPF的工作过程涉及以下几个关键步骤:

邻居发现:路由器通过发送Hello报文来发现其他使用OSPF的路由器,并建立邻居关系。

链路状态通告(LSA):每个路由器会广播自己连接的链路状态,这些信息被封装在LSA中。

构建链路状态数据库(LSDB):路由器收集所有LSA信息,构建一个全局的拓扑数据库。

运行SPF算法:每个路由器使用LSDB运行SPF算法,计算到达网络中每个子网的最短路径。

建立路由表:根据SPF算法的结果,路由器建立路由表,用于数据包的转发。

OSPF区域和路由器类型
为了提高网络的可扩展性和管理性,OSPF允许将网络划分为多个区域:

骨干区域(Area 0):所有其他区域都必须直接或通过虚拟链接与骨干区域相连。

非骨干区域:可以是标准区域、末梢区域(Stub)、完全末梢区域(Totally Stub)或NSSA(Not So Stubby Area)。

OSPF中的路由器可以分为以下几种类型:

内部路由器(IR):仅在单个区域内运行OSPF。

区域边界路由器(ABR):连接两个或多个区域,负责区域间路由信息的传播。

自治系统边界路由器(ASBR):连接OSPF自治系统和其他外部网络,负责外部路由信息的引入。

实验目的:
掌握OSPF的基本配置

观察并理解DR/BDR的选举过程

掌握OSPF接口开销的修改方法

理解OSPF被动接口的作用

掌握OSPF认证功能的配置
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_53980976/article/details/142869726

掌握OSPF的基本配置

观察并理解DR/BDR的选举过程

掌握OSPF接口开销的修改方法

理解OSPF被动接口的作用

掌握OSPF认证功能的配置

2:基础配置接口地址,及OSPF区域宣告如下:
R1配置 
sysname R1
interface GigabitEthernet0/0/0
ip address 10.0.12.1 255.255.255.0 
interface GigabitEthernet0/0/1
ip address 10.0.13.1 255.255.255.0 
interface GigabitEthernet0/0/2
interface LoopBack0
ip address 1.1.1.1 255.255.255.255 
interface LoopBack1
ip address 11.11.11.11 255.255.255.0 

将网段宣告在
 ospf 1 
 area 0.0.0.0 
 network 1.1.1.1 0.0.0.0 
 network 10.0.12.1 0.0.0.0               
 network 10.0.13.1 0.0.0.0 
 network 11.11.11.11 0.0.0.0

R2的配置
sysname R2
interface Serial4/0/0
ip address 10.0.23.2 255.255.255.0 
interface Serial4/0/1
interface GigabitEthernet0/0/0
ip address 10.0.24.2 255.255.255.0 
interface GigabitEthernet0/0/1
ip address 10.0.12.2 255.255.255.0 
interface LoopBack0                       
ip address 2.2.2.2 255.255.255.255 

将网段宣告在
ospf 1 
area 0.0.0.0 
network 2.2.2.2 0.0.0.0 
network 10.0.12.2 0.0.0.0 
network 10.0.23.2 0.0.0.0 
area 0.0.0.1 
network 10.0.24.2 0.0.0.0 
 

R3配置 
sysname R3
interface Serial4/0/0
ip address 10.0.23.3 255.255.255.0 
interface Serial4/0/1
link-protocol ppp
interface GigabitEthernet0/0/0
ip address 10.0.35.3 255.255.255.0 
interface GigabitEthernet0/0/1
ip address 10.0.13.3 255.255.255.0 
interface LoopBack0                       
ip address 3.3.3.3 255.255.255.255 
将网段宣告在
ospf 1 
 area 0.0.0.0 
  network 3.3.3.3 0.0.0.0 
  network 10.0.13.3 0.0.0.0 
  network 10.0.23.3 0.0.0.0 
 area 0.0.0.2 
  network 10.0.35.3 0.0.0.0 
R4配置 
sysname R4
interface GigabitEthernet0/0/0
 ip address 10.0.24.4 255.255.255.0 
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255 
interface LoopBack1
 ip address 44.44.44.44 255.255.255.0 
将网段宣告在
ospf 1 
 area 0.0.0.1 
  network 4.4.4.4 0.0.0.0 
  network 10.0.24.4 0.0.0.0 
  network 44.44.44.44 0.0.0.0
R5配置 
sysname R5
interface GigabitEthernet0/0/0
 ip address 10.0.35.5 255.255.255.0 
interface GigabitEthernet0/0/1
interface LoopBack0
 ip address 5.5.5.5 255.255.255.255 
interface LoopBack1
 ip address 55.55.55.55 255.255.255.0 

将网段宣告在
ospf 1 
 area 0.0.0.2 
  network 5.5.5.5 0.0.0.0 
  network 10.0.35.5 0.0.0.0 
  network 55.55.55.55 0.0.0.0  
配置完毕后,我们查看邻居关系建立情况:
R1:

R2:

R3

ping 全通

OSPF的‌管理距离‌12

在OSPF协议中,管理距离是一个重要概念,用于衡量‌路由器对某个路由的信任程度。管理距离越小,表示路由器对该路由的信任程度越高,认为该路由是最优路由。OSPF协议中的管理距离根据路由的来源不同而有所不同:

  • 内部OSPF路由‌:通过OSPF协议直接学到的路由信息,管理距离为0。
  • 外部OSPF路由‌:通过其他协议(如‌BGP、‌EIGRP等)学到的路由信息,管理距离为110。

管理距离的定义和功能

管理距离是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离。管理距离用于决定在多个路由协议提供相同目的地时,路由器选择哪个路由作为最佳路径。

OSPF区域编号的范围是从0到4294967295。‌ 区域编号是一个32位的数字,其中0用于标识主干区域(Backbone Area),其他区域号则用于标识其他区域。‌12

不同类型区域的特性

在配置时,通过指定区域类型和配置命令来激活这些区域。以下是一些示例配置:

router ospf 1
 area 1 stub  // 配置Stub区域
 area 2 stub no-summary // 配置完全Stub区域
 area 3 nssa  // 配置NSSA区域
 area 4 nssa default-information-originate // 配置完全NSSA区域,同时发布默认路由

 ‌三层交换机OSPF配置的步骤和命令

通过以上步骤,三层交换机就可以正确地参与OSPF路由,实现路由信息的共享和路径的选择。

在路由器运行了OSPF并确定了Router ID后,如果该Router ID对应的接口Down或者接口消失(例如执行了undo interface loopback loopback-number)或者出现更大的IP地址,OSPF将仍然保持原Router ID。只有重新配置系统的Router ID或者OSPF的Router ID,并且重新启动OSPF进程后,才会进行Router ID的重新选取。

链路状态

OSPF是一种链路状态协议。可以将链路视为路由器的接口。链路状态是对接口及接口与相邻路由器的关系的描述。例如接口的信息包括接口的IP地址、掩码、所连接的网络的类型、连接的邻居等。所有这些链路状态的集合形成链路状态数据库。

COST

报文类型

表1-1 报文类型

报文类型

报文作用

Hello报文

周期性发送,用来发现和维持OSPF邻居关系。

DD报文(Database Description packet)

描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。

LSR报文(Link State Request packet)

用于向对方请求所需的LSA。

设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。

LSU报文(Link State Update packet)

用于向对方发送其所需要的LSA。

LSAck报文(Link State Acknowledgment packet)

用来对收到的LSA进行确认。

  • 普通区域‌:除了区域0以外的其他区域。
  • 末梢区域(Stub Area)‌:不允许所有AS External LSA在其内部进行泛洪。
  • 完全末梢区域(Totally Stub)‌:不允许所有Network Summary LSA和所有AS External LSA在其内部进行泛洪。
  • 非纯完全末梢区域(NSSA)‌:不允许骨干区域传递过来的AS External LSA在其内部进行泛洪,但允许自己直连的外部路由的引入,并将自身引入的外部路由转换为NSSA External LSA在本区域传递。
  • 1:在一个OSPF区域中只能有一个骨干区域,可以有多个非骨干区域,骨干区域的区域号为0。
    2:为了避免回环的产生,各非骨干区域间是不可以交换LSA信息的,他们只有与骨干区域相连,通过骨干区域相互交换信息。
    3:非骨干区域和骨干区域之间相连的路由叫边界路由(ABRs-Area Border Routers),只有ABRs记载了接入各区域的所有路由信息。各非骨干区域内的非ABRs只记载了本区域内的路由表,若要与外部区域中的路由相连,只能通过本区域的ABRs,由ABRs连到骨干区域的BR,再由骨干区域的BR连到要到达的区域。
    4:骨干区域和非骨干区域的划分,大大降低了区域内工作路由的负担。

    总之划分区域使得大大减少了lsa的扩散数量,使得单个区域的负担减低
  • ospf特殊区域的特点

    在OSPF(Open Shortest Path First)路由协议中,特殊区域是指Stub区域、完全Stub区域、NSSA区域和完全NSSA区域。这些区域具有不同的特性,主要是为了节省带宽和资源,优化路由协议的性能。

  • Stub区域:

  • 不学习外部路由。

  • 只保留自己的区域内路由。

  • 默认端口是0。

  • 完全Stub区域:

  • 不学习外部路由。

  • 只保留自己的区域内路由。

  • 默认端口是0。

  • 不学习区域间的路由。

  • NSSA区域:

  • 不学习外部路由。

  • 保留自己的区域内路由和区域间的路由。

  • 默认端口是0。

  • 使用NSSA外部路由(7类LSA),需要手动转换成常规外部路由(5类LSA)。

  • 完全NSSA区域:

  • 不学习外部路由。

  • 保留自己的区域内路由和区域间的路由。

  • 默认端口是0。

  • 使用NSSA外部路由(7类LSA),需要手动转换成常规外部路由(5类LSA)。

  • 不学习区域间的路由。

  • 开启交换机路由功能‌:

    plaintextCopy Code

    Switch(config)#ip routing

  • 配置三层交换机端口的路由功能‌:

    plaintextCopy Code

    Switch(config)#interface fastEthernet 0/1 Switch(config-if)#no switchport Switch(config-if)#ip address 192.168.1.1 255.255.255.0

  • 配置OSPF‌:

    plaintextCopy Code

    Switch(config)#router ospf 1 Switch(config-router)#network 192.168.1.0 255.255.255.0 area 0 Switch(config-router)#network 192.168.3.0 255.255.255.0 area 0

  • OSPF配置的详细解释和示例

    在三层交换机上配置OSPF时,首先需要开启交换机的路由功能,然后配置具体的端口,使其能够参与OSPF路由。具体步骤如下:

  • 开启路由功能‌:
    使用命令 ip routing 开启交换机的路由功能,使其能够进行路由选择。

  • 配置端口‌:
    进入具体端口配置模式,使用 no switchport 命令关闭该端口的二层交换功能,启用三层路由功能。然后为该端口分配一个IP地址,例如 192.168.1.1/24

  • 配置OSPF‌:
    进入OSPF配置模式,设置OSPF进程号为1。然后声明该交换机上的网络段,指定这些网络段所属的区域(area 0)。例如,如果交换机连接了两个网络段 192.168.1.0/24 和 192.168.3.0/24,则需要在OSPF配置中声明这两个网络段,并将它们都放在区域0中。

  • OSPF是一种基于链路状态的路由协议,也是专为 IP 开发的路由协议,直接运行在 IP 层上面。它从设计上保证了无路由环路。除此之外,IS-IS也是很常见的链路状态协议。

    为什么会出现OSPF?

    作为目前主流的IGP协议,OSPF主要是为了解决RIP的三大问题而出现的,比如:收敛很慢、容易产生路由环路以及可延展性差等。

    OSPF路由协议的应用面非常广,认可度也很高,毕竟的确是好用的。

    像教育,金融,运营商,企业、医疗等行业,不论组网模型是复杂还是简单,也无论设备数量和路由条目有多少,OSPF都能很好的满足对应的需求。

    所以,在网络部署IGP协议的时候,很多网工都会优先考虑用OSPF组网。

    对于OSPF,很多网工朋友都是在工作里用到了就看一点基础内容,很难全面掌握。

    今天想给你分享的就是OSPF的最全原理总结(概要版),对你构建大体思路有奇效,希望能对同行们有所帮助。

    01 OSPF路由协议概述
    1. 内部网关协议和外部网关协议

  • 自治系统(AS)

    内部网关协议(IGP) :rip、ospf等

    外部网关协议(EGP):bgp等

    2. OSPF的工作过程

    邻居列表

    链路状态数据库

    路由表

  • 02 OSPF的应用环境

    1. 从几方面考虑OSPF的使用

    网络规模

    网络拓扑

    其他特殊要求

    路由器自身要求

    2. OSPF的特点

    可适应大规模网络

    路由变化收敛速度快

    无路由环

    支持变长子网掩码VLSM

    支持区域划分

    支持以组播地址发送协议报

  • v

    03 OSPF基本概念
    1. OSPF区域

    为了适应大型的网络,OSPF在AS内划分多个区域

    每个OSPF路由器只维护所在区域的完整链路状态信息

    (1)区域ID

    区域ID可以表示成一个十进制的数字

    也可以表示成一个IP

    (2)骨干区域Area 0

    负责区域间路由信息传播

    (3)非骨干区域

    非晋干区域相互通信必须通过骨干区域

  • – 标准区域

    – 末梢区域stub

    – 完全末梢区域total stub

    – 非纯末悄区域nssa

  • 2. OSPF路由类型

    区域之间路由器: ABR

    自制系统边界路由器:ASBR

  • 3. 生成OSPF多区域的原因

    改善网络的可扩展性

    快速收敛

    4. Router ID

    OSPF区域内唯一标识路由器的IP地址

    5. Router ID选取规则

    选取路由器loopback接口上数值最高的IP地址

    如果没有loopback接口,在物理端口中选取IP地址最高的

    也可以使用router-id命令指定Router ID

    DR和BDR的选举方法

    6. 选举DR和BDR

    (1)自动选举DR和BDR

    网段上Router lID最大的路由器将被选举为DR,第二大的将被选举为BDR

    (2)手工选择DR和BDR
    ————————————————

                                版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
    原文链接:https://blog.csdn.net/mengmeng_921/article/details/133676466

    ————————————————
  • 7. OSPF的组播地址

    224.0.0.5

    224.0.0.6

    DRothers向DR/BDR发送DBD、LASR或者Lsu时目标地址是224.0.0.6(AllDRouter)﹔或者理解为:DR/BDR侦224.0.0.6

    DR/BDR向DRothers发送更新的DBD、LSR或者Lsu时目标地址是224.0.0.5(AllSPFRouter),或者理解为:DRothers侦听224.0.0.5

    8. 度量值

    OSPF度量值 cost(开销)=10OM/BW(端口带宽)– 最短路径是基于接口指定的代(cost路径成本)计算的

    R工P是跳数

    9. OSPF的数据包类型

    承载在lIP数据包内,使用协议号89

    OSPF的包类型:
    ————————————————

  •                             版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
  • 04 OSPF配置命令示例
    1. 通用配置

    [R1]int g0/0/0 ###记置接口ip地址

    [R1-GigabitEthernet0/0/0]ip add 11.0.0.2 24

    [Rl-GigabitEthernet0/0/o]un sh

    [R1-GigabitEthernet0/0/0]int g0/0/1

    [R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24

    [R1-GigabitEthernet0/0/1]un sh

    [R1-GigabitEthernet0/0/1]int lo o

    [R1-LoopBack0]ip add 1.1.1.1 32

    [R1-LoopBack0]ospf 1 router-id 1.1.1.1 ###创建OSPF进程,配置路由ID

    [R1-ospf-1]area 1 ###进入区域1,区域ID可以用数字表示,也可以用IP表示,若区域o则是骨干区域

    [R1-ospf-1-area-0.0.0.1]network 12.0.0.0 0.255.255.255 ## 宣告直连

    [R1-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0 ##宣告oSPF区域内的直连网段,使用反掩码
    ————————————————

                                版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
    原文链接:https://blog.csdn.net/mengmeng_921/article/details/133676466

    原文链接:https://blog.csdn.net/mengmeng_921/article/details/133676466

  •                             版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
    原文链接:https://blog.csdn.net/mengmeng_921/article/details/133676466

    ————————————————

                                版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
    原文链接:https://blog.csdn.net/mengmeng_921/article/details/133676466

  • 引言

    这篇文档简短的介绍了什么是OSPF。以下章节将详细阐述OSPF协议相对于RIP协议的差异、OSPF基本原理及OSPF基本功能配置

    OSPF简介

    开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。

    目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。如无特殊说明,本文中所指的OSPF均为OSPF Version 2。

    OSPF协议是因为 Internet 社区中需要为TCP/IP协议族引入具备强大功能的非专有内部网关协议 (IGP)。关于创建Internet通用互操作IGP的讨论从1988年就开始了,但直到 1991年才正式成形。当时OSPF 工作组请求为了 Internet 草案标准的发展而考虑OSPF。

    OSPF 协议基于链路状态技术,不同于传统Internet 路由协议(如 RIP)中使用的基于距离矢量的算法。OSPF引入了一些新概念,如可变长度子网掩码(VLSM) 、路由汇总等。

    以下章节将详细阐述OSPF协议相对于RIP协议的差异、OSPF基本原理及OSPF基本功能配置。

    OSPF原理描述

    OSPF基础

    Router ID

    如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。

    Router ID的设定有两种方式:

  • 通过命令行手动配置,在实际网络部署中,建议手工配置OSPF的Router ID,因为这关系到协议的稳定。

  • 通过协议自动选取。

    如果没有手动配置Router ID,设备会从当前接口的IP地址中自动选取一个作为Router ID。其选取顺序是:

    1. 优先从Loopback地址中选择最大的IP地址作为Router ID。

    2. 如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router ID。

  • OSPF使用cost“开销”作为路由度量值。

  • 每一个激活OSPF的接口都有一个cost值。OSPF接口cost=100M/接口带宽,其中100M为OSPF的参考带宽(reference-bandwidth)。

  • 一条OSPF路由的cost由该路由从路由的起源一路到达本地的所有入接口cost值的总和。

    由于默认的参考带宽是100M,这意味着更高带宽的传输介质(高于100M)在OSPF协议中将会计算出一个小于1的分数,这在OSPF协议中是不允许的(会被四舍五入为1)。而现今网络设备很多都是大于100M带宽的接口,这时候路由cost的计算其实就不精确了。所以可以使用bandwidth-reference命令修改,但是这条命令要谨慎使用,一旦要配置,则建议全网OSPF路由器都配置。

LSA类型

表1-2 LSA类型

LSA类型

LSA作用

Router-LSA(Type1)

每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播。

Network-LSA(Type2)

由DR(Designated Router)产生,描述本网段的链路状态,在所属的区域内传播。

Network-summary-LSA(Type3)

由ABR产生,描述区域内某个网段的路由,并通告给发布或接收此LSA的非Totally STUB或NSSA区域。例如:ABR同时属于Area0和Area1,Area0内存在网段10.1.1.0,Area1内存在网段11.1.1.0,ABR为Area0生成到网段11.1.1.0的Type3 LSA;ABR为Area1生成到网段10.1.1.0的Type3 LSA,并通告给发布或接收此LSA的非Totally Stub或NSSA区域。

ASBR-summary-LSA(Type4)

由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

AS-external-LSA(Type5)

由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了STUB区域和NSSA区域)。

NSSA LSA(Type7)

由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

Opaque LSA(Type9/Type10/Type11)

Opaque LSA提供用于OSPF的扩展的通用机制。其中:

  • Type9 LSA仅在接口所在网段范围内传播。用于支持GR的Grace LSA就是Type9 LSA的一种。
  • Type10 LSA在区域内传播。用于支持TE的LSA就是Type10 LSA的一种。
  • Type11 LSA在自治域内传播,目前还没有实际应用的例子。

LSA在各区域中传播的支持情况

表1-3 LSA在各区域中传播的支持情况

区域类型

Router-LSA(Type1)

Network-LSA(Type2)

Network-summary-LSA(Type3)

ASBR-summary-LSA(Type4)

AS-external-LSA(Type5)

NSSA LSA(Type7)

普通区域(包括标准区域和骨干区域)

Stub区域

Totally Stub区域

NSSA区域

Totally NSSA区域

路由器类型

OSPF协议中常用到的路由器类型如图1-1所示。

图1-1 路由器类型

表1-4 路由器类型

路由器类型

含义

区域内路由器(Internal Router)

该类设备的所有接口都属于同一个OSPF区域。

区域边界路由器ABR(Area Border Router)

该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。

ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。

骨干路由器(Backbone Router)

该类设备至少有一个接口属于骨干区域。

所有的ABR和位于Area0的内部设备都是骨干路由器。

自治系统边界路由器ASBR(AS Boundary Router)

与其他AS交换路由信息的设备称为ASBR。

ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。

路由类型

AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPF将引入的AS外部路由分为Type1和Type2两类。

表1-5中按优先级从高到低顺序列出了路由类型。

表1-5 路由类型

路由类型

含义

Intra Area

区域内路由。

Inter Area

区域间路由。

第一类外部路由(Type1 External)

这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。

到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。

第二类外部路由(Type2 External)

这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。

所以,OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。

区域类型

表1-6 区域类型

区域类型

作用

普通区域

缺省情况下,OSPF区域被定义为普通区域。普通区域包括标准区域和骨干区域。

  • 标准区域是最通用的区域,它传输区域内路由,区域间路由和外部路由。
  • 骨干区域是连接所有其他OSPF区域的中央区域。骨干区域通常用Area 0表示。

STUB区域

不允许发布自治系统外部路由,只允许发布区域内路由和区域间的路由。

在STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。

为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部的路由都必须通过ABR才能发布。

Totally STUB区域

不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。

在Totally STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。

为了保证到自治系统外和其他区域的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部和其他区域的路由都必须通过ABR才能发布。

NSSA区域

NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。

NSSA区域同时保留自治系统内的STUB区域的特征。

该区域的ABR发布Type7缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。

Totally NSSA区域

Totally NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。

Totally NSSA区域同时保留自治系统内的Totally STUB Area区域的特征。

该区域的ABR发布Type3和Type7缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。

OSPF支持的网络类型

OSPF根据链路层协议类型,将网络分为如表1-7所列四种类型。

表1-7 OSPF网络类型

网络类型

含义

广播类型(Broadcast)

当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。

在该类型的网络中:

  • 通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPF DR/BDR( Backup Designated Router)的预留IP组播地址。
  • 以单播形式发送DD报文和LSR报文。

NBMA类型(Non-Broadcast Multi-Access)

当链路层协议是帧中继、X.25时,缺省情况下,OSPF认为网络类型是NBMA。

在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。

点到多点P2MP类型(Point-to-Multipoint)

没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。

在该类型的网络中:

  • 以组播形式(224.0.0.5)发送Hello报文。
  • 以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。

点到点P2P类型(point-to-point)

当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。

在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。

DR和BDR

在广播网和NBMA网络中,任意两台路由器之间都要传递路由信息。如图1-2所示,网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF定义了指定路由器DR和备份指定路由器BDR。通过选举产生DR(Designated Router)后,所有路由器都只将信息发送给DR,由DR将网络链路状态LSA广播出去。除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。

图1-2 选举DR前后对比图

如果DR由于某种故障而失效,则网络中的路由器必须重新选举DR,并与新的DR同步。这需要较长的时间,在这段时间内,路由的计算有可能是不正确的。为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router)的概念。BDR是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR。由于不需要重新选举,并且邻接关系已建立,所以这个过程非常短暂,这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算。

DR和BDR不是人为指定的,而是由本网段中所有的路由器共同选举出来的。路由器接口的DR优先级决定了该接口在选举DR、BDR时所具有的资格。本网段内DR优先级大于0的路由器都可作为“候选人”。选举中使用的“选票”就是Hello报文。每台路由器将自己选出的DR写入Hello报文中,发给网段上的其他路由器。当处于同一网段的两台路由器同时宣布自己是DR时,DR优先级高者胜出。如果优先级相等,则Router ID大者胜出。如果一台路由器的优先级为0,则它不会被选举为DR或BDR。

STUB区域

STUB区域是一些特定的区域,STUB区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。

STUB区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常来说,STUB区域位于自治系统的边界,是那些只有一个ABR的非骨干区域。

为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给STUB区域中的其他非ABR路由器。

配置STUB区域时需要注意下列几点:

  • 骨干区域不能配置成STUB区域。
  • 如果要将一个区域配置成STUB区域,则该区域中的所有路由器都要配置STUB区域属性。
  • STUB区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。
  • 虚连接不能穿过STUB区域。
NSSA区域

NSSA(Not-So-Stubby Area)区域是OSPF特殊的区域类型。NSSA区域与STUB区域有许多相似的地方,两者都不传播来自OSPF网络其它区域的外部路由。差别在于STUB区域是不能引入外部路由,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中。

当区域配置为NSSA区域后,为保证到自治系统外的路由可达,NSSA区域的ABR将生成一条缺省路由,并发布给NSSA区域中的其他路由器。

配置NSSA区域时需要注意下列几点:

  • 骨干区域不能配置成NSSA区域。
  • 如果要将一个区域配置成NSSA区域,则该区域中的所有路由器都要配置NSSA区域属性。
  • 虚连接不能穿过NSSA区域。
邻居状态机

在OSPF网络中,为了交换路由信息,邻居设备之间首先要建立邻接关系,邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念。

  • 邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居。
  • 邻接关系:形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系。

OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。

  • Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
  • Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时前仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
  • Init:收到Hello报文后状态为Init。
  • 2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
  • Exstart:开始协商主从关系,并确定DD的序列号,此时状态为Exstart。
  • Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
  • Loading:DD报文交换完成即Exchange done,此时状态为Loading。
  • Full:LSR重传列表为空,此时状态为Full。
OSPF报文认证

OSPF支持报文验证功能,只有通过验证的OSPF报文才能接收,否则将不能正常建立邻居。

路由器支持两种验证方式:

  • 区域验证方式
  • 接口验证方式

当两种验证方式都存在时,优先使用接口验证方式。

OSPF路由聚合

路由聚合是指ABR可以将具有相同前缀的路由信息聚合到一起,只发布一条路由到其它区域。

区域间通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高设备的性能。

OSPF有两种路由聚合方式:

OSPF缺省路由的发布原则如下:

不同区域缺省路由发布原则如表1-8所示。

表1-8 OSPF缺省路由发布原则

表1-9 区域间LSA学习与路由学习的差异

  • ABR聚合

    ABR向其它区域发送路由信息时,以网段为单位生成Type3 LSA。如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。

  • ASBR聚合

    配置路由聚合后,如果本地设备是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5 LSA进行聚合。当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7 LSA进行聚合。

    如果本地设备既是ASBR又是ABR,则对由Type7 LSA转化成的Type5 LSA进行聚合处理。

  • OSPF缺省路由

    缺省路由是指目的地址和掩码都是0的路由。当设备无精确匹配的路由时,就可以通过缺省路由进行报文转发。由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5或Type7路由。

    OSPF缺省路由通常应用于下面两种情况:

  • 由区域边界路由器(ABR)发布Type3缺省Summary LSA,用来指导区域内设备进行区域之间报文的转发。
  • 由自治系统边界路由器(ASBR)发布Type5外部缺省ASE LSA,或者Type7外部缺省NSSA LSA,用来指导自治系统(AS)内设备进行自治系统外报文的转发。
  • OSPF路由器只有具有对区域外的出口时,才能够发布缺省路由LSA。
  • 如果OSPF路由器已经发布了缺省路由LSA,那么不再学习其它路由器发布的相同类型缺省路由。即路由计算时不再计算其它路由器发布的相同类型的缺省路由LSA,但数据库中存有对应LSA。
  • 外部缺省路由的发布如果要依赖于其它路由,那么被依赖的路由不能是本OSPF路由域内的路由,即不是本进程OSPF学习到的路由。因为外部缺省路由的作用是用于指导报文的域外转发,而本OSPF路由域的路由的下一跳都指向了域内,不能满足指导报文域外转发的要求。
  • 区域类型

    作用

    普通区域

    缺省情况下,普通OSPF区域内的OSPF路由器是不会产生缺省路由的,即使它有缺省路由。

    当网络中缺省路由通过其他路由进程产生时,路由器必须将缺省路由通告到整个OSPF自治域中。实现方法是在ASBR上手动通过命令进行配置,产生缺省路由。配置完成后,路由器会产生一个缺省ASE LSA(Type5 LSA),并且通告到整个OSPF自治域中。

    STUB区域

    STUB区域不允许自治系统外部的路由(Type5 LSA)在区域内传播。

    区域内的路由器必须通过ABR学到自治系统外部的路由。实现方法是ABR会自动产生一条缺省的Summary LSA(Type3 LSA)通告到整个STUB区域内。这样,到达自治系统的外部路由就可以通过ABR到达。

    Totally STUB区域

    Totally STUB区域既不允许自治系统外部的路由(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)在区域内传播。

    区域内的路由器必须通过ABR学到自治系统外部和其他区域的路由。实现方法是配置Totally STUB区域后,ABR会自动产生一条缺省的Summary LSA(Type3 LSA)通告到整个STUB区域内。这样,到达自治系统外部的路由和其他区域间的路由都可以通过ABR到达。

    NSSA区域

    NSSA区域允许引入通过本区域的ASBR到达的少量外部路由,但不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播。即到达自治系统外部的路由只能通过本区域的ASBR到达。

    只配置了NSSA区域是不会自动产生缺省路由的。

    此时,有两种选择:

    • 如果希望到达自治系统外部的路由通过该区域的ASBR到达,而其它外部路由通过其它区域出去。此时,ABR会产生一条Type7 LSA的缺省路由,通告到整个NSSA区域内。这样,除了某少部分路由通过NSSA的ASBR到达,其它路由都可以通过NSSA的ABR到达其它区域的ASBR出去。
    • 如果希望所有的外部路由只通过本区域NSSA的ASBR到达。则必须在ASBR上手动通过命令进行配置,使ASBR产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,所有的外部路由就只能通过本区域NSSA的ASBR到达。

    上面两种情况的区别是:

    • 在ABR上无论路由表中是否存在缺省路由0.0.0.0,都会产生Type7 LSA的缺省路由。
    • 在ASBR上只有当路由表中存在缺省路由0.0.0.0时,才会产生Type7 LSA的缺省路由。

    因为缺省路由只是在本NSSA区域内泛洪,并没有泛洪到整个OSPF域中,所以本NSSA区域内的路由器在找不到路由之后可以从该NSSA的ASBR出去,但不能实现其他OSPF域的路由从这个出口出去。Type7 LSA缺省路由不会在ABR上转换成Type5 LSA缺省路由泛洪到整个OSPF域。

    Totally NSSA区域

    Totally NSSA区域既不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)在区域内传播。

    区域内的路由器必须通过ABR学到其他区域的路由。实现方法是配置Totally NSSA区域后,ABR会自动产生一条缺省的Type3 LSA通告到整个NSSA区域内。这样,其他区域的外部路由和区域间路由都可以通过ABR在区域内传播。

  • OSPF路由过滤

    OSPF支持使用路由策略对路由信息进行过滤。缺省情况下,OSPF不进行路由过滤。

    OSPF可以使用的路由策略包括route-policy,访问控制列表(access-list),地址前缀列表(prefix-list)。

    OSPF路由过滤可以应用于以下几个方面:

  • 路由引入

    OSPF可以引入其它路由协议学习到的路由。在引入时可以通过配置路由策略来过滤路由,只引入满足条件的路由。

  • 引入路由发布

    OSPF引入了路由后会向其它邻居发布引入的路由信息。

    可以通过配置过滤规则来过滤向邻居发布的路由信息。该过滤规则只在ASBR上配置才有效。

  • 路由学习

    通过配置过滤规则,可以设置OSPF对接收到的区域内、区域间和自治系统外部的路由进行过滤。

    该过滤只作用于路由表项的添加与否,即只有通过过滤的路由才被添加到本地路由表中,但所有的路由仍可以在OSPF路由表中被发布出去。

  • 区域间LSA学习

    通过命令可以在ABR上配置对进入本区域的Summary LSA进行过滤。该配置只在ABR上有效(只有ABR才能发布Summary LSA)。

区域间LSA学习

路由学习

直接对进入区域的LSA进行过滤。

路由学习中的过滤不对LSA进行过滤,只针对LSA计算出来的路由是否添加本地路由表进行过滤。学习到的LSA是完整的。

区域间LSA发布

通过命令可以在ABR上配置对本区域出方向的Summary LSA进行过滤。该配置只在ABR上配置有效。

OSPF多进程

OSPF支持多进程,在同一台路由器上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。

路由器的一个接口只能属于某一个OSPF进程。

OSPF多进程的一个典型应用就是在VPN场景中PE和CE之间运行OSPF协议,同时VPN骨干网上的IGP也采用OSPF。在PE上,这两个OSPF进程互不影响。

OSPF RFC1583兼容

RFC1583是OSPFv2协议比较早的版本。

OSPF在计算外部路由时,由于RFC2328和RFC1583的路由计算规则不一致,可能会导致路由环路。为了避免路由环路的发生,RFC2328中提出了RFC1583兼容特性。

OSPF是根据5类LSA来计算外部路由的。RFC1583兼容特性主要用于路由器收到5类LSA后:

OSPF基本原理

OSPF协议路由的计算过程可简单描述如下:

缺省情况下,OSPF兼容RFC1583。

  • 使能RFC1583兼容后,OSPF采用RFC1583的路由计算规则。
  • 不使能RFC1583兼容时,OSPF采用RFC2328的路由计算规则。
  • 选择到达产生该LSA的ASBR或该LSA所描述的转发地址(Forwarding Address)的路径;
  • 选择到达相同目的地的外部路径。
  • 建立邻接关系,过程如下:
    1. 本端设备通过接口向外发送Hello报文与对端设备建立邻居关系
    2. 两端设备进行主/从关系协商和DD报文交换。
    3. 两端设备通过更新LSA完成链路数据库LSDB的同步。

      此时,邻接关系建立成功。

  • 路由计算

    OSPF采用SPF(Shortest Path First)算法计算路由,可以达到路由快速收敛的目的。

建立邻接关系

在上述邻居状态机的变化中,有两处决定是否建立邻接关系:

当与邻居的双向通讯初次建立时。 当网段中的DR和BDR发生变化时。

图1-3 在广播网络中建立OSPF邻接关系

OSPF在不同网络类型中,OSPF邻接关系建立的过程不同,分为广播网络,NBMA网络,点到点/点到多点网络。

在广播网络中建立OSPF邻接关系

广播链路邻接关系建立过程如图1-3所示。

在广播网络中,DR、BDR和网段内的每一台路由器都形成邻接关系,但DR other之间只形成邻居关系。

如#ZH-CN_TOPIC_0169202915/fig_dc_vrp_feature_new_00630602所示,在广播网络中建立OSPF邻接关系的过程如下:

  • 建立邻居关系
    1. RouterA的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个Hello报文(使用组播地址224.0.0.5)。此时,RouterA认为自己是DR路由器(DR=1.1.1.1),但不确定邻居是哪台路由器(Neighbors Seen=0)。
    2. RouterB收到RouterA发送的Hello报文后,发送一个Hello报文回应给RouterA,并且在报文中的Neighbors Seen字段中填入RouterA的Router ID(Neighbors Seen=1.1.1.1),表示已收到RouterA的Hello报文,并且宣告DR路由器是RouterB(DR=2.2.2.2),然后RouterB的邻居状态机置为Init。
    3. RouterA收到RouterB回应的Hello报文后,将邻居状态机置为2-way状态,下一步双方开始发送各自的链路状态数据库。

    在广播网络中,两个接口状态是DR Other的路由器之间将停留在此步骤。

1.互联IP地址规则:如AR1和AR2互联就是12.1.1.1和12.1.1.2以此类推。

2.环回口配置如AR1  int lo 0 1.1.1.1 32

3.Ospf的routerID跟回环口相同方便记忆。也可以是设备里面没有的IP地址做routeid。只是一个标识。

4.宣告接口注意是只宣告自己有的接口

第一步配置接口IP和回环口地址(IP地址规则如上)  

第二步配置ospf进程

第三步宣告ospf进程和rip进程

AR1配置回环口和接口IP

[Huawei]int LoopBack 0             //进入回环口0接口(也可以是1接口)

[Huawei-LoopBack0]ip add 1.1.1.1 32  //配置IP地址

[Huawei-LoopBack0]int g0/0/0        //直接从回环口进入到接口0

[Huawei-GigabitEthernet0/0/0]ip add 14.1.1.1 24  //配置IP地址

[Huawei-GigabitEthernet0/0/0]int g0/0/2         //进入接口2

[Huawei-GigabitEthernet0/0/2]ip add 172.16.10.1 24  //配置IP地址(中间有交换机需要三台AR路由器有接口在一个网段)

第二步:配置ospf

[Huawei]ospf 10 router-id 1.1.1.1    //创建ospf10 配置router-id 为1.1.1.1

[Huawei-ospf-10]area 10           //进入area 10区域

[Huawei-ospf-10-area-0.0.0.10]network 172.16.10.0 0.0.0.255   //宣告接口网段

[Huawei-ospf-10-area-0.0.0.10]network 14.1.1.0 0.0.0.255  //宣告接口网段

[Huawei-ospf-10-area-0.0.0.10]network 1.1.1.1 0.0.0.0     //宣告回环口网段

[Huawei-ospf-10-area-0.0.0.10]dis this                  //查看area10下配置的命令

[V200R003C00]

#

 area 0.0.0.10

  network 1.1.1.1 0.0.0.0

  network 14.1.1.0 0.0.0.255

  network 172.16.10.0 0.0.0.255

AR2配置回环口和接口IP地址

[Huawei]int LoopBack 0             //进入回环口0接口(也可以是1接口)

[Huawei-LoopBack0]ip add 2.2.2.2 32  //配置IP地址

[Huawei-LoopBack0]int g0/0/0        //直接从回环口进入到接口0

[Huawei-GigabitEthernet0/0/0]ip add 172.16.10.2 24  //配置IP地址(中间有交换机需要三台AR路由器有接口在一个网段)

第二步:配置ospf

[Huawei]ospf 10 router-id 2.2.2.2    //创建ospf10 配置router-id 为2.2.2.2

[Huawei-ospf-10]area 10           //进入area 10区域

[Huawei-ospf-10-area-0.0.0.10]network 172.16.10.0 0.0.0.255   //宣告接口网段

[Huawei-ospf-10-area-0.0.0.10]network 2.2.2.2 0.0.0.0     //宣告回环口网段

AR3配置回环口和接口IP地址

[Huawei]int LoopBack 0             //进入回环口0接口(也可以是1接口)

[Huawei-LoopBack0]ip add 3.3.3.3 32  //配置IP地址

[Huawei-LoopBack0]int g0/0/0        //直接从回环口进入到接口0

[Huawei-GigabitEthernet0/0/0]ip add 172.16.10.3 24  //配置IP地址(中间有交换机需要三台AR路由器有接口在一个网段)

第二步:配置ospf

[Huawei]ospf 10 router-id 3.3.3.3    //创建ospf10 配置router-id 为3.3.3.3

[Huawei-ospf-10]area 10           //进入area 10区域

[Huawei-ospf-10-area-0.0.0.10]network 172.16.10.0 0.0.0.255   //宣告接口网段

[Huawei-ospf-10-area-0.0.0.10]network 3.3.3.3 0.0.0.0     //宣告回环口网段
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_43751619/article/details/125284091

AR4(属于两个区域0和区域10)配置回环口和接口IP地址

[Huawei]int LoopBack 0             //进入回环口0接口(也可以是1接口)

[Huawei-LoopBack0]ip add 4.4.4.4 32  //配置IP地址

[Huawei-LoopBack0]int g0/0/0        //直接从回环口进入到接口0

[Huawei-GigabitEthernet0/0/0]ip add 14.1.1.4 24  //配置IP地址

[Huawei-GigabitEthernet0/0/0]int g0/0/1        //直接从回环口进入到接口1

[Huawei-GigabitEthernet0/0/1]ip add 46.1.1.4 24  //配置IP地址

[Huawei-GigabitEthernet0/0/1]int g0/0/2        //直接从回环口进入到接口1

[Huawei-GigabitEthernet0/0/2]ip add 45.1.1.4 24  //配置IP地址

第二步:配置ospf

[Huawei]ospf 10 router-id 4.4.4.4    //创建ospf10 配置router-id 为4.4.4.4

[Huawei-ospf-10]area 10           //进入area 10区域

[Huawei-ospf-10-area-0.0.0.10]network 14.1.1..0 0.0.0.255   //宣告接口网段

[Huawei]ospf 10 router-id 4.4.4.4    //创建ospf10 配置router-id 为3.3.3.3

[Huawei-ospf-10]area 0            //进入area 0区域

[Huawei-ospf-10-area-0.0.0.0]network 45.1.1..0 0.0.0.255   //宣告接口网段

[Huawei-ospf-10-area-0.0.0.0]network 46.1.1..0 0.0.0.255   //宣告接口网段

AR5(直接看配置就可以配置了如果不会就看AR4的步骤)

[Huawei-ospf-10]dis ip int br

Interface                         IP Address/Mask      Physical   Protocol 

GigabitEthernet0/0/0              56.1.1.5/24          up         up       

GigabitEthernet0/0/1              45.1.1.5/24          up         up       

GigabitEthernet0/0/2              57.1.1.5/24          up         up       

LoopBack0                        5.5.5.5/32         up         up(s)

配置opsf

[Huawei-ospf-10]dis this

[V200R003C00]

#

ospf 10 router-id 5.5.5.5

 area 0.0.0.0

  network 5.5.5.5 0.0.0.0

  network 45.1.1.0 0.0.0.255

  network 56.1.1.0 0.0.0.255

 area 0.0.0.20

  network 57.1.1.0 0.0.0.255

#

return

AR6配置

配置接口

<Huawei>dis ip int br

Interface                         IP Address/Mask      Physical   Protocol 

GigabitEthernet0/0/0              46.1.1.6/24          up         up       

GigabitEthernet0/0/1              56.1.1.6/24          up         up       

GigabitEthernet0/0/2              unassigned          down     down     

LoopBack0                         6.6.6.6/32         up      up(s)    

配置ospf

[Huawei-ospf-10]dis this

[V200R003C00]

#

ospf 10 router-id 6.6.6.6

 area 0.0.0.0

  network 6.6.6.6 0.0.0.0

  network 46.1.1.0 0.0.0.255

  network 56.1.1.0 0.0.0.255

AR7配置

接口配置

<Huawei>dis ip int br

Interface                         IP Address/Mask      Physical   Protocol 

GigabitEthernet0/0/0              57.1.1.7/24          up         up       

GigabitEthernet0/0/1              78.1.1.7/24          up         up       

GigabitEthernet0/0/2              unassigned         down      down     

LoopBack0                         7.7.7.7/32           up       up(s)

AR8(需要配置两个协议sopf和rip)最后还需要宣告路由ospf的路由宣告到rip 。rip的路由宣告到ospf 

接口配置

[Huawei]dis ip int br

Interface                         IP Address/Mask      Physical   Protocol 

GigabitEthernet0/0/0              78.1.1.8/24          up         up       

GigabitEthernet0/0/1              89.1.1.8/24          up         up       

GigabitEthernet0/0/2              unassigned           down      down     

LoopBack0                         8.8.8.8/32           up        up(s) 

Ospf配置(路由引入单独配置了不在dis this命令里面)

[Huawei-ospf-10]dis this

[V200R003C00]

#

ospf 10 router-id 8.8.8.8

 area 0.0.0.20

  network 8.8.8.8 0.0.0.0

  network 78.1.1.0 0.0.0.255

rip配置

[Huawei-rip-1]dis this

[V200R003C00]

#

rip 1                   //进入RIP默认是1

 undo summary         //关闭自动聚合

 version 2               //选择版本V2

 network 89.0.0.0         //宣告网段

 import-route ospf 10     //

配置路由引入

[Huawei]ospf 10         

[Huawei-ospf-10]import-route rip   //rip引入到ospf10里面

[Huawei-ospf-10]rip              //进入rip             

[Huawei-rip-1]import-route ospf 10  //ospf10引入到rip

AR9配置(只需要配置rip也不用引入配置,因为是边界路由器)

配置接口信息

<Huawei>dis ip int br    //查看接口IP信息

Interface                         IP Address/Mask      Physical   Protocol 

GigabitEthernet0/0/0              89.1.1.9/24          up         up       

GigabitEthernet0/0/1              unassigned           down       down     

GigabitEthernet0/0/2              unassigned           down       down     

LoopBack0                         9.9.9.9/32           up         up(s)

配置rip

[Huawei-rip-1]dis this

[V200R003C00]

#

rip 1

 version 2

 network 89.0.0.0

 network 9.0.0.0

#

return

[Huawei]dis ip routing-table protocol rip       //查看路由

Route Flags: R - relay, D - download to fib

------------------------------------------------------------------------------

Public routing table : RIP

         Destinations : 15       Routes : 15      

RIP routing table status : <Active>

         Destinations : 15       Routes : 15

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.1/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

        2.2.2.2/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

        3.3.3.3/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

        4.4.4.4/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

        5.5.5.5/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

        6.6.6.6/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

        7.7.7.7/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

        8.8.8.8/32  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

       14.1.1.0/24  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

       45.1.1.0/24  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

       46.1.1.0/24  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

       56.1.1.0/24  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

       57.1.1.0/24  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

       78.1.1.0/24  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

    172.16.10.0/24  RIP     100  1           D   89.1.1.8        GigabitEthernet

0/0/0

RIP routing table status : <Inactive>

         Destinations : 0        Routes : 0

验证命令

[Huawei]dis ospf peer br              //查看OSPf的邻居表
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_43751619/article/details/125284091

————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_43751619/article/details/125284091

OSPF Process 10 with Router ID 4.4.4.4

                  Peer Statistic Information

 ----------------------------------------------------------------------------

 Area Id          Interface                        Neighbor id      State   

 0.0.0.0          GigabitEthernet0/0/2             5.5.5.5          Full       

 0.0.0.0          GigabitEthernet0/0/1             6.6.6.6          Full       

 0.0.0.10         GigabitEthernet0/0/0             1.1.1.1          Full       

 ----------------------------------------------------------------------------

[Huawei]

<AR1>display ospf interface             //查看OSPF接口宣告情况

<AR1>display ospf lsdb                //查看OSPF的链路状态数据库(拓扑表)

OSPFv3协议基本概念

OSPFv3是运行于IPv6的路由协议:

  • OSPFv3在Hello报文、状态机、LSDB、泛洪机制和路由计算等方面的工作原理和OSPFv2保持一致。

  • OSPFv3报文封装在IPv6报文内,可以采用单播和组播的形式发送。

OSPFv3报文类型

报文类型

报文作用

Hello报文

周期性发送Hello报文,用来发现和维持OSPFv3邻居关系。

DD报文(Database Description packet)

描述了本地LSDB的摘要信息,用于两台设备进行数据库同步。

LSR报文(Link State Request packet)

用于向对方请求所需的LSA。

设备只有在OSPFv3邻居双方成功交换DD报文后才会向对方发出LSR报文。

LSU报文(Link State Update packet)

向对方发送其所需要的LSA。

LSAck报文(Link State Acknowledgment packet)

用来对收到的LSA进行确认。

LSA类型

LSA类型

LSA作用

Router-LSA(Type1)

设备会为每个运行OSPFv3接口所在的区域产生一个LSA,描述了设备的链路状态和开销,在所属的区域内传播。

Network-LSA(Type2)

由DR产生,描述本链路的链路状态,在所属的区域内传播。

Inter-Area-Prefix-LSA(Type3)

由ABR产生,描述区域内某个网段的路由,并通告给其他相关区域。

Inter-Area-Router-LSA(Type4)

由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

AS-external-LSA(Type5)

由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。

NSSA LSA(Type7)

由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

Link-LSA(Type8)

每个设备都会为每个链路产生一个Link-LSA,描述到此Link上的link-local地址、IPv6前缀地址,并提供将会在Network-LSA中设置的链路选项,它仅在此链路内传播。

Intra-Area-Prefix-LSA(Type9)

每个设备及DR都会产生一个或多个此类LSA,在所属的区域内传播。

  • 设备产生的此类LSA,描述与Route-LSA相关联的IPv6前缀地址。
  • DR产生的此类LSA,描述与Network-LSA相关联的IPv6前缀地址。

GRACE-LSA(Type11)

每个支持Graceful Restart业务的设备,在Graceful Restart过程中,为每个接口发布此类LSA,在指定接口通告。

OSPFv3 Router Information (RI) LSA(Type12)

每个设备需要发布本设备的扩展信息时会产生此类LSA,分为两类:

  • Area Router Information LSA :

    在所属区域内传播。例如:SRv6 Capabilities TLV、SR-Algorithm TLV、SRv6 NODE MSD TLV、Dynamic Hostname TLV等。

  • AS Router Information LSA

    通告到所有的区域。例如:Dynamic Hostname TLV等。

E-Router-LSA(Type33)

每个设备需要发布链路扩展TLV信息时会产生此类LSA,在所属区域内传播。例如:链路扩展发布End.X SID Sub-TLV、Local Interface IPv6 Address Sub-TLV等。

E-AS-External-LSA(Type37)

由ASBR产生,描述AS外部路由关联的扩展TLV信息,通告到所有的区域。

————————————————

设备角色

根据在自治系统AS中的不同位置,设备角色可以分为以下几类。请参见图6-1表6-1

图6-1 自治系统中的设备角色

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_43751619/article/details/125284091

————————————————

表6-1 设备角色及含义

设备角色

含义

区域内路由器(Internal Router)

该类设备的所有接口都属于同一个OSPFv3区域。

区域边界路由器ABR(Area Border Router)

该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。

ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。

骨干路由器(Backbone Router)

该类设备至少有一个接口属于骨干区域。

因此,所有的ABR和位于Area0的内部设备都是骨干路由器。

自治系统边界路由器ASBR(AS Boundary Router)

与其他AS交换路由信息的设备称为ASBR。

ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPFv3设备引入了外部路由的信息,它就成为ASBR。

OSPFv3路由类型

AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPFv3将引入的AS外部路由分为Type1和Type2两类。

表6-2中按优先级从高到低顺序列出了路由类型。

表6-2 OSPFv3路由类型

路由类型

含义

Intra Area

区域内路由。

Inter Area

区域间路由。

第一类外部路由(Type1 External)

这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPFv3自身路由的开销具有可比性。

到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。

第二类外部路由(Type2 External)

这类路由的可信度比较低,所以OSPFv3协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。

所以,OSPFv3计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。

区域

随着网络规模日益扩大,当一个大型网络中的设备都运行OSPFv3路由协议时,设备数量的增多会导致链路状态数据库LSDB(Link-State Database)非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致设备负担很重。在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“动荡”之中,造成网络中会有大量的OSPFv3协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的设备重新进行路由计算。

OSPFv3协议通过将自治系统划分成不同的区域解决LSDB频繁更新的问题,提高网络的利用率。区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是设备,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPFv3的接口必须指明属于哪一个区域。

OSPFv3的区域类型包括普通区域、Stub区域、NSSA区域,如表6-3所示。

表6-3 区域类型

区域类型

作用

说明

普通区域

缺省情况下,OSPFv3区域被定义为普通区域。普通区域包括:

  • 标准区域:最通用的区域,它传输区域内路由,区域间路由和外部路由。
  • 骨干区域:连接所有其他OSPFv3区域的中央区域,通常用Area 0表示。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。
  • 骨干区域自身必须保持连通。
  • 所有非骨干区域必须与骨干区域保持连通。

Stub区域

Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,因此这些区域中设备的路由表规模以及路由信息传递的数量都会大大减少。一般情况下,Stub区域位于自治系统的边界,是只有一个ABR的非骨干区域,为保证到自治系统外的路由依旧可达,Stub区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。

Totally Stub区域允许ABR发布的Type3缺省路由,不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。

  • 骨干区域不能配置成Stub区域。
  • Stub区域内不能存在ASBR,因此自治系统外部的路由不能在本区域内传播。

NSSA(Not-So-Stubby Area)区域

NSSA是Stub区域的一个变形,它和Stub区域有许多相似的地方。NSSA区域不允许存在Type5 LSA。NSSA区域允许引入自治系统外部路由,携带这些外部路由信息的Type7 LSA由NSSA的ASBR产生,仅在本NSSA内传播。当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA,泛洪到整个OSPFv3域中。

Totally NSSA区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。

  • 该区域的ABR发布Type3缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。

OSPFv3路由聚合

路由聚合是指将多条具有相同IPv6前缀的路由聚合成一条路由。当大规模部署OSPFv3网络时,可能会出现由于OSPFv3路由表规模过大而降低路由查找速度的现象,为了解决这个问题,可以配置路由聚合,减小路由表的规模,降低管理的复杂度。此外,如果被聚合的IPv6地址范围内的某条链路频繁Up和Down,该变化并不会通告到被聚合的IPv6地址范围外的设备。因此,路由聚合还可以避免网络中的路由振荡,在一定程度上提高了网络的稳定性。

OSPFv3路由聚合过程如下:

  • ABR聚合

    ABR路由聚合将具有相同前缀的路由信息聚合在一起,只发布一条路由到其他区域。

    ABR在发送路由信息到别的区域的过程中,基于IPv6地址前缀生成type3 LSA。如果一些连续的IPv6地址前缀在某个区域内存在并且ABR聚合功能是使能的,这些IPv6地址前缀聚合成一个地址前缀。 对于前缀相同的多条LSA,区域边界路由器(ABR)只发送一条聚合的LSA。属于命令指定网段的LSA不单独传输。

  • ASBR聚合

    ASBR路由聚合将具有相同前缀的引入路由聚合在一起,只发布一条路由到其他区域。

    使能ASBR路由聚合功能后,自治系统边界路由器将处于聚合地址范围内的引入的type5 LSA进行聚合。聚合后,自治系统边界路由器不会为配置范围内所有的前缀生成单独的type5 LSA,相反,自治系统边界路由器只为聚合的前缀生成单一的type5 LSA。对于NSSA区域,自治系统边界路由器将处于聚合地址范围内的多条引入的type7 LSA聚合成一条type7 LSA。

OSPFv3多进程

OSPFv3支持多进程,在同一台设备上可以运行多个不同的OSPFv3进程,它们之间互不影响,彼此独立。不同OSPFv3进程之间的路由交互相当于不同路由协议之间的路由交互。

IPv6静态路由原理描述

路由设备根据路由转发数据包,路由可以通过手动配置和使用动态路由算法计算产生,通过手动配置产生的路由就是静态路由。静态路由和动态路由相比优点是:静态路由比动态路由使用更少的带宽,并且不需要占用设备资源来计算和分析路由更新。

静态路由和动态路由相比缺点是:当网络发生故障或者拓扑发生变化后,静态路由不会自动改变,必须有管理员的介入。

一条静态路由包含以下要素:目的地址和掩码长度,出接口和下一跳地址。

目的地址和掩码长度

IPv6静态路由的目的地址为32位16进制数,掩码长度即掩码中连续“1”的位数,取值为0到128。

出接口和下一跳地址

在配置静态路由时,可指定出接口,也可指定下一跳地址,还可以同时指定出接口和下一跳地址。实际上,所有的路由项都必须明确下一跳。在发送报文时,首先根据报文的目的地址寻找路由表中与之匹配的路由(遵循最长匹配原则)。只有指定了下一跳,链路层才能找到对应的链路层地址,并转发报文。指定发送接口时需要注意:

  • 对于点到点类型的接口,指定发送接口即隐含指定了下一跳地址,这时认为与该接口相连的对端接口地址就是路由的下一跳地址。
  • 对于NBMA(Non Broadcast Multiple Access)类型的接口,它支持点到多点网络,这时除了配置IP路由外,还需在链路层建立IP地址到链路层地址的映射。这种情况下应配置下一跳IP地址。

操作步骤
  • 在配置静态路由时,不建议指定以广播口(如以太网接口)作为出接口。因为以太网接口是广播类型的接口,会导致出现多个下一跳,无法唯一确定下一跳。在应用中,如果必须指定广播接口(如以太网接口)作为出接口,必须同时指定通过该接口发送时对应的下一跳地址。

    创建IPv6静态路由

    前提条件

    在配置IPv6静态路由之前,需完成以下任务:

  • 配置接口的链路层协议参数,使接口的链路协议状态为Up

  • 进入系统视图。

    system-view

  • 配置IPv6静态路由。

    • 公网配置IPv6静态路由。
      ipv6 route-static dest-ipv6-address prefix-length interface-type interface-number [ nexthop-ipv6-address ] [ preference preference | tag tag ] * [ description text ]
      ipv6 route-static dest-ipv6-address prefix-length nexthop-ipv6-address [ preference preference | tag tag ] * [ description text ]
      ipv6 route-static dest-ipv6-address prefix-length vpn-instance vpn-instance-name [ preference preference | tag tag ] * [ description text ]
      ipv6 route-static dest-ipv6-address prefix-length vpn-instance vpn-instance-name nexthop-ipv6-address [ preference preference | tag tag ] * [ description text ]
    • VPN实例中配置IPv6静态路由。
      ipv6 route-static vpn-instance vpn-source-name dest-ipv6-address prefix-length { interface-name | interface-type interface-number } [ nexthop-ipv6-address ] [ preference preference | tag tag ] * [ description text ]
      ipv6 route-static vpn-instance vpn-source-name dest-ipv6-address prefix-length nexthop-ipv6-address [ public ] [ preference preference | tag tag ] * [ description text ]
      ipv6 route-static vpn-instance vpn-source-name dest-ipv6-address prefix-length { vpn-instance vpn-instance-name | public } [ preference preference | tag tag ] * [ description text ]
      ipv6 route-static vpn-instance vpn-source-name dest-ipv6-address prefix-length vpn-instance vpn-instance-name nexthop-ipv6-address [ preference preference | tag tag ] * [ description text ]
    • 操作步骤
    • 进入系统视图。

      system-view

    • 配置静态路由的缺省优先级。

      ipv6 route-static default-preference preference

      缺省情况下,IPv6静态路由的缺省优先级是60。

    • 背景信息

      缺省路由是一种特殊的路由。通常情况下,管理员可以通过手工方式配置静态的缺省路由。简单来说,缺省路由是在没有找到匹配的路由表入口项时才使用的路由。在路由表中,缺省路由的目的地址和子网掩码都全为0。

      如果报文的目的地址不能与路由表的任何入口项相匹配,则该报文将选取缺省路由。如果没有缺省路由且报文的目的地不在路由表中,则该报文将被丢弃,并向源端返回一个ICMP报文,报告该目的地址或网络不可达。

      在使用ipv6 route-static配置静态路由时,如果将目的地址与掩码配置为全零,则表示配置的是缺省路由,这样可以简化网络的配置。在图4-1,因为DeviceA发往3、4、5网络的报文下一跳都是DeviceB,因此可在DeviceA上配置一条缺省路由,代替配置通往3、4、5网络的3条静态路由。同理,DeviceC也只需要配置一条到DeviceB的缺省路由,代替配置通往1、2、3网络的3条静态路由。

      图4-1 静态路由组网图

  • 背景信息

    在创建相同目的地址的多条IPv6静态路由时,如果指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。在创建IPv6静态路由时,如果将目的地址与掩码配置为全零,则表示配置的是IPv6静态缺省路由。缺省情况下,没有创建IPv6静态缺省路由。

    用户手动配置前缀相同但优先级不同的两条静态路由,可以进行FRR。其中优先级高的为主路由,优先级低的为备份路由。当主路由发生链路故障时,流量快速切换到备份路由,从而减少丢包数量。图4-2所示,DeviceA到DeviceC两条优先级不同的静态路由成主备关系,主备路由同时下发转发表。主链路A正常的时候,流量优先走链路A,链路A出现故障,流量可以迅速切换到链路B。

    图4-2 IPv6静态路由FRR

  • 组网需求

    图4-3所示,在DeviceD上配置下一跳分别为DeviceA和DeviceB的两条IPv6静态路由,使链路B为链路A的备份。当链路A出现故障时,流量可以快速切换到链路B上。

    图4-3 配置IPv6静态路由FRR组网图

    本例中interface1,interface2,interface3分别代表10GE0/0/1,10GE0/0/2,10GE0/0/3。

  • 配置注意事项

    在配置过程中,需注意以下事项:

  • 使能IPv6静态路由FRR时,到达同一目的地址至少有两条IPv6静态路由存在。

  • 配置思路

    采用如下的思路配置公网IPv6静态路由FRR:

  • 在DeviceD上配置下一跳分别为DeviceA和DeviceB的两条IPv6静态路由。

  • 在DeviceD上为链路A配置较低的Preference值,使系统优选链路A。

  • 在DeviceD上使能IPv6静态路由FRR功能。

  • 配置各路由设备接口IPv6地址。

    # 配置DeviceD。

    <HUAWEI> system-view
    [HUAWEI] sysname DeviceD
    [DeviceD] interface 10ge 0/0/1
    [DeviceD-10GE0/0/1] undo portswitch
    [DeviceD-10GE0/0/1] ipv6 enable
    [DeviceD-10GE0/0/1] ipv6 address 2001:db8:2::1 64
    [DeviceD-10GE0/0/1] quit
    [DeviceD] interface 10ge 0/0/2
    [DeviceD-10GE0/0/2] undo portswitch
    [DeviceD-10GE0/0/2] ipv6 enable
    [DeviceD-10GE0/0/2] ipv6 address 2001:db8:1::1 64
    [DeviceD-10GE0/0/2] quit
    [DeviceD] interface 10ge 0/0/3
    [DeviceD-10GE0/0/3] undo portswitch
    [DeviceD-10GE0/0/3] ipv6 enable
    [DeviceD-10GE0/0/3] ipv6 address 2001:db8:5::1 64
    [DeviceD-10GE0/0/3] quit

    Device A,DeviceB和DeviceC的配置过程与DeviceD类似,在此不再赘述,具体请参考配置

  • 配置IPv6静态路由

    # 在DeviceA上配置IPv6静态路由。

    [DeviceA] ipv6 route-static 2001:db8:5:: 64 10ge 0/0/1 2001:db8:1::1
    [DeviceA] ipv6 route-static 2001:db8:6:: 64 10ge 0/0/2 2001:db8:3::2

    # 在DeviceB上配置IPv6静态路由。

    [DeviceB] ipv6 route-static 2001:db8:5:: 64 10ge 0/0/1 2001:db8:2::1
    [DeviceB] ipv6 route-static 2001:db8:6:: 64 10ge 0/0/2 2001:db8:4::2

    # 在DeviceC上配置IPv6静态路由。

    [DeviceC] ipv6 route-static 2001:db8:5:: 64 10ge 0/0/1 2001:db8:3::1
    [DeviceC] ipv6 route-static 2001:db8:5:: 64 10ge 0/0/2 2001:db8:4::1
    [DeviceC] ipv6 route-static 2001:db8:1:: 64 10ge 0/0/1 2001:db8:3::1
    [DeviceC] ipv6 route-static 2001:db8:2:: 64 10ge 0/0/2 2001:db8:4::1

    # 在DeviceD上配置IPv6静态路由。

    [DeviceD] ipv6 route-static 2001:db8:6:: 64 10ge 0/0/2 2001:db8:1::2
    [DeviceD] ipv6 route-static 2001:db8:6:: 64 10ge 0/0/1 2001:db8:2::2
    [DeviceD] ipv6 route-static 2001:db8:3:: 64 10ge 0/0/2 2001:db8:1::2
    [DeviceD] ipv6 route-static 2001:db8:4:: 64 10ge 0/0/1 2001:db8:2::2

    # 在DeviceD上查看IP路由表,两条IPv6静态路由形成负载分担。

    [DeviceD] display ipv6 routing-table
    Routing Table : _public_
             Destinations : 13        Routes : 13
    
    Destination  : ::1                                     PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : InLoopBack0                             Flags        : D
    
    Destination  : ::FFFF:127.0.0.0                        PrefixLength : 104
    NextHop      : ::FFFF:127.0.0.1                        Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : InLoopBack0                             Flags        : D
    
    Destination  : ::FFFF:127.0.0.1                        PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : InLoopBack0                             Flags        : D
    
    Destination  : 2001:db8:1::                            PrefixLength : 64
    NextHop      : 2001:db8:1::1                           Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/2                               Flags        : D
    
    Destination  : 2001:db8:1::1                           PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/2                               Flags        : D
    
    Destination  : 2001:DB8:2::                            PrefixLength : 64
    NextHop      : 2001:DB8:2::1                           Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/1                               Flags        : D
    
    Destination  : 2001:DB8:2::1                           PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/1                               Flags        : D
    
    Destination  : 2001:DB8:3::                            PrefixLength : 64
    NextHop      : 2001:DB8:1::2                           Preference   : 60
    Cost         : 0                                       Protocol     : Static
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/2                               Flags        : D
    
    Destination  : 2001:DB8:4::                            PrefixLength : 64
    NextHop      : 2001:DB8:2::2                           Preference   : 60
    Cost         : 0                                       Protocol     : Static
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/1                               Flags        : D
    
    Destination  : 2001:db8:5::                            PrefixLength : 64
    NextHop      : 2001:db8:5::1                           Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/3                               Flags        : D
    
    Destination  : 2001:db8:5::1                           PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/3                               Flags        : D
    
    Destination  : 2001:db8:6::                     PrefixLength : 64
    NextHop      : 2001:db8:2::2                    Preference   : 60 
    Cost         : 0                                Protocol     : Static 
    RelayNextHop : ::                               TunnelID     : 0x0 
    Interface    : 10GE0/0/1                        Flags        : D
    
    Destination  : 2001:db8:6::                     PrefixLength : 64
    NextHop      : 2001:db8:1::2                    Preference   : 60 
    Cost         : 0                                Protocol     : Static 
    RelayNextHop : ::                               TunnelID     : 0x0 
    Interface    : 10GE0/0/2                        Flags        : D
    
    Destination  : FE80::                                  PrefixLength : 10
    NextHop      : ::                                      Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : NULL0                                   Flags        : D   
  • 修改IPv6静态路由的优先级

    # 在DeviceD上修改IPv6静态路由的优先级。

    [DeviceD] ipv6 route-static 2001:db8:6:: 64 10ge 0/0/2 2001:db8:1::2 preference 40

    # 在DeviceD上查看路由表,可以看到IPv6静态路由的优先级被修改。

    [DeviceD] display ipv6 routing-table
    Routing Table : _public_
             Destinations : 13        Routes : 13
    
    Destination  : ::1                                     PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : InLoopBack0                             Flags        : D
    
    Destination  : ::FFFF:127.0.0.0                        PrefixLength : 104
    NextHop      : ::FFFF:127.0.0.1                        Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : InLoopBack0                             Flags        : D
    
    Destination  : ::FFFF:127.0.0.1                        PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : InLoopBack0                             Flags        : D
    
    Destination  : 2001:db8:1::                            PrefixLength : 64
    NextHop      : 2001:db8:1::1                           Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/2                               Flags        : D
    
    Destination  : 2001:db8:1::1                           PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/2                               Flags        : D
    
    Destination  : 2001:DB8:2::                            PrefixLength : 64
    NextHop      : 2001:DB8:2::1                           Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/1                               Flags        : D
    
    Destination  : 2001:DB8:2::1                           PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/1                               Flags        : D
    
    Destination  : 2001:DB8:3::                            PrefixLength : 64
    NextHop      : 2001:DB8:1::2                           Preference   : 60
    Cost         : 0                                       Protocol     : Static
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/2                               Flags        : D
    
    Destination  : 2001:DB8:4::                            PrefixLength : 64
    NextHop      : 2001:DB8:2::2                           Preference   : 60
    Cost         : 0                                       Protocol     : Static
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/1                               Flags        : D
    
    Destination  : 2001:db8:5::                            PrefixLength : 64
    NextHop      : 2001:db8:5::1                           Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/3                               Flags        : D
    
    Destination  : 2001:db8:5::1                           PrefixLength : 128
    NextHop      : ::1                                     Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/3                               Flags        : D
    
    Destination  : 2001:db8:6::                      PrefixLength : 64
    NextHop      : 2001:db8:1::2                     Preference   : 40 
    Cost         : 0                                 Protocol     : Static 
    RelayNextHop : ::                                TunnelID     : 0x0 
    Interface    : 10GE0/0/2                         Flags        : D
    
    Destination  : FE80::                                  PrefixLength : 10
    NextHop      : ::                                      Preference   : 0
    Cost         : 0                                       Protocol     : Direct
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : NULL0                                   Flags        : D
  • 使能IPv6静态路由FRR功能

    # 在DeviceD上使能静态路由FRR功能。

    [DeviceD] ipv6 route-static frr

    # 在DeviceD上查看备份出接口和备份下一跳信息。

    [DeviceD] display ipv6 routing-table 2001:db8:6:: verbose
    Routing Table : _public_
    Summary Count : 1
    
    Destination  : 2001:db8:6::                           PrefixLength : 64
    NextHop      : 2001:db8:1::2                       Preference   : 40
    Neighbour    : ::                                      ProcessID    : 0
    Label        : NULL                                    Protocol     : Static
    State        : Active Adv                              Cost         : 0
    Entry ID     : 0                                       EntryFlags   : 0x00000000
    Reference Cnt: 0                                       Tag          : 0
    Priority     : medium                                  Age          : 28sec
    IndirectID   : 0xFC000105
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/2                            Flags        : D
    BkNextHop    : 2001:db8:2::2                        BkInterface  : 10GE0/0/1
    BkLabel      : NULL                                    BkTunnelID   : 0x0
    BkPETunnelID : 0x0                                     BkIndirectID : 0xFC0001

  • 当链路A故障时,转发路径快速切换到链路B上。

    [DeviceD] interface 10ge 0/0/2
    [DeviceD-10GE0/0/2] shutdown
    [DeviceD-10GE0/0/2] quit

  • DeviceD

    #
    sysname DeviceD
    #
    interface 10GE0/0/1
     ipv6 enable
     ipv6 address 2001:db8:2::1/64
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:db8:1::1/64
    #
    interface 10GE0/0/3
     ipv6 enable
     ipv6 address 2001:db8:5::1/64
    #
    ipv6 route-static frr
    ipv6 route-static 2001:db8:6:: 64 10GE0/0/2 2001:db8:1::2 preference 40 track bfd-session aa
    ipv6 route-static 2001:db8:6:: 64 10GE0/0/1 2001:db8:2::2
    ipv6 route-static 2001:db8:3:: 64 10GE0/0/2 2001:db8:1::2
    ipv6 route-static 2001:db8:4:: 64 10GE0/0/1 2001:db8:2::2
    #
    return
  • DeviceA

    #
    sysname DeviceA
    #
    interface 10GE0/0/1
     ipv6 enable
     ipv6 address 2001:db8:1::2/64
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:db8:3::1/64
    #
    ipv6 route-static 2001:db8:5:: 64 10GE0/0/1 2001:db8:1::1
    ipv6 route-static 2001:db8:6:: 64 10GE0/0/2 2001:db8:3::2
    #
    return
  • DeviceB

    #
    sysname DeviceB
    #
    interface 10GE0/0/1
     ipv6 enable
     ipv6 address 2001:db8:2::2/64
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:db8:4::1/64
    #
    ipv6 route-static 2001:db8:5:: 64 10GE0/0/1 2001:db8:2::1
    ipv6 route-static 2001:db8:6:: 64 10GE0/0/2 2001:db8:4::2
    #
    return
  • DeviceC

    #
    sysname DeviceC
    #
    interface 10GE0/0/1
     ipv6 enable
     ipv6 address 2001:db8:3::2/64
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:db8:4::2/64
    #
    interface 10GE0/0/3
     ipv6 enable
     ipv6 address 2001:db8:6::1/64
    #
    ipv6 route-static 2001:db8:5:: 64 10GE0/0/1 2001:db8:3::1
    ipv6 route-static 2001:db8:5:: 64 10GE0/0/2 2001:db8:4::1
    ipv6 route-static 2001:db8:1:: 64 10GE0/0/1 2001:db8:3::1
    ipv6 route-static 2001:db8:2:: 64 10GE0/0/2 2001:db8:4::1
    #
    return
  • 检查配置结果

    # 在DeviceD上,查看到达2001:db8:6::/64的路由信息。

    [DeviceD] display ipv6 routing-table 2001:db8:6:: verbose
    Routing Table : _public_
    Summary Count : 1
    
    Destination  : 2001:db8:6::                            PrefixLength : 64
    NextHop    : 2001:db8:2::2                          Preference   : 60
    Neighbour    : ::                                      ProcessID    : 0
    Label        : NULL                                    Protocol     : Static
    State        : Active Adv                              Cost         : 0
    Entry ID     : 0                                       EntryFlags   : 0x00000000
    Reference Cnt: 0                                       Tag          : 0
    Priority     : medium                                  Age          : 43sec
    IndirectID   : 0xFC000106
    RelayNextHop : ::                                      TunnelID     : 0x0
    Interface    : 10GE0/0/1                    Flags        : D

    可以看到2001:db8:6::/64的下一跳更新为2001:db8:2::2。

    配置脚本

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_43751619/article/details/125284091

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值