首页 > 其他分享 >20、BGP-LS

20、BGP-LS

时间:2024-04-15 17:11:44浏览次数:30  
标签:20 收集 IGP 拓扑 BGP LS 路由

BGP-LS

BGP-LS(BGP Link-state)汇总IGP协议收集的拓扑信息上送给上层控制器。

BGP-LS是收集网络拓扑的一种新的方式。

BGP-LS特性产生前,Switch使用IGP(OSPF或IS-IS)协议收集网络的拓扑信息,IGP协议将各个域的拓扑信息单独上送给上层控制器,在这种拓扑收集方式下,存在以下几个问题:
  • 对上层控制器的计算能力要求较高,且要求控制器也支持IGP协议及其算法;
  • 当涉及到跨IGP域拓扑信息收集时,上层控制器无法看到完整的拓扑信息,无法计算端到端的最优路径;
  • 不同的路由协议分别上送拓扑信息给上层控制器,控制器对拓扑信息的分析处理过程比较复杂。
BGP-LS特性产生后,IGP协议发现的拓扑信息由BGP协议汇总后上送给上层控制器,利用BGP协议强大的选路和算路能力,可产生以下几点优势:
  • 降低对上层控制器计算能力的要求,且不再对控制器的IGP能力有要求;
  • BGP协议将各个进程或各个AS的拓扑信息做汇总,直接将完整的拓扑信息上送给控制器,有利于路径选择和计算;
  • 网络中所有拓扑信息均通过BGP协议上送控制器,使拓扑上送协议归一化。

相关概念

BGP-LS:网络拓扑收集的一种方式,可以使拓扑收集更加简单高效的进行。

BGP-LS路由:携带网络拓扑信息的介质,一共有三种BGP-LS路由,分别用来携带节点、链路和路由前缀信息。三种路由相互配合,共同完成拓扑信息的传输。

节点路由

格式示例:[NODE][ISIS-LEVEL-1][IDENTIFIER0][LOCAL[as100][bgp-ls-identif ier11.1.1.2][ospf-area-id0.0.0.0][igp-router-id0000.0000.0001.00]]

功能:记录拓扑的节点信息。

路由中每个项目的具体含义如表1所示。


表1 节点路由格式介绍

项目

含义

NODE

标识此BGP-LS路由是节点路由。

ISIS-LEVEL-1

收集拓扑的协议,此处为IS-IS。

IDENTIFIER0

收集拓扑的协议中BGP-LS的标识。

LOCAL

标识此段信息为本地节点的信息。

as

BGP-LS的区域AS号。

bgp-ls-identifier

BGP-LS的区域标识符。

ospf-area-id

OSPF区域的标识。

igp-router-id

IGP协议的Router ID,由收集拓扑的IGP协议产生。此处从IS-IS进程的网络实体名称中获取。

链路路由

格式示例:[LINK][ISIS-LEVEL-1][IDENTIFIER0][LOCAL[as255.255][bgp-ls-identifier192.168.102.4][ospf-area-id0.0.0.0][igp-router-id0000.0000.0002.01]][REMOTE[as255.255][bgp-ls-identifier192.168.102.4][ospf-area-id0.0.0.0][igp-router-id0000.0000.0002.00]][LINK[if-address0.0.0.0][peer-address0.0.0.0][if-address::][peer-address::][mt-id0]]

功能:记录两台设备之间的链路信息。

路由中每个项目的具体含义如表2所示。

表2 链路路由格式介绍

项目

含义

LINK

标识此BGP-LS路由是链路路由。

ISIS-LEVEL-1

收集拓扑的协议,此处为IS-IS。

IDENTIFIER0

收集拓扑的协议中BGP-LS的标识。

LOCAL

标识此段信息为本地节点的信息。

as

BGP-LS的区域AS号。

bgp-ls-identifier

BGP-LS的区域标识符。

ospf-area-id

OSPF区域的标识。

igp-router-id

IGP协议的Router ID,由收集拓扑的IGP协议产生。此处从IS-IS进程的网络实体名称中获取。

REMOTE

标识此段信息为对端节点的信息。

if-address

接口地址。

peer-address

对端相连的接口地址。

mt-id

在IGP协议中用于标识接口所绑定的拓扑。

地址前缀路由

