BGP协议原理(一)BGP协议基本概念:BGP作用与特点、BGP邻居关系建立与配置

article/2025/8/24 23:11:36

文章目录

  • 前提概念
    • AS
      • ASN
    • IGP与EGP
  • BGP的基本概述
    • 基本作用
  • BGP协议特点
  • BGP邻居关系和配置
    • 建立TCP连接
    • BGP邻居类型
    • BGP简单邻居关系配置
    • 报文类型
    • 邻居关系的建立

前提概念

AS

AS(Autonomous System):自治系统/路由选择域

AS是指由同一技术机构管理使用同一选路策略的一些路由器的集合。
一般来说,一个公司、一个企业、一所大学就可以说是一个自治系统

AS内部使用IGP来计算和发现路由,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少。

不同的AS之间,使用EGP来进行通信。BGP作为EGP中的一种协议,用于在AS之间进行路由控制和优先

ASN

ASN:自治系统号

一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。

自治系统号由IANA分配,范围为:1-65535,最开始大小为2B(0~65535)。
自治系统号分为(可类比共有IP地址、私有IP地址)

公有ASN:1~64511
私有ASN:64512~65535

后来由于不够用,长度升级到了4B(45536~4294967295)

IGP与EGP

IGP:内部网关路由协议:

包含有:OSPF、RIP、IS-IS等
注重于发现和计算路由。执行在AS内部

EGP:外部网关路由协议:

包含有:EGP(目前不使用)、BGP:外部网络路由协议代表(目前AS间路由协议或者说的EGP协议一般都指的是BGP协议)

由于BGP的前身EGP由于设计简单,只能简单的传递路由信息,不会对路由进行优选,会造成环路等问题,所以就有了BGP代替了EGP。

BGP的基本概述

基本作用

在这里插入图片描述)

AS之间的路由我们可以将一个AS看成一个大路由器

BGP协议特点

  1. 可靠的路由更新机制(有变化才发)(没有组播,只有单播的连接。建立在TCP之上。只有在路由信息发生更新的时候才会发送增量路由。不会释放掉TCP连接:keep alive机制,保证TCP连接不会断掉)(注意:建立BGP连接首先要建立TCP连接
  2. 丰富的度量方式
  3. 避免环路
  4. 路由附带属性信息(AS之间的路由器是不完全互相信任的,为了实现路由按需求控制和优选,BGP设置了诸多属性)
  5. 支持CIDR、VLSM
  6. 丰富的路由选择和路由控制
  7. 增量更新计算
  8. 可以跨越多跳路由器建立邻居关系

BGP邻居关系和配置

建立TCP连接

BGP协议被设计运行在AS之间传递路由,AS之间是广域网链路,数据包在广域网上传递是可能出现不可预测的链路拥塞或丢失等情况,因此BGP使用TCP作为其承载协议来保证可靠性。
相当于TCP连接一直存在,BGP通过Keep alive机制(不断、定时发送keepalive报文)时TCP连接不会断掉

BGP使用TCP封装建立邻居关系,端口号为179,TCP采用单播建立连接,因此BGP协议并不像RIP和OSPF一样使用组播发现邻居。单播建立连接也使BGP只能手动指定邻居。(配置的时候需要自己手动指定邻居)

先看起BGP的一端发起TCP的连接。

TCP连接(三次握手)简单介绍:
一下图为例:RTB向RTA发起建立TCP连接请求,RTA收到之后,返回一个连接请求和确认消息,RTB收到之后返回一个确认消息。连接建立完成。
在这里插入图片描述)

BGP邻居类型

在这里插入图片描述)
BGP邻居类型分为两种:

EBGP(External BGP):运行在不同AS之间的BGP路由器建立的邻居关系为EBGP邻居关系
IBGP(Inter BGP):运行在相同AS内的BGP路由器建立的邻居关系为IBGP邻居关系

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协议不能识别,可能会丢失。

因此我们用IBGP来邻居关系来解决上述问题:如上图,因为BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系。如图所示,RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学到的路由传递给对端,实现BGP路由在AS内的传递。

