1.0.0 IGP高级特性简要介绍(OSPF-下篇)

二、OSPF_精细的路由控制

1.OSPF数据库上限

简介

​ OSPF技术要求同一个区域内的路由器保存着相同的LSDB信息。

​ 但随着网络上路由数量不断增加,一些路由器由于系统资源有限,不能再承载如此多的路由信息,这种状态就被称为数据库超限(OSPF Database Overflow)。

​ 对于路由信息不断增加导致路由器系统资源耗尽而失效的问题,可以通过配置Stub或NSSA区域来解决,但Stub或NSSA区域的方案不能解决动态路由增长导致的数据库超限问题。为了解决数据库超限引发的问题,通过设置LSDB中External LSA的最大条目数,可以动态限制链路数据库的规模。

原理

​ 1、当接收到的"外部路由"达到上限之后(不包含缺省外部路由),删除自己产生的外部路由,同时进入Overflow状态。

​ 2、进入该状态时,不再学习外部路由,直到Overflow状态定时器结束。

​ 3、定时器结束之后,如果外部路由数量仍然超过上限,将重新进入Overflow状态。

​ 4、直到外部路由数量恢复到上限内,才结束Overflow状态。

配置命令
# 设置LSDB中External LSA的最大条目数为400000。
ospf 1
  lsdb-overflow-limit 400000

2.默认路由的宣告

​ IGP路由中产生默认路由的方式除了引入之后,还可以通过default-route-advertise命令进行自主生成一条默认路由加入到IGP路由表中。

​ 但对于这个命令的使用有挺多的讲究,其中以下三条命令使用较多:

default-route-advertise

​ 1、前提条件是,本设备必须拥有一条不是OSPF学习到的缺省路由

default-route-advertise always

​ 1、配置该命令之后,无论是否有缺省路由,都会下发OSPF缺省路由。

​ 2、使用之后,将无视其它设备的缺省路由。如果本设备上不存在缺省路由那将会可能出现丢包情况。

如:设备开启always之后,本机并没有真正的缺省路由,只有明细路由。

当收到一条设备末知的目的路由时,将由于路由表中没有真正的缺省路由而导致丢包。

default-route-advertise permit-calculate-other

摘取华为手册中对该命令的解释:

本机存在激活的 非本OSPF进程缺省路由,则设备不再计算来自其他设备的缺省路由。

本机不存在激活的 非本OSPF进程缺省路由,则设备仍然计算来自于其他设备的缺省路由。

​ 1、前提条件是,本设备要学习到一条缺省路由,且这条路由不是得是使用该命令的OSPF中的,才可产生缺省路由。

举例:

本设备只有一条缺省路由,且是从OSPF进程1中学到的。如果在OSPF进程1中使用该命令,将没有任何效果。

本设备存在一条静态缺省路由,我于OSPF进程1中使用该命令可以发布缺省路由。

本设备从OSPF进程2中学习到一条缺省路由,我于OSPF进程1中使用该命令,将可以在进程1中发布缺省路由。

​ 2、发布缺省路由的同时,仍允许计算其他设备发布的缺省路由。这是前两者不具备的。

前两者只会接收到LSDB表中,不会进行计算。

而使用该命令之后,可以在路由表中看到其它设备发布的缺省路由,但属于非活动状态(Inactive)

图文举例理解

为了方便,拓扑画的可能有点离谱,注重现象即可。

以下主要针对default-route-advertise permit-calculate-other命令进行展开。

背景:
  • AR1创建了静态路由并于OSPF中使用default-route-advertise发布缺省路由。
  • AR2创建了静态路由并于OSPF中使用default-route-advertise permit-calculate-other发布缺省路由。
现象1:
  • 如下图,AR1/2均发布了缺省路由,同时双方也能学习到对方的缺省路由。
  • 如下图,但只能AR2能够去计算对方的缺省路由。
  • 此时AR3上所接收和计算的缺省路由情况
现象2:
  • 如果将AR2中的静态路由删除,只使用default-route-advertise permit-calculate-other命令的话?
  • 如图,AR2删除静态缺省路由之后,将使用AR1发送的缺省路由。
  • 如图,此时AR3上只有一条AR1缺省路由。因为AR2的OSPF进程使用了permit-calculate-other命令,同时学习到的缺省路由也是从这个OSPF进程中学习到的,故AR2无法生成缺省路由。
  • 如果此时AR3能够从其它地方学习到缺省路由,那AR2才能够继续发布缺省路由。
  • 如图,AR2从AR4上学习到缺省路由,那么就能够在AR3上继续看到两条缺省路由。


