1、OSPF区域
每个区域都维护一个独立的LSDB。
Area 0是骨干区域,其他区域都必须与此区域相连。
划分OSPF区域可以缩小路由器的LSDB规模,减少网络流量。
区域内的详细拓扑信息不向其他区域发送,区域间传递的是抽象的路由信息,而不是详细的描述拓扑结构的链路状态信息。每个区域都有自己的LSDB,不同区域的LSDB是不同的。路由器会为每一个自己所连接到的区域维护一个单独的LSDB。由于详细链路状态信息不会被发布到区域以外,因此LSDB的规模大大缩小了。
Area 0为骨干区域,为了避免区域间路由环路,非骨干区域之间不允许直接相互发布路由信息。因此,每个区域都必须连接到骨干区域。
运行在区域之间的路由器叫做区域边界路由器 ABR(Area Boundary Router),它包含所有相连区域的 LSDB。
自治系统边界路由器 ASBR(Autonomous System Boundary Router)是指和其他 AS 中的路由器交换路由信息的路由器,这种路由器会向整个 AS 通告 AS 外部路由信息。
在规模较小的企业网络中,可以把所有的路由器划分到同一个区域中,同一个 OSPF 区域中的路由器中的 LSDB 是完全一致的。OSPF 区域号可以手动配置,为了便于将来的网络扩展,推荐将该区域号设置为 0,即骨干区域。
区域的特点:
1、减少路由表条目,没有自动汇总,不存在域内汇总,只有域间和域外汇总。
2、当拓扑变更时限制在一个区域内。
3、某些特定的LSA只能在区域内泛洪,好处是减少其他区域LSDB的条目数量。
4、hierarchical一定要基于层次化网络设计。
1.1、区域内路由(Internal Router)
同一个OSPF区域所有路由器组成的链路,一个链路肯定是属于一个区域的。
LSA(链路状态通告消息):IP地址、掩码、cost以及邻居信息。
OSPF区域内部的路由就是一类和二类的LSA组成。
1.1.1、一类LSA:Router LSA类型
一类LSA每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播。
- 1类LSA的作用:计算域内路由;
- 1类LSA产生:每台路由器都产生;
- 1类LSA内容:主要是用来写入拓扑信息。
- 1类LSA传递范围:所属区域。
一类LSA计算域内路由,防止环路产生。RA产生的LSA在Area 0区域内泛洪,经过RB–>RD–>RC后,可能会从RC返回RA路由器形成环路。
一类LSA计算域内路由,选择最佳路由。RA产生的LSA在Area 0区域内泛洪,从RA–>RB–>RD的路由和RA–>RC–>RD,选择哪一条路由?
LSA-1有两种类型,一种是stub末节,没有邻居的以太网,另一种就是Transit网段。
1、Router-LSA描述P2P网络(点到点类型):
每台OSPF路由器使用一条Router-LSA描述本区域内的链路状态信息。LSA头部的三个字段含义如下:
- Type:LSA类型,Router-LSA是一类LSA。
- LS id:链路状态ID。
- Adv rtr:产生此Router-LSA的路由器Router ID。通告
一条Router-LSA可以描述多条链接,每条链接描述信息由Link ID,Data,Link Type和Metric组成,其关键字含义如下:
- Type:链接类型(并非OSPF定义的四种网络类型),Router LSA描述的链接类型主要有:
链接类型 | 描述 | 信息类型 |
---|---|---|
Point-to-Point | 从本路由器到邻居路由器之间的点到点链接 | 拓扑信息 |
TransNet | 从本路由器到一个Transit网段 | 拓扑信息 |
StubNet | 从本路由器到一个Stub网段 | 路由信息 |
- Link ID:此链接的对端标识,不同链接类型的Link ID表示的意义也不同。
- Data:用于描述此链接的附加信息,不同的链接类型所描述的信息也不同。
- Metric:描述此链接的开销。
link-type链路类型:用来描述直连的链路信息。
- Link-type:
- stubnet:直连的网络号
- p-2-p:p2p、p2mp链路上的邻居
- transnet:broadcast、NBMA链路上的邻居
- virtual:v-link上的邻居
2、Router-LSA描述MA网络或NBMA网络
在描述MA或NBMA网络类型的Router-LSA中,Link ID为DR的接口IP地址,Data为本地接口的IP地址。
如图所示,RTB、RTC、RTE之间通过以太链路互连,以RTC产生的LSA为例,Link ID为DR的接口IP地址(10.1.235.2),Data为本地路由器连接此MA网络的接口IP地址(10.1.235.3)与点到点不同上面是子网掩码,Link Type为TransNet,Metric表示到达DR的开销值。
TransNet描述的链接中仅包括与DR的连接关系及开销,没有网络号/掩码及共享链路上其他路由器的任何信息。Transit广播网络。
<R1>dis ospf lsdb router self-originate
Type : Router //LSA类型
Ls id : 1.1.1.1 //链路状态ID
Adv rtr : 1.1.1.1 //产生此LSA的路由器的Router ID 通告者
Ls age : 244 刷新多少秒 越小越新
Len : 60
Options : ABR E
seq# : 80000018 系统号,越大越新
chksum : 0xff96
Link count: 3 链接数量
拓扑信息
* Link ID: 172.16.10.7 DR接口的IP 物理口
Data : 172.16.10.1 宣告者发送LSA的出接口
Link Type: TransNet MA网段多点接入,至少两台路由器广播
Metric : 100
* Link ID: 2.2.2.2 邻居路由器的Router ID 物理口
Data : 12.1.1.1 宣告该Router LSA的路由器接口的IP地址
Link Type: P-2-P 点到点链接
Metric : 48 开销
-------------------------------------------------------------------------------------
路由信息
* Link ID: 12.1.1.0 该Stub网络的IP地址 物理口
Data : 255.255.255.0 掩码
Link Type: StubNet 末梢网络
Metric : 48 开销
Priority : Low 优先级:低
1.1.2、二类LSA:Network-LSA类型
由DR(Designated Router)产生,描述本网段的链路状态,在所属的区域内传播。
主要的作用就是传递网络掩码以及路由器列表信息。
前面使用一类的LSA时,TransNet描述的链接中仅包括与DR的连接关系及开销,没有网络号/掩码及共享链路上其他路由器的任何信息。
‘
在MA网络中,包括brodcost以及NBMA网络里,要描述Transit网段必须要用二类的LSA。因此有DR了就会有二类LSA,如果没有DR,一类就够了。
<R3>display ospf lsdb network self-originate
OSPF Process 100 with Router ID 3.3.3.3
Area: 0.0.0.0
Link State Database
Type : Network //LSA类型
Ls id : 10.0.13.3 //DR接口的IP地址
Adv rtr : 3.3.3.3 //DR的Router ID
Ls age : 1434
Len : 32
Options : E
seq# : 80000002
chksum : 0x63c6
Net mask : 255.255.255.248 //网络掩码
Priority : Low
Attached Router 3.3.3.3 //连接到该网段的路由器列表
Attached Router 1.1.1.1
OSPF区域内LSDB
<R3>display ospf lsdb
OSPF Process 100 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2通告者 258 72 80000009 1562
Router 1.1.1.1 1.1.1.1通告者 94 60 80000015 1
Router 3.3.3.3 3.3.3.3通告者 86 72 80000016 1562
Network 10.0.13.3 3.3.3.3DR 86 32 80000002 0
Network 10.0.12.2 2.2.2.2 DR 258 32 80000002 0
以上可以看出2类LSA:
- 作用:计算域内路由(结合1类的LSA)
- 产生:MA网络中由DR产生
- 内容:拓扑信息和网络掩码信息
- 传递范围:所属区域内
一类LSA总结:
- 路由信息以及拓扑信息是由二类以及一类LSA共同结合计算出来的。
- 在LSA中有非常多的种类,但是传递拓扑信息的就只有一类LSA以及二类LSA。
1.2、区域间路由
Area 0为骨干区,除了Area 0都是非骨干区,非骨干区域均直接和骨干区域相连且骨干区域只有一个,非骨干区域–>骨干区域中转,骨干区域ID固定为0。骨干区域不能被分割。
避免域间路由环路:
- OSPF规定从骨干区域传来的三类LSA不再传回骨干区域。
- OSPF要求ABR设备至少有一个接口属于骨干区域。
OSPF规定不允许直接在两个非骨干区域之间发布路由信息,只允许在一个区域内部或者在骨干区域和非骨干区域之间发布路由信息,两个非骨干区之间不能更新路由。骨干区域的链路状态信息抽象成路由信息,并发布到所连接的非骨干区域中。
区域间又是怎么通信的呢?
以RTD为例,其对应的一类LSA在Area 1中同步,作为Area 1和Area 0之间的ABR:
1)、RTB,会收到RTD的一类LSA并将其转化成三类LSA在Area 0中进行泛洪;
2)RTA接收到此三类LSA后,做同样操作。当Area 0和Area 2之间的ABR:
3)RTC接收到此三类LSA后,会重新生成一条新的三类LSA发送到Area 2当中。
至此全OSPF区域都收到了192.168.1.0/24的路由信息。RTE上192.168.2.1/24的路由信息,做同样操作。
1.2.1、OSPF多区域配置
基本配置:
sysname R1
router id 1.1.1.1
interface GigabitEthernet0/0/0
ip address 192.168.0.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 192.168.1.1 255.255.255.0
sysname R2
router id 2.2.2.2
interface GigabitEthernet0/0/0
ip address 192.168.0.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 192.168.2.1 255.255.255.0
sysname R3
router id 3.3.3.3
interface GigabitEthernet0/0/1
ip address 192.168.1.2 255.255.255.0
interface GigabitEthernet0/0/2
ip address 172.16.1.1 255.255.255.0
sysname R4
router id 4.4.4.4
interface GigabitEthernet0/0/2
ip address 172.16.1.2 255.255.255.0
sysname R5
router id 5.5.5.5
interface GigabitEthernet0/0/1
ip address 192.168.2.2 255.255.255.0
interface GigabitEthernet0/0/2
ip address 172.17.1.1 255.255.255.0
sysname R6
router id 6.6.6.6
interface GigabitEthernet0/0/2
ip address 172.17.1.2 255.255.255.0
OSPF配置:
R1
ospf 1
area 0.0.0.0
network 192.168.0.0 0.0.0.255
area 0.0.0.1
network 192.168.1.0 0.0.0.255
stub no-summary //配置禁止向Stub区域通告Type3 LSA
R2
ospf 1
area 0.0.0.0
network 192.168.0.0 0.0.0.255
area 0.0.0.2
network 192.168.2.0 0.0.0.255
R3
ospf 1
area 0.0.0.1
network 192.168.1.0 0.0.0.255
network 172.16.1.0 0.0.0.255
stub
R5
ospf 1
import-route static type 1 //引入静态路由类型为1
area 0.0.0.2
network 192.168.2.0 0.0.0.255
network 172.17.1.0 0.0.0.255
q
ip route-static 200.0.0.0 255.0.0.0 NULL0
R4
ospf 1
area 0.0.0.1
network 172.16.1.0 0.0.0.255
R6
ospf 1
area 0.0.0.2
network 172.17.1.0 0.0.0.255
<R1>dis ospf rou
OSPF Process 1 with Router ID 1.1.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
192.168.0.0/24 1 Transit 192.168.0.1 1.1.1.1 0.0.0.0
192.168.1.0/24 1 Transit 192.168.1.1 1.1.1.1 0.0.0.1
172.16.1.0/24 2 Stub 192.168.1.2 3.3.3.3 0.0.0.1
172.17.1.0/24 3 Inter-area 192.168.0.2 2.2.2.2 0.0.0.0
192.168.2.0/24 2 Inter-area 192.168.0.2 2.2.2.2 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
200.0.0.0/8 3 Type1 1 192.168.0.2 5.5.5.5
Total Nets: 6
Intra Area: 3 Inter Area域间: 2 ASE: 1 NSSA: 0
1.2.2、网络汇总LSA
查看R1的ABR/ASBR信息
<R1>display ospf abr-asbr
OSPF Process 1 with Router ID 1.1.1.1
Routing Table to ABR and ASBR
RtType Destination Area Cost Nexthop Type
Intra-area 2.2.2.2 0.0.0.0 1 192.168.0.2 ABR
Inter-area 5.5.5.5 0.0.0.0 2 192.168.0.2
查看R2的ABR/ASBR信息
<R2>display ospf abr-asbr
OSPF Process 1 with Router ID 2.2.2.2
Routing Table to ABR and ASBR
RtType Destination Area Cost Nexthop Type
Intra-area 1.1.1.1 0.0.0.0 1 192.168.0.1 ABR
Intra-area 5.5.5.5 0.0.0.2 1 192.168.2.2
Network-Summary-LSA
查看R1的192.168.2.0域间路由
<R1>display ospf lsdb summary 192.168.2.0
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.0
Link State Database
Type : Sum-Net //三类LSA
Ls id : 192.168.2.0 //目标网段地址
Adv rtr : 2.2.2.2 //产生此三类LSA的Router ID 通告者
Ls age : 1582
Len : 28
Options : E //可选项,是否接受外部路由 E是接受
seq# : 80000001 //系列号数值越大就是最近的值
chksum : 0x7177
Net mask : 255.255.255.0 //网络掩码
Tos 0 metric: 1 //开销值 是边界路由到目标的值
Priority : Low
从上面可以看出三类LSA又叫网络汇总LSA:是由R2的ABR路由器始发的。ABR路由器将发送网络汇总LSA到Area 0,用来通告该区域外部的目的地址。实际上,这些网络汇总LSA就是ABR路由器告诉在与之相连的区域内的内部路由器它所能到达的目的地址的一种方法。一台ABR路由器也可以通过网络汇总LSA向骨干区域通告与它相连的区域内部的目的地址。在一个区域外部,仍然在一个OSPF自主系统内部的缺省路由也可以通过这种LSA类型来通告。
区域间路由计算
192.168.1.0/24和192.168.2.0/24的三类LSA中,Adv rtr分别是RTB(2.2.2.2)和RTC(3.3.3.3)。
RTB产生的三类LSA中,网络号/掩码是192.168.1.0/24,开销为1,RTC产生的三类LSA中,网络号/掩码是192.168.2.0/24,开销为1。
RTA到达192.168.1.0/24下一跳是RTB,开销是2;RTA到达192.168.2.0/24下一跳是RTC,开销是2。
1.2.3、OSPF路由聚合
路由聚合是指ABR可以将具有相同前缀的路由信息聚合到一起,只发布一条路由到其它区域。
区域间通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高设备的性能。
OSPF有两种路由聚合方式:
- ABR聚合
ABR向其它区域发送路由信息时,以网段为单位生成Type3 LSA。如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。 - ASBR聚合
配置路由聚合后,如果本地设备是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5 LSA进行聚合。当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7 LSA进行聚合。
如果本地设备既是ASBR又是ABR,则对由Type7 LSA转化成的Type5 LSA进行聚合处理。
区域间汇总只能ABR上作,如果只有一个区域是不能汇总的。abr-summary命令用来在区域边界路由器(ABR)上配置路由聚合。
将OSPF 100的区域1中两个网段10.42.10.0和10.42.110.0的路由聚合成一条聚合路由10.42.0.0向其它区域发布。
[Huawei] ospf 100
[Huawei-ospf-100] area 1
[Huawei-ospf-100-area-0.0.0.1] network 10.42.10.0 0.0.0.255
[Huawei-ospf-100-area-0.0.0.1] network 10.42.110.0 0.0.0.255
[Huawei-ospf-100-area-0.0.0.1] abr-summary 10.42.0.0 255.255.0.0
1.2.4、虚连接vlink
两个非骨干区之间不能更新路由,上图中的不规范的OSPF区域设计,导致Area 1区域不能与Area 2区域进行通信。
这时我们采用虚连接(VLINK)来解决上述问题。虚连接可以在任意两个区域边界路由器上建立。
配置场景:
1).远离区域0
2).分割区域0
3).不存在骨干区域,只有非骨干区域之间相连的情况
4).为了备份,防止区域0被分割
配置:
RTC
ospf 1
area 0.0.0.1 //传输区域
vlink-peer 2.2.2.2 //指对方设备的router-id,不是接口IP地址
RTB
ospf 1
area 0.0.0.1 //传输区域
vlink-peer 3.3.3.3 //指对方设备的router-id,不是接口IP地址
[RTC]dis ospf vlink
Virtual-link Neighbor-id -> 22.1.1.1, Neighbor-State: Full //邻居状态一定要FULL,虚连接邻居建立成功
1.3、OSPF外部路由
RTA引入外部静态路由后,作为ASBR,就会发送5类LSA泛洪全网,并且在泛洪的过程中的5类LSA的内容是完全不会变化的。
由ASBR发出,宣告外部路由网段信息,会泛洪到每一个ospf区域内的路由器。
RTA生成一个5类LSA,10.1.16.0,此时我的发起者是发起者1.1.1.1,然后我的Metric值是1。RTD、RTB、RTC和RTE都会收到这个5类LSA。
RTA与RTC、RTB在同一区域Area0内的内部路由设备,能够查询DBD数据表中Route-ID1.1.1.1及下一跳,并更新数据库。
RTE 及RTD在另处一区域只有RTA的接口IP地址没有1.1.1.1的Route-ID,无法进行更新,这时,通过Area 0和Area 1、2的ABR-RTB、RTC告诉区域内的每台路由器,想要通过ASBR访问外部,可以先找我,我知道怎么过去。
1.3.1、五类LSA:AS-External-LSA
本例中,RTA上配置了一条静态路由,目的网络是10.1.60.0/24,下一跳是RTF。
在RTA的OSPF进程下,将配置的静态路由重发布到A公司的OSPF网络中,其中引入外部路由的OSPF路由器叫做ASBR(设备间互访需要路由双向可达,这里仅介绍OSPF网络内获取外部路由的过程)。
RTA会生成一条AS-External-LSA(五类LSA),用于描述如何从ASBR到达外部目的地;RTB和RTC会生成一条ASBR-Summary-LSA(四类LSA),用于描述如何从ABR到达ASBR。
四类LSA和五类LSA,将被OSPF路由器用来计算外部路由。
由ASBR发出,宣告外部路由网段信息,会泛洪到每一个ospf区域内的路由器。
每一台路由器都会收到LSA5(在没配置stub和nssa之前)
五类LSA,用于描述如何从ASBR
到达外部目的地;
传播范围:整个ospf路由选择域
- 通告者:ASBR
- 包含内容:纯路由信息,一条OSPF域外路由对应一条5类LSA
- Link State-id:域外路由的路由前缀
<R5>display ospf lsdb ase
OSPF Process 1 with Router ID 5.5.5.5
Link State Database
Type : External //LSA类型
Ls id : 200.0.0.0 //目的网段地址 外部的IP
Adv rtr : 5.5.5.5 //通告者 产生5类LSA ABSR的router ID
Ls age : 302
Len : 36
Options : E //可选项,是否接受外部路由 E是接受
seq# : 80000001
chksum : 0xb2c1
Net mask : 255.0.0.0 //网络掩码
TOS 0 Metric: 1 //ASBR到达目的网络的开销值,默认值为1
E type : 1 //外部路由类型默认为2,对于类型1,ospf域内所有设备的的度量值都要累加
Forwarding Address : 0.0.0.0 //转发地址,默认为0.0.0.0
Tag : 1 //于传递该路由的标识信息,通常用于路由策略,默认值为1(即使引入到其他OSPF进程依旧默认为1)。
Priority : Low //代表队列PQ,有4种high\medium\nomal\low 收敛的速度
Priority : Low //代表队列PQ,有4种high\medium\nomal\low 收敛的速度
如何设置这个Priority : Low
[Rout]ospf 1
[Rout- ospf-1] prefix-priority medium ip-prefix 100
[Rout]ip-prefix 100 permit 1.1.1.0 24
引进外部直连:先建一个int lo 1模拟外部新路由,使用路由策略如果匹配接口int lo 1就只把int lo 1重分布到ospf。
route-policy connect permit node 10
if-match int lo 1
ospf 1
import-route direct route-policy connect
tag 设置标识 默认是1 dis ip routing-table 1.1.0.0 verbose 可以看到
O_ASE是外部默认值为1 ,因为引进的是E type : 2的路由 用于区域内。
外部路由的类型:
- External Type-1:AS内部开销值+AS外部开销值;
- External Type-2:AS外部开销值。默认情况下,OSPF外部路由采用的是第二类外部路由。
E type : 1度量值是会累加 更科学和准确.
[RA]ospf 1
//引入静态路由时修改度量为20,外部路由类 型1
[RA-ospf-1] import-route static cost 20 type 1
ASBR聚合
配置路由聚合后,如果本地设备是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5 LSA进行聚合。当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7 LSA进行聚合。
ASBR的汇总:
ospf 1
asbr-summary 172.17.0.0 255.255.248.0
1.3.2、四类LSA:ASBR-summary-LSA
由ABR产生,负责告诉区域内的每台路由器,想要通过ASBR访问外部,可以先找我,我知道怎么过去。
- 传播范围:除了ASBR所在区域之外的整个路由选择域。
- 通告者:和ASBR在同一个区域的ABR路由器。
- 包含内容:纯拓扑信息,描述了ASBR所在位置。
LINK State-ID:ASBR的RID
ADV router:通告者ABR的RID,并且该值每跨越一个ABR都会自动改变,同3类LSA。
<R2>display ospf lsdb asbr self-originate
OSPF Process 1 with Router ID 2.2.2.2
Area: 0.0.0.0
Link State Database
Type : Sum-Asbr //LSA类型
Ls id : 5.5.5.5 // ASBR的Router ID
Adv rtr : 2.2.2.2 //产生此四类LSA ABR的Router ID
Ls age : 1016
Len : 28
Options : E
seq# : 80000001
chksum : 0x44fa
Tos 0 metric: 1
Area: 0.0.0.2
Link State Database
总结:
OSPF路由的选路原则:
- 区域内 > 区域之间 > type 1 > type 2
- type1 = 外部开销值+ 内部开销值。cost值越小越优先
一类LSA>三类LSA>第一类外部路由>第二类外部路由(没有二类、四类的原因是它们不传递路由信息,只传递拓扑信息。)
对于外部路由:
- 先比较外部开销值,cost值越小越优先。
- 如果外部开销值相同,则比较内部开销值,cost值越小越优先。
- 如果内部开销值也相同,则比较区域号ID大的。
- 如果来自于同一个区域,则路由负载。
Router LSA | Network LSA | Summary LSA | Summary ASB LSA | External LSA | |
---|---|---|---|---|---|
通告者 | RID | DR RID | ABR RID(穿越不同区域会变化) | ABR RID | ASBR RID |
传播范围 | 区域内 | 区域内 | 整个域内 | 整个域内(除本区域) | 整个区域(除NSSA、Stub) |
内容 | 拓扑信息和路由信息 | MA网络的链路、子网掩码。 | 子网和链路掩码 | ASBR的位置 | 域外路由 |
Link ID | RID | DR IP | 路由 | ASBR RID | 外部路由 |
1.4、次优外部路由的产生原因
RTB将通过RIP学来的路由重发布到OSPF,RTA通过OSPF学习到RIP中192.168.3.0/24的外部路由,但是下一跳是RTB。所以RTA访问192.168.3.0/24的流量先发送给RTB,RTB收到后又转发给RTC。在RTA上这条路由是次优的,最优的下一跳应当为RTC。
OSPF通过设置Forwarding Address来解决这个问题。