前言
之前也有过关于OSPF路由协议的博客,但都不是很满意,不是很完整。现在也是听老师讲解完OSPF路由协议,感触良多,所以这里重新整理一遍。这次应该是会满意的
一些相关概念
链路状态
链路指路由器上的一个接口,链路状态用来描述路由器接口及其与邻居路由器的关系等信息,这些信息包括接口的互联网协议IP地址和子网掩码、网络类型及链路的开销等。而所有的链路状态信息则构成了LSDB
区域
以接口为单位划分区域,同一个区域内的路由器具有相同的LSDB
AS
采用同一种路由协议交换路由信息的路由器及其网络构成的系统
链路状态公告LSA
用来描述路由器和链路的状态,OSPF协议中对于链路状态信息的描述都是通过LSA发布出去。AS内每台运行OSPF协议的路由器,根据路由器的类型不同,会产生一种或多种LSA,路由器本身产生和收到的LSA的集合就形成了LSDB
SPF算法
OSPF协议的基础,SPF算法将每一台路由器作为根,独立地计算其到每一个目的网络地最佳路径
路由器ID
运行OSPF的路由器的唯一标识,长度为32bit,格式和IP地址相同。路由器ID也可以手动设置,也可以自动生成。其中,手动配置的路由器ID优先级最高。没有手动配置路由器ID,路由器会从当前接口的IP地址中自动选择一个作为路由器ID,选择顺序是优先从LoopBack接口-->接口最大的IP地址。注意路由器ID一旦确定,为了维持LSDB的稳定,除非清除OSPF协议和重新启动路由器,否则路由器ID不会改变
泛洪
运行OSPF协议的路由器会把自己产生或者收到的LSA向其它所有邻居或路由器通告,这个过程就是泛洪
OSPF路由协议的特点
(1)收敛速度快,适用于规模较大的网络,尤其是企业网络
(2)具有五类别特征,支持不连续子网、可变长子网掩码VLSM、无类别域间路由CIDR选择及手动路由聚合
(3)采用组播形式(224.0.0.5或224.0.0.6)或单播形式发送报文,支持等价负载均衡
(4)支持区域划分、构成结构化网络提供路由分级化管理
(5)支持接口验证方式和区域验证方式
(6)采用触发更新,可以使用路由标记(Tag)对外部路由进行跟踪
(7)默认情况下,OSPF的路由优先级为10,OSPF AS外部区域的路由优先级为150
(8)为了维持邻居表和LSDB表,会每隔30min进行一次链路状态更新
OSPF协议的报文类型
OSPF是IP报文直接封装协议报文,协议号为89。如果OSPF协议组播地址被封装到以太网帧内,则以太网的MAC地址(01-00-5E-00-00-05或01-00-5E-00-00-06)也是组播地址。
通用头部字段(OSPF Packet Headers)
- Version:描述OSPF协议版本,通常被设置为2(支持IPv4)或3(支持IPv6)。
- Type:描述OSPF报文类型,值1:Hello、值2:DBD、值3:LSR、值4:LSU、值5:LSAck。
- Packet Length:OSPF报文总长度,包括报文头部,单位是字节。
- Router ID:生成此报文的路由器的唯一标识符。
- Area ID:此报文需要被通告到的OSPF区域的标识符。
- Checksum:对整个数据包(包括包头)的标准IP校验和。
- Auth Type/Authentication Type:验证此报文所应当使用的验证方法,如空(0)、明文(1)或MD5(2)等。
- Authentication Data:验证此报文时所需要的密码等信息。
OSPF分为5种报文 :Hello报文 、DBD报文 、LSR报文 、LSU报文 和LSAck报文。
Hello报文:
主要用于发现和维持OSPF邻居关系。周期性以组播 的形式发送Hello报文,以维护OSPF的邻居关系。使用的组播地址为224.0.0.5(所有OSPF路由器) 或224.0.0.6(所有OSPF DR路由器)。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居信息。
Hello报文特有字段
- Network Mask:发送Hello报文的接口的网络掩码
- Hello Interval:发送Hello报文的时间间隔,单位为秒。默认情况下,对于广播和组播类型接口,该值为10秒;对于非广播、多点接入和点对点类型接口,该值为30秒
- Options:标识发送此报文的OSPF路由器所支持的可选功能。E:是否支持外部路由;MC:是否支持转发组播数据包;N/P:是否为NSSA区域
- Router Priority:DR的优先级,默认值为1,取值范围为0-255。若为0.则路由器不能参与DR或BDR的选举
- Designated Router (DR):DR的IP地址。如果未选举DR,则该字段为0.0.0.0
- Backup Designated Router (BDR):BDR的IP地址。如果未选举BDR,则该字段为0.0.0.0
DD报文:
描述本地LSDB摘要信息 ,用于两台设备进行数据库同步 。在邻接关系初始化 时,路由器会发送DD报文来告知对方自己的LSDB摘要信息。报文内容包括LSDB中每一条LSA(链路状态通告)的头部信息,以便对方判断哪些LSA是本地所缺少的或已经失效的。
**接口MTU:**在报文不分段的情况下,路由器接口能发送的最大IP报文的大小
**I:**初始位,发送的第一一个 DD包的1位置1,后续DD包的1位置0
**M:**后继位,最后一个DD包的M位置0;其他DD包的M位置1,表示后面还有其他DD报文
**M/S:**主从位,用于协商主/从路由器,置1表示Master,置0表示Slave,路由器ID大的一方会成为Master
**DD序列号:**在数据库同步过程中,用来确保路由器收到完整的DD报文。由Master规定起始序列号,每发送一个 DD报文,序列号就加1, Slave使用Master的序列号进行确认。因此,主从路由器利用序列号来保证DD报文传输的可靠性和完整性**LSA头部:**LSA头部包含的信息可以唯一地标识一条LSA,内容包括以下几点
- (1)链路状态老化时间:LSA产生后所经过的时间,单位为S。LSA在本路由器的LSDB中会随时间老化(每秒加1)。LSA的最大老化时间为3600s。如果某个LsA的老化时间超过了3600,则该LSA会从LSDB中被删除。另外,如果LSA始发路由器产生MaxAge的LSA,并向区域中泛洪,那么收到该LSA的路由器会用该LSA来更新自己的LSDB中相应的LSA
- (2)链路状态类型: LSA的类型,如该字段值为1表示路由器LSA,该字段值为2表示网络LSA
- (3)链路状态ID:标识LSA,LSA的类型不同,该字段的含义也不同
- (4)通告路由器:始发LSA的路由器ID
- (5)序列号:有符号的32bit整数,可以帮助识别最新的LSA。采用线性递增的序列号,序列号范围为0x80000001~ -0x7FFFFFF,OSPF每隔30min会更新一次LSDB。每当LSA被更新或者LSDB被更新,序列号都加1。那么OSPF如何判断LSA的新旧呢?首先,比较序列号,序列号越大表示LSA越新。其次,如果序列号相同,则校验和的值越大表示LSA越新。最后,如果序列号和校验和都相同,则比较老化时间,如果老化时间为MaxAge(3600s),则该LSA被认为是最新的;若老化时间差大于15min,则老化时间小的LSA被认为是最新的;若老化时间差小于15min,则认为这些LSA一样新,此时只保留先收到的LSA
- (6)校验和:除了老化时间之外的LSA全部信息的校验和
- (7)长度:LSA头部和LSA数据的总长度,单位为字节
LSR报文:
LSR报文用于向对方请求 所需要的LSA完整拷贝。当路由器发现本地LSDB中缺少某些LSA时,会发送LSR报文来请求这些LSA。LSR报文中包含所需LSA的摘要信息,以便对方能够识别并返回相应的LSA。
LSU报文:
LSU报文用于向对方发送其所需要的LSA 或者泛洪自己更新的LSA。当路由器收到LSR报文或自己的LSDB发生更新时,会发送LSU报文来通知邻居路由器。LSU报文中包含多条LSA的完整内容,以便邻居路由器能够更新自己的LSDB。
LSack报文:
LSAck报文用于对收到的LSA进行确认。当邻居路由器收到LSU报文后,会发送LSAck报文作为确认。这样,源路由器可以确认链路状态已被通知到邻居,从而实现Flooding的可靠性传输。
OSPF协议的网络类型
为了能够适应二层网络环境,根据路由器所连接物理网络的不同,OSPF协议通常将网络划分
为4种类型:广播多路访问(BMA)、非广播多路访问(NBMA)、点到点(P2P )、点到多点(P2MP)。在每种网络类型中,OSPF协议的运行方式都不同,包括是否需要选举DR和Hello报文的发送周期为多少等
- BMA:当二层链路是以太网时,默认情况下,OSPF协议认为网络类型是BMA。在该类型的网中,通常以单播形式发送DD报文和LSR 报文,以组播形式发送Hello、LSU和LSAck报文
- NBMA:当二层链路网络是帧中继网络时,默认情况下,OSPF协议认为网络类型是NBMA。在该类型的网络中,以单播形式发送OSPF协议的所有报文
- P2P:当二层链路协议是点到点协议( Point- to-Point Protocol, PPP )和高级数据链路控制(HDLC)协议时,默认情况下,OSPF协议认为网络类型是P2P。在该类型的网络中,以组播形式(组播地址为224.0.0.5 )发送OSPF协议的所有报文
- P2MP:P2MP必须由其他的网络类型强制更改得到 。在该类型的网络中,以组播形式(组播地址 为224.0.0.5 )发送Hello报文,以单播形式发送OSPF协议的DD报文、LSR报文、LSU报文和LSAck报文
|------|------|---------------|--------|-------|
| 网络类型 | 选举DR | Hello报文发送周期/s | 失效时间/s | 邻居 |
| BMA | 是 | 10 | 40 | 自动发现 |
| NBMA | 是 | 30 | 120 | 管理员配置 |
| P2P | 否 | 10 | 40 | 自动发现 |
| P2MP | 否 | 30 | 120 | 自动发现 |
[OSPF协议的网络类型]
OSPF的3个步骤,生成3个表
步骤一、发现并建立邻居关系
路由器要先发现邻接的路由器,才能建立邻居关系。通过周期性发送Hello包并接收来自其他路由器的Hello包,进行建立并维护邻居关系。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居信息。
查看邻居表信息
[huawei]display ospf peer
步骤二、描述本地LSDB信息,并形成邻接关系
一旦建立了邻居关系,路由器会开始交换链路状态信息(LSI),将自己所知道的网络拓扑信息(如连接的网络、链路的状态、链路的成本等)发送给邻居。这个过程通过发送DBD报文、LSR报文和LSU报文来实现,最终所有路由器都会拥有一个同步的链路状态数据库LSDB
请求缺少的LSDB信息
查看链路状态数据库LSDB
[huawei]display opsf lsdb
步骤三、计算路由,并形成OSPF路由表
每个路由器都会根据LSDB中的信息,使用Dijkstra算法计算最短路径树(SPT),以找到到达网络中每个目的地的最短路径。计算出的最短路径信息会保留到OPSF路由表上。
[huawei]display ospf routing
OSPF DR和BDR
DR
DR是在OSPF网络中被选举出来的一个路由器,它负责收集和维护本地区域内的链路状态信息,并将这些信息传播给其他路由器。
DR充当了整个多点链路网络中的"代表" ,负责收集来自其他路由器的链路状态更新(LSU)消息,并将其汇总为一条链路状态数据库(Link State Database)。然后,DR将这个数据库发送给其他路由器,以减少链路状态更新的频率。
选举过程
在选举过程中,每个路由器都会发送Hello消息,其中包含自己的优先级值。优先级越高 ,被选举为DR的可能性就越大。
如果没有路由器明确声明其优先级,则路由器会基于其Router ID(通常是一个IP地址)来选择DR,Router ID最小的路由器将成为DR。
主要作用减少链路状态更新的频率,帮助优化网络性能。
维护链路状态数据库并将其分发给其他路由器,确保所有路由器都拥有最新的网络拓扑信息。
根据链路状态数据库及时更新路由表,确保数据正确地转发到目标地址。
BDR
BDR是DR的备份,当DR发生故障或失效时,BDR会立即接替DR的角色,并继续执行相同的任务,确保在DR失效时能够无缝接替其工作
不同网络类型中DR和BDR的选举操作
选DR是需要时间的,大概是40秒延迟
还有一个要注意的就是(现实也会经常遇到):在以太网中有两台设备进行连接,他们会选举出DR和BDR,但是只有两台设备就跟PPP点对点一样,这时候我们就不需要选举出DR和BDR了(不浪费那40秒的延迟)
[Huawei-GigabitEthernet0/0/1]ospf network-type p2p
在接口上增加上面的那条命令之后,就不会选取DR和BDR了(注意:两边设备都需要配置这条命令)
OSPF区域及路由器
区域
一个区域所设置的特性控制着其所能接收到的链路状态信息的类型。区分不同的OSPF区域类型的关键就是它们对区域外部路由的处理方式。OSPF区域包括标准区域和骨干区域
- 标准区域:最通用的区域,传输区域内路由、区域间路由和外部路由。通常与骨干区域连接
- 骨干区域:连接所有其它OSPF区域的中央区域,通常用Area 0表示。骨干区域负责区域之间的路由传递,非骨干区域之间的路由信息必须通过骨干区域来转发。骨干区域自身必须保持连通,所有非骨干区域必须与骨干区域保持联系
在OSPF协议中,路由器根据其功能和在网络中的位置被划分为多种类型,如:IR、BR、ABR、ASBR。
内部路由器(Internal Router, IR)
定义:IR是仅连接到单个OSPF区域(Area)的路由器
功能:IR主要负责在同一区域内转发数据包,并通过链路状态通告(LSA)与其他内部路由器交换拓扑信息,以构建和维护整个区域的拓扑数据库。它们只处理来自本区域内的路由信息,不与其他区域的路由器直接通信
区域边界路由器(Area Border Router, ABR)
定义:ABR是连接两个或多个不同OSPF区域的路由器
功能:ABR在OSPF网络中扮演着桥梁的角色,负责将数据包从一个区域传输到另一个区域,并在区域之间传播路由信息。它们通过LSA将来自一个区域的路由信息汇总后,再传递给其他区域,确保不同区域之间的路由可达性
自治系统边界路由器(Autonomous System Boundary Router, ASBR)
定义:ASBR是连接OSPF域与其他自治系统(AS)的路由器
功能:ASBR负责将来自其他路由协议(如BGP)的路由信息导入OSPF域中,同时也将OSPF域内的路由信息导出到其他路由协议中。它在不同自治系统之间传递路由信息,实现跨自治系统的路由通信
虚拟链路路由器(Virtual Link Router):
定义:虚拟链路路由器是一种特殊的路由器类型,用于在特定情况下连接分布在不同OSPF区域中的两个OSPF区域
功能:虚拟链路路由器允许在OSPF区域之间建立逻辑连接,绕过非OSPF区域的物理连接限制,从而确保数据包能够正确路由到目的地。这在复杂的网络拓扑结构中尤为重要,特别是在物理连接不可行或成本过高时
OSPF协议的LSA类型
LSA概述
- LSA是OSPF进行路由计算的关键依据
- OSPF的LSU报文可以携带多种不同类型的LSA
- 各种类型的LSA拥有相同的报文头部
重要字段解析
- LS Age(链路状态老化时间):表示LSA已经生存的时间,单位为秒。LSA被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,当到达MaxAge (缺省值为3600s)时,LSA不再用于路由计算
- Options(可选项):每一个bit都对应了OSPF所支持的某种特性
- LS Type(链路状态类型):指示本LSA的类型
- Link Start ID(链路状态ID):不同的LSA,该字段定义不同
- Advertising Router(通告路由器):产生该LSA的路由器的Router ID
- LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加
- LS Checksum(校验和):用于保证数据的完整性和准确性
- Length:是一个包含LSA头部在内的LSA的总长度值
注:链路状态类型、链路状态ID、通告路由器三元组唯一标识一个LSA。老化时间、序列号、校验和用于判断LSA的新旧
链路状态类型
其中类型2、网络LSA是由DR生成,描述网络上所有路由器的连接状态
一台路由器中所有的LSA都被存放在其LSDB中,正确的LSA可以描述一个OSPF区域的网络拓扑结构。OSPF中常见的LSA有6种
Router LSA(类型1)
所有OSPF路由器都会产生这种LSA,用于描述路由器上连接到某一个区域的链路或某一接口的状态信息。该LSA只会在区域内扩散,不会扩散至其他区域。链路ID为此路由器ID
- V(Virtual Link,虚链路):如果产生此LSA的路由器是虚连接的端点,则置为1
- E(External,外部):如果产生此LSA的路由器是ASBR,则置为1
- B(Border,边界):如果产生此LSA的路由器是ABR,则置为1
- 链路数量(Number of Links):LSA 中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口
- 链路ID(Link ID):链路标识,具体的数值根据链路类型而定
- 链路数据(Link Data):具体的数值根据链路类型而定
- 链路类型(Link Type):值为1表示通过P2P链路与另一台路由器相连;值为2表示连接到传送网络,如BMA或NBMA网络;值为3表示连接到Stub网络,如Loopback接口;值为4表示虚链路
- 度量(Metric):链路的开销
- ToS(Type of Service):服务类型
- ToS度量(ToS Metric):服务类型的链路的开销
网络LSA(类型2)
由DR产生,用来描述一个多路访问网络和与之相连的所有路由器,只会在包含DR所属的多路访问 网络的区域中扩散,并不会扩散至其他的OSPF区域中。链路状态ID为DR接口的IP地址
- 网络掩码:BMA或NBMA网络的网络掩码
- 连接路由器:连接在同一网段上所有与DR形成完全邻接关系的路由器的ID,包括DR自身的ID
网络汇总LSA(类型3)
由ABR产生,他将一个区域内的网络通告给OSPF AS中的其他区域【除完全末节区域】。这些条目通过骨干区域被扩散到其它的ABR中。在区域间传递路由信息时遵循水平分割原则,即从一个区域发出的类型3 LSA不会传回到本区域。链路状态ID为目的网络的地址。
ASBR汇总LSA(类型4)
由ABR产生,描述ASBR的路由,通告给除ASBR所在区域的其他相关区域。链路状态ID为ASBR的ID
AS外部LSA(类型5)
由ASBR产生,含有关于AS外的路由信息,通告给所有的区域【除末节区域和次末节区域】。链路状态ID为外部网络的地址
- E:外部度量值的类型。第一类外部路由设置为0,第二类外部路由设置为1。第一类外部路由的开销等于本设备到相应的ASBR的开销加上ASBR到该路由目的地址的开销。第二类外部路由的开销等于ASBR到该路由目的地址的开销。第一类外部路由的可信度高于第二类外部路由的可信度
- 转发地址(Forwarding Address,FA):到所通告的目的地址的报文将被转发到的地址,仅出现在类型5 LSA或类型7 LSA中。类型5 LSA的外部路由能否进入路由表,取决于类型5 LSA FA地址的可达性,如果FA地址不可达,则类型5 LSA 的外部路由不能进入路由表。FA地址可以是全0,也可以是非0。如果FA地址是全0,则数据包要经过ASBR访问外部网络;如果FA地址是非0,则数据包要转发到该FA地址的网络设备,再由该网络设备转发到外部网络
- 外部路由标记(External Route Tag):添加到外部路由上的标记。OSPF本身并不使用该字段,其可以用来对外部路由进行管理
次末节区域外部LSA(类型7)
由次末节区域内的ASBR产生,且只能在次末节区域内传播。ABR可以将类型7的LSA转换为类型5的LSA,当次末节区域内有多个ABR时,系统会根据规则自动选择一个ABR作为转换器。默认情况下,次末节区域选择路由器ID最大的设备作为转换器。链路状态ID为外部网络的地址,格式与类型5 LSA相同
OSPF的特殊区域
末节区域
末节区域的ABR不发布它们接受的AS外部路由,只发布区域内路由和区域间路由。为保证到AS外的路由可达,该区域的ABR将生成一条默认路由,以类型3 LSA发布给末节区域中的其他非ABR。
***注:***在OSPF视图下执行【stub】命令,就可以将当前区域配置为末节区域
配置末节区域注意的细节
- 骨干区域不能配置为末节区域
- 如果要将一个区域配置为末节区域,则该区域中所有的路由器都要配置末节区域属性
- 末节区域内不能存在ASBR,即AS外部路由不能在本区域内传播
- 虚连接不能穿过末节区域
完全末节区域
完全末节区域的ABR不允许发布AS外部路由和区域间路由,只发布区域内路由。同样的,该区域的ABR会生成一条默认路由,以类型3 LSA发布给末节区域中的其他非ABR
***注:***在OSPF区域视下,只需要在ABR上执行【stub no-summary】命令,就可以将当前区域配置成完全末节区域。在末节区域视图下执行【stub】命令,则可以将当前末节区域配置成完全末节区域。
次末节区域(NSSA)
次末节区域允许引入AS外部路由,由ASBR发布类型7 LSA给本区域,这些类型7 LSA在ABR上转换成类型5 LSA,并且泛洪到整个OSPF区域中,NSSA保留了保留了AS内的未节区域的特征。NSSA的ABR发布类型7默认路由传播到区域内,所有区域间路由都必须通过ABR才能发布
注: 在OSPF区域视图下执行【nssa】命令,可将当前区域配置为NSSA
OSPF路由计算、路由类型、路由聚合
OSPF协议采用SPF算法,计算过程如下
- 每台OSPF路由器根据自己周围的网络拓扑结构生成LSA,并通过更新报文将LSA发送给网络中的其它OSPF路由器
- 每台OSPF路由器都会收集其他路由器通告的LSA,所有的LSA房子啊一起便组成了LSDB
- OSPF路由器将LSDB转换成一张带权的有向图,这张图就是整个网络拓扑结构。这时候所有路由器得到的有向图都是一样的
- 根据有向图,每台路由器使用SPF算法计算出一颗以自己为根的最短路径树
OSPF路由计算具体方法
- **计算区域内路由:**类型1 LSA和类型2 LSA可以精确地描述整个区域内部地网络拓扑,根据SPF算法,可以计算出每台路由器的最短路径根据类型1 LSA描述地路由器地网段情况,得到各个网段地具体路径
- **计算区域外路由:**对于一个区域的内部来说,相邻区域的路由对应的网段看起来是直接连接在ABR上的,而到ABR的最短路径已经在计算区域内路由中计算完毕,所以直接检查类型3 LSA,就可以很容易地得到这些网段的最短路径。另外,ASBR也可以看作连接在ABR上,所以ASBR的最短路径也可以在该阶段计算出来
- **计算AS外路由:**由于AS外部的路由可以看作直接连接在ASBR上,而到ASBR的最短路径在计算区域外路由中已经计算完毕,因此逐条检查类型5 LSA就可以得到到达各个外部网络的最短径
OSPF协议将路由分为4类,按照优先级从高到低的顺序为区域内路由 、区域间路由 、第一类外部路由 和第二类外部路由。其中,AS区域内路由和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由;第一类外部路由的可信度较高,并且和OSPF自身路由的开销具有可比性,所以到第一类外部路由的开销等于本路由器到相应的ASBR的开销与ASBR到该路由目的地址的开销之和;第二类外部路由的可信度比较低,所以OSPF协议认为从ASBR到AS之外的开销远远大于从AS之内到达ASBR的开销。
路由聚合是指ABR或ASBR将具有相同前缀的路由信息聚合起来,只发布一条路由到其他区域。AS被划分成不同的区域后,可以通过路由聚合来减少路由信息的通告,减小路由表的规模,提高路由器的运算速度,降低系统的消耗。需要注意的是,至少存在一条明细路由,路由器才会通告聚合路由,而且聚合路由范围内的明细路由发生变化,不影响通告的聚合路由。路由聚合只能在ABR和ASBR上配置,因此OSPF路由聚合包括ABR路由聚合和ASBR路由聚合两类
- ABR路由聚合:ABR向其他区域发送路由信息时,以网段为单位生成类型3 LSA。如果该区域中存在一些连续的网段,则可以将这些连续的网段聚合成一个网段。 这样ABR只发送一条聚合后的LSA,所有属于聚合网段范围的LSA将不再被单独发送出去,可减小其他区域中LSDB的规模。执行【abr- summary】命令即可配置ABR路由聚合,可以通过配置参数【generate-null0-route】生成黑洞路由,以防止路由环路。
- ASBR路由聚合:配置引入路由后,如果本地路由器是ASBR,则将对引入的地址范围内的类型5 LSA进行聚合。执行【asbr- summary】命令即可配置ASBR路由聚合,可以通过配置参数【generate-null0-route】生成黑洞路由,以防止路由环路。
OSPFv2和OSPFv3的区别
|-------------|------------------------------------------|--------------------------------------|
| 比较 | OSPFv2 | OSPFv3 |
| 网络 | IPv4网络 | IPv6网络 |
| 运行 | 基于网络 | 基于链路 |
| 源地址 | 接口IPv4地址 | 接口IPv6链路本地地址 |
| 目的地址 | 1、邻居接口单播IPv4地址 2、组播地址224.0.0.5或224.0.0.6 | 1、邻居IPv6链路本地地址 2、组播地址FF02::5或FF02::6 |
| IP单播路由 | IPv4单播路由,路由器默认启动 | IPv6单播路由,执行【ipv6】命令启用 |
| 同一链路上运行多个实例 | 不支持 | 支持 |
| 验证 | 简单口令或MD5 | IPv6提供安全机制 |
| LSA | 有选项字段 | 无选项字段,增加LSA(类型8)和区域内前缀LSA(类型9) |
OSPF的常用命令
配置OSPF的基本功能
# 启动OSPF进程,配置Router ID
[Huawei]ospf process-id router-id router-id
[Huawei]ospf 1 router-id 1.1.1.1 # 举例
# 设置开销的带宽参考值
[Huawei-ospf-1]bandwidth-reference value # value=1--214783648
[Huawei-ospf-1]bandwidth-reference 1 # 举例
# 禁止接口收发OSPF报文
[Huawei-ospf-1]silent-interface all | interface-type interface-number
[Huawei-ospf-1]silent-interface GigabitEthernet 0/0/0 # 举例
# 创建并进入OSPF视图
[Huawei-ospf-1]area area-id # area-id=0 ~ 4294967295
[Huawei-ospf-1]area 1 # 举例
# 配置使能OSPF的接口范围
[Huawei-ospf-1-area-1.1.1.1]network ip-addreaa wildcard-mask
[Huawei-ospf-1-area-1.1.1.1]network 2.2.2.2 0.0.0.255 # 举例
# 在接口上使能OSPF
[Huawei-GigabitEthernet0/0/0]ospf enable [process-id] area area-id
[Huawei-GigabitEthernet0/0/0]ospf enable 1 area 1.1.1.1 # 举例
# 配置接口运行OSPF的开销
[Huawei-GigabitEthernet0/0/0]ospf cost cost # cost=1~65535
[Huawei-GigabitEthernet0/0/0]ospf cost 1 # 举例
# 设置OSPF接口的网络类型
[Huawei-GigabitEthernet0/0/0]ospf network-type {broadcast | noma | p2mp | p2p}
[Huawei-GigabitEthernet0/0/0]ospf network p2p # 举例
# 设置接口在选举DR时的优先级
[Huawei-GigabitEthernet0/0/0]ospf dr-priority proiority
[Huawei-GigabitEthernet0/0/0]ospf dr-priority 10 # 举例
# 设置接口发送Hello报文的时间间隔
[Huawei-GigabitEthernet0/0/0]ospf timer hello interval # 单位为秒
[Huawei-GigabitEthernet0/0/0]ospf timer hello 60 # 举例
# 设置OSPF的邻居失效时间
[Huawei-GigabitEthernet0/0/0]ospf timer dead interval # 单位为秒
[Huawei-GigabitEthernet0/0/0]ospf timer dead 10000 # 举例
配置OSPF的安全性
# OSPF的接口验证
# 简单验证方式
[Huawei-GigabitEthernet0/0/0]ospf authentication-mode simple plain
# MD5、HMAC-MD5或HMAC-SHA256验证方式
[Huawei-GigabitEthernet0/0/0]ospf authentication-mode {md5 | hmac-md5 | hmac-sha256} [key-id [cipher] cipher-text]
[Huawei-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456 # 举例
# 配置OSPF区域验证
# 与接口验证命令大致相同,一个是在接口上配置,一个是在OSPF区域视图下配置
# 所以这个就不用加上前面[ospf],其它一样的命令
配置OSPF默认路由注入
[Huawei-ospf-1-area-0.0.0.1]default-route-advertise
配置OSPF的路由聚合
# 配置ABR的路由聚合
[Huawei-ospf-1-area-0.0.0.1]abr-summary ip-address mask # 还有一些参数啥的就懒得写详细了
[Huawei-ospf-1-area-0.0.0.1]abr-summary 10.1.1.1 255.255.255.0 # 举例
# 配置ASBR的路由聚合
[Huawei-ospf-1]asbr-summary ip-address mask #同上,还有参数没写全
[Huawei-ospf-1]asbr-summary 10.1.1.1 255.255.255.0 # 举例
配置OSPF的特殊区域
# 配置末节区域
# 在ABR中配置命令
[Huawei-ospf-1-area-0.0.0.1]stub
# 配置完全末节区域
[Huawei-ospf-1-area-0.0.0.1]stub no-summary
# 配置NSSA区域
[Huawei-ospf-1-area-0.0.0.1]nssa [default-route-advertise | no-summary | no-import-route]