BGP基础

article/2025/8/21 1:20:11

简述
在EGP协议中,引入了AS(Autonomous System,自治系统)的概念。AS是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合。AS的内部使用IGP来计算和发现路由,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少。不同AS之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选。

BGP的前身EGP设计得非常简单,只能在AS之间简单地传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,因而EBP最终被BGP取代。

相比于EGP,BGP更具有路由协议的特征,如下:邻居的发现与邻居关系的建立;路由的获取,优选和通告;提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;在不完全信任的AS之间提供丰富的路由控制能力。

使用BGP作为传递路由的协议,则用户的路由域被作为一个整体和其他路由域进行路由交换,这个路由域即AS。AS的概念是若干台路由器以及这些路由器组成的网络集合,这些路由器均属于同一个管理机构,并执行统一的路由策略。运行BGP协议需要一个统一的自治系统号来标识路由域,即AS编号。每个自治系统都有唯一的一个编号,这个编号由IANA分配。

协议特点
因为是在AS之间传递路由,为保证数据的可靠性, BGP使用TCP作为其承载协议建立连接。因此与IGP逐跳路由器建立邻居不同,BGP可以跨越多跳路由器建立邻居关系。AS之间的路由器是不完全相互信任的,为实现路由按需求进行控制和优选,BGP设计了诸多属性。BGP不产生路由,是路由的搬运工

邻居类型
在这里插入图片描述
EBGP
EBGP只用于不同AS之间传递路由。如图,AS 100内的RTB与BTC分别从AS 200与AS 300学习到不同的路由,怎么实现AS 200与AS 300之间路由在AS 100内的交换?
在AS 100内实现将学到的AS 200和AS 300路由进行交换,可以在拓扑中的RTB与RTC路由器上将BGP的路由引入IGP协议(图中为OSPF协议),再将IGP协议的路由在RTB与RTC路由器上引入回BGP协议,实现AS 200与AS 300路由的交换。
上述方法存在以下几个缺点:
公网上BGP承载的路由数目非常大,引入IGP协议后,IGP协议无法承载大量的BGP路由;
BGP路由引入IGP协议时,需要做严格的控制,配置复杂,不易维护;
BGP携带的属性在引入IGP协议时,由于IGP协议不能识别,可能会丢失。
因此我们需要设计BGP在AS内部完成路由的传递。

IBGP
BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系。RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学到的路由传递给对端,实现BGP路由在AS内的传递。

邻居关系建立
BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、Update、Notification、Keepalive和Route-refresh等5种报文类型。

Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。
Update报文:用于在BGP邻居之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。一条Update报文可以发布多条具有相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在一个给定的Update报文里的路由属性适用于该Update报文中的NLRI(Network Layer Reachability Information)字段里的所有目的地(用IP前缀表示)。一条Update报文可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚地定义了BGP路由器之间先前通告过的路由。一条Update报文可以只用于撤销路由,这样就不需要包括路径属性或者NLRI。相反,也可以只用于通告可达路由,就不需要携带撤销路由信息了。
Notification报文:当BGP路由器检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断。
Keepalive报文:BGP路由器会周期性的向邻居发出Keepalive报文,用来保持连接的有效性。
Route-refresh报文:Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。

BGP路由器报文交互过程:Idle状态是BGP初始状态。在Idle状态下,BGP路由器拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。

在Connect状态下,BGP路由器启动连接重传定时器(Connect Retry),等待TCP完成连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器转至Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态。
在Active状态下,BGP路由器总是在试图建立TCP连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器停留在Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态。
在OpenSent状态下,BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
如果收到的Open报文正确,那么BGP路由器发送Keepalive报文,并转至OpenConfirm状态。
如果发现收到的Open报文有错误,那么BGP路由器发送Notification报文给邻居,并转至Idle状态。
在OpenConfirm状态下,BGP路由器等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
在Established状态下,BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文。
在这里插入图片描述
BGP路由生成
生成BGP路由的方式有两种:第一种是使用配置命令network,第二种是使用配置命令import。
在这里插入图片描述
display bgp routing-table 查看是否学到BGP引入的路由条目

