草庐IT

玩转华为ENSP模拟器系列 | 配置OSPF的NSSA区域

COCOgsta 2025-03-07 原文

素材来源:华为路由器配置指南

一边学习一边整理试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:玩转华为ENSP模拟器系列 | 合集_COCOgsta的博客-CSDN博客_华为模拟器实验


目标

举例介绍OSPF的NSSA区域的配置过程。

组网需求

某些网络由于引入大量外部路由导致路由表的规模过大,网络资源浪费,CPU占用率较高。为了解决这个问题,可以将位于自治系统边缘的非骨干区域配置成NSSA区域,减少传递的路由信息数量。配置区域为NSSA区域后,不传播来自OSPF网络其它区域的外部路由,但引入自治系统外部的路由,这样可以避免大量外部路由对路由器带宽和存储资源的消耗。

所有的路由器都运行OSPF,整个自治系统划分为两个区域。其中DeviceA和DeviceB作为ABR来转发区域间的路由,DeviceD作为ASBR引入了外部静态路由10.0.0.0/8。此时,在不影响路由可达的前提下,达到减少通告到Area1内的LSA数量,但引入自治系统外部路由的目的。需要将Area1配置为NSSA区域,并配置NSSA区域中的DeviceA为转换路由器。

配置思路

  • 在各路由器上使能OSPF,配置OSPF基本功能,实现OSPF协议互连。参见配置OSPF的基本功能。
  • 配置Area1为NSSA区域。
  • 在DeviceD上配置引入静态路由10.0.0.0/8。
  • 配置NSSA区域中的DeviceA为转换路由器。

操作步骤

  1. 配置各机接口的IP地址
  2. 配置OSPF基本功能
  3. 配置Area1区域为NSSA区域

说明:所有连接到NSSA区域的路由器必须使用nssa命令将该区域配置成NSSA属性。

  1. 配置DeviceD引入静态路由10.0.0.0/8

查看DeviceC的OSPF路由表。

<DeviceC>dis ospf routing
          OSPF Process 1 with Router ID 3.3.3.3
                   Routing Tables
 Routing for Network
 Destination        Cost     Type       NextHop         AdvRouter       Area           
 192.168.0.0/24     1        Direct     192.168.0.2     3.3.3.3         0.0.0.0        
 192.168.1.0/24     2        Inter-area 192.168.2.1     2.2.2.2         0.0.0.0        
 192.168.1.0/24     2        Inter-area 192.168.0.1     1.1.1.1         0.0.0.0        
 192.168.2.0/24     1        Direct     192.168.2.2     3.3.3.3         0.0.0.0        
 192.168.3.0/24     2        Inter-area 192.168.0.1     1.1.1.1         0.0.0.0        
 192.168.4.0/24     2        Inter-area 192.168.2.1     2.2.2.2         0.0.0.0        
 Routing for ASEs
 Destination        Cost       Type       Tag        NextHop         AdvRouter      
 10.0.0.0/8         1          Type2      1          192.168.0.1     2.2.2.2        
 Total Nets: 6
 Intra Area: 2  Inter Area: 3  ASE: 1  NSSA: 0
          OSPF Process 65534 with Router ID 128.1.138.140
                   Routing Tables
 Routing for Network
 Destination        Cost     Type       NextHop         AdvRouter       Area           
 128.1.138.137/32   100      Stub       128.1.138.137   128.1.138.137   0.0.0.0        
 128.1.138.137/32   100      Stub       128.1.138.137   128.1.138.137   0.0.0.0        
 128.1.138.138/32   200      Stub       128.1.138.137   128.1.138.138   0.0.0.0        
 128.1.138.138/32   200      Stub       128.1.138.139   128.1.138.138   0.0.0.0        
 128.1.138.138/32   200      Stub       128.1.138.137   128.1.138.138   0.0.0.0        
 128.1.138.139/32   100      Stub       128.1.138.139   128.1.138.139   0.0.0.0        
 128.1.138.140/32   0        Direct     128.1.138.140   128.1.138.140   0.0.0.0        
 128.1.138.141/32   100      Stub       128.1.138.141   128.1.138.141   0.0.0.0        
 128.1.138.141/32   100      Stub       128.1.138.141   128.1.138.141   0.0.0.0        
 Total Nets: 5
 Intra Area: 5  Inter Area: 0  ASE: 0  NSSA: 0
<DeviceC>

可以看到,NSSA区域引入AS外部路由的发布路由器的Router ID为2.2.2.2,即DeviceB为转换。这是因为OSPF会选举Router ID较大的ABR作为转换路由器。

  1. 配置DeviceA为转换路由器
[~DeviceA-ospf-1]area 1
[~DeviceA-ospf-1-area-0.0.0.1]nssa default-route-advertise translator-always 
  1. 查看配置结果

