3分钟完全理解0SPF多区域间的概念

今天跟大家对于NSSA区域的双ABR 7转5的研究
----思科对于NSSA区域的优化

学习OSPF大家都知道它是层次化的网络设计架构模型,简单分为两层,中间的backbone(area 0),规则区域连在backbone上,主要的好处是方便管理、控制,在区域边界做汇总、过滤等操作,从而达到减小路由表;在路由在flapping的时候,减少它的泛洪范围等。

不过OSPF也提供了特殊区域,做了自动的过滤,下面我们来聊一聊特殊区域中NSSA区域的LSA-7转LSA-5的问题。

大家知道OSPF的NSSA区域实际上自动过滤了其他区域产生的外部LSA(LSA-5),而允许NSSA本区域产生自己的外部LSA,为了区别NSSA本区域产生的外部LSA和其他区域产生的外部LSA,所以设计了LSA-7。

但是这些外部的网络,area 0和其他区域也要想访问,就要转换成它们认识的类型,所以在NSSA区域内部传递的外部LSA-7,经过ABR传递到area 0或其他区域,需要转换成LSA-5。

下面我们来讨论当NSSA双ABR的时候LSA-7转LSA-5的时候有什么问题。拓扑如下:


R1、R2、R4互联链路属于NSSA区域area 1,R2、R3、R4互联链路属于area 0。R1上有一个lo1(11.11.11.0/24)重分布进OSPF。以上设备配置如下:

R1的配置:

R2的配置:

R3的配置:

R4的配置:

因为将R1的lo1重分布进OSPF后,R1会产生LSA-7,这个LSA-7会在area 1中泛洪,R2和R4都会收到,但是只有R4会进行LSA-7转LSA-5(RID大的ABR进行7转5)。

所以这时在R3上只能看到R4发过来的关于11.11.11.0/24的LSA-5。


学到这里,大多数初学的同学都会记笔记:RID大的ABR进行7转5。

但只有一部分同学会去探讨为什么会这样呢?

因为LSA-7在产生的时候,会自动加上Forward-address。FA地址根据IOS的不一样,可能稍微有些区别,但是不影响效果。

一般等于NSSA区域内部的ASBR上第一个或最后宣告进OSPF的loopback口的地址,或者是第一个或最后一个宣告进OSPF的物理接口的IP(当ASBR没有loopback属于OSPF的时候),当然最好是第一个宣告进去的,这样不会造成LSA过多的泛洪。

R1上显示:

而NSSA区域的ABR在进行LSA-7转LSA-5的时候默认会把这个FA地址携带进area 0或其他规则区域。

在R3上显示:

所以这时area0区域的设备或其他区域的设备可以通过LSA-1和LSA-2的帮助计算出去往NSSA区域ABR的距离,再加上通过LSA-5中所携带的FA地址相关的LSA-3而计算出本路由器去往NSSA区域的ASBR的FA地址的距离。

这个值就是所谓的forward-metric,本路由器去往真实ASBR的FA的距离。


所以OSPF的设计者觉得不管是几个ABR进行LSA-7转LSA-5,都能让area 0的设备找到去往NSSA区域ASBR的最优路径,那么由一台ABR进行LSA-7转LSA-5就可以啦。(我猜测他们是这么想的,嘿嘿嘿)

后期又提供了一个suppress-fa(抑制FA)的方法,也就是当LSA-7转LSA-5的时候,不要携带FA地址,这样可以通过ABR的RID来控制流量的走向。


以上讲的内容,思科、华为实际上都是一样的,学习到这里后,肯定觉得OK,NSSA区域就是这样的操作,我们记住它的特性就OK了。

实际上想想这样的方式好吗,当NSSA区域有2个ABR的时候,只有一个ABR进行LSA-7转LSA-5,在我们这个图上R3要访问11.11.11.0/24网络的时候,会找到最优路径。

但是当这个ABR down掉以后,多长时间能收敛呢?

我们来做这么一个实验,将R4重启后,看R3这台设备多长时间可以收到新的从R2传过来的相关于11.11.11.0/24的LSA-5。
(在R3上通过debug ip ospf flooding命令查看)

R4 重启的时间:

R3上收到新LSA的时间

可以看到R4的重启时间为15:58:05;R3接收到R4发来的age=3600的LSA-1为15:58:05;

收到R2传过来的11.11.11.0/24 LSA-5并放入database数据库的时间为15:58:11,中间间隔了6s,也就是说R3至少6s后才能收敛,将去往11.11.11.0/24网络的数据包送给R2。

对于高端路由器转发引擎和控制引擎分开,NSF没啥大问题。但是有些设备不行,这样会造成丢包。

思科在新的IOS中增加了一个feature,可以让所有NSSA区域的ABR都进行LSA-7转LSA-5。


在R3上显示:

这样不管哪个ABR有问题后,area 0或其他区域内部的路由器都能更加快速的收敛,个人觉得这是个非常不错的改进。

创作:http://www.ie-lab.cn/

原文地址:https://blog.51cto.com/14248289/2374097

时间: 2024-10-19 18:32:49

