HCIP笔记6--OSPF域外路由、特殊区域(stub、totally stub)

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

路由出现了负载分担。

这是因为上下两条路的开销值一样,

当我们修改R1g0/0/1的开销为100后,再来查看R4路由表

发现只剩下面这一条了,这是因为下面这条路径开销更小些。

FA地址就是外部路由的下一跳,R4通过FA地址可以判断出哪边

更快。

FA地址其实就是去往外部路由的下一跳!

4.1 FA地址生成条件
  1. ASBR去往外部路由的接口被宣告到OSPF中
  2. ASBR去往外部路由的接口没有配置静默接口
  3. 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区域。

对于非骨干区域,我们又可以把它分成下面四种区域

  1. stub区域--末节区域
  2. totally stub区域--完全末节区域
  3. NSSA区域--非完全末节区域
  4. 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感知能力,会存在次优路径问题。

比如说下面的图中

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

针对这个问题我们有三种解决方式:

  1. 针对stub区域IR路由器的接口改变开销值进行人为干预

针对上面的图,我们把R1g0/0/1接口cost改大就行了

  1. ABR上调整三类缺少路由的种子度量值

针对上面的图,我们将R6区域1的默认种子度量值调大就好了。

sh 复制代码
[R6]ospf 1
[R6] area 1
[R6-0.0.0.1] default-cost 2
  1. 在IR路由器上针对下一跳修改权重值,默认权重越小越优。

在ospf进程视图下,指定下一跳的权重值。

R1上配置

sh 复制代码
ospf 1
nexthop 12.1.1.2 weight 1
7.2 totally stub区域
  1. 在末节区域(stub区域)基础上,把这个区域间路由过滤掉
  2. 完全末节区域只保留这个区域的1类、2类以及ABR下发的三类缺省LSA
  3. 完全末节区域继承了末节区域的所有特性,包括多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域内

再给一个题目,来检验上面学的东西。

R4R1之间的直连口宣告到了area 0R1R2之间的直连口宣告到了area 1

R2上有一个环回口宣告到了area 0R2上有一个静态路由指向R3

R2 R3之间没有OSPF,只有静态指向了R3,在R3上做了一条默认路由往回指的,在R2上把静态路由给引入OSPF。

问题:

  1. R2作为ABR会产生4类LSA吗?

不会产生,因为R2ASBR与它直连的区域路由器都有到它的路由。

  1. R1作为ABR会产生4类LSA吗?

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

  1. R1的路由表中会有到200.200.200.200/32的路由吗?为什么?

没有;R2会将200.200.200.200/32转化为三类LSA向R1发送,

由于R1在骨干区域有邻居R4

因此它不会计算非骨干区域发来的三类LSA, 进而不会产生路由信息

,进一步的也不会将这条三类LSA泛洪到R4

  1. R1的路由表中有100.100.100.100/32吗?为什么?

R1的路由表中有这条路由,因为作了路由引入且R1ASBR``R2在同一区域。

  1. R4能ping通200.200.200.200/32吗?为什么?

不能,R1都没计算200.200.200.200/32的三类LSA,就不会向R4传递。

  1. R4ping100.100.100.100吗?为什么?

可以,R1作为ABR产生了4类LSA使得R4知道了ASBR的位置。

  1. 若将R1 R2宣告到区域2,R4路由表中还有100.100.100.100/32吗?为什么?
    无,R1那时就不是ABR了进而不会产生4类LSA,R4就找不到ASBR的位置了。
相关推荐
摇滚侠1 小时前
零基础小白自学Git_Github教程,创建自己的第一个 GitHub 仓库,笔记06
笔记·git·github
love530love1 小时前
【笔记】解决 Stable Diffusion WebUI 启动 “找不到llama_cpp模块”
运维·windows·笔记·python·stable diffusion·github·llama
('-')9 小时前
《从根上理解MySQL是怎样运行的》第十章学习笔记
笔记·学习·mysql
hd51cc9 小时前
MFC学习笔记 对话框
笔记·学习·mfc
卡提西亚10 小时前
数据库笔记-4-SQL语言之DCL
数据库·笔记·sql
Radan小哥10 小时前
Docker学习笔记—day0010
笔记·学习·docker
im_AMBER10 小时前
Canvas架构手记 05 鼠标事件监听 | 原生事件封装 | ctx 结构化对象
前端·笔记·学习·架构
黑客思维者10 小时前
LLM底层原理学习笔记:模型评估的基准测试体系与方法论
人工智能·笔记·神经网络·学习·模型评估·基准测试
andeyeluguo10 小时前
postman笔记
笔记