查看DeviceC的OSPF路由表。

<DeviceC>dis ospf routing
          OSPF Process 1 with Router ID 3.3.3.3
                   Routing Tables
 Routing for Network
 Destination        Cost     Type       NextHop         AdvRouter       Area           
 192.168.0.0/24     1        Direct     192.168.0.2     3.3.3.3         0.0.0.0        
 192.168.1.0/24     2        Inter-area 192.168.2.1     2.2.2.2         0.0.0.0        
 192.168.1.0/24     2        Inter-area 192.168.0.1     1.1.1.1         0.0.0.0        
 192.168.2.0/24     1        Direct     192.168.2.2     3.3.3.3         0.0.0.0        
 192.168.3.0/24     2        Inter-area 192.168.0.1     1.1.1.1         0.0.0.0        
 192.168.4.0/24     2        Inter-area 192.168.2.1     2.2.2.2         0.0.0.0        
 Routing for ASEs
 Destination        Cost       Type       Tag        NextHop         AdvRouter      
 10.0.0.0/8         1          Type2      1          192.168.0.1     1.1.1.1        
 Total Nets: 6
 Intra Area: 2  Inter Area: 3  ASE: 1  NSSA: 0
          OSPF Process 65534 with Router ID 128.1.138.140
                   Routing Tables
 Routing for Network
 Destination        Cost     Type       NextHop         AdvRouter       Area           
 128.1.138.137/32   100      Stub       128.1.138.137   128.1.138.137   0.0.0.0        
 128.1.138.137/32   100      Stub       128.1.138.137   128.1.138.137   0.0.0.0        
 128.1.138.138/32   200      Stub       128.1.138.137   128.1.138.138   0.0.0.0        
 128.1.138.138/32   200      Stub       128.1.138.139   128.1.138.138   0.0.0.0        
 128.1.138.138/32   200      Stub       128.1.138.137   128.1.138.138   0.0.0.0        
 128.1.138.139/32   100      Stub       128.1.138.139   128.1.138.139   0.0.0.0        
 128.1.138.140/32   0        Direct     128.1.138.140   128.1.138.140   0.0.0.0        
 128.1.138.141/32   100      Stub       128.1.138.141   128.1.138.141   0.0.0.0        
 128.1.138.141/32   100      Stub       128.1.138.141   128.1.138.141   0.0.0.0        
 Total Nets: 5
 Intra Area: 5  Inter Area: 0  ASE: 0  NSSA: 0
<DeviceC>

可以看到,DeviceC引入了一条AS外部的路由,并且,引入的外部路由的发布路由器的Router ID变为1.1.1.1,即DeviceA成为了转换路由器。.

 

有关玩转华为ENSP模拟器系列 | 配置OSPF的NSSA区域的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  3. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  4. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  5. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  6. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  7. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  8. ruby-on-rails - 缺失区域;使用 :region option or export region name to ENV ['AWS_REGION' ] - 2

    我知道还有其他相同的问题,但他们没有解决我的问题。我不断收到错误:Aws::Errors::MissingRegionErrorinBooksController#create,缺少区域;使用:region选项或将区域名称导出到ENV['AWS_REGION']。但是,这是我的配置开发.rb:config.paperclip_defaults={storage::s3,s3_host_name:"s3-us-west-2.amazonaws.com",s3_credentials:{bucket:ENV['AWS_BUCKET'],access_key_id:ENV['AWS_ACCE

  9. ruby-on-rails - 在这种情况下我如何模拟一个对象?没有明显的方法可以用模拟替换对象 - 2

    假设我在Store的模型中有这个非常简单的方法:defgeocode_addressloc=Store.geocode(address)self.lat=loc.latself.lng=loc.lngend如果我想编写一些不受地理编码服务影响的测试脚本,这些脚本可能已关闭、有限制或取决于我的互联网连接,我该如何模拟地理编码服务?如果我可以将地理编码对象传递到该方法中,那将很容易,但我不知道在这种情况下该怎么做。谢谢!特里斯坦 最佳答案 使用内置模拟和stub的rspecs,你可以做这样的事情:setupdo@subject=MyCl

  10. ruby - "public/protected/private"方法是如何实现的,我该如何模拟它? - 2

    在ruby中,你可以这样做:classThingpublicdeff1puts"f1"endprivatedeff2puts"f2"endpublicdeff3puts"f3"endprivatedeff4puts"f4"endend现在f1和f3是公共(public)的,f2和f4是私有(private)的。内部发生了什么,允许您调用一个类方法,然后更改方法定义?我怎样才能实现相同的功能(表面上是创建我自己的java之类的注释)例如...classThingfundeff1puts"hey"endnotfundeff2puts"hey"endendfun和notfun将更改以下函数定

随机推荐