BGP - 32张图详解BGP路由协议:BGP基本概念、BGP对等体、BGP报文类型、BGP状态机等

一、BGP协议原理 BGP基本原理 阅读详情
前言

BGP路由协议是网络中使用最为广泛的协议了,不管是运营商网络、企业网络、数据中心网络,目前都有在使用BGP协议。

今天就给大家详细介绍下BGP路由协议;

什么是BGP路由协议

1、BGP协议出现背景

OSPF、ISIS路由协议在网络中已经广泛使用,但是随着网络规模的扩大,路由条目也随增加,IGP协议已经无法管理大规模网络了。因此出现了AS的概念。

AS的概念比较抽象呀。

官方解释:AS是指在同一组织管理下,使用统一选路策略设备的集合。

简单来说:就是你可以把一个网络中的不同的设备划分到不同的组(AS)中,或者都划分在一个组中,那么一个组中的这些设备具备相同的路由协议。

比如你可以将企业总部网络划分在一个AS中,企业的分部网络划分在一个AS中。不同的AS可以运行不同的路由协议。

那么不同AS的网络需要通信时,采用什么路由协议进行通信呢?答案就是本章的BGP路由协议。那么为什么不能够通过IGP(ISIS、BGP)进行通信呢?

这个举个简单的例子,企业网络或者数据中心网络对接运营商的Internet时。如果使用IGP路由协议(OSPF、ISIS)对接时,那么这个时候企业网络和运营商的网络是运行在一张网络中,这个是不安全的,你可以认为运营商为什么信任你的企业网络?

还有一点就是整个网络规模扩大,路由数量增多,路由收敛慢。

那么有没有一种路由协议可以实现不同网络间的路由交互呢?答案就是BGP。BGP有个好处就是不产生路由,只传递路由,并且具备丰富的路由策略。

这个时候可能有人还会站出来说,静态协议不就可以解决吗?其实是可以解决,不过有个问题就是使用静态协议时网络变动时都需要人手动去增删路由,那么有没有一种动态的方式呢?答案就是BGP路由协议了。

所以说上面的例子:企业和运营商对接时可以采用BGP路由协议进行对接实现路由的交互。

2、BGP传递路由优势

不同AS之间通过BGP路由协议对接,那么使用BGP相比IGP协议有那么好处呢?

  • BGP是基于TCP的路由协议,只要能够建立TCP就能够建立BGP;
  • BGP只传递路由信息,不计算路由,不会暴露AS内部的网络拓扑;
  • BGP的路由更新是触发更新,不是周期性更新;

3、什么是BGP路由协议

BGP是一种基于距离矢量的路由协议,用于实现不同AS之间的路由可达。

BGP协议的基本特点:

(1)BGP是一种外部网关协议,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由;

(2)BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性;

(3)BGP是一种距离矢量路由协议,在设计上就避免了环路的发生;

(4)BGP提供了丰富的路由策略,能够实现路由的灵活过滤和选择;

(5)BGP采用触发式增量更新,而不是周期性的更新;

BGP对等体

1、什么是BGP对等体

BGP发言者:运行BGP路由协议的路由器称为BGP发言者(BGP路由器);

BGP对等体:两个建立BGP会话(BGP的会话是基于TCP建立的)的路由器互为BGP对等体,BGP对等体之间可以交换路由表;

2、BGP对等体分类

BGP对等体可以按照两个路由器是否AS相同,分为EBGP对等体和IBGP对等体。

(1)IBGP:位于相同的AS的BGP路由器互为IBGP对等体关系;

(2)EBGP:位于不同的AS的BGP路由器互为EBGP对等体关系;

能够建立对等体的条件:

  • 两个路由器指定建立对等体的地址必需可达;
  • TCP连接能够建立;

3、如何建立BGP对等体

(1)TCP连接建立

假设BGP路由器R1先启动,则R1先发起建立TCP连接,通过3次握手完成TCP的连接建立。

(2)BGP路由器发送OPEN报文协商参数

三次握手建立完成后,R1和R2之间相互发送OPEN报文,用于建立对等体的参数协商。

OPEN报文参数:

  • 自身AS号;
  • hold time:用于协商后续keepalive报文发送时间;
  • BGP identifier:自身router id;

