0. 路由引入
路由引入:把除了自身协议外的协议引入进来。
引入外部的设备,我们叫它ASBR自治区域边界路由器。
引入的命令很简单,在ospf相应该的进程下输入
就引入了静态路由。
sh
import-route static
注意:引入的时候需要自己的路由表中有这条路由才能路由。

1. OSPF外部路由
- 在路由表中会显示为
O_ASE,优先级为150;OSPF内部路由优先级为1 - OSPF外部路由放在5类LSA中

5类LSA在整个OSPF自治域泛洪,5类LSA的作用就是引入外部路由。
4类LSA专门介绍ASBR。
1.1 为什么路由引入只有一条,更新却有两条?
第一条LSU--1类LSA,作用--我成为了ASBR,即将引入外部路由。
第二条LSU--5类LSA,引入的外部路由。
1.2 5类LSA
5类LSA有专门的AS外部数据库,在整个OSPF自治域内泛洪,只要建立了Full邻接关系都可以收到5类LSA。
查看5类LSA
sh
display ospf lsdb ase 5.5.5.5

LS-id: 5.5.5.5外部路由器网络号
Netmask: 255.255.255.255掩码
Adv rtr: 4.4.4.4产生这条LSA的路由器的router-id
Option: E 外部路由
Tag: 1 标签,给路由策略做标号的
2. 种子度量值
所有的外部路由引入OSPF中,都会以5类LSA的方式存在数据库中。
外部开销不再计算,者会给这个5类LSA一个种子度量值,默认为1,
可手动进行更改。
比如说可以在引入的时候就指定开销
sh
import-route static cost 200
我们看上图的值时,会注意到一个E type的东西,
这个东西就跟开销值有关。
当E type: 2时,不会计算OSPF内部开销值累加。
当E type: 1时,会计算OSPF内部开销值累加。
这个也可以在引入时就指定
sh
import-route static type 1
3. 4类LSA
查看4类LSA
sh
display ospf lsdb asbr 4.4.4.4

type: Sum-ASBR
LS id: 4.4.4.4 ASBR的router-id
Adv rtr: 3.3.3.3 产生这条4类LSA的路由器(ABR)的router-id
3.1 4类LSA如何产生
一旦ABR收到其他路由器发来的1类LSA中ASBR置位为1,ABR就会把一类LSA转化为4类LSA,传递到相邻的区域去。
4类LSA的目的:帮助其他区域的路由器通过4类计算5类LSA。
3.2 有4类LSA一定有5类LSA吗?
不一定,只要在OSPF配置了import-route,没有路由引入。
但是设备本身具备引入功能--会发送置位为1的LSA。
ABR设备收到后就会产生4类LSA。
3.3 有5类LSA一定有4类LSA吗?
不一定,单区域没有ABR,产生不了4类LSA。
4. FA地址
我们观察到中还有一个Fastforwarding Address

这个地址其实是用来优化链路的,防止次优路径。
比如下面的拓扑图中,

R1作为ASBR引入到100.100.100.100/32的外部路由,
我们查看R4的路由表可以发现,到100.100.100.100/32的
路由出现了负载分担。

这是因为上下两条路的开销值一样,
当我们修改R1的g0/0/1的开销为100后,再来查看R4路由表

发现只剩下面这一条了,这是因为下面这条路径开销更小些。
FA地址就是外部路由的下一跳,R4通过FA地址可以判断出哪边
更快。

FA地址其实就是去往外部路由的下一跳!
4.1 FA地址生成条件
ASBR去往外部路由的接口被宣告到OSPF中ASBR去往外部路由的接口没有配置静默接口ASBR去往外部路由的接口类型不是P2P
5. 引入默认路由
默认路由比较特殊,不能随便引入,因此用单独的命令进行引入。
sh
default-route-advertise
这条命令需要在本身配置了默认路由情况下才能生效
sh
default-route-advertise always
这条命令一般配置在ASBR上,内部的路由器如果没有配置缺省路由的情况下会由ASBR进行下发。
下面的图就是一个例子

注意ASBR本身需要配置一条缺省路由或者一条静态路由指向外部路由,
在这个图中是123.1.2.3
6. OSPF区域互相引入
如下图所示,如果两边路由器分属于两个进程;那么我们可以分别在两个进程下相互引入路由来实现互通。
命令很简单
sh
ospf 1
import-route ospf 2
q
ospf 2
import-route ospf 1

