OSPF-区域间路由计算

news2024/11/17 7:39:42

一、概述

前面学习了我们学习了Router-LSA和Network-LSA,它们都只能在区域内进行泛洪,而且我们之前一直主要是单区域学习。OSPF的核心是骨干区域Area 0,其它都为非骨干区域。但是在大型网络中,单区域OSPF会存在一定的问题,所以就有了OSPF多区域。

二、OSPF区域

OSPF区域
OSPF区域

OSPF域(Domain):一系列使用相同策略的连续OSPF网络设备所构成的网络。

OSPF路由器在同一个区域(Area)内网络中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。

如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题:

  • LSDB越来越庞大,同时导致OSPF路由表规模增加。路由器资源消耗多,设备性能下降,影响数据转发。
  • 基于庞大的LSDB进行路由计算变得困难。
  • 当网络拓扑变更时,LSA全域泛洪和全网SPF重计算带来巨大负担。

OSPF多区域 多区域设计有以下优点:

  • OSPF引入区域(Area)的概念,将一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网。
  • OSPF多区域的设计减小了LSA泛洪的范围,有效的把拓扑变化的影响控制在区域内,达到网络优化的目的。
  • 在区域边界可以做路由汇总,减小了路由表规模。
  • 多区域提高了网络扩展性,有利于组建大规模的网络。

基于多区域的设置,路由器在不同区域也就有不同的角色了,OSPF路由器根据其位置或功能不同,有这样几种类型:

  • 区域内路由器(Internal Router),所以接口都在一个区域内。
  • 区域边界路由器ABR(Area Border Router),接口属于两个区域以上,但必须有一个连接骨干区域
  • 骨干路由器(Backbone Router),至少有一个接口属于骨干区域。
  • 自治系统边界路由器ASBR(AS Boundary Router),该类路由器与其他AS交换路由信息。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
路由器角色
路由器角色

三、区域间路由传递

Router LSA和Network LSA只在区域内泛洪,因此通过区域划分在一定程度上降低网络设备的内存及CPU的消耗。

区域划分
区域划分

OSPF区域间路由信息传递是通过ABR产生的Network Summary LSA(3类LSA)实现的。

区域间路由
区域间路由

简单说就是由边界路由器汇总后向骨干路由器进行传递。

3.1 Network Summary LSA详解

Network Summary LSA(3类LSA)由ABR产生,用于向一个区域通告到达另一个区域的路由。

Network Summary LSA
Network Summary LSA

重要字段解释:

  • LS Type:取值3,代表Network Summary LSA。
  • Link State ID:路由的目的网络地址。
  • Advertising Router:生成LSA的Router ID。
  • Network Mask:路由的网络掩码。
  • metric:到目的地址的路由开销。
示例
示例

3.2 路由计算过程

计算过程1
计算过程1
计算过程2
计算过程2
计算过程3
计算过程3

实验拓扑:

示例1
示例1
示例1
示例1
示例2
示例2

配置示例:

# AR1,在ospf进程里面配置多个区域,在对应区域下面通告网段
ospf 1 
 area 0.0.0.0 
  network 10.0.0.0 0.0.0.255 
  network 192.168.1.0 0.0.0.255 
 area 0.0.0.1 
  network 14.1.1.0 0.0.0.255

# AR4
ospf 1 
 area 0.0.0.1 
  network 1.1.1.1 0.0.0.0 
  network 14.1.1.0 0.0.0.255 
  
# 检测邻居状态
[AR1]dis ospf peer bri

	 OSPF Process 1 with Router ID 10.0.0.1
		  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             10.0.0.2         Full        
 0.0.0.1          GigabitEthernet0/0/2             14.1.1.4         Full        
 ----------------------------------------------------------------------------

