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段)该方式为聚合路由,为防止环路,需增加一条黑洞路由防环

AR1BGP as-numbernetwork ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]ip route-static 10.0.0.0 255.0.0.0 NULL 0

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

AR1BGP as-numbernetwork ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]

2、import-route引入

        1)无类引入

AR1BGP as-numberimport-route { direct | isis process-id | ospf process-id | rip process-id | static } [ med med | route-policy route-policy-name ] *当引入RIP、OSPF、IS-IS等动态路由协议发现的路由时,需要指定协议进程号。

        2)主类引入

AR1BGP as-numberimport-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-tableBGP Local router ID is 5.5.5.5Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 7Network            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.0BGP Local router ID is 5.5.5.5Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 7Network            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.0BGP Local router ID is 4.4.4.4Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 4Network            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-viewbgp as-numberconfederation id as-numberconfederation 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 235router-id 5.5.5.5peer 10.1.2.2 as-number 235peer 10.1.2.2 connect-interface LoopBack1
#ipv4-family unicastundo synchronizationimport-route direct route-policy loop55peer 10.1.2.2 enablepeer 10.1.2.2 reflect-clientpeer 10.1.4.4 enablepeer 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.1BGP routing table entry information of 10.1.1.0/24:From: 10.1.45.5 (5.5.5.5)Route Duration: 00h02m30sRelay IP Nexthop: 0.0.0.0Relay IP Out-Interface: GigabitEthernet0/0/0Original nexthop: 10.1.123.1Qos information : 0x0AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster ListOriginator:  2.2.2.2Cluster list: 5.5.5.5Not advertised to any peer yet

        5)路由反射器的规则

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

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

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

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

4、路由反射器防环

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

        1)Originator_ID属性

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

#
bgp 1router-id 1.1.1.1peer 10.1.3.3 as-number 235peer 10.1.3.3 ebgp-max-hop 255peer 10.1.3.3 connect-interface LoopBack1peer 10.1.123.2 as-number 235#ipv4-family unicastundo synchronizationimport-route direct route-policy loop111peer 10.1.3.3 enablepeer 10.1.123.2 enable
#<AR3>dis bgp routing-table 10.1.111.0BGP routing table entry information of 10.1.111.0/24:From: 10.1.45.5 (5.5.5.5)Route Duration: 00h19m14sRelay IP Nexthop: 0.0.0.0Relay IP Out-Interface: GigabitEthernet0/0/0Original nexthop: 10.1.123.1Qos information : 0x0AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster ListOriginator:  2.2.2.2Cluster list: 5.5.5.5Not 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 235ipv4-family unicastreflector cluster-id 55.5.5.5
#
<AR3>dis bgp routing-table 10.1.111.0BGP routing table entry information of 10.1.111.0/24:From: 10.1.45.5 (5.5.5.5)Route Duration: 00h00m47sRelay IP Nexthop: 0.0.0.0Relay IP Out-Interface: GigabitEthernet0/0/0Original nexthop: 10.1.123.1Qos information : 0x0AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster ListOriginator:  2.2.2.2Cluster list: 55.5.5.5Not advertised to any peer yet<AR3>

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

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

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

相关文章

使用FFmpeg和Python将短视频转换为GIF的使用指南

使用FFmpeg和Python将短视频转换为GIF的使用指南 在数字时代&#xff0c;GIF动图已成为表达情感和分享幽默的重要媒介。无论是社交媒体上的搞笑片段还是创意项目中的视觉效果&#xff0c;GIF都能迅速抓住观众的注意力。然而&#xff0c;很多人不知道如何将短视频转换为GIF。本…

LLM - 大模型 ScallingLaws 的迁移学习与混合训练(PLM) 教程(3)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145212097 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…

解决leetcode第3418题机器人可以获得的最大金币数

3418.机器人可以获得的最大金币数 难度&#xff1a;中等 问题描述&#xff1a; 给你一个mxn的网格。一个机器人从网格的左上角(0,0)出发&#xff0c;目标是到达网格的右下角(m-1,n-1)。在任意时刻&#xff0c;机器人只能向右或向下移动。 网格中的每个单元格包含一个值coin…

蓝桥杯 Python 组知识点容斥原理

容斥原理 这张图初中或者高中数学课应该画过 也就是通过这个简单的例子引出容斥原理的公式 这张图的面积&#xff1a;s1 s3 s7 - 2 * s2 - 2 * s4 - 2 * s6 3 * s5 通过此引导出容斥原理公式 那么下面来一起看看题目 题目描述 给定 n,m 请求出所有 n 位十进制整数中有多…

GitLab:添加SSH密钥之前,您不能通过SSH来拉取或推送项目代码

1、查看服务器是否配置过 [rootkingbal-ecs-7612 ~]# cd .ssh/ [rootkingbal-ecs-7612 .ssh]# ls authorized_keys id_ed25519 id_ed25519.pub id_rsa id_rsa.pub2、创建密钥 $ ssh-keygen -t rsa -C kingbalkingbal.com # -C 后写你的邮箱 一路回车 3、复制密钥 [rootk…

day10_Structured Steaming

文章目录 Structured Steaming一、结构化流介绍&#xff08;了解&#xff09;1、有界和无界数据2、基本介绍3、使用三大步骤(掌握)4.回顾sparkSQL的词频统计案例 二、结构化流的编程模型&#xff08;掌握&#xff09;1、数据结构2、读取数据源2.1 File Source2.2 Socket Source…

【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)