在这里插入图片描述
BGP的update报文
BGP通过Network和Import两种方式生成BGP路由,BGP路由封装在Update报文中通告给邻居。BGP在邻居关系建立后才开始通告路由信息。Update消息主要用来公布可用路由和撤销路由,Update中包含以下信息:
网络层可达信息(NLRI):用来公布IP前缀和前缀长度。
路径属性:为BGP提供环路检测,控制路由优选。
撤销路由:用来描述无法到达且从业务中撤销的路由前缀和前缀长度。

在通告BGP路由时,由于各种因素的影响,为了避免路由通告过程中出现问题,BGP路由通告需要遵守一定的规则,下面进行详细介绍。

通告原则
1、存在多条有效路由时,BGP路由器只将自己最优的路由发布给邻居。

BGP路由表中的状态含义:
Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? – incomplete
Network:显示BGP路由表中的网络地址
NextHop:报文发送的下一跳地址
MED:路由度量值
LocPrf:本地优先级
PrefVal:协议首选值
Path/Ogn:显示AS路径号及Origin属性
Community:团体属性信息
2、BGP路由器通过EBGP获得的最优路由会发布给所有的BGP邻居(包括EBGP邻居和IBGP邻居)。

3、BGP路由器通过IBGP获得的最优路由不会发布给其他的IBGP邻居。

4、BGP与IGP同步。

BGP的路由黑洞
BGP路由黑洞产生的原因是针对传统IP路由查找,它是逐跳查找,通俗一点就是当数据包到达路由设备的时候,每一台设备都要查找路由表,并且在路由设备有路由的前提下才能转发报文 。对BGP来说由于存在iBGP水平分割规则-只把路由传递一跳(如果AS200内的三台设备都运行BGP,现在的邻居关系是R2和R3有BGP论据,R3和R4有BGP邻居,如果有路由从R2传递给R3,但是R3不会再传递路由给R4,这是一种防环机制)。所以在BGP的设计上有些设备就不会运行BGP。BGP是一种TCP的连接或者说是一种host-to-host的连接(可以跨越设备进行连接),所以路由传递是没有问题的,但是数据包的路由却是有问题的。

解决方案
方案1 : IBGP全互联
在AS内部所有路由器全部启用BGP ,且两两之间都建立ibgp邻居关系。

方案2 :路由引入
在R2和R4_上,将bgp引入ospf。
BGP自动过滤掉ibgp邻居的路由下只把ebgp邻居的路由引入到ospf中。

方案3:MPLS

实验
在这里插入图片描述
要求
本实验模拟ISP网络拓扑,运行BGP。
如图所示配置各设备IP地址,完成以下需求:
1.R1属于AS100,R2/3/4属于AS200,R5属于AS300

2.AS200内运行OSPF,进程号为1。
2.1 手动指定Loopback0的IP为RID。
2.2 全部属于区域0
2.3 network命令全部使用通配符0.0.0.0
2.4 R2/4上不宣告与其他AS互联的接口。

3.建立IBGP邻居
3.1 R2与R4使用环回口Loopback0建立IBGP邻居关系
3.2 为保证BGP路由可达,修改下一跳为本地。

4.建立EBGP邻居
4.1 R1与R2使用直连物理接口建立EBGP邻居关系
4.2 R4/5新建环回口:
R4使用Loopback1:10.4.4.4/32
R5使用Loopback1:10.5.5.5/32
4.3 R4/5分别配置32位静态路由,使得双方的环回口Loopback1可达。
4.4 R4与R5使用环回口建立EBGP邻居关系,并修改EBGP跳数为2.
5.BGP发布路由
5.1 在R1上使用network命令发布1.1.1.1/32
5.2 在R5上使用network命令发布5.5.5.5/32
5.3 确认R1/2/4/5都有1.1.1.1/32和5.5.5.5/32的路由

6.路由黑洞
由于R3没有运行BGP,导致无法收到R1和R5路由。
6.1 在R2将BGP引入OSPF,确认R3获得1.1.1.1/32的路由。
6.2 在R4将BGP引入OSPF,确认R3获得5.5.5.5/32的路由。
6.3 确认1.1.1.1和5.5.5.5可以互通。

具体过程
本实验模拟 ISP 网络拓扑,运行 BGP。
如图所示配置各设备 IP 地址,完成以下需求:
1.R1 属于 AS100,R2/3/4 属于 AS200,R5 属于 AS300
2.AS200 内运行 OSPF,进程号为 1。
2.1 手动指定 Loopback0 的 IP 为 RID。
2.2 全部属于区域 0
2.3 network 命令全部使用通配符 0.0.0.0
2.4 R2/4 上不宣告与其他 AS 互联的接口。
R2:
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.1.1.2 0.0.0.0