格式示例:[IPV4-PREFIX][ISIS-LEVEL-1][IDENTIFIER0][LOCAL[as100][bgp-ls-identifier192.168.102.3][ospf-area-id0.0.0.0][igp-router-id0000.0000.0001.00]][PREFIX[mt-id0][ospf-route-type0][prefix192.168.102.0/24]]

功能:记录节点可达的网段信息。

路由中每个项目的具体含义如表3所示。


表3 地址前缀路由格式介绍

项目

含义

IPV4-PREFIX

IPv4地址前缀路由,地址前缀路由分为IPv4地址前缀路由和IPv6地址前缀路由。Switch不能本地产生IPv6地址前缀路由,但可以处理来自其他厂商的IPv6地址前缀路由。

ISIS-LEVEL-1

收集拓扑的协议。

IDENTIFIER0

收集拓扑的协议中BGP-LS的标识。

LOCAL

标识此段信息为本地节点的信息。

as

BGP-LS的区域AS号。

bgp-ls-identifier

BGP-LS的区域标识符。

ospf-area-id

OSPF区域的标识。

igp-router-id

IGP协议的Router ID,由收集拓扑的IGP协议产生。此处从IS-IS进程的网络实体名称中获取。

PREFIX

标识一条IGP路由。

mt-id

在IGP协议中用于标识接口所绑定的拓扑。

ospf-route-type

OSPF的路由类型:
  • 1:Intra-Area;
  • 2:Inter-Area;
  • 3:External 1;
  • 4:External 2;
  • 5:NSSA 1;
  • 6:NSSA 2。
prefix

IGP路由的前缀地址。

应用

IGP区域内拓扑信息收集

图1所示,SwitchA、SwitchB、SwitchC和SwitchD之间通过IS-IS协议达到IP网络互连的目的。SwitchA、SwitchB、SwitchC和SwitchD同属于区域10,都是Level-2设备。在这种情况下,只需要SwitchA、SwitchB、SwitchC和SwitchD中的任何一台设备部署BGP-LS特性并与控制器建立BGP-LS邻居关系便可以达到整个网络拓扑收集和上送的目的。但为了拓扑上送的可靠性,往往选择两台或两台以上设备都部署BGP-LS特性并与控制器建立BGP-LS邻居关系,由于网络中的设备收集的拓扑信息相同,所以它们之间可以互相作为备份,当有设备出现故障时依然保证拓扑信息的及时上送。

图1 IGP区域内拓扑信息收集典型组网

IGP区域间拓扑信息收集

图2所示,SwitchA、SwitchB、SwitchC和SwitchD之间通过IS-IS协议达到IP网络互连的目的。SwitchA、SwitchB和SwitchC属于区域10,SwitchD属于区域20。SwitchA和SwitchB是Level-1设备,SwitchC是Level-1-2设备,SwitchD是Level-2设备。由于Area10和Area20中的设备使用IGP协议收集到的拓扑信息一致,所以也只需要SwitchA、SwitchB、SwitchC和SwitchD中的任何一台设备部署BGP-LS特性并与控制器建立BGP-LS邻居关系便可以达到整个网络拓扑收集和上送的目的。但为了拓扑上送的可靠性,往往选择两台或两台以上设备都部署BGP-LS特性并与控制器建立BGP-LS邻居关系,由于网络中的设备收集的拓扑信息相同,所以它们之间可以互相作为备份,当有设备出现故障时依然保证拓扑信息的及时上送。

图2 IGP区域间拓扑信息收集典型组网

BGP自治域间拓扑信息收集

图3所示,SwitchA和SwitchB属于同一自治系统,两者之间建立IS-IS邻居。SwitchA为AS内部的一台非BGP设备。SwitchB和SwitchC之间建立EBGP连接。在这种情况下,由于BGP协议(未使能BGP-LS)不能传递拓扑信息,所以AS100内的设备和AS200内的设备上收集的拓扑信息不同(都只能收集各自AS域的拓扑信息),所以此时要求至少AS100和AS200两个自制系统中都至少有一台设备使能BGP-LS特性并都与控制器建立BGP-LS邻居关系。每个自治系统中有两台或两台以上设备与控制器相连则可以保证拓扑收集与上送的可靠性。

图3 BGP自治域间拓扑信息收集典型组网1

若网络中存在两台控制器,分别与两个自治中的设备相连,如图4所示,此时若想两台控制器上都能收集到整个网络的拓扑信息,则需要两台控制器之间建立BGP-LS邻居关系或与控制器相连的SwitchB和SwitchC之间建立BGP-LS邻居关系。