# 查看LSDB数据库,这边看到不同区域的LSDB信息
[AR1]dis ospf lsdb

	 OSPF Process 1 with Router ID 10.0.0.1
		 Link State Database 

		         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    10.0.0.2        10.0.0.2          1072  48    80000008       1
 Router    10.0.0.1        10.0.0.1          1605  48    80000006       1
 Network   10.0.0.2        10.0.0.2            89  32    80000002       0
 Sum-Net   14.1.1.0        10.0.0.2          1352  28    80000001       1
 Sum-Net   14.1.1.0        10.0.0.1          1166  28    80000001       1
 Sum-Net   1.1.1.1         10.0.0.1          1163  28    80000001       1
 
		         Area: 0.0.0.1
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    10.0.0.1        10.0.0.1          1164  36    80000003       1
 Router    14.1.1.4        14.1.1.4          1157  48    80000009       1
 Network   14.1.1.4        14.1.1.4          1157  32    80000002       0
 Sum-Net   172.16.1.0      10.0.0.1          1166  28    80000001       2
 Sum-Net   10.0.0.0        10.0.0.1          1166  28    80000001       1
 Sum-Net   192.168.1.0     10.0.0.1          1166  28    80000001       1

总结:学习了OSPF的区域概念,单区域有其局限性,出现了OSPF多区域。骨干区域Area 0,基于多区域路由器划分了不同的角色如边界路由器,内部路由器等等,区域间的路由通过Network Summary LSA(3类LSA)由ABR产生,用于向一个区域通告到达另一个区域的路由。

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1548551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hack The Box-Headless

目录 信息收集 nmap whatweb WEB web信息收集 dirmap 可利用点分析 xss攻击 RCE漏洞 提权 get user get root 信息收集 nmap 端口探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.8 --min-rate 10000 …

使用docker-compose搭建wordpress博客

1、从远程仓库拉取worldpress镜像到本地 2、新建一个项目,然后在新建的项目目录里面新建一个docker-compose.yml模版文件。 3、编写docker-compose.yml文件 4、docker-compose up 运行项目。 5、在浏览器测试 使用docker-compose搭建wordpress博客实验成功。

三相四线智能电表直接接入式接线图

大家好,今天我们要聊的是三相四线智能电表的直接接入式接线方式。别担心,我会用简单易懂的语言来解释这个看似复杂的主题。 首先,我们得知道什么是三相四线电表。在我们的生活中,电力供应通常分为单相和三相。三相电,就…

Python中的数据类型有四类八种如何理解?

在Python中,数据类型大致可以分为四大类,包含了八种基本的数据类型,这些分类有助于理解和使用Python进行编程。这四大类分别是: 数字类型 (Numeric Types): 整型 (int): 表示没有小数部分的整数,可以是正数、负数或零。…

【爬虫基础】第2讲 使用Urllib库创建第一个爬虫程序

Urllib 是 Python 的标准库,它提供了一系列用于处理 URL 的函数和类,包括发送 HTTP 请求、处理 HTTP 响应、解析 URL 等功能。可以使用 urllib 来编写简单的网络爬虫。 request:它是最基本的HTTP请求模块,可以用来模拟发送请求。只…

如何利用OpenCV4.9离散傅里叶变换

返回:OpenCV系列文章目录(持续更新中......) 上一篇:如何利用OpenCV4.9 更改图像的对比度和亮度 下一篇: 目标 我们将寻求以下问题的答案: 什么是傅里叶变换,为什么要使用它?如何在 OpenCV 中做到这一点…

Spring6 (1)

Spring 1、简介:2、第一个程序2、set注入2.1 简单数据类型2.2测试2.3 注入Properties2.4 p命名空间注入2.5 c命名空间注入2.6 util注入2.6 引入外部配置文件 1、简介: 自己的理解:spring其实就是一个容器,也可以说是一个框架&…

腾讯云轻量4核8G12M服务器配置4C8G12M详解

4核8G是云服务器的参数,代表云服务器的硬件配置和网络带宽,4核代表CPU、8G是指内存、12M代表带宽值为12Mbps,腾讯云百科txybk.com以腾讯云轻量应用服务器4核8G12M带宽配置为例,来详细介绍下服务器参数: 4c8g是什么意思…

高阶数据结构 <红黑树>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 目录 前言正文红黑树简介红黑树整体结构红黑树节点的定义红黑树主体类设计红黑树的插入函数情况一:变色情况二:变色旋转单旋情况双旋情况 完整插入代码 关于红黑树红黑树检…

鸿蒙OS实例:同步获取应用配置的【versionCode和versionName】

