BGP的基本配置

l 按照以下步骤配置BGP协议:

Ø 1步:设备基本参数配置,AS内配置IGP确保内部网络连通性;

l 配置IGP(OSPF协议等)路由解决peer对等体的源和目标IP之间连通性,确保peer之间TCP(179)连通性

Ø 2步:启动BGP进程

l 在BGP路由器上启动BGP进程,一台路由器上只能配置一个BGP实例

l 仅执行命令router bgp不能在路由器上激活BGP,必须至少执行一个子命令才能在路由器上激活BGP进程

Router(config)#router bgp as-number

l 手工设置BGP Router ID

Router(config-router)# bgp router-id ip-address

Ø 3步:建立BGP对等体

l 指定BGP邻居及激活BGP会话

l BGP邻居都需手工指定,不能像IGP那样通过协议自动发现

l 建立邻居时的指定的Peer IP地址必须路由可达,本端默认使用报文出接口IP地址作为更新源

l 本地的更新源IP地址必须与Peer IP地址相同,不相同,则BGP邻居无法正常建立

l 对端AS号决定了与邻居建立的是EBGP会话还是IBGP会话

Router(config-router)# neighbor {peer-address | peer-group-name} remote-as as-number

Ø 4步:通告BGP路由

l 通过宣告netword的方式引入路由

Ø 如果指定mask,则仅当IP路由表中有与完全匹配的条目时才会引入成功

Ø 如果不指定mask,只通告主类网络号,则仅当BGP路由表中至少有一个子网,才会将该主类网络作为一条

路由引入,但不会引入该主类网络之下的其他子网

Router(config-router)#network network-number [mask mask] [route-map map-tag] [backdoor]

l 通过重分布的方式引入路由

Router(config-router)#redistribute protocol-type [route-map map-tag] [metric metric-value]

Ø 5步: (可选)其他配置,路由策略、路由反射器等

     Ø BGP的验证功能

     l    在同指定BGP对等体建立BGP连接时,可以启用TCP MD5认证,并设置密码

Ø 启用身份验证后,将对通过对等体之间的TCP连接传输的所有数据等进行验证

Ø 认证都是在TCP建立连接的时候完成的

Router(config-router)#neighbor {peer-address | peer-group-name} password [ | 0 | 7] string

BGP基本配置案例

496964da5a0b46e4a3bfc93b94b0000d.png

R1BGP配置

router bgp 123bgp router-id 1.1.1.1neighbor 10.1.23.2 remote-as 123network 1.1.1.1 mask 255.255.255.255

R3BGP配置

router bgp 123bgp router-id 3.3.3.3neighbor 10.1.12.1 remote-as 123neighbor 10.1.34.2 remote-as 400network 3.3.3.3 mask 255.255.255.255

R4BGP配置

router bgp 400bgp router-id 4.4.4.4neighbor 10.1.34.1 remote-as 123network 4.4.4.4 mask 255.255.255.255

l 查看BGP的邻居

R1# show ip bgp summary

4f6b3cd266024bc9aabd0399a6ddc147.png

查看BGP的状态

查看BGP路由表R1上查看BGP的路由表

router# show ip bgp

Ø 1.1.1.1/32的路由是本地生成的,因此就是最优的

Ø 3.3.3.3/32是R3的路由,作为IBGP传递来的,满足条件因此最优

Ø 4.4.4.4/32是R3从EBGP邻居学习来的,但无“>”标记,不是最优的,因为其下一跳不可达

1a4cab1e137042828069fb006a2915d2.png

BGP的next-hop不可达问题

l BGP是AS-by-AS的路由协议,而不是router-by-router的路由协议

l 在BGP中,next-hop并不意味着是下一台路由器,而是到达下一个AS的IP地址

l EBGP中,默认next-hop为发送更新的邻居路由器的IP地址

l IBGP中,从EBGP传来的next-hop属性在IBGP中保持不变的被传递

因此,R1不知道如何去往10.1.34.4, 这个地址未被通告到AS123 的IGP里,因此路由不可达,所以不是最优

l 有两种办法解决next-hop不可达的问题

Ø 第1种办法就是把10.1.34.0这个网络宣告到AS123的IGP路由中

R3(config)#router ospf 1R3(config-router)#network 10.1.34.3 0.0.0.0 area 0

Ø 这样4.4.4.0/24这条路由就会在R1的BGP路由表成为最优路由

Ø 但这种方法并不建议,因为会使得AS之间的链路暴露在AS内部,有一定安全风险

Ø 第2种办法就是在R3上配置next-hop-self,使得向R1发送的路由的下一跳的属性都改为R3自己

Ø 这样R1上4.4.4.0/24这条路由的next-hop就是R3的10.1.23.3,下一跳可达,成为最优路由

Router(config-router)#neighbor {邻居地址|邻居名称} next-hop-sel

f

l 查看具体BGP路由信息,可以看到这条BGP路由的所有BGP属性

