CCNP5:OSPF的【不规则、末梢、NSSA】区域、【1、2、3、4、5、7】类LSA、【3、5、7】缺省 2019.07.26补充

CCNP5:OSPF的【不规则、末梢、NSSA】区域、【1、2、3、4、5、7】类LSA、【3、5、7】缺省

一、OSPF的不规则区域:

1、不规则区域:

当我们把一个OSPF的拓扑设计好后,如果有一天又需要加入一个新的区域,而且该区域比较远,扯一条线过去太贵,将两个区域合并为一个区域又太大,会导致网络卡顿。

因此可以向下面这样构造不规则区域:
在这里插入图片描述
因此要能够实现OSPF不规则区域的信息传递,我们就需要配置不规则区域。
OSPF的不规则区域有两种:
(1)远离骨干的非骨干区域:
这种区域ABR必须同时工作于区域0,才能进行区域间的路由共享。
在这里插入图片描述
(2)不连续骨干:
从x区域获取到的路由信息不得发往编号为x的区域,即便x区域连接了本区域不同的ABR(水平分割)。
在这里插入图片描述

2、解决方案:

(1)普通tunnel:

我之前的这篇文章CCNP2:二层技术、PPP、HDLC、GRE(Tunnel)、MGRE技术提到过GRE的技术。

这里的 tunnel 是在两台ABR上建立隧道,然后将 tunnel 宣告在OSPF中。

正常情况下,我们是将 tunnel 宣告在0区域中,但是我们知道,这个tunnel只是虚构的,实际上控制方面的流量走的都是1区域,OSPF本来就是一个占用资源大的协议,这就导致了area1中的区域会十分卡顿。

缺点:
①占用资源:周期的保活和更新,触发的信息均需要通过中间的穿越区域,对中间区域影响较大。
②选路不佳:由于 tunnel 被宣告在了区域0中,那么area0和area1之间的ABR在选路的时候会优选 tunnel 口,裹报头就会占用资源特别大

在这里插入图片描述
OSPF隐性规则:OSPF协议若通过不同的区域学习到的相同的路由,优选区域0,若均为非骨干,则比较度量值,这就会导致选路不佳。

如果按下面这种方式,左边的ABR便不会再像上面一样去纠结是选择走 area0(tunnel) 还是走area1,因为两个均为非骨干。但是这样带来的问题更为严重,
在这里插入图片描述
将tunnel宣告到区域2中,右边的ABR将不再拥有路由共享资格,就会形成下面这样:
在这里插入图片描述
此时,area1中的设备学习路由时,area2中的网段就会通过 tunnel 然后再经过左边的ABR,最后才能让area1学到,但是 tunnel的实际流量还是在area1中,这就更卡了,选路也不佳。

总之这种解决方案很差劲。

(2)虚拟链路:

OSPF虚拟链路:非骨干区域间的ABR到骨干区域的ABR处授权,建立一条虚链路。

两台ABR都要配置:
R1(config)#router ospf 1 
R1(config-router)#area 1 virtual-link 4.4.4.4

area1:中间穿越的区域
4.4.4.4:对端的ABR的RID

因为没有新的网段出现,故选路正常,为了避免周期的信息对中间区域的影响,故停止虚链路间的所有周期行为(保活机制)。这就导致两台ABR之间的虚链路之间没有dead time ,这就很不可靠。
在这里插入图片描述
DNA:无老化时间,表示去掉 更新时间hello 时间。
因此也不建议去使用。

(3)多进程双向重发布:

一台设备上若同时运行多个进程,那么不同进程拥有不同的RID,生成各自的数据库,但数据库不共享。仅将各自计算所得路由加载于同一张路由表内。

若多个进程工作于同一个接口上,仅最早的进程生效(一个接口只能工作一个进程,谁先来谁先工作)

在解决不规则区域时,让连接两个非骨干区域的ABR设备,将不同区域宣告到本地的不同进程下,之后使用重发布技术,进行路由共享即可。

总结:

多进程双向重发布选路佳、共享路由条目
tunnel选路不佳、占用资源大
虚链路选路佳、占用资源大、不可靠

二、减少LSA的更新量:

看到特殊区域时,如果没有底子,可能会比较混乱需要知道各类LSA,但是先讲LSA又不知道什么是特殊区域。可以将文章前后结合起来看。

1、LSA介绍:

LSA:链路状态通告,或者说是拓扑信息都可以。
链路状态通告=LSA头部(缩略信息)+ LSA 主体
对于完整的LSA是携带完整的拓扑信息的,DBD与LSR携带的都是LSA的头部信息,只有LSU才携带完整的LSA信息。
完整的LSA头部内容包含
①Type:LSA类型
②LS-ID:连接对象的ID编号
③ADV Router:该LSA的通告路由器
在这里插入图片描述
LSA内容应该包含以下
①链路路由前缀
②链路掩码
③链路开销
④连接的链路类型
⑤连接的路由器
在这里插入图片描述

(1)LSA更新过程:

在这里插入图片描述
这个图解释的比较形象,首先LSU携带了LSA信息。经过一个判断:条目是否在链路状态数据库中?

如果,则比较条条目的序列号,相同的话说明数据库中的该条目与接收到的该条目是一样的,那么就忽略。不一样的话比较条目的序列号,若该新来的条目的序列号比较新则更新原来的条目,若收到的新来的条目还没有数据库里面的新,那么将使用LSU发送该数据库的LSA给刚才的源,反更新它。

如果,则会将新来的LSA加载到数据库中,然后回复LSack作为确认。接着洪泛该LSA,让其它的路由器获取该未知网段。最后运行SPF计算新的路由表。

(2)LSA的接收和洪泛:

周期洪泛:30分钟,60分钟便会老化,之所以维持这么长时间是为了更加稳定。

2、手工汇总:

例如下面这样将area1、area2、area3各汇成一条给area0,它是减少骨干区域的LSA量
在这里插入图片描述

(1)域间路由汇总(3类):

假设R1是ABR,它有两个环回,1.1.5.5/24、1.1.6.5/24,汇总之后便是1.1.4.0/22,其所在区域为area2,area2为需要汇总的区域。只能在ABR上汇总,汇总之后它会自动产生空接口防环路由。

R1(config)#router ospf 1 
R1(config-router)#area 2 range 1.1.4.0 255.255.252.0

注:汇总时是通过该区域的1、2类LSA计算所得路由才能汇总成功

(2)域外路由汇总(5类):

假设R2是ASBR,它有两个环回,2.1.1.1/24、2.1.2.1/24,汇总之后便是2.1.0.0/22,汇总之后也会自动产生空接口防环路由。。

R2(config)#router ospf 1 
R2(config-router)#summary-address 2.1.0.0 255.255.252.0

3、设置特殊区域:

特殊区域不可以为骨干区域、设置的区域不能存在虚链路

比如说将area1设置为特殊区域,那么它就只会学本区域的路由,对于其它区域的,它不会去学习,而是缺省指向与area0相连的ABR,这样就可以减少非骨干区域的更新量
在这里插入图片描述
特殊区域分为两大类:一类是不存在ASBR,另一类是存在ASBR。
我们先说第一类:不存在ASBR

(1)末梢区域:

要既不是骨干区域、也不能存在虚链路,还不存在ASBR,因此满足这些条件的只有区域1了。

将area1设置为末梢区域后,该区域将拒绝4、5类LSA进入,4类是ASBR的位置,5类是域外路由(图中为EIGRP),拒绝之后ABR将会自动产生3类缺省发向该区域

R1(config)#router ospf 1 
R1(config-router)#area 1 stub
该区域所有的设备均需要配置,否则邻居关系就会断开
(2)完全末梢区域:

上面我们说到,设置为末梢区域的区域会拒绝4、5类LSA进入,然后自动产生3类缺省,那为什么不干脆进一步拒绝3类LSA,然后保留一条去往区域0的缺省呢?因此这就是完全末梢区域:在末梢区域的基础上,进一步拒绝3类的LSA,仅保留一条3类的缺省。

