BGP边界网关协议(Border Gateway Protocol)路由引入、路由反射器

一、路由引入背景

        BGP协议本身不发现路由,因此需要将其他协议路由(如IGP路由等)引入到BGP路由表中,从而将这些路由在AS之内和AS之间传播。

BGP协议支持通过以下两种方式引入路由:

  • Import方式:按协议类型将RIP、OSPF、IS-IS、静态路由和直连路由等协议的路由引入到BGP路由表中。

  • Network方式:将指定前缀和掩码的一条路由引入到BGP路由表中,该方式比Import更精确。

1、network引入

        1)主类引入(A\B\C段)该方式为聚合路由,为防止环路,需增加一条黑洞路由防环

AR1
    BGP as-number
    network ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]

ip route-static 10.0.0.0 255.0.0.0 NULL 0

        2)无类引入(指定掩码),默认产生黑洞路由

AR1
    BGP as-number
    network ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]

2、import-route引入

        1)无类引入

AR1
    BGP as-number
    import-route { direct | isis process-id | ospf process-id | rip process-id | static } [ med med | route-policy route-policy-name ] *


当引入RIP、OSPF、IS-IS等动态路由协议发现的路由时,需要指定协议进程号。

        2)主类引入

AR1
    BGP as-number
    import-route { direct | isis process-id | ospf process-id | rip process-id | static } [ med med | route-policy route-policy-name ] *
    summary automatic    自动聚合


当引入RIP、OSPF、IS-IS等动态路由协议发现的路由时,需要指定协议进程号。

二、路由表项参数

[AR5]dis bgp routing-table

 BGP Local router ID is 5.5.5.5
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 7
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.1.1.0/24        10.1.123.1      0          100        0      1?
 * i                     10.1.1.1        0          100        0      1?
 *>i  10.1.111.0/24      10.1.123.1      0          100        0      1?
 * i                     10.1.1.1        0          100        0      1?
 *>i  10.1.123.0/24      10.1.1.1        0          100        0      1?
 *>   55.5.5.0/24        0.0.0.0         8                     0      ?
 *>   55.5.5.5/32        0.0.0.0         8                     0      ?

1、Status codes

        状态代码(标识BGP路由的状态)

        1)*(valid):下一跳可达,如不可达则没有*

        2)>(best):最优路径,下一跳可达的前提下,通过十二条选路原则比较产生,最优的放入路由表

        3)d(damped):路由衰减,路由惩罚,路由发生抖动会标识为d,多次抖动不会放入路由表,主要针对EBGP

        4)h(history):抖动记录,抖动一次就会被标记为h

        5)i(internal):IBGP的路由标识,从IBGP邻居来的路由标记为i

        6)s(suppressed):抑制,当产生聚合路由,明细被抑制时,产生该标识

        7)S(stale):陈旧,老化路由标识

2、Origin

        路由的起源代码

        1)i:network的方式引入进来的

        2)e:import-route egp

        3)?:incomplete, import-route 其他路由协议

        注:上图的55.5.5.0 的网段是通过import-route direct引入的

三、BGP  组网方式

1、全互联场景

        1)全互联场景下IBGP路由信息默认不改变下一跳

              去往AR1的路由信息通过IBGP的邻居关系学习到,此时下一跳不改变

              可以同通过配置使得学习到的路由修改下一跳

<AR5>dis bgp routing-table | inc 10.1.1.0

 BGP Local router ID is 5.5.5.5
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 7
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.1.1.0/24        10.1.123.1      0          100        0      1?
<AR5>

        2)EBGP路由默认修改下一跳

              表项可知AR4与AR5之间建立EBGP的邻居关系,学习到的EBGP路由下一跳改变

<AR4>dis bgp routing-table | inc 10.1.1.0

 BGP Local router ID is 4.4.4.4
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   10.1.1.0/24        10.1.5.5                              0      235 1?
<AR4>

        3)优缺点

              优点:路由传递正常,转控平面正常

              缺点:资源消耗大,成本较高

2、部分互联场景(联盟)

注:图片为产品文档当参考图片,仅供联盟拓扑理解使用

        1)部分互联场景下,在AS内部的IBGP邻居关系会产生水平分割的现象,导致路由传递失败,业务中断,可使用联盟(Confederation),与路由反射器相比,BGP联盟更便于实现IGP扩展。

        2)配置

system-view

    bgp as-number

    confederation id as-number

    confederation peer-as as-number &<1-32>

    peer xx.xx.xx.xx as-number xxxx

配置属于联盟的子自治系统时使用的as-number在联盟内部有效。

为了提升安全性,推荐部署BGP安全性措施(参见“配置BGP认证”)。其中,以配置Keychain认证方式为例,详细配置方法请参见“举例:配置BGP使用Keychain认证”

3、部分互联场景(路由反射器)

        1)配置路由反射器时,必须具备反射器和客户端之间的IBGP邻居关系,该方式主要为打破IBGP之间的水平分割问题

        2)角色

                RR:route-reflector 路由反射器(服务器端)

                RR-C:client 路由反射器的客户端

                cluster:路由反射簇(列表)

                Non-Client:不是反射器也不是客户机的BGP设备被称为非客户机

        3)配置