R3:
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.1.1.3 0.0.0.0
network 34.1.1.3 0.0.0.0

R4:
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.1.1.4 0.0.0.0

3.建立 IBGP 邻居
3.1 R2 与 R4 使用环回口 Loopback0 建立 IBGP 邻居关系
3.2 为保证 BGP 路由可达,修改下一跳为本地。
R2:
bgp 200
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
peer 4.4.4.4 next-hop-local

R4:
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
peer 2.2.2.2 next-hop-local

4.建立 EBGP 邻居
4.1 R1 与 R2 使用直连物理接口建立 EBGP 邻居关系
4.2 R4/5 新建环回口:
R4 使用 Loopback1:10.4.4.4/32
R5 使用 Loopback1:10.5.5.5/32
4.3 R4/5 分别配置 32 位静态路由,使得双方的环回口 Loopback1 可达。
4.4 R4 与 R5 使用环回口建立 EBGP 邻居关系,并修改 EBGP 跳数为 2.
R1:
bgp 100
peer 12.1.1.2 as-number 200

R2:
bgp 200
peer 12.1.1.1 as-number 100

R4:
Int lo1
Ip add 10.4.4.4 32
ip route-static 10.5.5.5 32 45.1.1.5
bgp 200
peer 10.5.5.5 as-number 300
peer 10.5.5.5 ebgp-max-hop 2
peer 10.5.5.5 connect-interface LoopBack1

R5:
Int lo1
Ip add 10.5.5.5 32
ip route-static 10.4.4.4 32 45.1.1.4
bgp 300
peer 10.4.4.4 as-number 200
peer 10.4.4.4 ebgp-max-hop 2
peer 10.4.4.4 connect-interface LoopBack1

5.BGP 发布路由
5.1 在 R1 上使用 network 命令发布 1.1.1.1/32
bgp 100
network 1.1.1.1 255.255.255.255
5.2 在 R5 上使用 network 命令发布 5.5.5.5/32
bgp 300
network 5.5.5.5 255.255.255.255
5.3 确认 R1/2/4/5 都有 1.1.1.1/32 和 5.5.5.5/32 的路由

6.路由黑洞
由于 R3 没有运行 BGP,导致无法收到 R1 和 R5 路由。
6.1 在 R2 将 BGP 引入 OSPF,确认 R3 获得 1.1.1.1/32 的路由。
ospf 1 router-id 2.2.2.2
import-route bgp
6.2 在 R4 将 BGP 引入 OSPF,确认 R3 获得 5.5.5.5/32 的路由。
ospf 1 router-id 4.4.4.4
import-route bgp
6.3 确认 1.1.1.1 和 5.5.5.5 可以互通。


http://chatgpt.dhexx.cn/article/iaA20yob.shtml

相关文章

BGP的各种属性

* BGP不会学习路由, 只会传递路由 * BGP选路原则 -- BGP的度量值叫做路径属性 -- 特有的属性包括: * 公认必选属性(AS-Path、Next-hop...) * 公认自选属性 * 任选可透明传递属性 * 任选非可透明传送属性 -- 公认属性: …

BGP简介、BGP与IGP的区别、BGP的优势有哪些?

BGP的背景 为方便管理规模不断扩大的网络,网络被分成了不同的AS(Autonomous System,自治系统)。 早期,EGP(Exterior Gateway Protocol,外部网关协议)被用于实现在AS之间动态交换路由…

BGP路由反射器RR

曾子曰:“吾日三省吾身:为人谋而不忠乎?与朋友交而不信乎?传不习乎?” 文章目录 一、拓扑二、基础配置与分析三、BGP 13 条选路原则四、BGP路由反射器RR五、备份路由反射器 EBGP 对等体之间是不存在 BGP 路由反射器的…

BGP学习笔记