配置规则:
先将该区域配置为末梢区域,然后仅在ABR上定义完全即可

ABR(config-router)#area 1 stub no-summary

接下来要说的是第二类存在ASBR:

(3)NSSA(非完全末梢区域):

图中的area2就是一个NSSA非完全末梢区域
在这里插入图片描述
什么是非完全?图中的area2它是一个OSPF的一个末梢,但是它后面又跟了个EIGRP,虽然跟OSPF没有多大关系,但是这样area2就不算是完全末梢区域了,因此它就是非完全的了。

该区域拒绝4、5类LSA,不自动产生3类缺省,本地的5类LSA基于7类转发,通过NSSA区域后转回5类。
在这里插入图片描述
我们知道将area2设置为非完全NSSA区域后,可以为骨干区域减少一条4类LSA,但是4类LSA很少啊,它携带的是ASBR的位置,能有很多个ASBR吗,它的意义是在这吗?

现在我们回想一下我们的初心,减少骨干区域的LSA靠的是区域间手工汇总,因此设置NSSA非完全末梢区域的并不在于减少骨干区域的LSA,它的意义在于它能够拒绝区域ASBR产生的4、5类LSA,为了避免环路的出现,默认不自动产生缺省路由,导致无法访问其他的的域外网段,故在管理员确定无环的情况下,可以手工添加缺省路由

R4(config)#router ospf 1 
R4(config-router)#area 2 nssa   
该区域所有设备配置
(4)完全NSSA:

原理:该区域是在NSSA的基础上进一步拒绝3类LSA,自动产生3类缺省
在这里插入图片描述
这个比较好理解,之前是拒绝4、5类LSA,但是没有拒绝area0的LSA。那么完全NSSA就是拒绝其它全部区域的LSA,然后产生一条3类缺省。背后的EIGRP,通过7类转为5类穿过area2。

配置规则:先将该区域配置为NSSA,然后仅在ABR上定义完全即可。

R4(config)#router ospf 1 
R4(config-router)#area 2 nssa no-summary 

接下来我们聊一下出环的事情,这个环是怎么出的?
我们知道一般末梢区域是不会连ISP的,连接ISP的是区域0,但是当末梢区域要访问运营商时,会使用缺省指向区域0,由区域0通过缺省发给运营商。因此环也是这样出的,如果把一个末梢区域连接了ISP,然后区域0访问ISP时缺省指向该末梢区域,但是该末梢区域由于自动产生了3类缺省又会指向区域0,这样就出环了。

注:
①ISP所在位置的非骨干区域不得配置为任何的特殊区域。
②若ISP连接在其它的协议时,连接该协议的非骨干区域也不得配置为任何特殊区域。

三、OSPF的数据库表:

首先我们知道OSPF协议基于LSU(包、相当于打包在一起)来共享LSA信息。
LSA:描述了路由器所有的链路、接口、路由器的邻居以及链路状态信息。
OSPF会在不同的条件下发出不同类别的LSA

详细查看某条LSA
R1#show ip ospf database router 1.1.1.1

router:类别名
1.1.1.1:link-id

接下来我要说明的是各种LSA,LSA总共有11种,这里我只介绍1、2、3、4、5、7类LSA。
我们先宏观的讲:无论哪种类别的LSA必携带**以下参数:

参数注解详细
LS Age老化时间周期为1800归0,也可触发归0,最大老化时间3609秒
Option选项这里不做介绍
LS Type类别名标注此类LSA是属于哪种LSA
Link State ID在目录中的编号这个编号是方便我们去打开它
Advertising Router通告者的RID
LS Seq Number序列号使用棒棒糖规则,杆和圈(循环阶段)
Checksum校验和
Length长度
Number of links包含的信息条数

LSA1:路由器

