当前位置: 首页 > java >正文

OSPF高级特性之Overflow

一、概述

        我们都知道OSPF在同一个区域内的所有路由器都会同步LSDB,但随着网络上的路由数量或LSA不断增加,一些路由器由于系统资源有限,不能再承载更多的路由信息,这种状态就被称为数据库超限(OSPF Database Overflow)。

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

二、工作原理

         OSPF网络中所有路由器都配置相同的上限值,至于为什么要都配置成一致的这里后面再说,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同事启动Overflow状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出Overflow状态。

        那为什么我们的路由器尽量都要设置成相同的上限值呢?

        如上图所示,假如AR1的上限为1000,AR2为500,当AR1从其他区域引入了1000条路由时,往本区域进行转发,AR2收到了500条就不会进行接收了,AR2就不会从后面的LSU进行LSAck回复,那么AR1就会一直重传。

三、实验

拓扑

1、基础配置

AR1
system
sysname AR1
int g 0/0/0
ip add 10.0.12.1 24AR2
system
sysname AR2
int g 0/0/0
ip add 10.0.12.2 24
int g 0/0/1
ip add 10.0.23.2 24AR3
system
sysname AR3
int g 0/0/0
ip add 10.0.23.3 24

2、路由配置

AR1
ospf 1 router-id 1.1.1.1
area 0
netw 10.0.12.1 0.0.0.0AR2
ospf 1 router-id 2.2.2.2
area 0
netw 10.0.12.2 0.0.0.0
netw 10.0.23.2 0.0.0.0AR3
ospf 1 router-id 3.3.3.3
area 0
netw 10.0.23.3 0.0.0.0

查看OSPF邻居状态

[AR2]display ospf peer brief OSPF Process 1 with Router ID 2.2.2.2Peer Statistic Information----------------------------------------------------------------------------Area Id          Interface                        Neighbor id      State    0.0.0.0          GigabitEthernet0/0/0             1.1.1.1          Full        0.0.0.0          GigabitEthernet0/0/1             3.3.3.3          Full        ----------------------------------------------------------------------------

3、数据库超限配置 

AR2
ospf 1
lsdb-overflow-limit 4AR1
ip route-static 1.1.1.1 32 NULL 0
ip route-static 1.1.1.2 32 NULL 0
ip route-static 1.1.1.3 32 NULL 0
ip route-static 1.1.1.4 32 NULL 0
ospf 1
import-route static

查看LSDB

[AR2]display ospf lsdb OSPF Process 1 with Router ID 2.2.2.2Link State Database Area: 0.0.0.0Type      LinkState ID    AdvRouter          Age  Len   Sequence   MetricRouter    2.2.2.2         2.2.2.2            107  48    80000008       1Router    1.1.1.1         1.1.1.1             10  36    80000005       1Router    3.3.3.3         3.3.3.3            104  36    80000004       1Network   10.0.23.3       3.3.3.3            104  32    80000002       0Network   10.0.12.2       2.2.2.2            107  32    80000002       0AS External DatabaseType      LinkState ID    AdvRouter          Age  Len   Sequence   MetricExternal  1.1.1.4         1.1.1.1             10  36    80000001       1External  1.1.1.1         1.1.1.1             10  36    80000001       1External  1.1.1.3         1.1.1.1             10  36    80000001       1External  1.1.1.2         1.1.1.1             10  36    80000001       1

 可以看到此时还没有超限,因为我们设置的上限为4,所以AR2还会学习从AR1发来的LSA。

AR1
ospf 1
default-route-advertise always 
[AR2]display ospf lsdbOSPF Process 1 with Router ID 2.2.2.2Link State Database Area: 0.0.0.0Type      LinkState ID    AdvRouter          Age  Len   Sequence   MetricRouter    2.2.2.2         2.2.2.2            216  48    80000008       1Router    1.1.1.1         1.1.1.1            119  36    80000005       1Router    3.3.3.3         3.3.3.3            213  36    80000004       1Network   10.0.23.3       3.3.3.3            213  32    80000002       0Network   10.0.12.2       2.2.2.2            216  32    80000002       0AS External DatabaseType      LinkState ID    AdvRouter          Age  Len   Sequence   MetricExternal  0.0.0.0         1.1.1.1              9  36    80000001       1External  1.1.1.4         1.1.1.1            119  36    80000001       1External  1.1.1.1         1.1.1.1            119  36    80000001       1External  1.1.1.3         1.1.1.1            119  36    80000001       1External  1.1.1.2         1.1.1.1            119  36    80000001       1

Overflow上限中并不影响缺省路由,所以就算到达上限了一样可以学习缺省路由

AR1
ip route-static 1.1.1.5 32 NULL 0

此时我们在加一条静态路由去AR2上查看OSPF LSDB表项是否有变化

