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路由黑洞问题。

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

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

相关文章

ThinkPHP Nginx 重写配置

目录 NGINX 重写 Admin项目隐藏入口文件,且禁用Admin模块&Admin.php 1️⃣配置仅用模块 2️⃣新增admin_xyz.php文件(自定义入口文件名),并绑定admin模块 3️⃣配置nginx 重写规则 NGINX 重写 在Nginx低版本中&#xff0…

k8s集群增加nfs-subdir-external-provisioner存储类

文章目录 前言一、版本信息二、本机安装nfs组件包三、下载nfs-subdir-external-provisioner配置文件并进行配置1.下载文件2.修改配置 三、进行部署备注:关于镜像无法拉取问题的处理 前言 手里的一台服务器搭建一个单点的k8s集群,然后在本机上使用nfs-su…

百度 文心一言 vs 阿里 通义千问 哪个好?

背景介绍: 在当前的人工智能领域,随着大模型技术的快速发展,市场上涌现出了众多的大规模语言模型。然而,由于缺乏统一且权威的评估标准,很多关于这些模型能力的文章往往基于主观测试或自行设定的排行榜来评价模型性能…

Python 爬虫指定数据提取【Xpath】

Xpath 是一个非常好用的解析方法&#xff0c;使用前需要安装对应的库&#xff0c;这个自行搜索&#xff0c;很简单&#xff01; 示例代码 from lxml import etree text <div><ul><li class"item-0"><a href"link1.html">first …

ESP32学习笔记_Peripherals(1)——UART

摘要(From AI)&#xff1a; 这篇博客详细讲解了 ESP32 UART 通信的基础知识、配置流程和实践代码&#xff0c;涵盖了 UART 的工作原理、API 使用方法以及实际应用场景&#xff0c;结合完整的代码示例展示了如何与外部设备&#xff08;如 4G 模块&#xff09;进行串口通信。内容…

UE5 实现组合键触发事件的方法

因为工作原因。 需要用大括号{和}来触发事件 但是在蓝图中搜了一下&#xff0c;发现键盘事件里根本就没有{}这两个键。 花费了一下午&#xff0c;终于找到解决的方法了&#xff0c;也就是增强输入的弦操作 首先创建一个项目 纯蓝图或者C都可行 进入到内容浏览器的默认页面 …

富文本编辑器图片上传并回显

1.概述 在代码业务需求中&#xff0c;我们会经常涉及到文件上传的功能&#xff0c;通常来说&#xff0c;我们存储文件是不能直接存储到数 据库中的&#xff0c;而是以文件路径存储到数据库中&#xff1b;但是存储文件的路径到数据库中又会有一定的问题&#xff0c;就是 浏览…

JVM指令集概览:基础与应用

写在文章开头 在现代软件开发中,Java 语言凭借其“一次编写,到处运行”的理念成为了企业级应用的首选之一。这一理念的背后支撑技术正是 Java 虚拟机(JVM)。JVM 是一个抽象的计算机,它实现了 Java 编程语言的各种特性,并且能够执行编译后的字节码文件。了解 JVM 的工作原…

麒麟系统x86安装达梦数据库

一、安装准备前工作 操作系统&#xff1a;银河麒麟V10&#xff0c;CPU&#xff1a; x86_64 架构 下载地址&#xff0c;麒麟官网&#xff1a;https://www.kylinos.cn/ 数据库&#xff1a;dm8_20220915_x86_kylin10_64 下载地址&#xff0c;达梦数据库官网&#xff1a;https://…

力扣 二叉树的中序遍历

用了递归遍历&#xff0c;关于树的经典例题。 题目 递归 常规做法即递归了&#xff0c;不会写也得背下来。递归可以大致理解方法调用自身&#xff0c;先写中序遍历递归的方法&#xff0c;递归一定要有递归出口&#xff0c;当遍历到节点为空时返回&#xff0c;即已经找到了。…

windows server 2019 启动 nginx 报错

