Advertisement

【路由协议】BGP基础知识

阅读量:

什么是BGP

边界网关协议(BGP)是一种在网络层可达性信息(NLRI)交换机制上发挥重要作用的路由选择协议。由于不同实体各自管理着自己的路由选择域(AS),因此这些领域常被称为自治系统(Autonomous System)。当前的互联网由多个自治系统通过复杂的连接关系构成一个庞大的网络体系,在这一架构下,现通常采用的版本为BGP协议作为外部路由协议标准,在ISP之间得到了广泛的应用。该协议于1987年首次发布并经历了三个版本的发展:BGP-1、BGP-2和BGP-3;这些早期版本主要用于实现AS间可达路由信息的交换、构建AS间传播路径以及防范路由环路的发生,并在AS级别应用了一定数量的路由策略;而目前所使用的则是经过更新完善的BGP-4版本。

目录

为什么需要BGP?

IGP(Internal Gateway Protocol)旨在为单个自治系统内部实现节点间的可达性信息传播,在无法满足跨越不同自治系统之间路由选择能力时则展现出局限性;相比之下,BGP(Border Gateway Protocol)作为一种卓越的跨自治系统路由协议而发展和完善,在现代互联网中扮演着关键角色。

当今的网络通常使用以下类型的IGP:

  • 距离矢量协议(Distance Vector Protocol),如RIP。
  • 链路状态协议(Link-State Protocol),如Open Shortest Path First (OSPF) OSPF 和Intermediate System to Intermediate System (IS-IS) IS-IS

尽管这些协议被设计于各自特定的目的,并呈现出独特的行为特性;然而它们的核心目标在于解决单个路由选择域内的路径最优化问题。IGP不适于实现跨域路由选择功能;例如,在跨域环境中的一种路由选择协议应当具备灵活的策略调控能力。

自始至终被设计为一种域间路由选择协议。该协议的主要目标是实现策略控制能力以及提升可扩展性。然而,在某些情况下,BGP并不适合取代IGP;这是因为它们的应用场景存在显著差异。

B GP有两大类实现方式,在同一AS内运行时被称作Internal B GP(Internal Boundary Gateway Protocol),而不同AS间则为External B GP(External Boundary Gateway Protocol)。如图1所示的B GP运行模式

BGP的方式

BGP是怎么工作的?

BGP报文中的角色

生成相关的信息并分发给相关方的设备被称为BGPIP发言人(Speaker),它们接收新数据或创建新路线,并通过广告机制传播这些数据到其他BGPIP发言人。
每当某个BGPIP发言人从另一个AS获取最新路径报告时,
如果这条新报告优于现有记录或是首次出现,
那么这个BGPIP发言人会将这一新报告分发给所有未负责它的BGPIP发言人,
从而实现对该路线的有效更新与传播。

Peer:相互交换报文的BGP Speaker之间互称对等体(Peer)。

BGP的报文

BGP基于报文驱动,并包括Open、Update、Notification、Keepalive以及Route-refresh等五种不同的报文类型

Open报文:表示TCP连接建立后的初始数据包,在BGP中用于建立对等体之间的初始连接关系。当对等体接收到该数据包并完成协商后,则会发送Keepalive报告来维持连接的有效性状态。经过核实后,在随后的时间段内双方可以通过Update报告、通知信息报告、Keepalive报告以及重置路径信息报告来进行数据传输相关的操作和信息同步。

Update报文主要用于在对等体之间传递最新的网络状态变化。该报文支持发布多条具有相同属性的可达路径信息,并且能够撤销多条具有不可达特征的路由记录。实现两方节点之间的动态路由信息更新。

当BGP检测到错误状态后,就会向相应的对等体发送NOTification报文,并随后立即断开BGP连接

Keepalive报文:BGP负责定期向对等体发送Keepalive报文,并以确保连接的有效运行。

Route-reflash报文用于发起请求至双方实体以获取所有可达的路由数据

BGP处理过程

由于B GP采用的是传输层协议TCP,在构建其互连体之前

邻居建立过程图

BGP有限状态机

该BGP有限状态机包含六个不同的状态类型,包括IdleConnectActiveOpen-SentOpen-Confirm和Established

当构建BGP对等体时

Idle状态下,BGP拒绝任何进入的连接请求,是BGP初始状态。

Connect状态下,BGP等待TCP连接的建立完成后再决定后续操作。

Active状态下,BGP将尝试进行TCP连接的建立,是BGP的中间状态。

Open-Sent状态下,BGP等待对等体的Open报文。

Open-Confirm状态下,BGP等待一个Notification报文或Keepalive报文。