BGP的特征: BGP是外部路由协议,用来在AS之间传递路由信息。是一种路径矢量(Path-Vector)路由协议(AS_PATH)。 可靠的路由更新机制(TCP)(目的端口为179,源端口…

BGP命令行配置

BGP命令行简介 配置BGP的基本功能: 启动BGP进程: bgp 100//启动bgp指定as号 router-id 1.1.1.1 //配置BGP的router-id配置BGP对等体: 配置BGP对等体时,如果指定对等体所属的AS编号与本地AS编号相同,表示配置IBGP对…

BGP简介,以及使用BGP的原因

通过本篇可以理解 BGP 的基础知识以及使用它的原因 BGP(边界网关协议)是将互联网联合在一起的路由协议,我将解释在哪些情况下我们需要 BGP 以及它是如何工作的。 在您继续阅读之前,我应该告诉您“忘记”迄今为止您对RIP、OSPF和…

BGP属性

一、属性分类 BGP属性是BGP进行路由决策和控制的重要信息。它可以分为如下两大类四小类: 一、公认属性 公认必遵(Well-known mandatory )公认可选(Well-known di scretionary ) 公认属性是所有运行BGP协议的系统都必须识别和支持的属性。 其中,公认必遵属性是BGP…

BGP的基本配置

目录 1,BGP建邻的基本配置 1,EBGP对等体关系直连建邻 2,IBGP对等体关系之间的环回建邻 3,EBGP对等体关系之间的非直连建邻 2,发布路由 1,network --- 在BGP中只能用来发布路由条目信息 2&#xff0c…

BGP与IGP之间的区别

IGP: interior gateway protocol—链路状态 BGP: border gateway protocol—距离矢量 都是实现路由信息的交换、学习 都能实现路由的功能 BGP一般用于大型网络,可容纳的路由信息更多;而IGP协议,对于路由条目的存储量是有限的&a…

BGP的应用

目录 实验需求:按照规划建立BGP对等关系,R1和R5各发布一条路由,保证两个网段可以互相通信 1.首先配置IP r1 r2 r3 r4 r5 2.AS之间建立EBGP直连邻居关系 r1和r2之间 r4和r5之间 3.AS内部建立IBGP对等体邻居关系 首先建立ospf使内部建…

什么是BGP

文章目录 1.基本概念什么是BGPBGP路由协议的特点IBGP水平分割规则BGP的路由器号(Router-ID)BGP工作原理BGP分类 1.基本概念 自治系统,指的是在同一个组织管理下、使用相同策略的设备的集合; 不同AS通过AS号区分,AS号取值范围1-65535&#xf…

IP第十天笔记 - - - BGP

BGP --- 边界网关协议 AS --- 自治系统 --- 由单一机构或组织管理的一系列IP网络及其设备的集合。 1、网络范围太大,协议跑不过来,需要进行划分; 2、自治管理 为了方便区分和标定不同的AS,我们给每一个自治系统设计了一个编号…

BGP知识点

一、BGP的基本概念 BGPv4 1、BGP(边界网关协议)是几乎是当前唯一被用于在不同AS之间实现路由交互的EGP。BGP适用于大型的网络环境,例如运营商网络,或者大型企业网。BGP支持VLSM、支持CIDR(无类域间路由)&a…

BGP基础讲解

文章目录 一、BGP起源二、BGG基本概念与注意事项三、BGP原理概述四、BGP路由条目的来源 - 宣告、引入、聚合五、通告原则 --重要!!!六、相关配置命令 一、BGP起源 网络不断扩大,为了方便管理网络被分为了很多不同的AS&#xff08…

BGP概述及基础配置

BGP概述及基础配置 一、BPG基本概述1.1、BGP路由协议的特点1.2、BGP分类:1.3、BGP的路由器号(Router-ID): 二、BGP的基本参数内容2.1、BGP的五种报文2.2、BGP的六种状态机2.3、BGP对等体之间的交互原则 三、BGP的参数配置 一、BPG基本概述 IGP与BGP的工作场景 IGP…

软考DFD图

DFD图即为数据流图(Data Flow Diagram),它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 数…

DFD作业

作业 题目一 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输人系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 顶层 0层 1层 题目二 为方便旅…

研究下DFD

数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。 下图是一个飞机机票预订系统的数据流图,它反映的功能是:旅行社把预订机票的旅客信息 (姓名、…

P11 - 数据流图 之 DFD进行数据流建模

在如下所示的数据流图中,共存在(29)个错误。 (29)A.4 B.6 C.8 D.9 【答案】B 【解析】本题考查数据流图方面的基础知识。 结构化分析将数据和处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理的结果则…