bgp 235
 router-id 5.5.5.5
 peer 10.1.2.2 as-number 235
 peer 10.1.2.2 connect-interface LoopBack1
#
 ipv4-family unicast
  undo synchronization
  import-route direct route-policy loop55
  peer 10.1.2.2 enable
  peer 10.1.2.2 reflect-client
  peer 10.1.4.4 enable
  peer 10.1.234.3 enable
#
return

        4)表项

        根据表项可知,从2.2.2.2 来的路由通过RR(5.5.5.5)反射过来使得3.3.3.3学习到了,虽然此路由没有被优选

<AR3>dis bgp routing-table 10.1.1.1

 BGP routing table entry information of 10.1.1.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h02m30s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

        5)路由反射器的规则

                来自client的路由可以向客户端、EBGP邻居、非客户端进行传递

                来自EBGP邻居的路由信息可以向客户端、EBGP邻居、非客户端进行传递

                来自非客户端的的路由信息可以向客户端、EBGP邻居进行传递,但是不可以向非客户端传递路由

                配置RR指定客户端后,客户端的路由器设备并不清楚自己为客户端,只有RR设备知道

4、路由反射器防环

        因为路由反射器打破了IBGP之间的水平分割规则,可能产生环路。

        1)Originator_ID属性

                由路由的始发路由器产生,携带了本地AS内部路由发起者的Router ID

#
bgp 1
 router-id 1.1.1.1
 peer 10.1.3.3 as-number 235
 peer 10.1.3.3 ebgp-max-hop 255
 peer 10.1.3.3 connect-interface LoopBack1
 peer 10.1.123.2 as-number 235
 #
 ipv4-family unicast
  undo synchronization
  import-route direct route-policy loop111
  peer 10.1.3.3 enable
  peer 10.1.123.2 enable
#


<AR3>dis bgp routing-table 10.1.111.0

 BGP routing table entry information of 10.1.111.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h19m14s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

<AR3>

        从路由表中可以看到,AR3从AR5那里学到了AR1通告的路由,而且还可以看到该路由的Originator和Cluster_ID属性。因为AR2和AR1之间为EBGP邻居关系,所以在AS235内默认2.2.2.2为路由始发路由器。

        当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID。

        当其他BGP Speaker接收到这条路由的时候,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。

        2)Cluster_List属性

        经过一个路由反射器反射的路由,会把路由反射器cluster-id记录下俩,形成cluster-list

        默认cluster-id= router-id

        但是可以修改成不是router-id

#
bgp 235
 ipv4-family unicast
  reflector cluster-id 55.5.5.5
#
<AR3>dis bgp routing-table 10.1.111.0

 BGP routing table entry information of 10.1.111.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h00m47s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 55.5.5.5
 Not advertised to any peer yet

<AR3>

        关于RR还有其他类似备份RR等等其他应用,路由引入也可以修改许多的属性,本文仅作基本的使用了解,后续文章会慢慢深入了解。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Solidity03 Solidity变量简述

文章目录 一、变量简述1.1 状态变量1.2 局部变量1.3 全局变量1.4 注意问题 二、变量可见性2.1 public2.2 private2.3 internal2.4 默认可见性2.5 可见性的用处 三、变量初始值3.1 值类型初始值 一、变量简述 变量是指可以保存数据的内部存储单元&#xff0c;里面的数据可以在程…

数据结构---并查集

目录 一、并查集的概念 二、并查集的实现 三、并查集的应用 一、并查集的概念 在一些实际问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合…

STM32 FreeRTOS内存管理简介

在使用 FreeRTOS 创建任务、队列、信号量等对象时&#xff0c;通常都有动态创建和静态创建的方式。动态方式提供了更灵活的内存管理&#xff0c;而静态方式则更注重内存的静态分配和控制。 如果是1的&#xff0c;那么标准 C 库 malloc() 和 free() 函数有时可用于此目的&#…

构建core模块

文章目录 1.环境搭建1.sunrays-common下新建core模块2.引入依赖&#xff0c;并设置打包常规配置 2.测试使用1.启动&#xff01;1.创建模块2.引入依赖3.application.yml 配置MySQL和Minio4.创建启动类5.启动测试 2.common-web-starter1.目录2.WebController.java3.结果 3.common…

【Flink系列】6. Flink中的时间和窗口

6. Flink中的时间和窗口 在批处理统计中&#xff0c;我们可以等待一批数据都到齐后&#xff0c;统一处理。但是在实时处理统计中&#xff0c;我们是来一条就得处理一条&#xff0c;那么我们怎么统计最近一段时间内的数据呢&#xff1f;引入“窗口”。 所谓的“窗口”&#xff…

AIGC与劳动力市场:技术进步与就业结构的重塑

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;尤其是生成式AI&#xff08;AIGC&#xff09;&#xff0c;劳动力市场正经历前所未有的变革。从内容创作到自动化生产线&#xff0c;几乎每个行业都在经历一场技术的洗礼。然而&#xff0c;这场革命并不是全然…

废品回收小程序,数字化回收时代