(3)BGP路由器发送keepalive报文完成对等体建立

参数协商正常后双方相互发送keepalive报文,收到对方的keepalive报文后对等体建立成功,同时后续定期发送keepalive报文用于保持连接。

(4)BGP路由器发送UPDATE报文通告路由

BGP对等体关系建立好了,就可以通过BGP update 报文通告路由到对等体。收到对方的keepalive报文后对等体建立成功,同时后续定期发送keepalive报文用于保持连接。

4、BGP对等体建立使用源地址

BGP默认使用出接口的IP地址建立对等体。

(1)在建立IBGP对等体关系时,建议使用loopback地址建立IBGP对等体。因为loopback地址稳定,可以借助内部IGP冗余保证可靠性。

例如上图:

R1和R2通过loopback地址建立IBGP对等体,如果R1和R2之间的物理链路断了,loopback地址的连通性也不会受影响,可以通过R3实现R1和R2的loopback地址的互通,那么R1和R2之间的对等体关系依然可以保持建立。如果通过接口建立的话,就会导致BGP对等体关系中断。

(2)在建立EBGP对等体关系时,建议使用直连地址建立EBGP对等体。如果使用loopback,需要注意EBGP多跳的问题。

BGP报文类型

1、BGP报文类型

BGP存在5种不同类型的报文,分别是open、update、notification、keepalive、route-refresh。

2、BGP报文头格式

不同于常见的IGP协议,BGP使用TCP作为传输层协议,端口号179。BGP存在5种不同类型的报文,不同类型的报文具有相同的头部。

报文头字段解释:

  • Marker:16Byte,用于标明BGP的边界,所有的bit均为“1”
  • Length:2Byte,BGP总报文长度(包括报文头)
  • Type:1Byte,BGP报文的类型。其取值从1到5,分别表示open、update、notification、keepalive、route-refresh报文。

3、BGP报文格式

(1)OPEN报文

open报文是TCP连接建立后发送的第一个报文,用于协商参数;

  • version:bgp版本,通常为4;
  • My AS:本地AS号;
  • Hold time:保持时间。在建立对等体关系时两端要协商hold time,如果在这段时间内未收到对端发来的keepalive报文和update报文,则认为BGP连接中断;
  • BGP identifier: BGP标识符,以IP地址形式标识,用来识别路由器。

(2)Update报文

Update报文用于在对等体之间传递路由信息,可以用来发布和撤销路由。

一个Update报文可以通告具有相同路径属性的多条路由,这些路由保存在NLRI(网络层可达信息)中。

  • Withdrawn Routes Length:标明Withdrawn Routes部分的长度。其值为零时,表示没有撤销的路由。
  • Total path attribute length:路径属性字段的长度,以Byte为单位。如果为0则说明没有Path Attributes 字段。

(3)Notification报文

当BGP检测到错误状态时,就会向对等体发送Notification报文,告知对端错误,之后BGP连接会立即中断。

  • Error Code、Error Code:差错码、差错子码,描述错误类型;
  • Data:错误内容;

(4)Keepalive报文

双方相互发送keepalive报文,收到对方的keepalive报文后对等体建立成功,同时后续定期发送keepalive报文用于保持连接。

(5)Route-refresh报文

Route-refresh报文用于要求对等体重新发送指定地址族的路由信息,一般是本地修改了相关的路由策略,让对方重新发送update报文。

在Open报文协商时会协商是否支持Route-refresh,如果对等体支持Route-refresh能力,则可以通过refresh bgp命令手工对BGP连接进行软复位,BGP软复位可以在不中断BGP连接的情况下重新刷新BGP路由表,并应用新的策略。

BGP状态机

1、BGP 6种状态

BGP的状态有idle、connect、active、opensent、openconfirm、established六种状态。

2、BGP 状态变换

BGP的状态有idle、connect、active、opensent、openconfirm、established六种状态。

(1)Idle状态是BGP初始状态。

在Idle状态下,BGP拒绝对等体发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。

Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。

任何状态中收到Notification报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。

(2)Connect状态

在Connect状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。

  • 如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP转至Active状态。
  • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。

(3)Active状态

