BGP初探

目录

1、基本概念

1.1  自治系统(AS)

2、 BGP(边界网关协议)

3、 IBGP水平分隔规则

4、BGP的路由号(Router-ID)

5、BGP的工作原理

5.1 报文

5.2 状态

5.3 BGP分类

5.4 交互原则 


1、基本概念

1.1  自治系统(AS)

        autonomous system,在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用各种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。

        一个自治系统就是处于一个管理机构控制之下的路由器和网络群组。它可以是一个路由器直接连接到一个LAN上,同时也连到Internet上;它可以是一个由企业骨干网互连的多个局域网。在一个自治系统中的所有路由器必须相互连接,运行相同的路由协议,同时分配同一个自治系统编号。自治系统之间的链接使用外部路由协议,例如BGP.。

        在同一个组织管理下,使用相同测试的设备的集合;

        不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号;IANA负责AS号的分发。

在这里插入图片描述

 早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)、BGP-3(RFC1267),1994年开始使用BGP-4(RFC1771)、2006年之后单薄IPv4网络使用的版本是BGP-4(RFC427),其他网络使用版本是MP-BGP(RFC4760)

2、 BGP(边界网关协议)

        一种实现自治系统AS之间通信的外部路由协议;实现自治系统之间的路由可达,并选择最佳路由的矢量性协议;

BGP特点:

  • 能提供承载大批量的路由信息,能否支持大规模网络;
  • 使用TCP作为其传输层协议,监听端口为179,提高协议可靠性;
  • 作为AS之间传递数据的外部协议,稳定性要求非常高;
  • BGP对等体之间必须逻辑上联通,并进行TCP连接,目的端口179,本地端口任意;
  • BGP对等体和IGP对等体不同,BGP对等体(peer)是指使用TCP建立连接的两端,而非与IGP通概念的直连邻居,只要TCP能够建立连接,并不一定需要直连;
  • 本身值负责控制路由,数据转发依然依靠静态或IGP路由;
  • 支持无类别域间路由CIDR;
  • 路由更新时,BGP只发送更新的路由,大大减小BGP传播路由所占用的宽带;
  • BGP是一种增强的距离矢量路由协议,从设计上避免环路的发送;
  • AS之间,BGP通过携带AS_PATH信息标记途径的AS,带有本地AS号的路由将被丢弃,从而避免域间产生环路;
  • AS内部,BGP在AS内学到的二路由不会再通告给AS内的BGP邻居,避免AS内产生回路;
  • 提供了丰富的路由策略,能够对路由实现灵活的过滤和选择;
  • 易于扩展,能够适应网络的新发展(ipv4单/组播,vpv4单/组播),主要通过TLV进行扩展;
  • BGP提供了防止路由振荡的机制(路由衰减),有效的提供了Internet网络的稳定性;

so what,还是云里雾里

3、 IBGP水平分隔规则

水平分割: 水平分割(split horizon)是一种避免路由环路的出现和加快路由汇聚的技术。

AS内部,BGP在AS内学到的路由不会再通告给AS内的BGP邻居,避免AS内产生环路。

         如上图,C从E学习到的IBGP路由,由于水平分割规则的限制,不能够传递给路由B,这将导致B无法学习到F通告的BGP路由,为了解决这个问题,E可以通过BGP连接,与B直接形成逻辑连接,达到全网联通的目的;

        所以,AS内部路由之间需要两两建立逻辑连接,才能实现与外部AS之间的全网连通?

4、BGP的路由号(Router-ID)

        BGP的Router-ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接;

        BGP的Router-ID在BGP网络中必须是唯一的,既可以采用手工配置,也可以让设备自动选取。默认情况下,BGP选择设备上的Loopback接口的IPv4地址作为BGP的Router-ID,如果设备上没有配置Loopback接口,系统会在接口中选择最大的IPv4地址作为BGP的Router_ID,一旦选出Router_ID ,除非发送接口地址删除等时间,否则即使配置了更大的地址,也会保持原来的Router-ID。

5、BGP的工作原理

        BGP对等体的建立、更新和删除等交互过程主要包含5中报文、6中状态机以及9个原则;都是概念。。。

5.1 报文

  • Open报文:TCP建立后发送的第一个报文。用于协商BGP对等体的各项参数,主要包括BGP版本(v4),AS号等信息,建立BGP对等体连接;
  • Update报文: 用于在对等体之间交换路由信息。建立连接后,有路由需要发送或路由变化时,发送Update报文通过对端可达或者撤销路由信息及路径属性;
  • Notification报文: 用于中断BGP连接。当BGP在运行中发生错误时,发送该报文通告BGP对端,随后与之相关的邻居关系将被关闭。
  • Keeplive报文: 用于保持BGP连接(保活),定时发送Keeplive报文以保持BGP对等体关系的有效性,响应收到正确的Open报文;
  • Router-refresh报文: 用于在改变路由策略后的软复位,相当于刷新重载;BGP路由表请求对等体重新发送路由信息,只有支持路由刷新能力的BGP设备会发送和响应此报文;