首先,我会以下面这张图为基础讲解各种LSA。
在这里插入图片描述
我们查看一下R1的路由器的LSA,图中显示它的通告者就是自己,等信息。 在这里插入图片描述
下面这张图是它携带的信息:我们发现都是直连的拓扑。它的传播范围是本区域,Link-ID为通过者的RID,且本区域的所有设备均为通告者。
在这里插入图片描述

(1)LSA1的链路类型:

这类LSA存在3种链路类型:
①stub:末梢网络,例如环回
②transit:在传递一类LSA时会产生二类LSA描述完整拓扑,通告DR的位置。
③p2p(点到点):串型链路中为该链路类型。

LSA2:网络

这张图是目录信息,我们一会儿打开第一个看看。
在这里插入图片描述
下图是R1的网络LSA,里面包含了掩码和这个MA网段所包含的设备的RID。当收到这条LSA的设备,便知道这个MA网段中都包含了哪些设备,它的传播范围也是本区域。

除此之外显示通告者为2.2.2.2,通过显示邻居表发现,R2就是DR,Link-ID为DR的接口IP地址。
在这里插入图片描述

LSA3:网络汇总LSA

要想出现3类LSA,就需要在上图添加一个路由器,然后把它划到区域1
在这里插入图片描述
R1上show ip ospf database,我们可以看到出现了3类LSA
在这里插入图片描述
我们把它打开其中一条详细查看一下:
在这里插入图片描述
我们发现这其实就是一条路由,里面包含目标网络号,还有度量值,传播的范围为整个OSPF域。

这条LSA携带的是O IA域间路由,就是去往OSPF其它区域中的网段,通告者是ABR,至于如何到ABR,就用LSA1、2进行计算,在之后其它的ABR收到该条3类LSA之后,便会将通告者修改为本地。

LSA5:自治系统外部LSA

先将5类LSA,之后引出4类。

我们将上图再稍加修改,为R4添加一个环回,然后让R4运行EIGRP宣告该环回,再通过重发布技术把它发进OSPF域中。
在这里插入图片描述
之后R1上就会出现下面这条O E2域外路由
在这里插入图片描述
接着我们查看一下OSPF的数据库表,发现了产生了一个5类的LSA:
在这里插入图片描述
我们打开这个目录,进行详细的查看:
在这里插入图片描述
因此,该类LSA它的传播范围为整个OSPF域,通告者为ASBR 4.4.4.4,携带的信息是 O E 域外路由,Link-ID为99.0.0.0(目标网络号)。

注:我们发现它的通告者是4.4.4.4,而不是2.2.2.2,这个不像我们之前提到的LSA3,在经过下一跳ABR的时候会将通告者修改为本地,它没有发生改变,这就违背了拓扑算路由。那么R1、R2是如何找到ASBR 4.4.4.4的位置呢?这就是我接下来要讲的LSA4

LSA4:ASBR汇总LSA

将上述环回重发布的时候,4、5类LSA均会同时产生,因此我们直接查看OSPF的数据库表就会发现4类LSA:
在这里插入图片描述
我们解开这条目录:
在这里插入图片描述
它的传播范围是除了ASBR所在区域外的整个OSPF域,上面这张图就说明了Link-ID为4.4.4.4,通告者为3.3.3.3,意思就是说要想去4.4.4.4这个网段找3.3.3.3,此时R1、R2、就知道了ASBR的位置了,接着利用LSA5就可以找到目标了。

如果还有其它ABR,那么在经过下一跳ABR时,也需要将通告者修改为本地。

LSA7:NSSA外部LSA

在这里插入图片描述
7类LSA是指在非完全末梢区域内(not-so-stubby area)由ASBR(由ABR2充当)发出的通告外部区域的LSA,因此图中的ABR2路由器将把与NSSA区域相连的接口收到的类型7的LSA转换成类型5的LSA洪泛到整个骨干区域中去,从而也洪泛扩散到其他的区域中去。.

而这些原本的7类LSA其实就是5类,只不过将区域2设置为NSSA后,把5类变成了7类,7类透过area2,到达ABR2时,向OSPF其它域通告时,在将它从7类转为5类。(这里可以看文章前面,更详细)