在Active状态下,BGP总是在试图建立TCP连接。

  • 如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP停留在Active状态。
  • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

(4)Opensent状态、openconfirm状态

TCP三次握手建立成功后,发送open报文建立对等体关系,此时的状态为

opensent状态,当收到对端回应的open报文,并且参数检查无误,在发送keepalive报文后进入openconfirm状态。

(5)established状态

进入openconfirm状态后,收到对端的keepalive报文后进入established状态。

BGP路由表

1、BGP对等体表

可以通过dis bgp peer 查看BGP对等体表;

‍ (1)peer:对等体地址

(2)V:版本号

(3)AS:对等体AS号

(4)UP/DOWN:对等体存在up或者down的时间

(5)state:对等体状态

(6)prefRce:从该对等体收到的路由前缀数目

2、BGP路由表

可以通过display bgp routing-table 查看BGP路由表;

如果到达同一个目的地存在多条路由,则将路由都进行罗列,但每个目的地只会优选一条路由。

通过display bgp routing-table ipv4-address { mask | mask-length } 可以显示指定IP地址/掩码长度的路由信息,在其中有关于该BGP路由的详细信息,如:路由始发者、下一跳地址、路由的路径属性等。

BGP路由生成

BGP路由是通过BGP命令通告而成的,而通告BGP路由的方法有两种:network和Import。

(1)network方式:

使用network命令可以将当前设备路由表中的路由(非BGP)发布到BGP路由表中并通告给邻居,和OSPF中使用network命令的方式大同小异,只不过在BGP宣告时,只需要宣告网段+掩码数即可,如:network 12.12.0.0 16。

(2)Import方式:

使用Import命令可以将该路由器学到的路由信息重分发到BGP路由表中,是BGP宣告路由的一种方式,可以引入BGP的路由包括:直连路由、静态路由及动态路由协议学到的路由。其命令格式与在RIP中重分发OSPF差不多。

BGP通告原则

BGP设备会将最优路由加入BGP路由表,形成BGP路由。

BGP设备与对等体建立邻居关系后,采用以下交互原则:

  • 从IBGP对等体获得的BGP路由,BGP设备只传递给它的EBGP对等体。
  • 从EBGP对等体获得的BGP路由,BGP设备传递给它所有EBGP和IBGP对等体(对等体是IBGP只能传递一跳,对等体是EBGP则不限制)
  • 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
  • 路由更新时,BGP设备只发送更新的BGP路由
  • 所有对等体发送的路由,BGP设备都会接收
  • 所有EBGP对等体在传递过程中下一跳改变
  • 所有IBGP对等体在传递过程中下一跳不变(需要特别注意)
  • 默认EBGP传递时 TTL值为1(需要特别注意)
  • 默认IBGP传递时 TTL值为255

---END---

原始发表:2021-12-21,如有侵权请联系删除

BGP(边界网关协议详解) OutQ:队列,一般情况下该值为0,如果持续性不为0,那么该网络就说明出现了大问题。PrefRce:表示通过这个邻居学习到了几条路由。 阅读详情

相关推荐

IP第十天笔记 - - - BGP

BGP --- 边界网关协议

Friday0807的博客 2189

BGP协议介绍总结(全干货)

想弄清bgp概念之前,先了解什么是bgp。bgp协议:边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统AS(Autonomous System)。

Hello 2万+

BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍

启用BGP后,开始准备建立TCP的连接时的状态。任何状态中收到Notification报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。Connect已发送TCP Syn报文,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。(Connect Retry 重置连接计时器,默认32S)如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。如果TCP连接失败,那么BGP转至Active状态。

Hades_Ling的优快云博客 1万+

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

BGP(Border Gateway Protocol),边界网关协议。一种自治系统间的选路协议,在 AS 之间交换网络的可达性信息。根据可达性信息,路由器能够构造 AS 之间的连接关系图,从而计算出到达目的网络的路由。在计算路由时,管理员可以在 AS 层面上应用一些路由控制策略。例如,控制到某网络的路由不经过某些 AS。因此,BGP尽力寻找一条能够到达目的网络且比较好的路由(不兜圈子),而并非找最佳路由。BGP属于距离矢量路由算法的增强协议,在原有路由信息的基础上加入路径信息,防止了。

