当前位置: 首页 > news >正文

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注册资源某一外部版本数据结构&#xff0…...

uni-app写的微信小程序每次换账号登录时出现缓存上一个账号数据的问题

uni-app写的微信小程序每次更换另外账号登录时出现缓存上一个账号数据的问题? 清除缓存数据:在 onShow 钩子中,我们将 powerStations、list 和 responseRoles 的值重置为初始状态,以清除之前的缓存数据。重新获取数据&#xff1a…...

数据分析流程中的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盘&#xf…...

论文笔记-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,这…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...