这张图与我画的所有的拓扑都没关系,看看7类LSA长什么样好。
在这里插入图片描述

LSA总结:

类别类别名传播范围通告者携带信息Link-ID通告者
LSA1router
路由器
本区域本地区域所有设备本地直连拓扑通告者的RID本地区域所有设备
LSA2network
网络
本区域DRMA网段部分的拓扑DR的接口IP地址DR
LSA3Summary Network
网络汇总
整个OSPF域ABRO IA域间路由O IA路由
目标网络号
ABR,在经过下一跳ABR时,修改为本地
LSA4asbr-summary
ASBR汇总LSA
除ASBR所在区域外的整个OSPF域ABRASBR位置ASBR的RIDABR,在经过下一跳ABR时,修改为本地
LSA5External
自治系统外部LSA
整个OSPF域ASBRO E域外路由O E路由,目标网络号ASBR(不修改)
LSA7NSSA外部LSANSSA区域内
(离开该区域后转回5类)
ASBRO N域外路由O N路由,目标网络号ASBR(不修改)

四、扩展配置:

1、认证:

(1)接口认证:

①接口明文:

//连接邻居的接口上配置
R1(config)#interface s1/1              
// 开启接口明文认证需要,开启后本地hello包中认证类型字段被修改,若邻居间不一致,将无法建立邻居关系
R1(config-if)#ip ospf authentication  
//定义明文认证的秘钥
R1(config-if)#ip ospf authentication-key cisco  

②接口密文

R2(config)#interface s1/1
//开启密文认证需要
R2(config-if)#ip ospf authentication message-digest  
//配置秘钥及编号
R2(config-if)#ip ospf message-digest-key 1 md5 cisco123  
(2)区域认证:

例:在R1上开启关于区域0的明文或密文认证,实际就是在R1上所有的区域0接口配置了明文或密文的认证需求,修改了认证类型字段而已。

接口的秘钥还需要到各个接口上逐一匹配

R2(config)#router ospf 1 
//区域明文
R2(config-router)#area 1 authentication
//区域密文
R2(config-router)#area 1 authentication  message-digest 
(3)虚链路认证:

明文认证

//开启明文认证需求
R2(config-router)#area 1 virtual-link 4.4.4.4 authentication  
//在配明文认证密码:cisco
R2(config-router)#area 1 virtual-link 4.4.4.4 authentication-key cisco 

密文认证

r2(config-router)#area 1 virtual-link 4.4.4.4 authentication message-digest
r2(config-router)#area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco123 

2、被动接口:

被动接口:只接收不发送路由协议信息,仅用于连接用户的接口,不得用于连接邻居的接口

R2(config)#router ospf 1 
R2(config-router)#passive-interface f0/0

3、加快收敛:

R2(config)#interface s1/1
//修改hello time
R2(config-if)#ip ospf hello-interval 10  
//修改dead time
R2(config-if)#ip ospf dead-interval 40  

切记:修改本端的hello time,本端的dead time将自动4倍关系匹配,且邻居间hello 和 dead time必须一致。

4、缺省路由:

OSPF的缺省有3种:分别是3、5、7类缺省,其中5类比较重要。

(1)3类缺省:

3类缺省特殊区域(末梢、完全末梢、完全NSSA)中连接骨干区域的ABR自动产生3类缺省

普通的NSSA区域不产生缺省,需要人工添加

(2)5类缺省:

将area1设置为特殊区域后,ABR会自动下放3类缺省给area1中的设备,此时ASBR也会学到一个3类缺省。接着我们让该ASBR做重发布,该ASBR会将这条3类缺省发放给area2中的设备。
在这里插入图片描述
5类缺省是由重发布产生,前提是本地(ASBR)路由表中已经拥有缺省路由(任何方式获取均可),满足前提后,需要专用的重发布命令

ASBR(config)#router ospf 1
ASBR(config-router)#default-information originate

