BGP-LS产生的原因

BGP Link State是一种新型的收集网络拓扑信息的技术。

传统网络拓扑信息收集方式是路由器使用IGP(OSPF或IS-IS)协议收集网络拓扑信息,不同网络域中的IGP协议将各个域的拓扑信息单独上送给上层控制器,在这种拓扑收集方式下,存在以下几个问题:

•对上层控制器的计算能力要求较高,且要求控制器也支持IGP协议及其算法。

•当涉及到跨IGP域拓扑信息收集时,上层控制器无法计算到完整的拓扑信息,可能无法计算端到端的最优路径。

•不同的IGP协议分别上送拓扑信息给上层控制器,控制器对拓扑信息的分析处理过程比较复杂。

BGP-LS的优势

BGP-LS特性产生后,IGP协议发现的拓扑信息由BGP协议汇总后上送给上层控制器,利用BGP协议强大的选路和算路能力,有以下几点优势:

•降低对上层控制器计算能力的要求

控制器不需要支持IGP能力,仅需支持BGP即可。

•BGP协议汇总网络拓扑信息

各个进程或各个AS的拓扑信息,直接将完整的拓扑信息上送给控制器,有利于整个网络的路径选择和计算。

•简化拓扑上送协议

网络中所有拓扑信息均通过BGP协议上送控制器。

BGP-LS原理

BGP-LS新定义了一系列链路状态NLRI,分别用来携带节点、链路、路由前缀信息、IPv6路由前缀信息、SRv6 SID路由信息和TE Policy路由信息,这几种路由相互配合,共同完成拓扑信息的传输。链路状态NLRI携带在MP_REACH_NLRI或者MP_UNREACH_NLRI属性中,通过BGP Update消息通告。

BGP-LS目前定义了如下6种链路状态NLRI

•Node NLRI(节点 NLRI):记录拓扑的节点信息

格式示例:

[NODE][ISIS-LEVEL-1][IDENTIFIER0][LOCAL[as100][bgp-ls-identifier10.1.1.2][ospf-area-id0.0.0.0][igp-router-id0000.0000.0001.00]]

•Link NLRI(链路 NLRI):记录两台设备之间的链路信息

格式示例:

[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]]

•IPv4 Topology Prefix NLRI(IPv4 拓扑前缀 NLRI ):记录节点可达的网段信息

格式示例:

[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]]

•IPv6 Topology Prefix NLRI(IPv6 拓扑前缀 NLRI):记录节点可达的网段信息

格式示例:

[IPV6-PREFIX][ISIS-LEVEL-2][IDENTIFIER100][LOCAL[as200][bgp-ls-identifier192.168.11.11][ospf-area-id0.0.0.0][igp-router-id0000.0000.0004.00]][PREFIX[mt-id0][ospf-route-type0][prefix4::4/128]]

•SRv6 Sid NLRI:记录节点可达的网段信息

格式示例:

[SRV6-SID][ISIS-LEVEL-2][IDENTIFIER100][LOCAL[as200][bgp-ls-identifier192.168.11.11][ospf-area-id0.0.0.0][igp-router-id0000.0000.0004.00]][SID[mt-id0][sid2001:db8:1::1]]

•TE Policy NLRI:记录SR TE Policy相关的拓扑及状态信息

格式示例:

[TEPOLICY][SEGMENT-ROUTING][IDENTIFIER0][LOCAL[as100][bgp-ls-identifier1.1.1.1][bgp-router-id1.1.1.2][ipv4-router-id1.1.1.9][ipv6-router-id::]][TE[protocol-origin3][Flag0][endpoint2.2.2.2][color123][originator-as0][originator-address0.0.0.0][discriminator500]]

使用信而泰测试仪进行BGP-LS基本功能测试

信而泰DarYu系列L2~3层高端仪表支BGP-LS的路由构建、路由解析、拓扑生成等功能。

典型应用场景:

测试仪一端模拟网络,使用IGP(isis)向被测设备通告网络拓扑,另一端模拟上层控制器,接收被测设备发来的BGP-LS路由并计算生成网络拓扑。

构造模型步骤:以下介绍IPv4 BGP-LS测试模型,IPv6 BGP-LS测试方法相似,本文不展开介绍。

1.使用2个端口进行测试,端口1模拟IGP侧,向DUT通告一张网络拓扑。端口2模拟BGP-LS侧,接收DUT生成的BGP-LS路由并根据这些路由计算出IGP网络拓扑;

2.IGP侧端口使用ISIS协议,模拟一张2x2的网格型拓扑,Emulated Router位置选择Attached;

3.配置ISIS时可选“使能TE配置”,通告每个节点间的链路信息,每个节点都通告IPv4和IPv6路由各1条;

4.完成后可以检查每个节点的信息,确认无误后继续进行配置;

5.在BGP-LS侧端口创建IPv4 BGP session,使能“查看路由”选项和BGP-LS能力;

6.测试仪启动ISIS和BGP,在DUT上分别检查协议是否正常UP;

7. 在DUT上检查BGP-LS路由统计;