随着科技的不断创新发展&#xff0c;废品回收在各种技术的支持下也在不断地创新&#xff0c;提高了市场的发展速度&#xff0c;不仅能够让回收效率更加高效&#xff0c;还能够让居民更加便捷地进行回收&#xff0c;推动废品回收行业的发展。 回收市场机遇 目前&#xff0c;废…

题解 CodeForces 430B Balls Game 栈 C/C++

题目传送门&#xff1a; Problem - B - Codeforceshttps://mirror.codeforces.com/contest/430/problem/B翻译&#xff1a; Iahub正在为国际信息学奥林匹克竞赛&#xff08;IOI&#xff09;做准备。有什么比玩一个类似祖玛的游戏更好的训练方法呢&#xff1f; 一排中有n个球…

【Linux】线程全解:概念、操作、互斥与同步机制、线程池实现

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长&#xff0c;行则将至 目录 &#x1f4da;一、线程概念 &#x1f4d6; 回顾进程 &#x1f4d6; 引入线程 &#x1f4d6; 总结 &a…

PDF文件提取开源工具调研总结

概述 PDF是一种日常工作中广泛使用的跨平台文档格式&#xff0c;常常包含丰富的内容&#xff1a;包括文本、图表、表格、公式、图像。在现代信息处理工作流中发挥了重要的作用&#xff0c;尤其是RAG项目中&#xff0c;通过将非结构化数据转化为结构化和可访问的信息&#xff0…

简历_使用优化的Redis自增ID策略生成分布式环境下全局唯一ID,用于用户上传数据的命名以及多种ID的生成

系列博客目录 文章目录 系列博客目录WhyRedis自增ID策略 Why 我们需要设置全局唯一ID。原因&#xff1a;当用户抢购时&#xff0c;就会生成订单并保存到tb_voucher_order这张表中&#xff0c;而订单表如果使用数据库自增ID就存在一些问题。 问题&#xff1a;id的规律性太明显、…

跨境电商使用云手机用来做什么呢?

随着跨境电商的发展&#xff0c;越来越多的卖家开始尝试使用云手机来协助他们的业务&#xff0c;这是因为云手机具有许多优势。那么&#xff0c;具体来说&#xff0c;跨境电商使用云手机可以做哪些事情呢&#xff1f; &#xff08;一&#xff09;实现多账号登录和管理 跨境电商…

计算机网络 (47)应用进程跨越网络的通信

前言 计算机网络应用进程跨越网络的通信是一个复杂而关键的过程&#xff0c;它涉及多个层面和组件的协同工作。 一、通信概述 计算机网络中的通信&#xff0c;本质上是不同主机中的应用进程之间的数据交换。为了实现这种通信&#xff0c;需要借助网络协议栈中的各层协议&#x…

Open3D 计算每个点的协方差矩阵【2025最新版】

目录 一、算法原理1、计算公式2、主要函数3、函数源码二、代码实现三、结果展示博客长期更新,本文最近更新时间为:2025年1月18日。 一、算法原理 1、计算公式 对于点云数据中的任意一点 p p p,根据其邻域内点的坐标计算其协方差矩阵。计算公式如下:

e2studio开发RA0E1(16)----配置RTC时钟及显示时间

e2studio开发RA0E1.16--配置RTC时钟及显示时间 概述视频教学样品申请完整代码下载硬件准备参考程序新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_UARTA_Open()函数原型回调函数user_uart_callba…

Go语言strings包与字符串操作:从基础到高级的全面解析

Go语言strings包与字符串操作:从基础到高级的全面解析 引言 Go语言以其简洁、高效和强大的标准库而闻名,其中strings包是处理字符串操作的核心工具。本文将深入探讨Go语言中strings包的功能及其在实际开发中的应用,帮助开发者更好地理解和使用这一工具。 1. strings包概述…

微服务学习-快速搭建

1. 速通版 1.1. git clone 拉取项目代码&#xff0c;导入 idea 中 git clone icoolkj-microservices-code: 致力于搭建微服务架构平台 1.2. git checkout v1.0.1版本 链接地址&#xff1a;icoolkj-microservices-code 标签 - Gitee.com 2. 项目服务结构 3. 实现重点步骤 …

加密货币的基本交易技术指标

是币安交易市场的基本版视图,trading View是有更复杂的参数追踪。币安的交易的技术指标有主图和副图。有很多指标&#xff0c;让ai解释一下相关概念和意义。加密货币交易中可能遇到的主图指标及其含义&#xff1a; 1. MA&#xff08;移动平均线&#xff0c;Moving Average&…

简单介绍JSONStream的使用

地址 作用 这个模块是根据需要筛选出json数据中自己所需要的数据 使用 var JSONStream require("JSONStream"); var parse require("fast-json-parse"); var fs require("fs");fs.createReadStream("./time.json").pipe(JSONSt…

UOS扩容攻略:迁移home

原文链接&#xff1a;UOS扩容攻略&#xff1a;迁移/home Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于 UOS 扩容攻略&#xff1a;迁移 /home 目录 的文章。相信很多朋友在使用 UOS 系统时&#xff0c;会遇到系统分区空间不足&#xff0c;尤其是 /home 目录存…