当把该条命令一敲,它就会把自己路由表中的缺省路由重发布到area2区域内,这样area2中就会存在一个 O*E2的5类缺省。
默认导入的路由为类型2(O*E2),不叠加内部度量,种子度量1。

//修改种子度量和类型
R1(config-router)#default-information originate ?
metric       OSPF default metric
metric-type  OSPF metric type for default routes

如果本地路由表中还没有缺省路由,又希望强制向area2域内发放缺省路由。

R1(config-router)#default-information originate always
默认导入的路由为类型2,种子度量1

修改种子度量和类型:

R1(config-router)#default-information originate always ?
  metric       OSPF default metric
  metric-type  OSPF metric type for default routes
(3)7类缺省:

这类缺省比较少见,我们知道7类是只有NSSA区域产生之后才会出现的缺省。
在这里插入图片描述
7类缺省产生的条件是:正常仅在普通的NSSA环境配置,因为普通的NSSA不自动产生缺省路由,故需要在区域0和NSSA区域间的ABR上,向NSSA区域发布一条缺省路由。

R1(config-router)#area 1 nssa default-information-originate
默认进入路由为类型2,种子度量为1

修改种子度量和类型:

R1(config-router)#area 1 nssa default-information-originate ?
  metric             OSPF default metric
  metric-type        OSPF metric type for default routes

切记:一旦本地为完全NSSA区域,若再导入7类缺省必然产生环路,只有普通的NSSA区域可以导入。

若一台设备同时学习到不同类别的缺省路由规则:
内部优于外部:3类优于5、7类
若5、7类相遇,先比管理距离再比较度量,越小越优选;若度量一致,5类优于7类。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
五种报文 HELLO报文(型1 ):用来建立和维护邻接关系,选举DR以及BDR 数据库描述报文(型2 ):也就是DD 报文,用来描述自己的LSDB,还有空的DD报文,用来确定MSTER和SLAVE关系 链路-状态请求报文(型3 ):也就是LSR报文,用来向对方请求所需的LSA。内容包括所需要的LSA 链路-状态更新报文(型4 ):也就是LSU报文,用来向对端路由发送所需要的LSA,内容是多格LSA集合 链路-状态应答报文(型5 );LSACK报文,用来对接收到的LSU报文进行确认 OSPF有七种LSA,详细介绍如下: 1、路由器LSA (Router LSA) 由区域内所有路由器产生,并且只能在本个区域内泛洪广播。 这些最基本的LSA通告列出了路由器所有的链路和接口,并指明了它们的状态和沿每条链路方向出站的代价。 2、网络LSA (Network LSA) 由区域内的DR或BDR路由器产生,报文包括DR和BDR连接的路由器的链路信息。 网络LSA也仅仅在产生这条网络LSA区域内部进行泛洪。 3、网络汇总LSA (Network summary LSA) 由ABR产生,可以通知本区域内的路由器通往区域外的路由信息。 在一个区域外部但是仍然在一个OSPF自治系统内部的缺省路由也可以通过这种LSA来通告。 如果一台ABR路由器经过骨干区域从其他的ABR路由器收到多条网络汇总LSA,那么这台始发的ABR路由器将会选择这些LSA通告中代价最低的LSA,并且将这个LSA的最低代价通告给与它相连的非骨干区域。 4、ASBR汇总LSA (ASBR summary LSA) 也是由ABR产生,但是它是一条主机路由,指向ASBR路由器地址的路由。 5、自治系统外部LSA (Autonomous system external LSA) 由ASBR产生,告诉相同自治区的路由器通往外部自治区的路径。 自治系统外部LSA是惟一不和具体的区域相关联的LSA通告,将在整个自治系统中进行泛洪。 6、组成员LSA (Group membership LSA) * 目前不支持组播OSPF (MOSPF协议) 7、NSSA外部LSANSSA External LSA) 由ASBR产生,几乎和LSA 5通告是相同的,但NSSA外部LSA通告仅仅在始发这个NSSA外部LSA通告的非纯末梢区域内部进行泛洪。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值