1.同步方式获取 首先需要导包&#xff1a; import bundleManager from ohos.bundle.bundleManager 工具类&#xff1a; public static async getVersionName(): Promise<string> {try {let bundleInfo await bundleManager.getBundleInfoForSelf(bundleManager.Bundle…

树状数组及应用

目录 1.树状数组的概念与基本编码 1.1.引导 1.2.lowbit(x) 1.3.树状数组的编码 2.树状数组的基本应用 2.1.单点修改&#xff0b;区间查询 2.2.区间修改单点查询 例题&#xff1a; 2.3.区间修改&#xff0b;区间查询 例题&#xff1a; 如果数列A是静态不变的&#xff…

并发学习25--多线程 ThreadPoolExecutor

类图&#xff1a;定义了一些重要的接口和实现类 线程池的几种状态&#xff1a; ThreadPoolExecutor构造方法 1.救急线程 线程池中会有核心线程和救急线程&#xff1b;救急线程数最大线程数-核心线程数。而救急线程会在阻塞队列已经占满的情况下&#xff0c;执行下一个即将要被…

RK3568-开启ptp服务

硬件支持 mac或者phy需要支持ptp驱动支持 CONFIG_PTP_1588_CLOCK=y虚拟机端:虚拟机只支持软件时间戳。 安装ptp服务:sudo apt-get install linuxptp 修改ptp服务:sudo vi /lib/systemd/system/ptp4l.service,修改为ens33网口,-S表示使用软件时间戳。forlinx@ubuntu:~$ s…

Redis修改开源协议,6大备胎重见天日

背景&#xff1a;Redis2018年以来修改了多次开源协议&#xff0c;以前是把一些高级功能收费&#xff0c;这次彻底怒了&#xff0c;把核心代码的协议修改为RSALv2和SSPL双重协议&#xff0c;这个修改对普通用户不受影响&#xff0c;是向所有云厂商开炮&#xff0c;以后云厂商将不…

迁移android studio 模拟器位置

android studio 初始位置是安装在c盘&#xff0c;若是要迁移需 1创建一个目标位置如我的F:/avd 2在系统环境变量里面设置新的地址 变量名&#xff1a;ANDROID_SDK_HOME 变量值&#xff1a;F:/avd 3最重要的是文件复制&#xff0c;将C盘里面avd的上层目录.android的目录整体…

C++ static静态变量详解

目录 觉得有用就给博主点个赞吧&#xff01;谢谢啦&#xff01;嘻嘻嘻 概念&#xff1a; 特性 如何计算一个类创建了多少个对象&#xff1f; 概念&#xff1a; 用static关键字修饰的成员变量叫做静态成员变量 在类内部&#xff0c;但是属于全局&#xff0c;不属于任意一个…

前端调用接口地址跨越问题,nginx配置处理

在nginx配置里面添加add_header如下&#xff1a; add_header Access-Control-Allow-Origin *; #add_header Access-Control-Allow-Origin http://localhost:8080 always; add_header Access-Control-Allow-Methods GET, POST, PUT, D…

JavaScript Uncaught ReferenceError: WScript is not defined

项目场景&#xff1a; 最近在Visual Studio 2019上编译libmodbus库&#xff0c;出现了很多问题&#xff0c;一一解决特此记录下来。 问题描述 首先就是configure.js文件的问题&#xff0c;它会生成两个很重要的头文件modbus_version.h和config.h&#xff0c;这两个头文件其中…

【Lazy ORM 框架学习】

Gitee 点赞关注不迷路 项目地址 快速入门 模块所属层级描述快照版本正式版本wu-database-lazy-lambdalambda针对不同数据源wu-database-lazy-orm-coreorm 核心orm核心处理wu-database-lazy-sqlsql核心处理成处理sql解析、sql执行、sql映射wu-elasticsearch-starterESESwu-hb…

【React】vite + react 项目,进行配置 eslint

安装与配置 eslint 1 安装 eslint @babel/eslint-parser2 初始化配置 eslint3 安装 vite-plugin-eslint4 配置 vite.config.js 文件5 修改 eslint 默认配置1 安装 eslint @babel/eslint-parser npm i -D eslint @babel/eslint-parser2 初始化配置 eslint npx eslint --init相…