[AR2]display ospf lsdbOSPF Process 1 with Router ID 2.2.2.2Link State Database Area: 0.0.0.0Type      LinkState ID    AdvRouter          Age  Len   Sequence   MetricRouter    2.2.2.2         2.2.2.2            286  48    80000008       1Router    1.1.1.1         1.1.1.1            189  36    80000005       1Router    3.3.3.3         3.3.3.3            283  36    80000004       1Network   10.0.23.3       3.3.3.3            283  32    80000002       0Network   10.0.12.2       2.2.2.2            286  32    80000002       0AS External DatabaseType      LinkState ID    AdvRouter          Age  Len   Sequence   MetricExternal  0.0.0.0         1.1.1.1             79  36    80000001       1External  1.1.1.4         1.1.1.1            189  36    80000001       1External  1.1.1.1         1.1.1.1            189  36    80000001       1External  1.1.1.3         1.1.1.1            189  36    80000001       1External  1.1.1.2         1.1.1.1            189  36    80000001       1

可以看到AR2的LSDB没有变化,并没有继续学习来自AR1的LSA了。

[AR1]display ospf lsdb OSPF Process 1 with Router ID 1.1.1.1Link State Database Area: 0.0.0.0Type      LinkState ID    AdvRouter          Age  Len   Sequence   MetricRouter    2.2.2.2         2.2.2.2            284  48    80000008       1Router    1.1.1.1         1.1.1.1            185  36    80000005       1Router    3.3.3.3         3.3.3.3            282  36    80000004       1Network   10.0.23.3       3.3.3.3            282  32    80000002       0Network   10.0.12.2       2.2.2.2            284  32    80000002       0AS External DatabaseType      LinkState ID    AdvRouter          Age  Len   Sequence   MetricExternal  0.0.0.0         1.1.1.1             76  36    80000001       1External  1.1.1.5         1.1.1.1              5  36    80000001       1External  1.1.1.4         1.1.1.1            185  36    80000001       1External  1.1.1.1         1.1.1.1            185  36    80000001       1External  1.1.1.3         1.1.1.1            185  36    80000001       1External  1.1.1.2         1.1.1.1            185  36    80000001       1

但我们查看AR1的LSDB时可以看到我们刚刚引入的那条静态。

并且由于AR2收到该LSU后因为上限的原因AR2并不会发送LSAck给AR1,所以AR1就会一直重传。

我们去AR3上看看AR3的OSPF LSDB有没有受到影响

[AR3]display ospf lsdb OSPF Process 1 with Router ID 3.3.3.3Link State Database Area: 0.0.0.0Type      LinkState ID    AdvRouter          Age  Len   Sequence   MetricRouter    2.2.2.2         2.2.2.2            472  48    80000008       1Router    1.1.1.1         1.1.1.1            374  36    80000005       1Router    3.3.3.3         3.3.3.3            467  36    80000004       1Network   10.0.23.3       3.3.3.3            467  32    80000002       0Network   10.0.12.2       2.2.2.2            472  32    80000002       0AS External DatabaseType      LinkState ID    AdvRouter          Age  Len   Sequence   MetricExternal  0.0.0.0         1.1.1.1            265  36    80000001       1External  1.1.1.4         1.1.1.1            374  36    80000001       1External  1.1.1.1         1.1.1.1            374  36    80000001       1External  1.1.1.3         1.1.1.1            374  36    80000001       1External  1.1.1.2         1.1.1.1            374  36    80000001       1

可以看到AR3也没有学习到1.1.1.5的LSA,说明我们配置了AR2的数据库上限后也会影响后面的路由器。

以上就是本章的全部内容了,感谢大家的浏览观看!文章若有错误或疑问可联系博主删除更改,非常欢迎私聊博主讨论。

http://www.xdnf.cn/news/15698.html

相关文章:

  • 浅谈Rust语言特性
  • 1 渗透基础
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - snowNLP库实现中文情感分析
  • 【unitrix】 6.7 基本结构体(types.rs)
  • Python 使用期物处理并发(使用concurrent.futures模块下载)
  • Leetcode刷题营第三十三题:对称二叉树
  • 五大开源OCR开源框架评估01-Tesseract:OCR 领域的远古巨神
  • Docker安装教程
  • GaussDB join 连接的用法
  • 7.18 Java基础 |
  • 正则表达式,Collection集合,迭代器
  • 差分数组算法
  • [simdjson] 填充字符串 | `document` 对象 | on-demand 模式
  • C++并发编程-14. 利用栅栏实现同步
  • Redis学习其三(订阅发布,主从复制,哨兵模式)
  • Windows 安装WSL +Docker 部署通义千问大模型(同步解决Ubuntu启动命令闪退)
  • 图片平铺下去总是有个缝隙的解决方案
  • Vue常见指令
  • 【解码文本世界的“隐形分界线”:Windows与Linux回车换行之谜】
  • Python网络爬虫之selenium库
  • coredns使用etcd
  • Gitee 远程库多人如何协作?
  • CCF编程能力等级认证GESP—C++1级—20250628
  • QT窗口(4)-浮动窗口
  • Kotlin封装
  • 萤石摄像头C++SDK应用实例
  • 微信小程序 wx.request() 的封装
  • Github库镜像到本地私有Gitlab服务器
  • PortSwigger Labs 之 点击劫持利用
  • RPC 与 Feign 的区别笔记