单例模式 作用&#xff1a;单例模式的核心是保证一个类只有一个实例&#xff0c;并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全&#xff0c;调用效率高 &#xff0c;但是不能延迟加载懒汉式线程安全&#xff0c;调用效率不高&#xff0c;能延迟加载双重检…

无公网IP 实现外网访问本地 Docker 部署 Navidrome

Navidrome 是一款可以在 macOS、Linux、Windows以及 Docker 等平台上运行的跨平台开源音乐服务器应用&#xff0c;它支持传输常见的 MP3、FLAC、WAV等音频格式。允许用户通过 Web 界面或 API 进行音乐库的管理和访问。本文就介绍如何快速在 Linux 系统使用 Docker 进行本地部署…

解决conda create速度过慢的问题

问题 构建了docker容器 想在容器中创建conda环境&#xff0c;但是conda create的时候速度一直很慢 解决办法 宿主机安装的是anaconda 能正常conda create,容器里安装的是miniforge conda create的时候速度一直很慢&#xff0c;因为容器和宿主机共享网络了&#xff0c;宿主机…

【Hive】新增字段(column)后,旧分区无法更新数据问题

TOC 【一】问题描述 Hive修改数据表结构的需求&#xff0c;比如&#xff1a;增加一个新字段。 如果使用如下语句新增列&#xff0c;可以成功添加列col1。但如果数据表tb已经有旧的分区&#xff08;例如&#xff1a;dt20190101&#xff09;&#xff0c;则该旧分区中的col1将为…

【Python】Selenium根据网页页面长度,模拟向下滚动鼠标,直到网页底部的操作

最近在弄selenium的爬取的过程中&#xff0c;我发现一些网站上的表格&#xff0c;是需要手动拉到底部才能加载完成的。 如果没有拉到底部&#xff0c;那么在获取网页表格的时候&#xff0c;表格就会只有显示的一部分&#xff0c;页面就不完整。 所以我就整理了一些模拟滚动鼠…

openharmony电源管理子系统

电源管理子系统 简介目录使用说明相关仓 简介 电源管理子系统提供如下功能&#xff1a; 重启服务&#xff1a;系统重启和下电。系统电源管理服务&#xff1a;系统电源状态管理和休眠运行锁管理。显示相关的能耗调节&#xff1a;包括根据环境光调节背光亮度&#xff0c;和根…

麒麟操作系统服务架构保姆级教程(十一)https配置

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 在运维工作中&#xff0c;加密和安全的作用是十分重要的&#xff0c;如果仅仅用http协议来对外展示我们的网站&#xff0c;过一段时间就会发现网站首页被人奇奇怪怪的篡改了&#xff0c;本来好好的博…

RabbitMQ---消息确认和持久化

&#xff08;一&#xff09;消息确认 1.概念 生产者发送消息后&#xff0c;到达消费端会有以下情况&#xff1a; 1.消息处理成功 2.消息处理异常 如果RabbitMQ把消息发送给消费者后就把消息删除&#xff0c;那么就可能会导致&#xff0c;消息处理异常想要再获取这条消息的时…

Linux:System V - 共享内存

1.System V共享内存的原理 通过为用户提供系统调用接口&#xff0c;让用户可以申请一块空间&#xff0c;进程A/B也可以通过系统调用接口将创建好的内存通过页表映射进进程的地址空间。完成让不同的两个进程看见同一份资源的目的。如果未来不想继续通信&#xff0c;取消进程和内…

SpringBoot错误码国际化

先看测试效果&#xff1a; 1. 设置中文 2.设置英文 文件结构 1.中文和英文的错误消息配置 package com.ldj.mybatisflex.common;import lombok.Getter;/*** User: ldj* Date: 2025/1/12* Time: 17:50* Description: 异常消息枚举*/ Getter public enum ExceptionEnum {//…

道旅科技借助云消息队列 Kafka 版加速旅游大数据创新发展

作者&#xff1a;寒空、横槊、娜米、公仪 道旅科技&#xff1a;科技驱动&#xff0c;引领全球旅游分销服务 道旅科技 &#xff08;https://www.didatravel.com/home&#xff09; 成立于 2012 年&#xff0c;总部位于中国深圳&#xff0c;是一家以科技驱动的全球酒店资源批发商…

Solidity01 Solidity极简入门

一、Solidity 简介 Solidity 是一种用于编写以太坊虚拟机&#xff08;EVM&#xff09;智能合约的编程语言。我认为掌握 Solidity 是参与链上项目的必备技能&#xff1a;区块链项目大部分是开源的&#xff0c;如果你能读懂代码&#xff0c;就可以规避很多亏钱项目。 Solidity …

如何使用WPS的JS宏实现Word表格的自动编号

如何使用WPS的JS宏实现Word表格的自动编号&#xff1f;如下图&#xff0c;想要给表格的编号列中添加序号。 使用WPS的JS宏可以实现自动编号&#xff0c;代码如下&#xff1a; n Selection.Tables.Item(1).Rows.Count;for(i 2;i<n;i){Selection.Tables.Item(1).Cell(i,1).…

Python在多个Excel文件中找出缺失数据行数多的文件

本文介绍基于Python语言&#xff0c;针对一个文件夹下大量的Excel表格文件&#xff0c;基于其中每一个文件内、某一列数据的特征&#xff0c;对其加以筛选&#xff0c;并将符合要求与不符合要求的文件分别复制到另外两个新的文件夹中的方法。 首先&#xff0c;我们来明确一下本…