总结

​ 回到最开始,这三条命令都是生成缺省路由,那它们有哪些应用场景呢?

关于always的灵活应用场景:

应用于多路由协议的设备上,实现不相互引入路由的情况下也能实现网络互通。

如图:

  • AR2作为AR1的OSPF邻居,AR3的BGP邻居,需要实现AR1、AR3两者互访。
  • 由于AR1设备比较老旧,要求不能直接将AR3的路由引入到AR1中。
  • 已知AR2设备上有两者的路由,故可以用always的方式在OSPF进程中生成缺省路由。使得AR1流量到达AR2后再进行流量的中继。
  • 于AR2设备的OSPF进程添加default-route-advertise always命令。
  • 于AR2设备的BGP进程中引入OSPF路由。
  • 此时AR1、AR2、AR3上的关键路由情况 :

    AR1:
    0.0.0.0/0 O_ASE 150 1 D 10.1.12.2 GigabitEthernet0/0/1

    AR2:
    172.16.1.1/32 OSPF 10 1 D 10.1.12.1 GigabitEthernet0/0/0
    192.168.1.1/32 IBGP 255 0 RD 10.1.23.3 GigabitEthernet0/0/1
    192.168.2.1/32 IBGP 255 0 RD 10.1.23.3 GigabitEthernet0/0/1

    AR3:
    172.16.1.1/32 IBGP 255 1 RD 10.1.23.2 GigabitEthernet0/0/0

关于permit-calculate-other的灵活应用场景:

实验场景如下图,内部R1、R2、R4运行OSPF,R3作为外部路由器,R1作为默认出口向内部发送默认路由。

实现在不调整链路OSPF开销的情况下,实现主备默认路由发布以及冗余。

  • 1、正常配置好OSPF之后,R1添加默认路由指向R3,R2添加默认路由指向R3但路由优先级设置为151防止比OSPF开销大从而影响正常流量转发。

    R1
    [R1]ip route-static 0.0.0.0 0 10.1.13.3
    [R1]ospf 1
    [R1-ospf-1]default-route-advertise permit-calculate-other

    R2
    [R2]ip route-static 0.0.0.0 0 10.1.23.3 preference 151
    [R2]ospf 1
    [R2-ospf-1]default-route-advertise permit-calculate-other

  • 2、此时可以在R2上看到默认路由优先走R1,同时R4上则是只能收到1条默认路由。

    R2之所以只有R1的默认路由,因为R2自身的静态默认路由优先级为151。

因为R2上唯一生效的默认路由是从配置了permit-calculate-other命令的进程下学习到的。
故R2不会生成默认路由向其它OSPF邻居泛洪,因此R4只能学习到R1这一条默认路由。

【R1出口正常情况下的流量转发路径】

  • 当R1主出口故障之后,R2从OSPF学习到的默认路由消失,静态默认路由则生效,同时会向OSPF邻居泛洪默认路由。

    R1上关闭出接口模拟接口故障:
    [R1]int g0/0/0
    [R1-GigabitEthernet0/0/0]shutdown

【R1默认路由指向R2备用出口】

【R2默认路由浮动上来成为主默认路由】

【此时R3默认路由自动切换至R2备用出口】

【R1出口故障后的流量转发路径】

3.OSPF路由控制

参考该篇文章,已涵盖其中:路由 OSPF 优化(FA地址、路由汇总、路由过滤、区域认证、接口认证)

相关推荐
limengshi13839221 分钟前
通信工程学习:什么是TFTP简单文件传输协议
网络·网络协议·学习·信息与通信
麻辣韭菜2 小时前
网络基础 【HTTP】
网络·c++·http
Deryck_德瑞克4 小时前
Java网络通信—TCP
java·网络·tcp/ip
GodK7774 小时前
IP 数据包分包组包
服务器·网络·tcp/ip
梁诚斌4 小时前
VSOMEIP代码阅读整理(1) - 网卡状态监听
运维·服务器·网络
ZachOn1y5 小时前
计算机网络:计算机网络概述 —— 描述计算机网络的参数
网络·tcp/ip·计算机网络·考研必备
我命由我123455 小时前
SSL 协议(HTTPS 协议的关键)
网络·经验分享·笔记·学习·https·ssl·学习方法
两点王爷6 小时前
使用WebClient 快速发起请求(不使用WebClientUtils工具类)
java·网络
wusam6 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
运维·服务器·网络·docker·容器
什么鬼昵称8 小时前
Pikachu-xxe-xxe漏洞
网络·安全·xxe