图4 BGP自治域间拓扑信息收集典型组网2

为了减少与控制器连接的数量,可以选择一台(或几台)设备作为BGP-LS反射器,需要与控制器建立BGP-LS邻居的设备都与反射器建立邻居关系。

标签:20,收集,IGP,拓扑,BGP,LS,路由
From: https://www.cnblogs.com/laixufei/p/18136484

相关文章

  • 13、BGP与BFD联动
    BGP与BFD联动BGP协议通过周期性的向对等体发送报文来实现邻居检测机制。但这种机制检测到故障所需时间比较长,超过1秒钟。当数据的传输速度达到Gbit/s级别时,这种机制的检测时间将导致大量数据丢失,无法满足网络高可靠性的需求。BGP与BFD(BidirectionalForwardingDetection)联动可......
  • 01、BGP基本概念
    BGP的基本概念本章节介绍了BGP的基本概念,理解这些基本概念后,您可以更好的理解BGP的其它功能。自治系统AS(AutonomousSystem)AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。AS号分为2字节AS号和4字节AS号,其中......
  • 02、BGP工作原理
    BGP工作原理BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和5个原则。BGP的报文BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:Open报文:用于建立BGP对等体连接。Update报文:用于在对等体之间交换路由信息。......
  • 2024 Apr. 一轮省集
    Day04.2在学校摆了一上午,中午十二点出发去烟台了。居然还是去省选的那辆小车,坐起来很难受,很挤,闷得慌;靠背还没有头枕,睡觉久了脖子疼。总之就是很难受。四个小时左右到了,宾馆反正120一天,环境就那样吧。学校离着就300多米,走路就到了。刚到第一件事当然是打开美团外卖,上面弹出......
  • 2024-4-15 rpm与yum安装及管理程序 162004
    rpm与yum安装及管理程序目录rpm与yum安装及管理程序一、Linux应用程序基础1.1、应用程序与系统命令的关系1.2、典型应用程序的目录结构1.3、常见的软件包封装类型二、RPM包管理工具2.1一般命名格式2.2rpm命令的格式2.3安装卸载升级三.yum3.1基本格式3.2安装本地yum仓库四:编译......
  • P10330 [UESTCPC 2024] 黑白珠串
    原题链接1.极限构造法,黑珠数量\(\geqslant\)\(max(y_i)\),白珠数量\(\geqslant\)\(max(x_i-y_i)\)再观察样例,发现刚好把1全部放左边,0全部放右边时等号成立code#include<bits/stdc++.h>usingnamespacestd;intx,y[100005];intmain(){intk;cin>>k;......
  • IntelliJ IDEA2021.3.1 使用 MybatisCodeHelperPro插件
    摘自:https://blog.csdn.net/weixin_44321065/article/details/132576008一、下载下载破解后的MybatisCodeHelperPro的V3.2.2版本V3.2.2-CSDN或者V3.2.2-Gitee二、应用将下载下来的Zip文件放到电脑上的某个位置(最好放在Idea管理插件的plugins下)然后自行搜索Idea......
  • 记录解决VS 2022调试C++ DLL项目时卡顿的问题
    项目结构运行时为DotNet6的C#通过Cli/C++去调用C++的DLL。问题表现在VisualStudio2022中调试C++DLL代码时,按下F5、F10、F11跳转到下一行时VS卡顿会2秒左右,体验非常不好。问题原因然后发现原因是项目的配置属性中,调试那一行,调试器类型选择的是“自动”。解决此问题的方法......
  • 云原生周刊:CNCF 2023 年度调查报告 | 2024.4.15
    开源项目推荐highlight该项目是一个开源全栈监控平台。其功能包括错误监控、会话重放、日志记录、分布式跟踪等。HelmComposeHelmCompose是一个helm插件,用于在单个配置文件中管理一个或多个图表的多个版本。HAMi异构AI计算虚拟化中间件(HAMi),是一个“一站式”图表,旨在......
  • vue指令中的import不生效,如何在指令中使用import { useBaseStore, useLocalStore } fr
    在Vue指令中,不能直接使用父组件中的导入语句和变量。指令是在模板编译阶段执行的,而不是在JavaScript的运行时执行的。因此,无法在指令中直接访问父组件的导入和变量。在Vue指令中,不能直接使用ES6的import语法,因为指令是在模板编译阶段执行的,而不是在JavaScript的运行......