5.2 状态

BGP对等体的交互过程中存在6中状态机:空闲(Idle)、

  • Idle BGP的初始状态,在该状态下,BGP拒绝邻居发送的连接请求,只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态;
  • Connect: BGP启动连接重传定时器(Connect Retry),等待TCP完成连接;如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态;如果TCP连接失败,那么BGP转至Active状态,反复尝试连接;如果连接重传定时器超时,BGP任然没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连线,停留在Connect状态;
  • Active  该状态下,BGP总是尝试建立TCP连接;如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态;如果TCP连接失败,那么继续停留在Active状态,并尝试重新连接;如果连接重传定时器超时,BGP仍然没有收到对等体的响应,那么BGP转至Connect状态;
  • OpenSent: BGP登录对等体的Open报文,并对接收到的Open报文中的AS号、版本号、认证码等进行检查;如果收到Open报文正确,那么BGP发送Keeplive报文,并转至OpenConfirm状态;如果发现收到的Open报文有误,那么BGP发送Notification报文给对等体,并转至Idle状态;
  • OpenConfirm: BGP登录Keeplive或者Notification报文,如果收到Keeplive报文,则转至Establish状态;如果收到Notification报文,则转至Idle状态;
  • Establish: BGP可以和对等体交换Update、Keeplive、Route-refresh和Notification报文;如果收到正确的Update或者Keeplive报文,那么BGP就认为对的处于正常运行状态,将保持BGP连接;如果收到错误的Update或者Keeplive报文,那么BGP就发送Notification报文通知对端,并转至Idle状态;如果收到Notification报文,那么BGP转至Idle状态;如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态;Route-refresh报文不会改变BGP状态;

在这里插入图片描述

 在这里插入图片描述

5.3 BGP分类

BGP按照运行方式分为EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP);

EBGP

运行于不同AS之间的BGP称谓EBGP,为了防止AS间产生环路,当BGP设备接收到EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃;

IBGP

        运行于同一AS内部的BGP称谓EBGP,为了防止AS内部产生环路,BGP设备将不从IBGP对等体学到的路由通告给其它IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

        邻居之间不必要通过直连建立邻居关系,一般通过Loopback建立邻居关系;

建立对等体注意点

  • 直连对等体:建立IBGP对等体时要让下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体;
  • 用环回口建立邻居:需要修改更新源,默认更新源是物理口,需要修改成环回口。建立IBGP对等体时要保障下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体;建立EBGP对等体时因为EBGP只能传一跳,因而,在建立EBGP对等体时,需要修改EBGP多条的跳数为2以上(自己环回到对端环回是两跳,默认一跳);
  • 为什么要用环回口建立邻居:环回口稳定,只要路由器启动着,环回口就不DOWN,而物理链路可能会收线路或者接口等因素的影响而导致对等体关系有问题,因为一般BGP建立对等体都是 环回口来建。

5.4 交互原则 

        BGP设备将最有路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交付原则;

  • 从IBGP对等体获得的BGP路由,BGP设备只发布给他的EBGP对等体;
  • 从EBGP对等体获得的BGP路由,BGP设备发布给他的所有EBGP和IBGP路由;
  • 当存在多条到达同一目的地址的有效路由时,BGP设备将只发送最有路由给对等体;
  • 路由更新时,BGP设备只发送更新的BGP路由;
  • 所有对等体发送的路由,BGP设备都会接收;
  • 所有EBGP对等体在传递过程中吓一跳改变;
  • 所有IBGP对等体在传递过程中吓一跳不变;
  • 默认EBGP传递时的TTL值为1;
  • 默认IBGP传递至的TTL值为255;
BGP中的Keepalive是一种定期发送的报文,用于维持BGP邻居关系。如果收到正确的Update或Keepalive报文,BGP就认为对端处于正常运行状态,并保持BGP连接。Keepalive报文的格式只包含报文头,没有附加其他任何字段。该报文的目的是确保BGP会话的连通性,并及时检测到邻居的异常情况。如果收到错误的Update或Keepalive报文,BGP将发送Notification报文通知对端,并转至Idle状态。而Route-refresh报文不会改变BGP状态。如果收到Notification报文,BGP会转至Idle状态。另外,如果收到TCP拆链通知,BGP会断开连接并转至Idle状态。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍](https://blog.csdn.net/qq_45443704/article/details/129895505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [BGP基础](https://blog.csdn.net/zljszn/article/details/124732057)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值