8625e1a9809348d882bf9251777fde80.png

BGP的更新源

l BGP路由器可以指定环回接口loopback地址作为BGP连接的源地址,因为只需TCP可达即可建立邻居关系

l 因为loopback接口只要路由器正常运行就始终可用,当BGP邻居之间有多条路径时,可以使得BGP邻居更加稳定

Ø IBGP邻居建议使用环回接口建立邻居, EBGP邻居通常使用直连接口的IP地址作为源地址

Router(config-router)# neighbor {邻居地址|邻居名称} update-source {接口类型}

Ø EBGP邻居使用环回接口建立EBGP则应注意EBGP邻居多跳问题

BGP指定更新源-EBGP

l 如果使用环回接口建立EBGP邻居,需要注意多跳问题

l 如果不进行额外配置,EBGP路由器只能使用直接接口地址作为更新源(到达更新源最多只能1跳),使用环回接口建立EBGP邻居,需要修订跳数

Router(config-router)#neighbor {邻居地址|邻居名称} ebgp-multihop [跳数]

BGP的维护

l 在维护BGP协议的时候,有时候我们需要通过重置BGP会话,来达到刷新路由策略、触发路由更新的目的,有3种触发更新的方式:

Ø 硬重置

Ø 断开相应的TCP连接,通过这些会话收到的所有信息都将失效,并从BGP表中删除

Router#clear ip bgp *Router#clear ip bgp {as number | peer-address | peer-group-name}

Ø 软重置

l 软重置(soft reconfiguration)

Ø 不拆除并重建TCP或BGP连接,而是仅触发更新操作以便让新的路由策略生效

Ø 软重置可以应用于出站或入站策略,也可同时用于出入站策略

p 入站软重置,本地发送route-refresh给所有BGP邻居,让邻居把最新的路由发送给自己

Router#clear ip bgp {as number | peer-address | peer-group-name} [soft in]

p 出站软重置,本地发送update消息给邻居,让邻居获取到自己的最新路由

Router#clear ip bgp {as number | peer-address | peer-group-name} [soft out]

Ø 路由刷新

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

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

相关文章

怎样把PDF分割成多个文件?有哪些方法可以分割PDF文件?这几个方法成功率很高!

一,引言 PDF分割,即将一个完整的PDF文档拆分为多个较小的部分,是许多用户在处理 PDF文件时经常需要执行的操作。无论是为了单独提取某个章节、创建电子书章节、还是为了在多个设备间轻松共享,PDF分割都显得非常实用。本文将详细介…

TiDB系列之:认识TiDB数据库,使用TiUP部署TiDB集群,同时部署TiCDC的详细步骤

TiDB系列之:认识TiDB数据库,使用TiUP部署TiDB集群,同时部署TiCDC的详细步骤 一、认识TiDB二、TiDB五大核心特性三、四大核心应用场景四、认识TiUP五、TiUP 生态介绍六、安装 TiUP七、安装TiUP cluster组件八、初始化集群拓扑文件九、部署包含TiCDC的TiDB集群十、执行部署命令…

动手学深度学习——矩阵

1. 基本概念 1.1 标量 标量由只有一个元素的张量表示。 所以标量计算与程度开发中的普通变量计算没有差异。 import torchx torch.tensor(3.0) y torch.tensor(2.0)x y, x * y, x / y, x**y(tensor(5.), tensor(6.), tensor(1.5000), tensor(9.))1.2 向量 向量泛化自标量…

【C++】316 去除重复字母

给你一个字符串 s &#xff0c;请你去除字符串中重复的字母&#xff0c;使得每个字母只出现一次。需保证 返回结果的 字典序 最小&#xff08;要求不能打乱其他字符的相对位置&#xff09; #include <string> #include <stack> #include <unordered_map>usi…

IDEA 中如何通过连接数据库自动生成代码

目录 1、IDEA 中安装 MyBatisX 插件 2、点击 IDEA 右侧的 database 数据库按钮&#xff0c;点击新建数据源 Data Source 3、编辑数据库连接信息 4、选择你要生成代码的数据库表 5、编辑你代码生成的基本路径以及一些配置项 6、选择annotation&#xff1a;mybatis-plus3&a…

华为数字化转型与数据管理实践介绍(附PPT下载)

华为作为全球领先的信息与通信技术&#xff08;ICT&#xff09;解决方案提供商&#xff0c;在数字化转型和数据管理领域拥有丰富的实践经验和技术积累。其数字化转型解决方案旨在帮助企业通过采用最新的ICT技术&#xff0c;实现业务流程、组织结构和文化的全面数字化&#xff0…

SpringBoot+RabbitMQ实现MQTT协议通讯

一、简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上&#xff0c;是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议&#xff0c;为此&#xff0c;它需要一个消息中间件 。此…

Android在AMS中拦截某个Activity的启动