处于Established状态时,在BGP对等体之间能够进行交互交流,并能够交换更新数据包(Update data包)、重传路径更新数据包(Route_refresh data包)、心跳维持数据包(Keepalive data包)以及维护通知数据包(Notification data包)。

BGP互连体的双方状态均须处于Established状态,才能建立BGP邻居关系;双方基于Update报文进行路由信息交换。

BGP属性

BGP中的路由属性构成一组参数集合,它们对特定路由进行详细描述,从而使得BGP能够根据需要过滤并选择相应的路由.实际上,所有存在的BGP中的路由属性都可分为四类:

公认为必遵循的(Well-known mandatory):所有BGP设备都具备识别能力。若缺乏该属性,则将导致问题。

Well-known discretion: All BGP devices are capable of recognizing them.
However, they are not required to be included in the Update announcements.
Their inclusion can be determined based on specific circumstances.

可选过渡特性(Optional transitive):位于AS之间的属性若具备传递性,则属于可选过渡特性。某些BGP设备可能不支持此特性,然而它们仍会接收此类属性,并通知其他对等体进行处理。

可选择的非过渡:当BGP设备无法支持该属性时,则此类属性将被忽略,并不会向下级平等体传达。

下面介绍几种常用的BGP路由属性:

Origin参数归类为一种必填属性,在网络配置中用于确定路径信息的来源渠道。该参数标识该路由如何被确认为BGP路由,并包括IGP、EGP以及Incomplete三种类型。

该属性被归类为一个必要遵循的标准参数,在网络路径规划中具有重要作用;它按照矢量顺序记录了从本地至目的地址所需通过的所有AS编号。

Next_Hop属性,属于公认必须遵循属性。

其中MED(Multi-Exit-Discriminator)作为可选non-transient属性,在相邻两个Autonomous System(AS)之间进行传播。当某一方接收该MED属性时,默认不会将其转发给任何外部的其他AS。

该属性属于通用任意属性。仅限于IBGP等同实体间。无需通知其他AS。用于指示路由设备的BGP优先等级。

BGP是如何处理路由的?

该BGP处理方式通过图展示了其处理过程。该方式其来源主要包括来自其他协议引入以及基于邻居的学习两种途径

BGP对路由的处理过程

路由引入

由于BGP协议本身不具备路由自发现功能,在实际应用中需要通过引入其他类型如IGP或静态路由的方式将其路由信息注入至BGP路由表中,从而实现这些路由信息在AS内部以及不同AS之间的传播。

BGP引入路由时支持两种引入方式:一种是基于协议类型区分导入不同类型的路由信息;另一种则通过指定特定前缀与掩码实现更加精准地注入单条目标路由至BGP主接口表中。具体而言,在Import模式下会将RIP族中的常规动态路由、OSPF族中的链路状态广播型静态静态以及IS-IS族中的自组播动态信息数据等特定类型的网络信息按照其所属协议族别导入到BGP主表中;而Network模式相较于此则更为精准地完成指定前缀与掩码的一条目标路径的注入过程。

路由选择

当同一目的地存在多条路由时

路由聚合

在大型网络环境中,该BGP路由表规模较大;采用路径聚合技术能够显著降低其规模。

其本质是将多条路由进行整合。因此,在BGP向对等体发送路由信息时,只需传递整合后的数据即可避免重复告知所有原始路由信息。

BGP路由聚合支持两种方式:

  • 自动聚合功能旨在整合BGP引入的路由信息。
  • 配置自动聚合功能后会阻止参与该集合的具体路由。
  • 使用自动聚合功能后, BGP会将所有属于同一自然网段的路由(例如, 10.1.1.1/32和10.2.1.1/32)合并为单个A类地址 routing prefix 10.0.0.0/8, 并且仅向其对等体发送合并后的 routing数据。
  • 手动聚合法允许用户控制本地域内BGP routing的合并过程。
  • 通过手动聚合法用户能够调整汇总后的 routing集合特性参数。

IPv4 采用了自动式聚合和手动式的两种方式, 而 IPv6 仅采用手动式的聚合方式

BGP发布路由

BGP发布路由时采用如下策略:

  • 当有多条有效路由存在时, BGP Speaker仅限于将最佳路径发送给与之平等的关系实体.
  • BGP Speaker自EBGP获取的所有路径都会通过其全部关联的BG P 对等 体进行分发(这些BG P 对 等 体现在包括 EB GP 对 等 体和 IBG P 对 等 体).
  • B GPA R获得的路径不会发送给其所属的 IBG P 对 等 体.
  • B GPA R自IBG P 获取的路径是否会在 IBG P 对 等 体内进行分发,这取决于 I GP 和 BG P 同步的状态.
  • BG Speaker在两方之间建立连接后,会立即将自己可发布的BG P 最佳路径发送给新加入的关系实体.