7. OSPF区域分类
OSPF区域分为骨干区域和非骨干区域两类。
骨干区域就是区域0,非骨干区域也就是其他非0区域。
对于非骨干区域,我们又可以把它分成下面四种区域
- stub区域--末节区域
- totally stub区域--完全末节区域
- NSSA区域--非完全末节区域
- totally NSSA区域--完全非完全末节区域
注意:特殊区域只能是非骨干区域
OSPF引入特殊区域的目的--优化OSPF,减少末端区域LSA的数量
7.1 stub区域
命令很简单,只需要进入相应的进程和区域下输入stub即可
sh
ospf 1
area 1
stub
给一个例子,如下图所示

当一个区域被设置为末节区域时,但凡是这个区域中的路由器都要在区域视图下敲stub。上面的图中如果把区域1设置为stub区域,我们就需要在R1 R2两个路由器的area 1下敲stub。
查看ospf的lsdb

我们发现多了一条三类的缺省LSA,对应的路由表里也多了
一条缺省路由

stub区域没有4类、5类LSA,访问其他区域的路由通过3类缺省LSA--ABR产生。
stub区域由于内部没有4类和5类LSA,一旦出现负载分担,缺少对于末节区域外部的cost感知能力,会存在次优路径问题。
比如说下面的图中

我们修改了R6的g0/0/1口开销为100,但在R1表的缺省路由上仍然是负载分担。

针对这个问题我们有三种解决方式:
- 针对stub区域IR路由器的接口改变开销值进行人为干预
针对上面的图,我们把R1的g0/0/1接口cost改大就行了
- 在
ABR上调整三类缺少路由的种子度量值
针对上面的图,我们将R6区域1的默认种子度量值调大就好了。
sh
[R6]ospf 1
[R6] area 1
[R6-0.0.0.1] default-cost 2
- 在IR路由器上针对下一跳修改权重值,默认权重越小越优。
在ospf进程视图下,指定下一跳的权重值。
在R1上配置
sh
ospf 1
nexthop 12.1.1.2 weight 1
7.2 totally stub区域
- 在末节区域(stub区域)基础上,把这个区域间路由过滤掉
- 完全末节区域只保留这个区域的1类、2类以及ABR下发的三类缺省LSA
- 完全末节区域继承了末节区域的所有特性,包括多ABR次优路径问题解决方式完全一致。
命令:
对于ABR来说,在区域视图下
sh
stub no-summary
对于IR来说
sh
stub /stub no-summary
是一样的
8. LSA总结
需要知道LSA是由谁产生的,传播范围在哪个区域。
| 名称 | 英文 | 产生者 | 传播范围 |
|---|---|---|---|
| 一类LSA | Router-LSA | 每个路由器 | 区域内 |
| 二类LSA | Network-LSA | DR | 区域内 |
| 三类LSA | Network-Summary-LSA | ABR | 区域间 |
| 四类LSA | ASBR-Summary-LSA | ABR | ABR边接区域 |
| 五类LSA | AS-External-LSA | ASBR | 在整个AS内部泛洪 |
| 七类LSA | NSSA-LSA | ASBR | NSSA域内 |
再给一个题目,来检验上面学的东西。

R4与R1之间的直连口宣告到了area 0,R1与R2之间的直连口宣告到了area 1。
R2上有一个环回口宣告到了area 0,R2上有一个静态路由指向R3。
R2 R3之间没有OSPF,只有静态指向了R3,在R3上做了一条默认路由往回指的,在R2上把静态路由给引入OSPF。
问题:
R2作为ABR会产生4类LSA吗?
不会产生,因为R2是ASBR与它直连的区域路由器都有到它的路由。

R1作为ABR会产生4类LSA吗?
会,因为与R1相连的区域中,R4并不知道ASBR的位置,因此R1会向区域0泛洪4类LSA,帮助R4找到ASBR。

R1的路由表中会有到200.200.200.200/32的路由吗?为什么?
没有;R2会将200.200.200.200/32转化为三类LSA向R1发送,
由于R1在骨干区域有邻居R4,
因此它不会计算非骨干区域发来的三类LSA, 进而不会产生路由信息
,进一步的也不会将这条三类LSA泛洪到R4。
R1的路由表中有100.100.100.100/32吗?为什么?
R1的路由表中有这条路由,因为作了路由引入且R1与ASBR``R2在同一区域。
R4能ping通200.200.200.200/32吗?为什么?
不能,R1都没计算200.200.200.200/32的三类LSA,就不会向R4传递。
R4能ping通100.100.100.100吗?为什么?
可以,R1作为ABR产生了4类LSA使得R4知道了ASBR的位置。
- 若将
R1 R2宣告到区域2,R4路由表中还有100.100.100.100/32吗?为什么?
无,R1那时就不是ABR了进而不会产生4类LSA,R4就找不到ASBR的位置了。