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.rhkb.cn/news/313879.html

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

相关文章

【后端】python与django的开发环境搭建指南

安装Git 双击Git 客户端安装文件,在安装页面,单击“Next” 在安装路径选择页面,保持默认,单击“Next” 在功能组件选择页面,保持默认,单击“Next” 在开始菜单文件夹设置页面,保持默认&am…

好看到爆炸的弹窗公告源码

源码介绍 好看到爆炸的弹窗公告源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面, 源码截图 源码下载 好看到爆炸的弹窗公告源码

【Elasticsearch】Elasticsearch 从入门到精通(二):基础使用

《Elasticsearch 从入门到精通》共包含以下 2 2 2 篇文章: Elasticsearch 从入门到精通(一):基本介绍Elasticsearch 从入门到精通(二):基础使用 😊 如果您觉得这篇文章有用 ✔️ 的…

SpringBoot+vue开发记录(二)

说明:本篇文章的主要内容为SpringBoot开发中后端的创建 项目创建: 1. 新建项目: 如下,这样简单创建就行了,JDK什么的就先17,当然1.8也是可以的,后面可以改。 这样就创建好了: 2. pom.xml…

光伏无人机:巡检无人机解决巡检难题

随着科技的飞速发展,无人机技术已经广泛应用于各个领域,其中光伏无人机在解决光伏电站巡检难题方面发挥了重要作用。光伏无人机以其高效、精准、安全的特点,为光伏电站的巡检工作带来了革命性的变革。 光伏电站通常位于广阔的户外场地&#x…

如何理解自然语言处理中的位置编码(Positional Encoding)

在自然语言处理和特别是在使用Transformer模型中,位置编码(Positional Encoding)是一个关键的概念。它们的作用是为模型提供序列中各个元素的位置信息。由于Transformer架构本身并不像循环神经网络(RNN)那样具有处理序列的固有能力,位置编码因此显得尤为重要。 为什么需…

7天入门Android开发之第1天——初识Android

一、Android系统 1.Linux内核层: 这是安卓系统的底层,它提供了基本的系统功能,如内存管理、进程管理、驱动程序模型等。安卓系统构建在Linux内核之上,借助于Linux的稳定性和安全性。 2.系统运行库层: 这一层包括了安卓…

一次违法网站的渗透经历

0x01 前言 在一次攻防演练中,我发现了一个有趣的渗透路径。在信息收集阶段,我注意到目标网站和用户资产网站共享相同的IP网段。这意味着它们可能在同一台服务器上托管,或者至少由同一家互联网服务提供商管理。这种情况为我们的渗透测试提供了…

Linux命令继续学习

which命令,找到各种命令程序所处在的位置 语法:which查找的命令 那么对于我们想查找其他类型文件所在的位置,我们可以用到find命令 find命令 选项为-name,表示按照文件名进行查找 find命令中通配符 find命令和前面rm命令一样&…

学习Rust第14天:HashMaps

今天我们来看看Rust中的hashmaps,在 std::collections crate中可用,是存储键值对的有效数据结构。本文介绍了创建、插入、访问、更新和迭代散列表等基本操作。通过一个计算单词出现次数的实际例子,我们展示了它们在现实世界中的实用性。Hashm…

xgp加速器免费 微软商店xgp用什么加速器

2001年11月14日深夜,比尔盖茨亲自来到时代广场,在午夜时分将第一台Xbox交给了来自新泽西的20岁年轻人爱德华格拉克曼,后者在回忆中说:“比尔盖茨就是上帝。”性能超越顶级PC的Xbox让他们趋之若鹜。2000年3月10日,微软宣…

ScriptableObject数据容器讲解

概述 是Unity提供的一个用于创建可重用的数据容器或逻辑的基类。 ScriptableObject 是继承自 UnityEngine.Object 的一个类,但与普通的 MonoBehaviour 不同,它不能附加到GameObject上作为组件。 相反,ScriptableObject 通常用于存储和管理…

意法半导体STM32F407VET6TR单片机优缺点、参数、应用和引脚封装

ST(意法半导体)的型号STM32F407VET6TR属于32位MCU微控制器,基于高性能的ArmCortex-M4 32位RISC核心,工作频率高达168MHz。单精度浮点单元(FPU)用于Cortex-M4核心,支持所有Arm单精度数据处理指令和数据类型。它还实现了一套完整的DSP指令和一个…

就业班 第三阶段(负载均衡) 2401--4.18 day2 LVS-DR模式

3、LVS/DR 模式 实验说明: 1.网络使用NAT模式 2.DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域 3.所有节点网关均指定真实网关 主机名ip系统用途client172.16.147.1mac客户端lvs-server172.16.147.154centos7.5分发器real-server1172.16.…

k8s日常动手实践 ~~ pod访问 pod请求 k8s api ~ 含新版带curl的busybox镜像

前言: 可以使用 Kubernetes API 获取集群信息。使用 Service Account(SA)进行身份验证,可以以安全的方式访问 Kubernetes API,而无需在 Pod 中使用明文凭据。 以下是一个使用 Service Account 访问 Kubernetes API 获…

Selenium IDE 常见错误笔记

错误1:Failed:Exceeded waiting time for new window to appear 2000ms 这个错误通常出现在第一次运行时,有两个原因: Firefox阻止了弹出式窗口,在浏览器设置里允许这个操作即可。 有些网站设置了反扒机制,脚本运行…

数据库并发控制思维导图+大纲笔记

思维导图 大纲笔记 多用户数据库系统 定义 允许多个用户同时使用的数据库系统特点 在同一时刻并发运行的事务数可达数百上千个多事务执行方式 事务串行执行交叉并发方式 单处理机系统同时并发方式 多处理机系统事务并发执行带来的问题 产生多个事务同时存取同一数据的情况可能…

Group Query Attention (GQA) 机制详解以及手动实现计算

Group Query Attention (GQA) 机制详解 1. GQA的定义 Grouped-Query Attention (GQA) 是对 Multi-Head Attention (MHA) 和 Multi-Query Attention (MQA) 的扩展。通过提供计算效率和模型表达能力之间的灵活权衡,实现了查询头的分组。GQA将查询头分成了G个组&#…

Jammy@Jetson Orin - Tensorflow Keras Get Started: 000 setup for tutorial

JammyJetson Orin - Tensorflow & Keras Get Started: 000 setup for tutorial 1. 源由2. 搭建环境2.1 安装IDE环境2.2 安装numpy2.3 安装keras2.4 安装JAX2.5 安装tensorflow2.6 安装PyTorch2.7 安装nbdiff 3. 测试DEMO3.1 numpy版本兼容问题3.2 karas API - model.compil…

Docker命令总结

目录 一.Docker常用命令总结 1.镜像命令管理 2.容器命令管理 二.Docker镜像命令 1.docker search:搜索镜像 2.docker pull:下载镜像 3.docker push:上传镜像 4.docker images:查看本地镜像 5.docker inspect:…