8.在测试仪BGP-LS侧端口点击“查看BGP路由“,查看接收到的BGP-LS路由信息;

9.查看NODE路由信息;

10.查看LINK路由信息;

11.查看IPv4 prefix路由信息;

12.查看IPv6 prefix路由信息;

13.在测试仪BGP-LS侧端口点击“查看BGP-LS拓扑图“;

14.测试仪根据接收到的BGP-LS路由信息计算并生成拓扑图,在浏览器中显示;

BGP-LS原理及基本功能测试方法的更多相关文章

  1. 简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)

    原始出处:www.cnblogs.com/Charltsing/p/CellLight.html QQ:564955427 Excel单元格行列指示的实现原理(俗称聚光灯功能) 单元格行列指示功能在录 ...

  2. Web 常用功能测试方法

    功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能.常用的测试方法如下: 1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确. 2. 相 ...

  3. 常用的web功能测试方法

    功能测试就是对产品各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求功能,即是否满足需求.常用的测试方法如下: 1.页面连接检查:每一个连接是否都有对应的页面,并且页面之间切换正确. ...

  4. 一、VIP课程:互联网工程专题 05-快速掌握Jenkins原理与核心功能

    第五课:快速掌握jenkins核心功能.docx 2.164 (2019-02) and newer: Java 8 or Java 11 一.jenkins 概述与环境配置 知识点: 关于可持续化集 ...

  5. golang中字符串的底层实现原理和常见功能

    1. 字符串的底层实现原理 package main import ( "fmt" "strconv" "unicode/utf8" ) f ...

  6. Ls 命令执行什么功能?可以带哪些参数,有什么区别?

    ls 执行的功能:列出指定目录中的目录,以及文件 哪些参数以及区别:a 所有文件 l 详细信息,包括大小字节数,可读可写可执行的权限等

  7. Ls 命令执行什么功能? 可以带哪些参数,有什么区别?

    ls 执行的功能: 列出指定目录中的目录,以及文件哪些参数以及区别: a 所有文件 l 详细信息,包括大小字节数,可读可写可执行的权限等

  8. Openstack组件实现原理 — Keystone认证功能

    目录 目录 前言 Keystone安装列表 Keystone架构 Keystone的管理对象 一个理解Keystone管理对象功能的例子 Keystone管理对象之间的关系 Keystone V3的新 ...

  9. linux系统编程之文件与IO(六):实现ls -l功能

    本文利用以下系统调用实现ls -l命令的功能: 1,lstat:获得文件状态, 2,getpwuid: #include <pwd.h> struct passwd *getpwuid(u ...

  10. 边界网关协议BGP

    Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...

随机推荐

  1. ChatMoney让你变成HR高手!

    本文由 ChatMoney团队出品 在快节奏的现代职场中,招聘是每一个企业都绕不开的重要环节.然而,传统的招聘流程往往繁琐而低效,从海量简历的筛选,再到后续的评估与决策,每一个环节都耗费着HR人员大量 ...

  2. 快来玩玩便捷、高效的Demo练习场

    Demo练习场 Vonajs 提供了一个 Demo 练习场的功能,允许我们非常方便.快捷的对代码做测试,对想法做验证 步骤 简而言之,Demo练习场的使用只需两步:第一步写代码,第二步执行终端命令.具 ...

  3. 前/后向自动微分的简单推导与rust简单实现

    自动微分不同于数值微分与符号微分, 能够在保证速度的情况下实现高精度的求某个可微函数的定点微分值. 下面将简要介绍其原理, 并给出 rust 的两种微分方式的基本实现. 微分方法简介 数值微分 利用微 ...

  4. 直播预约丨《袋鼠云大数据实操指南》No.4:数据服务API实战解读,助力企业数字化跃迁

    近年来,新质生产力.数据要素及数据资产入表等新兴概念犹如一股强劲的浪潮,持续冲击并革新着企业数字化转型的观念视野,昭示着一个以数据为核心驱动力的新时代正稳步启幕. 面对这些引领经济转型的新兴概念,为了 ...

  5. 3-6softmax回归从0开始实现

    3-6softmax回归从0开始实现 import torch from IPython import display from d2l import torch as d2l batch_size ...

  6. C# WinFomr 组合快捷键

    private void 控件名称_KeyDown(object sender, KeyEventArgs e) { //如果只是按了回车,而不是按组合快捷键就执行 if (e.KeyCode == ...

  7. java--Hibernate查询、连接池、二级缓存

    hibernate查询 1) Get/load主键查询 2) 对象导航查询 3) HQL查询, Hibernate Query language hibernate 提供的面向对象的查询语言. 4) ...

  8. js 随机数 转 http://www.cnblogs.com/banbu/archive/2012/07/25/2607880.html

    <script>   function GetRandomNum(Min,Max){   var Range = Max - Min;   var Rand = Math.random() ...

  9. java 接口sort comparable

    简介 java 没有对于多继承的实现,为了间接实现多继承,采用了接口的概念 code package cn; import java.util.Arrays; public class Employe ...

  10. torch.randn(*tensor_shape, **kwargs)

    ` randn(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False, pin_ ...