注意:建立IBGP邻居关系建立一般使用Loopback口IP地址,因为Loopback口为逻辑接口,且不会down,非常稳定,这样邻居关系一直处于稳定状态。EBGP邻居关系建立使用直连接口IP地址。

BGP简单邻居关系配置

在这里插入图片描述)
第一步

搭建拓扑,规划网段并配置各个接口IP地址。

以RTB举例:

[RTB]int g0/0/0
[RTB-GigabitEthernet0/0/0]ip ad 10.1.24.2 24
[RTB-GigabitEthernet0/0/0]int g0/0/1
[RTB-GigabitEthernet0/0/1]ip ad 10.1.12.2 24
[RTB-GigabitEthernet0/0/1]int lo0
[RTB-LoopBack0]ip ad 22.22.22.22 32
[RTB-LoopBack0]quit
[RTB]

第二步

AS 100内部使用IGB:OSPF协议通信。配置OSPF协议
注意:不要忘记宣告Loopback接口所在网段。

以RTB为例其余路由器相同:

[RTB]ospf
[RTB-ospf-1]a 0
[RTB-ospf-1-area-0.0.0.0]network 22.22.22.22 0.0.0.0
[RTB-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255

验证RTB环回口是否能与RTC环回口通信,若正确则进行下一步:

<RTB>ping -a 22.22.22.22 33.33.33.33PING 33.33.33.33: 56  data bytes, press CTRL_C to breakReply from 33.33.33.33: bytes=56 Sequence=1 ttl=254 time=40 msReply from 33.33.33.33: bytes=56 Sequence=2 ttl=254 time=30 msReply from 33.33.33.33: bytes=56 Sequence=3 ttl=254 time=30 msReply from 33.33.33.33: bytes=56 Sequence=4 ttl=254 time=30 msReply from 33.33.33.33: bytes=56 Sequence=5 ttl=254 time=30 ms--- 33.33.33.33 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 30/32/40 ms

第三步

配置BGP邻居关系:

1. 配置Router ID:标识路由器
2. 配置EBGP邻居关系:AS之间传递路由

以RTB、RTD之间建立EBGP关系为例:

[RTB]
[RTB]bgp 100
[RTB-bgp]peer 10.1.24.4 as-number 200    //BGP邻居关系的类型主要靠配置的AS号区别,peer关键字后面是对端邻居的接口IP地址,as-number后面是邻居路由器所在的AS号,AS号相同则为IBGP邻居关系;AS号不同,则为EBGP邻居关系。
[RTD]
[RTD]bgp 200
[RTD-bgp]peer 10.1.24.2 as-number 100

第四步

配置IBGP邻居关系:

本例中RTB和RTC建立IBGP邻居关系(本例使用逻辑接口建立IBGP邻居关系):

[RTB]
[RTB]bgp 100
[RTB-bgp]peer 33.33.33.33 as-number 100     //AS号相同则为IBGP邻居关系
[RTB-bgp]peer 33.33.33.33 connect-interface LoopBack 0
[RTC]
[RTC]bgp 100
[RTC-bgp]peer 22.22.22.22 as-number 100
[RTC-bgp]peer 22.22.22.22 connect-interface  LoopBack 0
[RTC-bgp]

额外提供直连接口配置方法:

[RTB-bgp]peer 10.1.12.1 as-number 100

查看邻居关系display bgp peer

以RTB为例:

[RTB]display bgp peer BGP local router ID : 2.2.2.2Local AS number : 100Total number of peers : 2		  Peers in established state : 2Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv10.1.24.4       4         200       41       42     0 00:39:16 Established     033.33.33.33     4         100       37       37     0 00:35:27 Established     0

注意:此时BGP邻居关系已经建立,但是由于没有路由引入所以没有路由表,查看BGP路由表命令:display bgp routing-table。路由引入命令下一遍文章介绍

报文类型

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

Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。

Keepalive报文:BGP路由器会周期性的向邻居发出Keepalive报文,用来保持连接的有效性。(该报文内容少,无意义,只是为了保证连接不中断)

Update报文:用于在BGP邻居之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

Notification报文:当BGP路由器(BGP speaker)检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断。

Route-refresh报文:Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。

邻居关系的建立

在这里插入图片描述
lBGP路由器报文交互过程:

  1. Idle状态是BGP初始状态。在Idle状态下,BGP路由器拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。
  2. 在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报文。


http://chatgpt.dhexx.cn/article/73wrKct2.shtml

相关文章

【网络协议详解】——BGP协议(学习笔记)

目录 &#x1f552; 1. 概述&#x1f552; 2. BGP 发言人&#x1f552; 3. 工作原理&#x1f552; 4. 报文格式&#x1f558; 4.1 报文首部&#x1f558; 4.2 打开报文&#x1f558; 4.3 更新报文&#x1f558; 4.4 保活报文&#x1f558; 4.5 通知报文 &#x1f552; 5. BGP 的…

BGP协议:简介、属性、选路原则

BGP协议&#xff1a;简介、属性、选路原则 目录 BGP协议&#xff1a;简介、属性、选路原则 一、学习网络BGP必备基础知识 二、BGP 工作原理 三、BGP报文 四、BGP邻居关系的配置 五、BGP需要注意的事项 六、BGP的属性分类 及列举讲解 一、学习网络BGP必备基础知识 边界…

BGP路由协议的那些事?(上)

BGP是怎么来的&#xff1f;为什么要使用BGP&#xff1f; 路由协议的分类 分类包含协议说明IGP&#xff1a;用于域&#xff08;AS&#xff09;内路由选择。RIP距离矢量协议&#xff0c;多用于小型网络。ISIS链路状态协议&#xff0c;多用于运营商网络。OSPF链路状态协议&#…

BGP协议解析(白话版)

之前一直没搞明白BGP有啥用&#xff0c;加了跟没加没啥区别&#xff0c;专门查资料写了这篇《BGP协议解析》。 下面使用eNSP模拟器演示&#xff01; IBGP与EBGP的区别 BGP分为两种&#xff1a;IBGP与EBGP。 两个路由器的BGP号相同&#xff0c;建立邻居关系叫IBGP&#xff0…

华为 BGP协议基础配置与总结

良药苦口利于病&#xff0c;忠言逆耳利于行。 文章目录 一、BGP概述二、拓扑三、基础配置四、BGP与IGP比较五、BGP的数据包六、BGP的邻居状态机七、BGP计时器八、BGP的更新源九、BGP的路由生成十、BGP的路由通告 BGP的邻居建立很关键&#xff0c;涉及环回口地址建立bgp邻居就需…

计算机网络——BGP协议

BGP协议 和谁交换&#xff1a;与其他AS的邻站BGP发言人交换信息。 交换什么&#xff1a;交换网络可达性信息 多久交换一次&#xff1a;发生变化时更新有变化的部分 一般来说两个网络都是由一个BGP发言人连接的。 BGP协议交换信息的过程 BGP协议所交换的网络可达性的信息就…

BGP 协议

BGP BGP 邻居类型BGP 5种包BGP 6种邻居状态BGP 邻居建立BGP 路由的生成方式BGP 通告原则与路由处理BGP 认证BGP 对等体之间的交互原则BGP 邻居学习next-hop-local补充BGP 常用属性BGP 防环BGP 选路规则BGP 路由聚合 BGP知识点&#xff1a; BGP基础配置&#xff0c;BGP 5种报文&…

计算机网络:BGP路由协议

BGP路由协议的概述 首先&#xff0c;再当前的互联网中&#xff0c;BGP是目前唯一支持的外部网关协议EGP的协议&#xff0c;用于自治系统AS之间传递路由信息&#xff0c;目前的版本为4。 从图中可以看出&#xff0c;BGP协议是连接自治系统AS的“桥梁”。 为什么需要BGP协议 …

BGP协议基础配置—学习

BGP重要概念 IGP是运行在AS内部的路由协议&#xff0c;主要有RIP、OSPF及IS-IS&#xff0c;着重于发现和计算路由。 EGP是运行在AS之间的路由协议&#xff0c;通常是BGP&#xff0c;它是实现路由控制和选择最好的路由协议。 这次主要讲的是BGP。 BGP它不生产路由&#xff0…

BGP协议总结

概述 BGP为Border Gateway protocol 边界网关路由协议&#xff08;路径矢量&#xff09; 主要作用是在AS之间传递路由信息 • 分类&#xff1a;EGP • 工作机制&#xff1a;路径矢量协议 • 无类路由协议&#xff1a;支持VLSM和CIDR • 应用层协议/7层&#xff0c;TCP封装&…

BGP协议学习笔记——BGP基础

BGP协议学习笔记——BGP基础&#xff08;BGP概念、BGP报文、BGP状态机、BGP关系建立、BGP路由通告&#xff09; 说明&#xff1a;本文学习笔记整理自网络、华为公开产品文档、华为公开PPT及部分的自我理解 一、BGP简介 BGP定义 边界网关协议BGP&#xff08;Border Gateway …

什么是BGP协议?

什么是BGP协议&#xff1f; BGP(Border GatewayProtocol)是一种在自治系统之间动态交换路由信息的路由协议。一个自治系统的经典定义是在一个管理机构控制之下的一组路由器&#xff0c;它使用IGP和普通度量值向其他自治系统转发报文。 在BGP中使用自治系统这个术语是为了强调这…

BGP 边界网关路由协议

文章目录 一、BGP概述1、自治系统&#xff08;AS&#xff0c;autonomous system&#xff09;2、动态路由的分类&#xff08;1&#xff09;自治系统分类&#xff08;2&#xff09;协议类型分类 3、BGP的概念4、BGP的特征 二、BGP工作原理1、BGP邻居关系&#xff08;1&#xff09…

BGP协议原理与配置

AS&#xff08;自治系统&#xff09;是指由同一个技术管理机构管理&#xff0c;使用统一选路策略的一些路由器的集合。 私有自治系统&#xff0c;类似于私网那个IP地址&#xff0c;归属个人&#xff0c;不会连接到公网 国际管理自治系统 AS的内部&#xff1a;使用IGP&#xff0…

浅议BGP(一文看懂BGP)

今天主要介绍一下BGP的相关基础知识&#xff0c;文章浅显易懂&#xff0c;适合对BGP完全没有了解的同学。 一、先导知识 为了更好的介绍BGP&#xff0c;下面先对几个概念进行简单的介绍&#xff1a; 1、AS AS、即Autonomous System&#xff0c;自治系统。AS可以简单的理解为一…

一、BGP协议原理

BGP协议原理 一、BGP概述二、BGP特点二、BGP基本术语2.1.BGP发言者&#xff08;BGP Speaker&#xff09;2.2.Router ID&#xff08;RID&#xff09;2.3.BGP对等体&#xff08;BGP Peer&#xff09;2.3.IBGP对等体&#xff08;Internal BGP Peer&#xff09;2.4.EBGP对等体&…

BGP协议基本配置

边界网关协议BGP实现自治系统AS的路由可达 EBGP&#xff1a;运行于不同 AS 之间的 BGP 称为 EBGP。为了防止 AS 间产生环路&#xff0c;当 BGP 设备接收 EBGP对等体发送的路由时&#xff0c;会将带有本地 AS 号的路由丢弃。 IBGP&#xff1a;运行于同一 AS 内部的 BGP 称为 I…

BGP协议介绍

一. BGP协议概述 BGP用于在不同的自治系统&#xff08;AS&#xff09;之间交换路由信息。当两个AS需要交换路由信息时&#xff0c;每个AS都必须指定一个运行BGP的节点&#xff0c;来代表AS与其他的AS交换路由信息。通常是路由器来执行BGP。两个AS中利用BGP交换信息的路由器也被…

BGP协议总结(比较详细,好理解)

BGP Border Gateway Protocol&#xff08;当前使用的版本是 BGP-4&#xff09; 动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内&#xff0c;主要用来发现和计算路由&#xff0c;为AS内提供路由信息的交换&#xff1b;而EGP工作在AS与AS之间&#xff0c;在…

sentinel流控设置--流控排队等待

排队等待 顾名思义&#xff0c;请求过多时&#xff0c;让请求匀速的进入后台进行处理。采用漏斗算法&#xff0c;控制流量 设置超时时间&#xff0c;超时的则将请求抛弃&#xff0c;返回错误信息