一、OSPF简介
开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol),采用DIjkstra算法,协议号是89。用于自治系统(AS)内部的路由决策。其核心特点包括快速收敛、无环路、支持分层网络设计以及VLSM(可变长子网掩码)。
目前针对IPv4协议使用的是OSPF V2版本;针对IPv6协议使用OSPF V3版本。
二、OSPF工作原理
1、邻接关系:路由器通过发送 Hello 报文来发现邻居,当双方的 Hello 报文中的一些参数(如区域 ID、认证方式等)匹配时,就可以建立邻居关系。
2、链路状态信息同步:邻邻居建立后,路由器会通过 LSA(链路状态通告)来交换链路状态信息。如 Router LSA(Type 1)描述路由器自身链路状态;Network LSA(Type 2)描述广播或 NBMA 网络情况。
3、路由计算:每台路由器根据收到的 LSA 构建链路状态数据库,然后使用 Dijkstra 算法计算出到达各个网络的最短路径,进而生成路由表。
三、OSPF报文类型
OSPF直接运行在IP协议之上,使用IP协议号89。
运行OPSF协议的路由器通过5种报文的交互从邻居状态达到邻接状态,完成LSA的泛洪,使网络的路由器LSDB达到一致,每个路由器按照自己LSDB根据SPF算法计算路径,生成最优路由加入路由表。
1、Hello报文
最常用的一种报文,用于发现、维护邻居关系。
在广播和NBMA(None-Broadcast Multi-Access)类型的网络中选举指定路由器DR(Designated Router)和备份指定路由器BDR(Backup Designated Router)。
2、DD报文
两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。
DD报文的内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。
3、LSR报文
两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地LSDB所缺少的,这时需要发送LSR报文向对方请求缺少的LSA,LSR只包含了所需要的LSA的摘要信息。
4、LSU报文
用来向对端路由器发送所需要的LSA。
5、LSACK报文
用来对接收到的LSU报文进行确认。
四、OSPF网络类型
OSPF协议支持四种网络类型,分别是点到点网络,广播型网络,NBMA网络和点到多点网络。
1、点到点网络是指只把两台路由器直接相连的网络。一个运行PPP的64K串行线路就是一个点到点网络的例子。
2、广播型网络是指支持两台以上路由器,并且具有广播能力的网络。一个含有三台路由器的以太网就是一个广播型网络的例子。
OSPF可以在不支持广播的多路访问网络上运行,此类网络包括在hub-spoke拓扑上运行的帧中继(FR)和异步传输模式(ATM)网络,这些网络的通信依赖于虚电路。
OSPF定义了两种支持多路访问的网络类型:非广播多路访问网络(NBMA)和点到多点网络(Point To Multi-Points)。
3、NBMA:在NBMA网络上,OSPF模拟在广播型网络上的操作,但是每个路由器的邻居需要手动配置。NBMA方式要求网络中的路由器组成全连接。
缺省情况下,OSPF认为帧中继、 ATM的网络类型是NBMA。
4、P2MP:将整个网络看成是一组点到点网络。对于不能组成全连接的网络应当使用点到多点方式。
注意:
现网中遇到的大部分属于点到点网络和广播型网络,因为帧中继、 ATM网络基本已经淘汰了。
网络类型 | Hello时间(s) | Dead时间(s) | 备注 |
P2P | 10 | 40 | PPP/HDLC |
Broadcast | 10 | 40 | 典型的是以太网 |
NBMA | 30 | 120 | 帧中继FR |
P2MP | 30 | 120 | 不支持组播,手动指定OSPF邻居 |
五、DR、BDR选举
为减小广播型网络和NBMA网络中OSPF流量,OSPF会选择一个指定路由器(DR)和一个备份指定路由器(BDR)。
DR(Designated Router):指定路由器
BDR(Backup Designated Router):备份指定路由器
DROther:DR和BDR之外的路由器
1.选举DR和BDR的原因:
1、DR和BDR可以减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,降低对路由器处理能力的压力。
2、一个既不是DR也不是BDR的路由器只与DR和BDR形成邻接关系并交换链路状态信息以及路由信息,这样就大大减少了大型广播型网络和NBMA网络中的邻接关系数量。
2.选举DR和BDR的条件
每一个含有至少两个路由器的广播型网络和NBMA网络都有一个DR和BDR。在点到点网络和P2MP不需要选举DR&BDR。
3.DR、BDR的工作原理
1、当指定了DR后,所有的路由器都与DR建立起邻接关系,DR成为该广播网络上的中心点;
2、BDR在DR发生故障时接管业务,一个广播网络上所有路由器都必须同BDR建立邻接关系。
4.DR/BDR选举规则:
DR优先级是0-255,默认优先级是1。
(1)先选择DR优先级最高的作为DR,次高的作为BDR。DR优先级为0的路由器只能成为DR Other;
(2)如果优先级相同,则优先选择Router ID较大的路由器成为DR,次大的成为BDR,其余路由器成为DR Other。
5.Route-ID选举规则:
(1)OSPF进程手工配置的router-id具有最高优先级。
(2)在全局模式下配置的公用router-id的优先级仅次于直接给OSPF进程手工配置router-id,即它具有第二优先级。
①在没有手工配置的前提下,优选loopback接口地址中最大的地址作为router-id。
②在没有配置loopback接口地址的前提下,优选普通接口的IP地址中选择最大的地址作为router-id (不考虑接口的Up/Down状态)。
eg:在没有DR的广播网络上,邻接关系的数量可以根据公式n(n-1)/2计算出,n代表参与OSPF的路由器接口的数量。
如图所示,所有路由器之间有6个邻接关系。本例中使用DR和BDR将邻接关系从6减少到了5,RTA和RTB都只需要同DR和BDR建立邻接关系,RTA和RTB之间建立的是邻居关系。
此例中,邻接关系数量的减少效果并不明显。但是,当网络上部署了大量路由器时,比如100台,那么情况就大不一样了。
六、OSPF区域
OSPF路由器类型:
OSPF路由器分为骨干路由器、内部路由器、边界路由器、自治系统边界路由器。
路由类型 | 含义 |
区域内路由器(Internal Router) | 该类路由器的所有接口都属于同一个OSPF区域。 |
区域边界路由器ABR(Area Border Router) | 该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。 ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。 |
骨干路由器(Backbone Router) | 该类路由器至少有一个接口属于骨干区域。 所有的ABR和位于骨干区域的内部路由器都是骨干路由器。 |
自治系统边界路由器ASBR(AS Boundary Router | 与其他AS交换路由信息的路由器称为ASBR。 ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。 |
在OSPF中,区域是指将网络中的路由器逻辑上划分为不同的部分,每个部分称为一个区域。区域通过区域号来标识,以便于路由器之间的区域边界划分和路由信息的交换。
OSPF区域分为普通区域、Stub区域、NSSA区域。
区域类型 | 作用 | 说明 |
普通区域 | 缺省情况下,OSPF区域被定义为普通区域。普通区域包括: 骨干区域:连接所有其他OSPF区域的中央区域,通常用Area0表示,骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。 | 骨干区域自身必须保持连通 所有非骨干区域必须与骨干区域保持连通。 |
Stub区域 | Stub区域是特定的区域,Stub区域不允许自治系统外部的路由在区域内传播,因此这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。一般情况下,Stub区域位于自治系统的边界,是只有一个ABR的非骨干区域,为保证到自治系统外的路由依旧可达,Stub区域的ABR将生成一条缺省路中,并发布给Stub区域中的其他非ABR路由器,Totally Stub区域允许ABR发布的Type3缺省路由,不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。 | 骨干区域不能配置成Stub区域. Stub区域内不能存在ASBR,因此自治系统外 部的路由不能在本区域内传播。 虚连接不能穿过Stub区域。 |
NSSA(Not-So-Stubby Area)区域 | NSSA是Stub区域的一个变形,它和Stub区域有许多相似的地方。NSSA区域允许引入少量通过本区域的ASBR到达的自治系统外部路由(缺省路由除外),但不允许其他区域的外部路由在区域内传播。 NSSA区域允许引入自治系统外部路由,携带这些外部路由信息的LSA由NSSA的ASBR产生,仅在本NSSA内传播。 To崧须成頑飘团忝灮措郓銖汁犎冂躬入无N缍³势鳴砕怪A薮誣杷陶域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路电。 | NSSA区域的ABR会发布Type7 LSA缺省路由传播到本区域内。 所有域间路由都必须通过ABR才能发布, 虚连接不能穿过NSSA区域. |
普通区域:包括标准区域和骨干区域。骨干区域是连接其他OSPF区域的中央区域,使用Area 0表示。标准区域是普通的区域类型,所有区域必须跟骨干区域(Area0 )相连,如果没有相连,可以通过虚链路方式连接。
Stub区域:是一种特殊的区域类型,其ABR不传播自治系统外部路由,从而减少路由表规模和路由信息传递的数量。Totally Stub区域是Stub区域的子类型,ABR只发布Type3缺省路由,不发布自治系统外部路由和区域间的路由。骨干区域不能配置成Stub区域,Stub区域内不能存在ASBR。
NSSA(Not So Stubby Area)区域是Stub区域的一种变形,允许引入自治系统外部路由。携带自治系统外部路由信息的Type7 LSA由NSSA的ASBR产生,仅在本NSSA内传播。
七、OSPF LSA
OSPF中对路由信息的描述都是封装在链路状态通告LSA(Link State Advertisement)中发布出去的,常用的LSA如表所示:
LSA类型 | LSA作用 |
Router-LSA (Type1) | 每个路由器都会产生,描述了路由器的链路状态和开销,在发布路由器所属的区域内传播。 |
Network-LSA(Type2) | 由DR产生,描述本网段的链路状态,在DR所属的区域内传播。 |
Network-Summary-LSA(Type3) | 由ABR产生,描述区域内某个网段的路由,并通告给其他区域(除了Totally Stub和Totally NSSA区域)。例如:ABR同时属于Area0和Area1,Area0内存在网段10.1.1.0,Area1内存在网段10.2.1.0,ABR为Area0生成到网段10.2.1.0的Type3 LSA:ABR为Area1生成到网段10.1.1.0的Type3 LSA。 |
ASBR-Summary-LSA(Type4) | 由ABR产生,描述本区域到其他区域中的ASBR的路由,通告给除ASBR所在区域的其他区域(除了Stub区域Totally Stub、NSSA区域和Totally NSSA区域)。 |
AS-external-LSA(Type5) | 由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域、Totally Stub、NSSA区域和TotalvNSSA区域)。 |
NSSA LSA (Type7) | 仅在NSSA区域内传播。 由ASBR产生,描述到AS外部的路由。 如果骨干区域中存在Full状态的邻居和Up状态的接口,ABR会自动产生一条缺首的NSSA LSA。 |
Opaque LSA (Type9/Type10/Type11) | Opaque LSA提供用于OSPF的扩展的通用机制。其中: Type9 LSA仅在接口所在网段范围内传播。用于支持GR的Grace LSA就是Type9 LSA的一种 Type10 LSA在区域内传播。用于支持TE的LSA就是Type10 LSA的一种:TyPe11 LSA在自治域内传播。用于支持OSPF引|入路由环路检测功能的LSA就是Type11LSA的一种 |
八、OSPF的配置
1.OSPF基础配置命令
1.启动OSPF进程,进入OSPF视图。
[Huawei] ospf [ process-id | Router ID Router ID ]
2.创建并进入OSPF区域视图
[Huawei-ospf-1] area area-id
3.在OSPF区域中使能OSPF
[Huawei-ospf-1-area-0.0.0.0] network network-address wildcard-mask
执行该命令配置区域所包含的网段。设备的接口IP地址掩码长度≥network命令指定的掩码长度,且接口的主IP地址必须在network命令指定的网段范围内,此时该接口才会在相应的区域内激活OSPF。
4.接口视图下使能OSPF
[Huawei-GigabitEthernet1/0/0] ospf enable process-id area area-id
ospf enable命令用来在接口上使能OSPF,优先级高于network命令。
5.接口视图下,设置选取DR时的优先级
[Huawei-GigabitEthernet1/0/0] ospf dr-priority priority
缺省情况下,优先级为1。
6.接口视图下,设置Hello报文发送的时间间隔
[Huawei-GigabitEthernet1/0/0] ospf timer Hello interval
缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒,且同一接口上邻居失效时间是Hello间隔时间的4倍
7.接口视图下,配置网络类型
[Huawei-GigabitEthernet1/0/0] ospf network-type { broadcast | nbma | p2mp | p2p }
缺省情况下,接口的网络类型根据物理接口而定。以太网接口的网络类型为广播,串口和POS口(封装PPP协议或HDLC协议时)网络类型为P2P。
2.OSPF基础功能配置
网络中有三台交换机。现在需要实现三台交换机之间能够互通,且以后能依据SwitchA和SwitchB为主要的业务设备来继续扩展整个网络。
配置思路:
采用如下的思路配置OSPF基本功能:
在各交换机的VLANIF接口上配置IP地址并配置各接口所属VLAN,实现网段内的互通。
在各交换机上配置OSPF基本功能,并且以SwitchA为ABR将OSPF网络划分为Area0和Area1两个区域,实现后续以SwitchA和SwitchB所在区域为骨干区域来扩展整个OSPF网络。
操作步骤:
(1)配置各接口所属的VLAN
# 配置SwitchA。SwitchB和SwitchC的配置与SwitchA类似。
<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] vlan batch 10 20
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] port link-type access
[SwitchA-GigabitEthernet1/0/1] port default vlan 10
[SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2] port link-type access
[SwitchA-GigabitEthernet1/0/2] port default vlan 20
[SwitchA-GigabitEthernet1/0/2] quit
(2)配置各VLANIF接口的IP地址
# 配置SwitchA。SwitchB和SwitchC的配置与SwitchA类似。
[SwitchA] interface vlanif 10
[SwitchA-Vlanif10] ip address 192.168.0.1 24
[SwitchA-Vlanif10] quit
[SwitchA] interface vlanif 20
[SwitchA-Vlanif20] ip address 192.168.1.1 24
[SwitchA-Vlanif20] quit
(3)配置OSPF基本功能
[SwitchA] ospf 1 router-id 10.1.1.1 //ospf进程1,routeid手动配置
[SwitchA-ospf-1] area 0 //区域0
[SwitchA-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255 //宣告网络
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.1]quit
# 配置SwitchB。
[SwitchB] ospf 1 router-id 10.2.2.2
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
# 配置SwitchC。
[SwitchC] ospf 1 router-id 10.3.3.3
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.1] quit
(4)验证配置结果
# 查看的OSPF邻居。
<SwitchA> display ospf peer
# 查看的OSPF路由信息。
<SwitchB> display ospf routing
3.OSPF虚链路配置
Area2没有与骨干区域直接相连。Area1被用作传输区域(Transit Area)来连接Area2和Area0。RouterA和RouterB之间配置一条虚连接。
配置思路:
采用如下的思路配置OSPF虚连接:
(1)在各路由器上配置OSPF基本功能。
(2)在RouterA和RouterB上配置虚连接,使非骨干区域与骨干区域连通。
操作步骤:
(1)配置各路由器接口的IP地址
# 配置RouterA。
Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 24
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] ip address 10.1.1.1 8
[RouterA-GigabitEthernet2/0/0] quit
RouterB、RouterC和RouterD的配置与RouterA一致(略)
(2)配置OSPF基本功能
# 配置RouterA。
[RouterA] ospf 1 router-id 1.1.1.1
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 10.0.0.0 0.255.255.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] area 1
[RouterA-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.1] quit
# 配置RouterB。
[RouterB] ospf 1 router-id 2.2.2.2
[RouterB-ospf-1] area 1
[RouterB-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.1] quit
[RouterB-ospf-1] area 2
[RouterB–ospf-1-area-0.0.0.2] network 172.16.0.0 0.0.255.255
[RouterB–ospf-1-area-0.0.0.2] quit
# 配置RouterC。
[RouterC] ospf 1 router-id 3.3.3.3
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 10.0.0.0 0.255.255.255
[RouterC-ospf-1-area-0.0.0.0] quit
# 配置RouterD。
[RouterD] ospf 1 router-id 4.4.4.4
[RouterD-ospf-1] area 2
[RouterD-ospf-1-area-0.0.0.2] network 172.16.0.0 0.0.255.255
[RouterD-ospf-1-area-0.0.0.2] quit
# 查看RouterA的OSPF路由表。
[RouterA] display ospf routing
由于Area2没有与Area0直接相连,所以RouterA的路由表中没有Area2中的路由。
(3)配置虚链路
# 配置RouterA。
[RouterA] ospf 1
[RouterA-ospf-1] area 1
[RouterA-ospf-1-area-0.0.0.1] vlink-peer 2.2.2.2 //虚链路指向对端routeb
[RouterA-ospf-1-area-0.0.0.1] quit
[RouterA-ospf-1] quit
# 配置RouterB。
[RouterB] ospf 1
[RouterB-ospf-1] area 1
[RouterB-ospf-1-area-0.0.0.1] vlink-peer 1.1.1.1
[RouterB-ospf-1-area-0.0.0.1] quit
[RouterB-ospf-1] quit
(4)验证配置结果
# 查看RouterA的OSPF路由表。
[RouterA] display ospf routing
4.OSPF DR选举配置
RouterA的优先级为100,它是网络上的最高优先级,所以RouterA被选为DR;RouterC是优先级第二高的,被选为BDR;RouterB的优先级为0,这意味着它将无法成为DR或BDR;RouterD没有配置优先级,取缺省值1。
配置思路:
采用如下的思路配置OSPF的DR选择:
(1)配置各路由器上router id,使能OSPF,指定网段。
(2)在缺省优先级情况下,查看各路由器DR/BDR状态。
(3)配置接口上的DR优先级,查看DR/BDR状态。
配置步骤:
(1)配置各接口的IP地址
# 配置RouterA的各接口的IP地址。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 255.255.255.0
[RouterA-GigabitEthernet1/0/0] quit
RouterB、RouterC和RouterD的配置同RouterA此处略。
(2)配置OSPF基本功能
# 配置RouterA。
[RouterA] router id 1.1.1.1
[RouterA] ospf
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
# 配置RouterB。
[RouterB] router id 2.2.2.2
[RouterB] ospf
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置RouterC。
[RouterC] router id 3.3.3.3
[RouterC] ospf
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 配置RouterD。
[RouterD] router id 4.4.4.4
[RouterD] ospf
[RouterD-ospf-1] area 0
[RouterD-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.0] quit
[RouterD-ospf-1] quit
(3)配置接口上的DR优先级
# 配置RouterA。
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ospf dr-priority 100 //配置dr优先级
[RouterA-GigabitEthernet1/0/0] quit
# 配置RouterB。
[RouterB] interface gigabitethernet 1/0/0
[RouterB-GigabitEthernet1/0/0] ospf dr-priority 0
[RouterB-GigabitEthernet1/0/0] quit
# 配置RouterC。
[RouterC] interface gigabitethernet 1/0/0
[RouterC-GigabitEthernet1/0/0] ospf dr-priority 2
[RouterC-GigabitEthernet1/0/0] quit
(4)重启OSPF进程
在各路由器的用户视图下,同时执行命令reset ospf 1 process,以重启OSPF进程。
(5)验证配置结果
# 查看OSPF邻居状态。
[RouterD] display ospf peer
5.OSPF Stub区域配置
Stub区域简介:
OSPF划分区域可以减少网络中LSA的数量。对于位于自治系统边界的非骨干区域,为了更多的缩减其路由表规模和降低LSA的数量,可以将它们配置为Stub区域。
Stub区域是一种可选的配置属性。通常来说,Stub区域位于自治系统的边界,例如,只有一个ABR的非骨干区域。在这些区域中,设备的路由表规模以及路由信息传递的数量都会大量减少。
所有的路由器都运行OSPF,整个自治系统划分为3个区域。其中RouterA和RouterB作为ABR来转发区域之间的路由,RouterD作为ASBR引入了外部路由(静态路由)。
要求将Area1配置为Stub区域,减少通告到此区域内的LSA数量,但不影响路由的可达性。
配置思路:
采用如下的思路配置OSPF的Stub区域:
在各路由器上使能OSPF,配置OSPF基本功能。
在RouterD上配置静态路由,并在OSPF中引入。
配置Area1为Stub区域(需要在Area1内所有的路由器上配置Stub命令),在RouterC上查看OSPF路由信息。
在RouterA上配置禁止向Stub区域通告Type3 LSA,在RouterC上查看OSPF路由信息。
配置步骤:
(1)配置各路由器接口的IP地址
# 配置RouterA。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ip address 192.168.0.1 24
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] ip address 192.168.1.1 24
[RouterA-GigabitEthernet2/0/0] quit
RouterB、RouterC、RouterD、RouterE和RouterF的配置与RouterA一致(略)
(2)配置OSPF基本功能
# 配置RouterA。
[RouterA] router id 1.1.1.1
[RouterA] ospf
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] area 1
[RouterA-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.1] quit
[RouterA-ospf-1] quit
# 配置RouterB。
[RouterB] router id 2.2.2.2
[RouterB] ospf
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] area 2
[RouterB-ospf-1-area-0.0.0.2] network 192.168.2.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.2] quit
[RouterB-ospf-1] quit
# 配置RouterC。
[RouterC] router id 3.3.3.3
[RouterC] ospf
[RouterC-ospf-1] area 1
[RouterC-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.1] network 172.16.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.1] quit
[RouterC-ospf-1] quit
# 配置RouterD。
[RouterD] router id 4.4.4.4
[RouterD] ospf
[RouterD-ospf-1] area 2
[RouterD-ospf-1-area-0.0.0.2] network 192.168.2.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.2] network 172.17.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.2] quit
[RouterD-ospf-1] quit
# 配置RouterE。
[RouterE] router id 5.5.5.5
[RouterE] ospf
[RouterE-ospf-1] area 1
[RouterE-ospf-1-area-0.0.0.1] network 172.16.1.0 0.0.0.255
[RouterE-ospf-1-area-0.0.0.1] quit
[RouterE-ospf-1] quit
# 配置RouterF。
[RouterF] router id 6.6.6.6
[RouterF] ospf
[RouterF-ospf-1] area 2
[RouterF-ospf-1-area-0.0.0.2] network 172.17.1.0 0.0.0.255
[RouterF-ospf-1-area-0.0.0.2] quit
[RouterF-ospf-1] quit
(3)配置RouterD引入静态路由
[RouterD] ip route-static 200.0.0.0 8 null 0
[RouterD] ospf
[RouterD-ospf-1] import-route static type 1 //引入静态路由type为1
[RouterD-ospf-1] quit
# 查看RouterC的ABR/ASBR信息。
[RouterC] display ospf abr-asbr //查看abr/asbr信息
(4)配置Area1为Stub区域
# 配置RouterA。
[RouterA] ospf
[RouterA-ospf-1] area 1
[RouterA-ospf-1-area-0.0.0.1] stub //配置stub信息
[RouterA-ospf-1-area-0.0.0.1] quit
[RouterA-ospf-1] quit
# 配置RouterC。
[RouterC] ospf
[RouterC-ospf-1] area 1
[RouterC-ospf-1-area-0.0.0.1] stub
[RouterC-ospf-1-area-0.0.0.1] quit
[RouterC-ospf-1] quit
# 配置RouterE。
[RouterE] ospf
[RouterE-ospf-1] area 1
[RouterE-ospf-1-area-0.0.0.1] stub
[RouterE-ospf-1-area-0.0.0.1] quit
[RouterE-ospf-1] quit
# 显示RouterC的路由表。
当把RouterC所在区域配置为Stub区域时,已经看不到AS外部的路由,取而代之的是一条缺省路由。
[RouterC] display ospf routing
6.OSPF NSSA区域配置
OSPF NSSA(Not-So-Stubby Area)区域是OSPF特殊的区域类型。NSSA区域与STUB区域有许多相似的地方,两者都不传播来自OSPF网络其他区域的外部路由。差别在于STUB区域是不能引入外部路由,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中。
由于OSPF规定STUB区域不能引入外部路由,对于既需要引入外部路由又需要避免外部路由带来的资源消耗的场景,STUB区域就不能满足要求了,此时,可以将这些区域配置成NSSA区域。NSSA区域可以满足既需要引入外部路由又要避免外部路由过多带来的资源消耗的场景。
在NSSA区域中使用Type-7 LSA描述引入的外部路由信息。Type-7 LSA由NSSA区域的自治域边界路由器(ASBR)产生,其扩散范围仅限于边界路由器所在的NSSA区域。NSSA区域的区域边界路由器(ABR)收到Type-7 LSA时,会有选择地将其转化为Type-5 LSA,以便将外部路由信息通告到OSPF网络的其他区域。
所有的设备都运行OSPF,整个自治系统划分为两个区域。其中DeviceA和DeviceB作为ABR来转发区域间的路由,DeviceD作为ASBR引入了外部静态路由10.0.0.0/8。此时,在不影响路由可达的前提下,达到减少通告到Area1内的LSA数量,但引入自治系统外部路由的目的。需要将Area1配置为NSSA区域,并配置NSSA区域中的DeviceA为转换器。
配置思路:
采用如下的思路配置OSPF的NSSA区域:
(1)在各设备上使能OSPF,配置OSPF基本功能,实现OSPF协议互连。
(2)配置Area1为NSSA区域。
(3)在DeviceD上配置引入静态路由10.0.0.0/8。
(4)配置NSSA区域中的DeviceA为转换器。
操作步骤:
(1)配置各接口的IP地址。
参考实验拓扑,配置各接口的IP地址,具体配置过程请参考配置脚本。
(2)配置OSPF基本功能。
(3)配置Area1区域为NSSA区域。
# 配置DeviceA。
[DeviceA] ospf
[DeviceA-ospf-1] area 1
[DeviceA-ospf-1-area-0.0.0.1] nssa
[DeviceA-ospf-1-area-0.0.0.1] quit
[DeviceA-ospf-1] quit
# 配置DeviceB。
[DeviceB] ospf
[DeviceB-ospf-1] area 1
[DeviceB-ospf-1-area-0.0.0.1] nssa
[DeviceB-ospf-1-area-0.0.0.1] quit
[DeviceB-ospf-1] quit
# 配置DeviceD。
[DeviceD] ospf
[DeviceD-ospf-1] area 1
[DeviceD-ospf-1-area-0.0.0.1] nssa
[DeviceD-ospf-1-area-0.0.0.1] quit
[DeviceD-ospf-1] quit
(4)配置DeviceD引入静态路由10.0.0.0/8。
[DeviceD] ip route-static 10.0.0.0 8 null 0
[DeviceD] ospf
[DeviceD-ospf-1] import-route static
[DeviceD-ospf-1] quit
# 查看DeviceC的OSPF路由表。
[DeviceC] display ospf routing
NSSA区域引入AS外部路由的发布设备的Router ID为2.2.2.2,即DeviceB为转换器。这是因为OSPF会选举Router ID较大的ABR作为转换器。
(5)配置DeviceA为转换器。
[
DeviceA] ospf
[DeviceA-ospf-1] area 1
[DeviceA-ospf-1-area-0.0.0.1] nssa default-route-advertise no-summary translator-always
[DeviceA-ospf-1-area-0.0.0.1] quit
[DeviceA-ospf-1] quit
检查配置结果
# 查看DeviceC的OSPF路由表。
[DeviceC] display ospf routing
DeviceC引入了一条AS外部的路由,并且,引入的外部路由的发布设备的Router ID变为1.1.1.1,即DeviceA成为了转换器。
7.OSPF安全性配置
区域验证:
使用区域验证时,一个区域中所有的路由器在该区域下的验证模式和口令必须一致。
配置方式:
(1)进入OSPF区域视图,
(2)authentication-mode simple [ plain plain-text | [ cipher ] cipher-text ],配置OSPF区域的验证模式(简单验证)。
plain表示明文口令类型。
cipher表示密文口令类型。对于MD5/HMAC-MD5验证模式,当此参数缺省时,默认为cipher类型。
接口验证:
接口验证方式用于在相邻的路由器之间设置验证模式和口令,优先级高于区域验证方式。
配置方式:
(1)进入运行OSPF的接口视图
(2)ospf authentication-mode simple [ plain plain-text | [ cipher ] cipher-text ],配置OSPF接口的验证模式(简单验证)。
simple表示使用简单验证模式。
plain表示明文口令类型。对于简单验证模式,当此参数缺省时,默认为plain类型。
cipher表示密文口令类型。对于MD5或者HMAC-MD5验证模式,当此参数缺省时,默认为cipher类型。
静默接口:
如果要使OSPF路由信息不被其他网络中的设备获得,并且使本地设备不接收网络中其他设备发布的路由更新信息,可使用silent-interface命令禁止此接口接收和发送OSPF报文。
禁止接口接收和发送OSPF报文,是预防路由环路的一种方法。
配置方式:
# 禁止接口VLANIF200收发OSPF报文。
<HUAWEI> system-view
[HUAWEI] ospf 1
[HUAWEI-ospf-1] silent-interface XXXX