文章目录 Android在AMS中拦截某个具体Activity的启动方案一&#xff08;推荐&#xff09;&#xff1a;在ActivityTaskManagerService.startActivityAsUser方法中去作拦截方案二&#xff1a;在Dialog.show()方法中直接对这个包名所创建的Dialog做限制 Android在AMS中拦截某个具体…

@Slf4j vs LoggerFactory.getLogger(): 日志记录方式的对比与选择

前言 在Java开发中&#xff0c;日志记录是追踪系统行为、诊断问题和监控应用性能的关键工具。SLF4J&#xff08;Simple Logging Facade for Java&#xff09;作为一款流行的日志门面库&#xff0c;提供了统一的日志API&#xff0c;允许开发者灵活地对接多种底层日志实现。本文…

一文解读:阿里云 AI 基础设施的演进与挑战

云布道师 2024 年 4 月 18-19 日&#xff0c;2024 中国生成式 AI 大会在北京 JW 万豪酒店举行&#xff0c;阿里云高级技术专家、阿里云异构计算 AI 推理团队负责人李鹏受邀在【AI Infra】专场发表题为《AI 基础设施的演进与挑战》的主题演讲。李鹏从 AIGC 对云基础设施的挑战、…

HarmonyOS hsp制作与引用

1. HarmonyOS hsp制作与引用 1.1 介绍 HSP动态共享包&#xff08;模块&#xff09;,应用内HSP指的是专门为某一应用开发的HSP&#xff0c;只能被该应用内部其他HAP/HSP使用&#xff0c;用于应用内部代码、资源的共享。应用内HSP跟随其宿主应用的APP包一起发布&#xff0c;与该…

react —— useState 深入

基础用法 useState Hook 提供了这两个功能&#xff1a; State 变量 在第一次重新渲染期间&#xff0c;这将具有作为参数传递的值State setter 函数 set 函数将允许将状态的值更新为不同的值&#xff0c;如果 set 函数中提供的值不同&#xff0c;则将触发重新渲染。 注意&…

MyBatis基础操作

黑马程序员JavaWeb开发教程 文章目录 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求&#xff0c;完成员工管理的需求开发一、环境准备1、准备数据库表emp2、创建一个新的springboot工程&#xff0c;选择引入对应的起步依赖&#xff08;mybatis、mysql驱动、lombok&…

【树莓派4B】如何点亮树莓派的LED灯

在之前一系列文章中&#xff0c;使用python、行人入侵检测&#xff0c;确没有使用树莓派的硬件。控制引脚进行输出&#xff1a; 如何写python点亮led灯闪烁&#xff0c;我灯接在gpio13,GPIO19,gpio26。我都想闪烁。 你可以使用Python的GPIO库来控制树莓派上的LED灯。首先&…

Linux 安装 nvm,并使用 Jenkins 打包前端

文章目录 nvm是什么nvm下载nvm安装设置 nvm 环境变量设置 Jenkins 打包命令 nvm是什么 nvm全英文也叫node.js version management&#xff0c;是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具&#xff0c;为了解决node.js各种版本存在不兼容现象可以通过它可以安装…

数仓开发LAG 和 LEAD 函数详细解析和用例

在做Iot大数据开发时&#xff0c;需要用到lag和lead函数来计算设备故障。下面详细解析lag和lead函数的作用和例子。 LAG 和 LEAD 函数是用于在 Spark SQL 中进行窗口函数操作时常用的两个函数&#xff0c;它们用于获取某一行在分组内的前一行或后一行的数值。下面详细解释它们…

element-ui el-tabs el-tab-pane 的使用

实现效果&#xff1a;1、去掉它的下划线 2、标签切换的蓝色线条 3、字体&#xff0c;鼠标滑过字体、点击的字体 4、如果数据超出&#xff0c;出现左右滑动标签 html <div class"activity"><div class"cont"><el-tabsv-if"search &…

实验 | RT-Thread:L1

1 线程间同步 同步是指按预定的先后次序进行运行&#xff0c;线程同步是指多个线程通过特定的机制&#xff08;如互斥量&#xff0c;事件对象&#xff0c;临界区&#xff09;来控制线程之间的执行顺序&#xff0c;也可以说是在线程之间通过同步建立起执行顺序的关系&#xff0…

视频抽帧转图片,opencv和ffmpeg效果测评

最近在做一个项目&#xff0c;需要从视频中抽帧转图片&#xff0c;于是对opencv和ffmpeg效果进行了测评。 文章目录 1. open cv2. ffmpeg3.抽帧效果对比 1. open cv open cv 视频抽图片的教程&#xff0c;推荐以下链接&#xff0c;抽的帧数可以自行调节&#xff01; 用pythono…

maya 设置半径 获取时长,设置时长

maya 选择当前节点的所有子节点&#xff0c;设置半径&#xff0c;获取动画时长&#xff0c;并且设置时长 python 脚本 import maya.cmds as cmds# 获取当前选择的节点 selected_nodes cmds.ls(selectionTrue)# 创建一个列表来存储所需的节点&#xff1a;当前选中的节点及其所…