环境 &#xff1a;windows server 2019 &#xff0c;nginx-1.19.7 背景&#xff1a; 自己经常用这个 nginx 包作为 web 服务器。今天发现 部署到 server 2019 上直接报错了。这可是原生的包&#xff0c;我啥也没改&#xff0c;怎么可能报错。而且之前在 其他服务器用都没问题…

python代码示例(读取excel文件,自动播放音频)

目录 python 操作excel 表结构 安装第三方库 代码 自动播放音频 介绍 安装第三方库 代码 python 操作excel 表结构 求出100班同学的平均分 安装第三方库 因为这里的表结构是.xlsx文件,需要使用openpyxl库 如果是.xls格式文件,需要使用xlrd库 pip install openpyxl /…

百度智能云发布首个空间智能解决方案,百度AI优势如何分析?

首先&#xff0c;百度智能云此次推出的空间智能解决方案&#xff0c;在技术底座上展现了其强大的AI异构计算能力。百度百舸AI异构计算平台作为该方案的底层支撑&#xff0c;为2D和3D应用中的人物、物件及场景生成提供了强大的算力支持。这一平台的推出&#xff0c;不仅提升了空…

深度学习-49-AI应用实战之基于HyperLPR的车牌识别

文章目录 1 车牌识别系统1.1 识别原理1.1.1 车牌定位1.1.2 字符识别2 实例应用2.1 安装hyperlpr32.2 识别结果2.3 可视化显示2.4 结合streamlit3 附录3.1 PIL.Image转换成OpenCV格式3.2 OpenCV转换成PIL.Image格式3.3 st.image嵌入图像内容3.4 参考附录1 车牌识别系统 车牌识别…

非递归遍历二叉树(数据结构)

我的博客主页 非递归遍历二叉树 前序遍历&#xff08;迭代&#xff09;中序遍历&#xff08;迭代&#xff09;后续遍历&#xff08;迭代&#xff09; 二叉树的遍历方式有&#xff1a;前序遍历、中序遍历、后续遍历&#xff0c;层序遍历&#xff0c;而树的大部分情况下都是通过递…

丹摩征文活动|实现Llama3.1大模型的本地部署

文章目录 1.前言2.丹摩的配置3.Llama3.1的本地配置4. 最终界面 丹摩 1.前言 Llama3.1是Meta 公司发布的最新开源大型语言模型&#xff0c;相较于之前的版本&#xff0c;它在规模和功能上实现了显著提升&#xff0c;尤其是最大的 4050亿参数版本&#xff0c;成为开源社区中非常…

基于stm32单片机的教室节能系统设计

功能描述 0. STM32F103C8T6单片机为控制核心 1. OLED液晶显示当前年 月 日 时 分 秒 星期 2. 按键可以设置定时时间 3. 按键可以设置用电开关的开启和关闭时间&#xff0c;实现设备的节能 4. 通过红外遥控可以打开关闭空调设备&#xff08;通过继电器开关闭合模拟&#x…

防止按钮被频繁点击

在做开发的时候,不希望按钮被用户频繁点击,给后端服务器增加负担,这个时候,可以在按钮的触发函数加上如下代码: // 禁用按钮 const fetchButton document.querySelector(.btn-fetch); fetchButton.disabled true; // 延时61秒后重新启用按钮 setTimeout(() > { fetchBut…

Spring Boot【三】

自动注入 xml中可以在bean元素中通过autowire属性来设置自动注入的方式&#xff1a; <bean id"" class"" autowire"byType|byName|constructor|default" /> byName&#xff1a;按照名称进行注入 byType&#xff1a;按类型进行注入 constr…

构建 LLM (大型语言模型)应用程序——从入门到精通(第七部分:开源 RAG)

通过检索增强生成 (RAG) 应用程序的视角学习大型语言模型 (LLM)。 本系列博文 简介数据准备句子转换器矢量数据库搜索与检索大语言模型开源 RAG&#xff08;本帖&#xff09;评估服务LLM高级 RAG 1. 简介 我们之前的博客文章广泛探讨了大型语言模型 (LLM)&#xff0c;涵盖了其…