HinsCoder的博客 1万+

BGP以及BGP对等体之间的交互原则

BGP——边界网关协议 BGP概述 边界网关协议:是一种实现自治系统AS之间的路由可达并选择最佳路由矢量性协议。早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1944年开始使用BGP-4(RFC1171),2006年以后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络使用的版本是MP-BGP(RFC4760)。 BGP路由协议的特点 1.BGP能够承载大批量的路由协议,能够支撑大规模的网络。 2.BGP使用TCP协调一作为

Desire_cure_的博客 6143

BGP路径矢量路由协议的基本概念

文章目录一、AS的基本概念二、BGP的基本概念1.BGP的特点2.BGP分类:3.BGP的路由器号4.BGP工作原理一、5种报文分别为:二、6种状态机分别为:三、9个原则分别为: 提示:以下是本篇文章正文内容,下面案例可供参考 一、AS的基本概念 AS是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合 BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS区域。 AS号分为2字节AS号和4字节AS号,2字节AS号范围为1至65535,其中1–64511是互联网上注册公有AS号,类

诚实可靠小相公的博客 2442

网络协议——BGP(边界网关协议)全网最详解

AS: 指的是在同一个组织管理下,使用统一选路策略的设备集合,AS取值范围四字节( 0~43亿。

wh940830165的博客 2万+

BGP协议的具体属性(华为面试官问)

2、BGP协议特性: 1、BGP是自治系统外部路由协议,用来在AS之间传递路由信息 2、路径矢量路由协议,从设计上避免了环路的发生 其路由信息中携带了所经过的全部AS路径列表。这样,接收该路由信息的BGP路由器可以 明确的知道此路由信息是否源于自己的AS。如果是源于自己的AS,BGP就会丢弃此条路由 ,这样就根本的解决了AS之间产生环路的可能。 3、TCP承载,端口号是179 天然的可靠传输机制...

WangY.H 6349

BGP路由技术详解(一)

BGP路由技术前言一、BGP路由协议概述1、BGP定义2、BGP的特点3、BGP分类4、BGP的路径矢量特征5、BGP的路由器二、自治系统AS的概念AS号三、BGP工作原理1、5种BGP报文2、6种BGP状态机3、9个BGP对等体之间的交互原则建立对等体注意点四、BGP简单配置命令配置BGP 前言 BGP是自治系统间的路由协议,BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策。 一、BGP路由协议概述 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的

王大雏的博客 8230

BGP报文——邻居状态机

【BGP协议实验与状态机分析】实验配置了AR1和AR2之间的BGP邻居,通过抓包观察BGP建立过程。BGP邻居状态包括Idle(初始32秒等待)、Connect(TCP握手)、Active(重试握手)、OpenSent(发送Open报文)、OpenConfirm(确认参数)和Established(正常运行)。重点分析了Open报文(版本/AS号协商)和Update报文(路由更新)的结构,指出华为设备存在32秒的初始等待时间(Start事件)。故障排查需关注TCP握手失败、参数协商不一致等情况,并可通过ti

qq_52752991的博客 1586

BGP路由协议入门

目录前言一、BGP二、BGP实验1.1 BGP命令2.2 实验 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、BGP 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、BGP实验 1.1 BGP命令 [R1] bgp 100 #创建bgp编号为100(也就是As100) ------配

段小宝的博客 1156

BGP路由协议(一):基本概念

BGP-4 RFC1771 1994年BGP-4 RFC4271 2006年AS Autonomous System 自治系统:由一个单一的机构或者组织所管理的一系列IP网络及其设备所构成的集合根据工作范围的不同,动态路由协议可以分两类:a. IGP Interior Gateway Protocol 内部网关协议ⅰ. RIPⅱ. OSPFⅲ. IS-ISb. EGP Exterior Gateway Protocol 外部网关协议ⅰ. BGP。

jlgkeep的博客 1150

BGP理论(超详解)

文章目录一、BGP简介1.BGP概述2.AS概述二、BGP分类1.EBGP2.IBGP3.BGP的路由器号(Router-ID)三、BGP的特点四、BGP的工作原理1.BGP的5种报文2.BGP的6种状态机3.BGP的9个原则(对等体之间的交互原则)4.建立 对等体注意点 一、BGP简介 1.BGP概述 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议 BGP(Border Gateway Protocol),我们称之为边界网关路由协议,用于自治系统(Autonomous System

Xucf1 2793

29bgp

启动BGP,指定本地AS编号,并进入BGP视图。使用router-id命令配置BGP的Router ID,建议将BGP Router ID配置为设备Loopback接口的地址。

weixin_47774079的博客 1110

华为模拟器——BGP实现全网互通

BGP协议的原理及应用 一、BGP特征 ① 传输协议:TCP,端口号179 ② BGP是外部路由协议,用来在AS之间传递路由信息 ③ 是一种增强的路径矢量路由协议 ④ 拥有可靠的路由更新机制 ⑤ 具备丰富的Metric度量方法 ⑥ 无环路协议设计 ⑦ 为路由条目附带多种属性信息 ⑧ 支持CIDR(无类别域间选路) ⑨ 丰富的路由过滤和路由策略 ⑩ 无需周期性更新 ⑪ 路由更新时只发增量路由 ⑫ 周期性发送KeepAlive报文以保持TCP连通性 二、BGP报文 Open报.

weixin_49228079的博客 2575

BGP简介、BGP状态机、BGP的各种属性详解

一、简介 1、BGP全称为边界网关路由协议,典型的外部网关路由协议,是一种无类别的路径矢量(高级的距离矢量)型协议,又可以是一种路径优先协议,采用分布式计算,用于管理AS之间的路由信息传递。 2、特性 (1)可靠性:采用tcp作为可靠性机制,单播建邻,基于tcp的179端口工作,因为更新量巨大,所以只能采用触发更新; (2)可控性:AS之间提供丰富的属性来干涉选路,用来灵活的选择路由并且都需要人工...

qq_44027899的博客 2412

BGP 边界网关路由协议

文章目录 边界网关协议 BGP协议详解 最全BGP路由协议技术详解

shenyuanhaojie的博客 4万+

26 硬件工程师笔面试高频考点真题解析——CAN总线

CAN总线是一种差分多主串行半双工总线,采用非破坏性位仲裁机制和五层硬件错误检测(位错误、填充错误、CRC校验、格式错误、应答错误),具有高可靠性和故障容错能力。关键设计包括两端120Ω终端电阻匹配阻抗、手拉手总线拓扑、显性/隐性电平优先级仲裁。常见故障分析指出多节点异常多因终端电阻错配/漏装、星型布线违规或总线过载;高速通讯失败常由阻抗失配或线缆过长导致信号反射。相比RS485,CAN支持多主架构、硬件自动仲裁和节点故障隔离,更适用于汽车、工业等高可靠场景。

XU157303764的博客 548

BGP(边界网关协议)

基本概念 BGP是边界网关协议,实现自治系统AS之间的路由可达,并选择最佳路径的距离矢量路由协议。 AS的概念 自治系统,指的是在同一个组织管理下,使用相同策略的设备的集合。 不同AS通过AS号区分,AS的取值范围1-65535,其中64512-65535是私有AS号。IANA负责AS号的分发。 中国电信163 AS号:4134 中国电信 CN AS号:4809 中国网通AS 号:9929 BGP路由协议的特点 BGP能承载大批量的路由信息,能够支撑大规模网络。 BG.

weixin_62466637的博客 3010

不止于使能:用汇川PLC功能块封装,实现伺服轴状态管理与安全逻辑

本文深入探讨了汇川PLC功能块封装在伺服轴控中的应用,详细介绍了如何通过高级封装技术实现伺服轴的状态管理与安全逻辑。文章涵盖了从基础使能到全生命周期监控的进化,多轴协同的实例化管理策略,以及安全逻辑的防御性编程技巧,为工业自动化领域的工程师提供了实用的解决方案和最佳实践。

weixin_28684825的博客 272

FTViewSE利用VB脚本制作简易日报表

罗克韦尔SE用VB做的简单的报表

z0800656的博客 3023
上一篇: BGP项目 - OpenStack Neutron Dynamic Routing
下一篇: qemu/kvm -- guest中断注入机制
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值