3分钟完全理解0SPF多区域间的概念的相关文章

6.HCNP-R&S-IERN——OSPF区域间路由

本次介绍OSPF区域间路由技术,内容包括区域间路由原理,使用Network-Summary-LSA描述区域间路由信息, 虚连接技术,区域间路由汇聚等内容. 学习目标: 1. 理解区域间路由原理 2. 理解Network-Summary-LSA 3. 理解虚连接 4. 理解区域间路由汇聚 区域边界路由器(ABR)上有多个LSDB,ABR为每个区域维护一个LSDB.ABR将所连接的非骨干区域内的链路状态信息抽象成路由信息,并发布到骨干区域中,由骨干区域进一步发布到其它骨干区域中. ABR也要将骨干区

【转】理解JVM内存区域

引言 对于C++程序员,内存分配与回收的处理一直是令人头疼的问题.Java由于自身的自动内存管理机制,使得管理内存变得非常轻松,不容易出现内存泄漏,溢出的问题. 不容易不代表不会出现问题,一旦内存泄漏或溢出的情况发生,调试起来会变得非常困难.这就要求我们对虚拟机的内存区域有深入的理解.最终能够判断内存方面的异常发生时,具体在JVM中的位置. 内存区域 JVM运行时,首先需要类加载器(ClassLoader) 加载所需类的字节码,加载完毕交由执行引擎执行,执行过程中需要一段空间来存储数据(类比CP

[Lab2-1]OSPF区域间选路

[Lab2-1]OSPF区域间选路 OSPF专题的补充,我们来了解下 OSPF区域间的选路 每个router的cost值配置如下 R1: S0/0: IP ospf cost 1 R2: S0/0: IP OSPF Cost 1 S0/1: IP ospf cost 10 S0/2: IP OSPF Cost 2 R3: S0/0: IP ospf cost 10 S0/1: IP ospf cost 2 S0/2: IP ospf cost 2 R4: S0/0: IP ospf cost 2

小型网络架构—运用OSPF实现不同区域间网络的互通

一.实验拓扑图 二.实验目的 实现PC机之间的互通 运用OSPF使不同区域间的路由通信 三.实验所需的设备以及相关配置1.pc机的配置 主机 IP地址/子网掩码 网关 PC1 100.1.1.1/24 100.1.1.254 PC1 100.1.2.1/24 100.1.2.254 PC3 100.1.3.1/24 100.1.3.254 2.路由器的配置 设备 接口 IP地址/子网掩码 区域 R1 GE0/0/0 192.168.14.2/24 area1 R1 GE0/0/1 192.168

15-高级路由:OSPF区域间、区域×××总

一.实验拓扑:二.命令部署:1.区域间汇总命令:①基本汇总:R1(config)#router ospf 110R1(config-router)#area 0 range 202.100.8.0 255.255.252.0 R2(config)#router ospf 110R2(config-router)#area 0 range 202.100.8.0 255.255.252.0②拓展知识Advertise.cost:R1(config)#router ospf 110R1(config

[转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!

十分钟快速理解DPI和PPI,不再傻傻分不清! https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for=pc关于UX测试相关的: 之前一直搞的不是很清楚 这个百家号的解释挺好的 简单转帖一下 以后仔细研究,  设计师充电站 18-07-1308:58 72DPI的图片拿去打印会糊吗?手机拍出来的照片是多少DPI?PS里显示72PPI为什么另存为JPG就变成96DPI了? 类似的问题层出不穷.本站很多篇文章都讲到

<27>【理解】02-结构体数组概念及定义+【掌握】03-结构数组的初始化和遍历

[理解]02-结构体数组概念及定义 结构体数组: 用来存放大量的结构体相同的结构体变量 结构体数组定义: 结构体数组定义的第一种方式: 1)定义结构体的同时,定义数组 struct Student{ int age; char *name; int s_no; float score; }stu[5]; 结构体数组定义的第二种方式 2)先定义结构体,后定义数组 struct Student boy[5]; #include <stdio.h> int main(int argc, const

10分钟学会理解和解决MySQL乱码问题

本文将详细介绍MySQL乱码的成因和具体的解决方案 MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为.为了更好的解释这个过程,博主制作了两张流程图,分别对应存入和取出两个阶段. 存入MySQL经历的编码转换过程 上图中有3次编码/解码的过程(红色箭头).三个红色箭头分别对应:客户端编码,MySQL Server解码,Client编码向表编码的转换.其中Terminal可以是一个B

十分钟深入理解HashMap源码

十分钟就要深入理解HashMap源码,看完你能懂?我觉得得再多看一分钟,才能完全掌握! 终于来到比较复杂的HashMap,由于内部的变量,内部类,方法都比较多,没法像ArrayList那样直接平铺开来说,因此准备从几个具体的角度来切入. 桶结构 HashMap的每个存储位置,又叫做一个桶,当一个Key&Value进入map的时候,依据它的hash值分配一个桶来存储. 看一下桶的定义:table就是所谓的桶结构,说白了就是一个节点数组. transient Node<K,V>[] tab