BGP协议路由黑洞
一、实验环境
1、分公司与运营商AS自治系统内运行IGP路由协议OSPF、RIP或静态路由,AS自治系统内通过IBGP路由协议建立BGP邻居关系。
2、公司AS自治系统与运营商AS自治系统间运行EBGP路由协议。
3、通过loopback建立IBGP与EBGP邻居关系,发挥loopback建立邻居的优势。
4、BGP协议解决大中型网络中的路由条目过多问题,提高硬件资源的利用率、网络稳定性。
二、专业术语
1、防环
EBGP的水平分割:AS之间的防环,路由器不收带有自己AS号的路由更新。
IBGP的水平分割:从IBGP收到的路由不会传递给另一个IBGP。
RR的防环:RR路由反射器打破了IBGP只传一跳的规则,所以需要通过cluster-id防环。
2、路由黑洞
什么是黑洞?简而言之就是世上所有存在的实物或虚拟物品,靠近黑洞就会消失不见,这种就是黑洞。而路由黑洞就是指它会默默地将数据包丢弃,使所有数据包有去无回。由于BGP防环机制的存在,BGP中间途经的路由器不会获知外部的路由。
如图中的路由黑洞,就存在于AR3上,根据BGP建立邻居的规则,只要TCP可达,便可建立邻居关系,所以图中AR2与AR4可以直接建立iBGP邻居关系。而在AR3上不配置BGP,此时AS100的loopback 接口1.1.1.1与AS300的loopback接口5.5.5.5之间进行通信时,到达AR3时,数据包便会被丢弃。AR3即路由黑洞。
3、iGP与BGP同步
在现实环境中,若IGP路由表中要拥有全部BGP路由,会发生路由膨胀,降低路由器的性能,因此会关掉BGP同步,但关闭后有可能造成路由黑洞(运行BGP的设备没有路由),所以有了路由反射器、BGP联盟、mpls等手段解决数据黑洞。
验证:华为设备都是关闭BGP同步的,不支持开启BGP的同步!undo synchronization:关闭BGP与IGP的同步功能,如下图:
从上图可看出,并没有synchronization命令用于开启同步。为减少路由条目,提升路由器的性能,提高硬件资源的利用率,本例采用iBGP内建立邻居关系的方式处理与GRE隧道的方式解决路由黑洞问题。
4、BGP的全互连
是指在一个自治系统(AS)内的所有BGP路由器都建立直接的邻居关系,确保每个路由器都能直接与其他所有路由器通信。这种配置方式可以避免路由环路和路由黑洞的问题,确保路由信息的准确传递。
三、iBGP与EBGP的配置过程
1、【AR1】配置:
System-view
sysname AR1
router id 1.1.1.1
interface GigabitEthernet0/0/1
ip address 10.1.12.1 255.255.255.0
interface GigabitEthernet0/0/2
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
bgp 100
peer 2.2.2.2 as-number 200
peer 2.2.2.2 ebgp-max-hop 255
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 1.1.1.1 255.255.255.255
peer 2.2.2.2 enable
ip route-static 0.0.0.0 0.0.0.0 10.1.12.2
2、【AR2】配置:
System-view
sysname AR2
router id 2.2.2.2
interface GigabitEthernet0/0/1
ip address 10.1.12.2 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.1.23.1 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
bgp 200
peer 1.1.1.1 as-number 100
peer 1.1.1.1 ebgp-max-hop 255
peer 1.1.1.1 connect-interface LoopBack0
peer 4.4.4.4 as-number 200
ipv4-family unicast
undo synchronization
network 2.2.2.2 255.255.255.255
peer 1.1.1.1 enable
peer 4.4.4.4 enable
peer 4.4.4.4 next-hop-local
ospf 1
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 10.1.12.0 0.0.0.255
network 10.1.23.0 0.0.0.255
ip route-static 1.1.1.1 255.255.255.255 10.1.12.1
3、【AR3】配置:
System-view
sysname AR3
router id 3.3.3.3
interface GigabitEthernet0/0/1
ip address 10.1.34.1 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.1.23.3 255.255.255.0
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
ospf 1
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 10.1.23.0 0.0.0.255
network 10.1.34.0 0.0.0.255
4、【AR4】配置:
System-view
sysname AR4
router id 4.4.4.4
interface GigabitEthernet0/0/1
ip address 10.1.34.4 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.1.45.4 255.255.255.0
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
peer 5.5.5.5 as-number 300
peer 5.5.5.5 ebgp-max-hop 255
peer 5.5.5.5 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 4.4.4.4 255.255.255.255
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
peer 5.5.5.5 enable
ospf 1
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 10.1.34.0 0.0.0.255
network 10.1.45.0 0.0.0.255
ip route-static 5.5.5.5 255.255.255.255 10.1.45.5
5、【AR5】配置:
System-view
sysname AR5
router id 5.5.5.5
interface GigabitEthernet0/0/2
ip address 10.1.45.5 255.255.255.0
interface LoopBack0
ip address 5.5.5.5 255.255.255.255
bgp 300
peer 4.4.4.4 as-number 200
peer 4.4.4.4 ebgp-max-hop 255
peer 4.4.4.4 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 4.4.4.4 enable
ip route-static 0.0.0.0 0.0.0.0 10.1.45.4
四、验证iBGP与EBGP邻居关系
(一)验证BGP邻居关系
1、验证EBGP邻居关系
(1)在AR2上查看BGP邻居,可以看出与AR1的1.1.1.1建立了邻居关系,也与AR4的4.4.4.4建立了邻居关系,如下图:
(2)在AR2上查看EBGP邻居,可以看出AR2与AR1建立的是EBGP邻居关系,如下图:
2、在AR2上查看iBGP邻居关系,可以看出AR2与AR4建立的是iBGP邻居关系,如下图:
3、在AR4上同样可验证EBGP与iBGP邻居关系,此处不再赘述。
(二)查看路由表
1、查看BGP路由表
(1)在AR1上查看BGP路由表,可以看出,AR1上有EBGP邻居AR2的2.2.2.2与直连路由表,并没有AS200自治系统中的路由,也没有AR4邻居EBGP之外的路由5.5.5.5,所以BGP能减少路由条目,为路由器减负。
(2)在AR2上查看BGP路由表,可以看出有自治系统AS100的BGP路由与AS300的BGP路由,其中*>代表最优路由,i代表iBGP, ?代表引入的路由,AR2上有AS100的1.1.1.1的路由,但是没有AS300的5.5.5.5的路由,因为AR3上存在路由黑洞,AR3没有配置BGP邻居,所以从AS300到达AS200的路由丢弃。
如下图:
(3)在AR4上查看BGP路由表,其中有AS300的5.5.5.5的EBGP路由,但是没有AS100的1.1.1.1的EBGP路由,因为AR3没有配置BGP邻居,所以从AS100到达AS200的路由丢弃。
(4)在AR5上查看BGP路由表,可以看出到4.4.4.4的BGP路由,是经过了AS_PATH的AS200自治系统区域,如下图:
2、查看ip路由表
(1)在AR1上查看ip路由表,仅有自己直连的路由与一条缺省路由,并没有AS200与AS300自治系统的路由,如下图:
(2)在AR4上查看ip路由表,可以看出AR4上有自己宣告的BGP路由4.4.4.4,OSPF宣告的路由与OSPF学习到的路由,但是没有AS100中的1.1.1.1这条EBGP路由与AS300中的5.5.5.5这条EBGP路由。因为此时AR3存在路由黑洞。
3、验证从AR1到AR4之间的连通性,可以看到只有request的请求报文,而没有回复的reply报文,所以此时AR3的路由黑洞直接丢弃了ping回应报文。接下来处理路由黑洞。
五、处理路由黑洞:
(一)路由黑洞处理方式1
1、在AR2与AR4之间建立GRE隧道
【AR2】:
interface Tunnel0/0/1
ip address 172.16.0.1 255.255.255.0
tunnel-protocol gre
source 10.1.23.1
destination 10.1.34.4
ip route-static 0.0.0.0 0.0.0.0 Tunnel 0/0/1
【AR4】:
interface Tunnel0/0/1
ip address 172.16.0.2 255.255.255.0
tunnel-protocol gre
source 10.1.34.4
destination 10.1.23.1
ip route-static 0.0.0.0 0.0.0.0 Tunnel 0/0/1
2、再次验证AR1到AR4的连通性,已经有回应的数据包了,从而解决了AR3路由黑洞问题,如下图:
3、从抓取的数据包中筛选通过GRE隧道的包,说明这些回应的数据包是通过GRE隧道过来的,如下图:
(二)路由黑洞处理方式2
(删除刚才建立的GRE隧道,在AR3上与AR2、AR4都建立iBGP邻居关系):
1、配置AR1
Undo ip route-static 0.0.0.0 0.0.0.0 10.1.12.2
ip route-static 5.5.5.5 255.255.255.255 10.1.12.2
2、配置AR2
undo interface Tunnel 0/0/1
bgp 200
peer 1.1.1.1 as-number 100
peer 1.1.1.1 ebgp-max-hop 255
peer 1.1.1.1 connect-interface LoopBack0
peer 3.3.3.3 as-number 200
peer 3.3.3.3 connect-interface LoopBack0
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 2.2.2.2 255.255.255.255
peer 1.1.1.1 enable
peer 3.3.3.3 enable
peer 3.3.3.3 next-hop-local
peer 4.4.4.4 enable
peer 4.4.4.4 next-hop-local
ip route-static 1.1.1.1 255.255.255.255 10.1.12.1
ospf 1
import-route static
3、配置AR3:
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 3.3.3.3 255.255.255.255
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
peer 4.4.4.4 enable
peer 4.4.4.4 next-hop-local
4、配置AR4
undo interface Tunnel 0/0/1
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 200
peer 3.3.3.3 connect-interface LoopBack0
peer 5.5.5.5 as-number 300
peer 5.5.5.5 ebgp-max-hop 255
peer 5.5.5.5 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 4.4.4.4 255.255.255.255
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
peer 3.3.3.3 enable
peer 3.3.3.3 next-hop-local
peer 5.5.5.5 enable
ip route-static 5.5.5.5 255.255.255.255 10.1.45.5
ospf 1
import-route static
5、配置AR5
bgp 300
peer 4.4.4.4 as-number 200
peer 4.4.4.4 ebgp-max-hop 255
peer 4.4.4.4 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 5.5.5.5 255.255.255.255
peer 4.4.4.4 enable
ip route-static 1.1.1.1 255.255.255.255 10.1.45.4
4、查看AR3上的BGP邻居,以及BGP路由表,可以看出,AR3已经与AR2和AR4都建立了BGP邻居关系,如下图:
5、验证AR1到AR5的连通性,已经有回应的数据包了,从而解决了AR3路由黑洞问题,如下图:
至此结束,本文通过GRE隧道与BGP邻居关系,2种方式解决了BGP路由黑洞问题。
相关文章:
BGP协议路由黑洞
一、实验环境 1、分公司与运营商AS自治系统内运行IGP路由协议OSPF、RIP或静态路由,AS自治系统内通过IBGP路由协议建立BGP邻居关系。 2、公司AS自治系统与运营商AS自治系统间运行EBGP路由协议。 3、通过loopback建立IBGP与EBGP邻居关系,发挥loopback建立…...
存储结构及关系(一)
学习目标 描述数据库的逻辑结构列出段类型及其用途列出控制块空间使用的关键字获取存储结构信息 段的类型 段是数据库中占用空间的对象。它们使用数据库数据文件中的空间。介绍不同类型的段。 表 表是在数据库中存储数据的最常用方法。表段用于存储既没有集群也没有分区的表…...
玄机应急:linux入侵排查webshell查杀日志分析
目录 第一章linux:入侵排查 1.web目录存在木马,请找到木马的密码提交 2.服务器疑似存在不死马,请找到不死马的密码提交 3.不死马是通过哪个文件生成的,请提交文件名 4.黑客留下了木马文件,请找出黑客的服务器ip提交 5.黑客留…...
python爬虫安装教程
Python爬虫是用于从网站上自动抓取信息的程序。在开始之前,请确保您了解并遵守目标网站的服务条款,尊重版权法,并且在合理合法的范围内使用爬虫技术。 安装环境 安装Python:首先确保您的计算机上已经安装了Python。推荐版本为3.…...
田忌赛马五局三胜问题matlab代码
问题描述:在可以随机选择出场顺序的情况下,如果把比赛规则从三局两胜制改为五局三胜制,齐王胜出的概率是上升了还是下降了?五局三胜的赛制下,大家的马重新分为5个等级。前提条件仍然是齐王每种等级的马都优于田忌同等级…...
Spring循环依赖问题的解决
项目启动提示如下异常: The dependencies of some of the beans in the application context form a cycle 这表明在我们的应用中存在了循环依赖,示例: Bean A 中注入了Bean B依赖,然后 Bean B 中注入了Bean A依赖。也就是说&…...
KAN-Transfomer——基于新型神经网络KAN的时间序列预测
1.数据集介绍 ETT(电变压器温度):由两个小时级数据集(ETTh)和两个 15 分钟级数据集(ETTm)组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。 traffic(交通) :描…...
鸿蒙学习自由流转与分布式运行环境-价值与架构定义(1)
文章目录 价值与架构定义1、价值2、架构定义 随着个人设备数量越来越多,跨多个设备间的交互将成为常态。基于传统 OS 开发跨设备交互的应用程序时,需要解决设备发现、设备认证、设备连接、数据同步等技术难题,不但开发成本高,还存…...
【k8s深入理解之 Scheme 补充-2】理解 register.go 暴露的 AddToScheme 函数
AddToScheme 函数 AddToScheme 就是为了对外暴露,方便别人调用,将当前Group组的信息注册到其 Scheme 中,以便了解该 Group 组的数据结构,用于后续处理 项目版本用途使用场景k8s.io/apiV1注册资源某一外部版本数据结构࿰…...
uni-app写的微信小程序每次换账号登录时出现缓存上一个账号数据的问题
uni-app写的微信小程序每次更换另外账号登录时出现缓存上一个账号数据的问题? 清除缓存数据:在 onShow 钩子中,我们将 powerStations、list 和 responseRoles 的值重置为初始状态,以清除之前的缓存数据。重新获取数据:…...
数据分析流程中的Lambda架构,以及数据湖基于Hadoop、Spark的实现
文章目录 一、Lambda架构1、Lambda的三层架构2、简单解释:3、Lambda架构的优缺点 二、数据湖基于Hadoop、Spark的实现1、架构2、数据管理(存储层的辅助功能) 一、Lambda架构 1、Lambda的三层架构 Batch View(批处理视图层&#…...
Android 原生解析 Json 字符串
Android 原生解析 JSON 字符串 1. JSON 基础2. Android 原生 JSON 解析方法2.1 解析 JSON 字符串到 JSONObject关键方法 2.2 解析 JSON 数组到 JSONArray关键方法 2.3 解析嵌套的 JSON 对象 3. 处理异常4. 总结 在 Android 开发中,我们经常需要从服务器获取 JSON 格…...
Windsurf可以上传图片开发UI了
背景 曾经羡慕Cursor的“画图”开发功能,这不Windsurf安排上了。 Upload Images to Cascade Cascade now supports uploading images on premium models Ask Cascade to build or tweak UI from on image upload New keybindings Keybindings to navigate betwe…...
Qt UI设计 菜单栏无法输入名字
在UI界面“在这里输入”,直接双击填写名称,无论是中文还是英文都没有反应。解决方案 2个: 1.双击“在这里输入之后”,在可编辑状态下,空格→enter键,然后在右下角属性框的title中直接填写中文或英文名&…...
blender 视频背景
准备视频文件 首先,确保你有想要用作背景的视频文件。视频格式最好是 Blender 能够很好兼容的,如 MP4 等常见格式。 创建一个新的 Blender 场景或打开现有场景 打开 Blender 软件后,你可以新建一个场景(通过点击 “文件” - “新建…...
【python】OpenCV—Tracking(10.5)—dlib
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数dlib.correlation_tracker() 6、参考 1、功能描述 基于 dlib 库,实现指定类别的目标检测和单目标跟踪 2、代码实现 caffe 模型 https://github.com/MediosZ/MobileNet-SSD/tree/master/…...
音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现
一、引言 FFmpeg源码对MPEG2-TS传输流/TS文件解复用时,在通过read_packet函数读取出一个transport packet后,会调用handle_packet函数来处理该transport packet: static int handle_packets(MpegTSContext *ts, int64_t nb_packets) { //..…...
解决“磁盘已插上,但Windows系统无法识别“问题
电脑上有2块硬盘,一块是500GB的固态硬盘,另一块是1000GB的机械硬盘,按下开机键,发现500G的固态硬盘识别了,但1000GB的机械硬盘却无法识别。后面为了描述方便,将"500GB的固态硬盘"称为X盘…...
论文笔记-WWW2024-ClickPrompt
论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器摘要1.引言2.预备知识2.1传统CTR预测2.2基于PLM的CTR预测 3.方法3.1概述3.2模态转换3.…...
53 基于单片机的8路抢答器加记分
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 首先有三个按键 分别为开始 暂停 复位,然后八个选手按键,开机显示四条杠,然后按一号选手按键,数码管显示30,这…...
【java数据结构】二叉树OJ题
【java数据结构】二叉树OJ题 一、检查两颗树是否相同二、另一颗树的子树三、翻转二叉树四、对称二叉树五、判断一颗二叉树是否是平衡二叉树六、给定一个二叉树, 找到该树中两个指定节点的最近公共祖先七、根据一棵树的前序遍历与中序遍历构造二叉树练习:八、二叉树前…...
IIC和SPI的时序图
SCL的变化快慢决定了通信速率,当SCL为低电平的时候,无论SDA是1还是0都不识别: ACK应答:当从设备为低电平的时候识别为从设备有应答: 谁接收,谁应答: 起始位和停止位: IIC的时序图&am…...
MySQL数据库表的操作
1、总述 今天我跟大家分享MySQL数据库中表的创建,查看,修改,删除。 2、创建表 create table table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 说明࿱…...
.net core 创建linux服务,并实现服务的自我更新
目录 创建服务创建另一个服务,用于执行更新操作给你的用户配置一些systemctl命令权限 创建服务 /etc/systemd/system下新建服务配置文件:yourapp.service,内容如下: [Unit] Descriptionyourapp Afternetwork.target[Service] Ty…...
springboot338it职业生涯规划系统--论文pf(论文+源码)_kaic
毕 业 设 计(论 文) 题目:it职业生涯规划系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以…...
oracle将select作为字段查询
在Oracle中,如果你想将一个SELECT语句作为字段的值,你可以使用子查询或者使用WITH子句(也称为公用表表达式CTE)。以下是两种方法的示例: 方法1:使用子查询 语法如下: SELECTcolumn1,(SELECT …...
Java数据结构和算法相关面试题
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
网络安全风险评估
项目背景 随着信息化技术的快速发展,特别是面向社会、政府机构、企业等业务系统的投入使用,各组织机构对网络和信息系统安全防护都提出了新的要求。为满足安全需求,需对组织机构的网络和信息系统的安全进行一次系统全面的评估,以…...
ADAM优化算法与学习率调度器:深度学习中的关键工具
深度学习模型的训练效果离不开优化算法和学习率的选择。ADAM(Adaptive Moment Estimation)作为深度学习领域中广泛应用的优化算法之一,以其高效性和鲁棒性成为许多任务的默认选择。而学习率调度器则是优化算法的“助推器”,帮助训…...
岛屿数量C++11新特性
每日一题 200. 岛屿数量 class Solution {//使用深度的优先搜索来搜索岛屿图//遍历整个图片 当char数组的值为1时开始从这个点开始往外扩散搜索//注意处理边界 图不是正方形 public:int ans;int d[4][2] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};int N;int M;void dfs(vector<…...
记事本做网站怎么不行啦/怎么建立个人网站
题库来源:安全生产模拟考试一点通公众号小程序 2021年起重机械指挥考试及起重机械指挥找答案,包含起重机械指挥考试答案和解析及起重机械指挥找答案练习。由安全生产模拟考试一点通公众号结合国家起重机械指挥考试最新大纲及起重机械指挥考试真题汇总&a…...
正规免费发布信息网站/平台推广营销
关于 unicorn engine 的相关知识以及开发,可访问笔者之前所写的博客 使用 Unicorn Engine 模拟执行二进制代码片段Tutorial for Unicorn:Unicorn Engine 的开发和使用 0x10 uEmu 简介 uEmu 是一个小巧智能的 IDA 模拟器插件,基于unicorn e…...
个人网站备案填写/网站关键词优化网站推广
1) 定义一个函数spacify, 将一个字符串作为参数传入,然后返回一个字符串,不过该字符串相对原有传入参数的变化是字母与字母之间多了一个空格。 传入的参数是一个字符串,返回的参数也是一个字符串。 String.prototype.spacify fun…...
深圳做网站最好的公司/百度推广登录平台客服
通常的GIS应用系统包括:GIS内核、空间数据导入/转换、空间数据引擎、应用服务器、桌面应用程序、Web应用程序、(移动设备应用程序),实际应用中可以根据需要进行取舍。 1、GIS内核 Geotools Geotools是一套基于Java平台的开源GIS A…...
wordpress 动静/百度竞价排名收费
原标题:大厂面试题:今天复试百度PHP工程师今天下午来到北京百度科技园进行复试PHP工程师岗位。面试官问了很多问题,我大概整理回忆下:1.Redis秒杀实现?redis队列解决抢购高并发的原理:在程序跟数据库之前呢…...
已有网站做百度推广/推广网站的文案
XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码,开箱即用。 在这里输入图片标题特性 1、简洁:API直观简洁,可快速上手ÿ…...