BGP支持哪些扩展?

传统的BGP-4主要负责管理IPv4单播路由信息,在采用其他网络层协议(如[IPv6](https://info.support.huawei.com(info-finder/encyclopedia/zh/ IPv6 %2F html " IPv6 ")以及[组播](https://info.support.huawei.com(info-finder/encyclopedia/zh/%E7 BB %84 %E6 92 %AD %2F html " 组播 ")等技术时就会有一定的应用限制。

为了支持多种网络层协议的应用需求,在IETF(Internet Engineering Task Force)的基础上对B GP-4进行了多点协议(MPP)的增强后形成了多点协议边界路由器协议(M P-B GP)。该增强版本不仅保留了原有的功能特性,并且支持现有B GP扩展功能的同时还能够与未启用该功能的设备实现互通

MP-BGP基于现有的BGP-4协议框架,在此基础上提升了其功能性能。通过改进设计实现了向多种路由协议传递路由信息的能力,并支持IPv6地址系统(称为BGP4+)以及组播服务的实现。

  • MP-BGP具备同时管理单播与组播数据包的能力,并将这两种数据包分别存储在各自独立的路由表中以实现完全独立的信息处理。
  • MP-BGP不仅支持两种传输模式(即单播与组播),还能够建立各自的网络架构以实现不同数据类型的专用路径规划。
  • 原始BGP-4设计的单路广播策略及其配置手段均可直接应用到分组广播场景中,并据此动态地对两种广播类型的数据包进行专门化的处理。

BGP通过Address Family用于区分不同的网络层协议。涉及地址族的具体取值可参见相关标准文档。该协议支持多种MP-BGP扩展功能,并涵盖对VPN的支持、IPv6地址管理等功能的拓展,在各自地址族视图下分别进行配置。

  • BGP-IPv4单播地址族有以下作用:维护公网BGP邻居,并且传递公网IPv4路由信息;传递公网IPv4标签路由,主要用在Option C方式的跨域BGP/MPLS IP VPN或Option C方式的跨域BGP/MPLS IPv6 VPN场景里。
  • BGP-IPv6单播地址族有以下作用:维护公网IPv6 BGP邻居,并且传递公网IPv6路由信息;传递IPv6标签路由,主要用于配置6PE场景里。
  • BGP-IPv4组播地址族视图、BGP-MVPN地址族视图、BGP-IPv6 MVPN地址族视图、BGP-MDT地址族视图等组播相关地址族可以传输跨AS的路由信息,主要应用于MBGP、BIER、NG MVPN、BIERv6和Rosen MVPN。
  • BGP-VPNv4地址族、BGP-VPNv6地址族、BGP-VPN实例视图、BGP多实例VPN实例视图、BGP-L2VPN-AD地址族视图、BGP-L2VPN-AD地址族视图等VPN相关地址族主要应用于BGP/MPLS IP VPN、VPWS以及VPLS。
  • BGP-EVPN地址族视图、BGP多实例EVPN地址族视图等EVPN相关地址族主要用于配置BGP EVPN对等体,应用于EVPN VPLS、EVPN VPWS以及EVPN L3VPN。EVPN(Ethernet Virtual Private Network)是一种用于二层网络互联的VPN技术。EVPN技术采用类似于BGP/MPLS IP VPN的机制,在BGP协议的基础上定义了一种新的网络层可达信息NLRI(Network Layer Reachability Information)即EVPN NLRI,EVPN NLRI定义了几种新的BGP EVPN路由类型,用于处在二层网络的不同站点之间的MAC地址学习和发布。
  • BGP IPv4 SR-Policy地址族视图和BGP IPv6 SR-Policy地址族视图主要应用于Segment Routing MPLSSegment Routing IPv6。
  • BGP-Flow地址族视图、BGP-Flow VPNv4地址族视图、BGP-Flow VPNv6地址族视图、BGP-Flow VPN实例IPv4地址族视图、BGP-Flow VPN实例IPv6地址族视图等Flow相关地址族主要用于防止DoS/DDoS攻击,可以提高网络安全性和可用性。
  • BGP-Labeled地址族视图和BGP-Labeled-VPN实例IPv4地址族视图的应用主要在于BGP分标签方案的运营商配置。
  • BGP-LS地址族视图主要用于汇总IGP协议收集的拓扑信息上送给上层控制器。

全部评论 (0)

还没有任何评论哟~