BGP(Border Gateway Protocol)是一种用于自治系统(AS)之间的动态路由协议。它主要用于交换 AS 之间的可达路由信息,帮助构建 AS 域间的传播路径,防止路由环路的产生,并在 AS 级别应用一些路由策略。
早期的 BGP 发布了三个版本,分别是 BGP-1、BGP-2 和 BGP-3。这些版本逐步改进了 BGP 的功能和性能,以适应不断增长的互联网规模和需求。
当前使用的版本是 BGP-4,它是目前最广泛应用的 BGP 版本。BGP-4 在 BGP-3 的基础上引入了许多新的特性和改进,使得它更加灵活、可靠,适应了当今复杂的网络环境和业务需求。
本文瑞哥给大家详细介绍一下BGP的基本知识,在接下来的几天,我会连载介绍BGP,欢迎大家追更哦。
目录:
[TOC]
什么场景需要用到BGP?
BGP 作为事实上的互联网外部路由协议标准,在 ISP(Internet Service Provider)之间被广泛应用。ISP 使用 BGP 来交换路由信息,并确保互联网上的数据可以在各个自治系统之间正确地传输。通过 BGP,ISP 可以确定最佳的路由路径,以实现数据的高效传输,并且可以根据需要调整路由策略,以满足不同客户的需求和网络的变化。因此,BGP 在互联网基础设施中扮演着至关重要的角色,确保了全球网络的稳定运行和连接性。
BGP在以下几种场景中被广泛应用:
连接到多个ISP
当一个组织需要同时连接到多个互联网服务提供商(ISP)时,使用 BGP 可以实现在不同 ISP 之间选择最佳路由,以确保网络连接的可靠性和性能。
通过 BGP,组织可以向各个 ISP 发布自己的 IP 前缀,让互联网上的其他路由器知道如何到达组织的网络。
跨越多个自治系统(AS)
当一个网络需要跨越多个自治系统(AS)时,例如,企业网络需要连接到云服务提供商或跨国公司需要连接到各自的分支机构,BGP 可以实现不同 AS 之间的路由选择和传播。
BGP 允许不同 AS 之间的路由器交换路由信息,选择最佳路径,并确保数据能够跨越多个 AS 到达目的地。
灵活的路由策略
BGP 提供了丰富的路由策略,可以根据需要对路由进行灵活的过滤和选择。
组织可以利用 BGP 的路由策略功能来实现流量工程、负载均衡、路由聚合等功能,以满足特定的网络需求和策略。
互联网核心路由
在互联网核心路由器中,BGP 被用来交换全球范围内的路由信息,并选择最佳的路径来实现数据的传输。
通过 BGP,互联网核心路由器能够了解到全球范围内的网络拓扑和路由信息,确保数据能够在不同的自治系统之间正确地传输。
BGP的特点
域间路由选择
BGP 用于在不同的自治系统(AS)之间选择最佳路由。它考虑诸多因素,如路径长度、AS 的策略和属性,以确保选择的路由是最优的。这使得 BGP 在互联网核心路由选择中发挥着重要作用。
TCP 连接
BGP 使用 TCP 作为传输层协议,提高了协议的可靠性。TCP 连接确保了路由更新的可靠传输,并且允许可靠地处理丢失的数据包,从而减少了网络故障对路由协议的影响。
稳定性要求
BGP 是一种域间路由协议,因此对协议的稳定性要求非常高。它必须能够应对网络的动态变化、链路故障和大规模路由更新等情况,以确保互联网的稳定运行。
路由传播策略
BGP 提供了丰富的路由策略,能够对路由进行灵活的过滤和选择。管理员可以根据需要配置各种路由策略,如路由过滤、路由聚合、路由重定向等,以满足不同的网络需求和策略。
CIDR 支持
BGP 支持 CIDR(Classless Inter-Domain Routing),允许更有效地分配 IP 地址和聚合路由,从而减少了路由表的大小和路由更新的频率,提高了路由的效率和网络的性能。
增量路由更新
BGP 在路由更新时只发送变化的部分路由信息,而不是整个路由表,这大大减少了路由传播所占用的带宽和资源,同时提高了路由更新的效率。
防止环路
BGP 从设计上避免了环路的发生。在 AS 之间,BGP 使用 AS 路径信息来标记途经的 AS,从而避免了域间环路的产生。在 AS 内部,BGP 不再将学到的路由通告给 AS 内的 BGP 邻居,避免了 AS 内环路的产生。
稳定性机制
BGP 提供了一些机制来防止路由振荡和不稳定性,如路由持续性、路由聚合和路由策略等,有效提高了互联网网络的稳定性和可靠性。
易于扩展
BGP 设计灵活,易于扩展,能够适应不断发展和增长的网络需求。它支持各种新的功能和特性的添加,以满足不断变化的互联网环境和要求。
💡记忆小技巧:BGP 的特点你就记住这几个关键词就行了:高度稳定性、灵活性、可靠性、高效性、安全性和易于扩展性。
BGP运行方式
BGP可以以两种方式运行:Internal BGP(IBGP)和External BGP(EBGP)。这两种方式有不同的应用场景和工作原理。
Internal BGP(IBGP)
- IBGP 是在同一自治系统(AS)内部运行的 BGP。
- IBGP 主要用于在同一 AS 内部的不同 BGP 路由器之间传递路由信息。
- IBGP 路由器之间的连接通常使用内部 IP 网络或者专用连接,而不是通过公共互联网。
- IBGP 路由器之间的路由信息传递不会改变路由的下一跳属性,因此,IBGP 在传递路由信息时需要确保路由器之间的直接连通性。
- IBGP 的主要作用是确保在同一 AS 内部的各个 BGP 路由器之间学习到的路由信息是一致的,以及在 AS 内部实现路由策略的一致性和可控性。
External BGP(EBGP)
- EBGP 是在不同自治系统(AS)之间运行的 BGP。
- EBGP 主要用于在不同 AS 之间交换路由信息,实现跨 AS 的路由选择和传播。
- EBGP 路由器之间的连接通常通过公共互联网或者专用连接来实现。
- EBGP 路由器之间传递的路由信息会改变路由的下一跳属性,因此,EBGP 在传递路由信息时不要求直接连通性。
- EBGP 的主要作用是在不同 AS 之间交换路由信息,实现跨 AS 的路由选择,并在全球范围内构建互联网的路由表。
💡记忆小技巧:IBGP 主要用于 AS 内部的 BGP 路由器之间传递路由信息和实现路由策略,而 EBGP 则主要用于不同 AS 之间交换路由信息,实现跨 AS 的路由选择和传播。
BGP角色
在 BGP中,有两个重要的角色:Speaker(发言者)和 Peer(对等体)。这两个角色在 BGP 的路由信息交换中起着关键作用。
Speaker(发言者)
- 发送 BGP 消息的设备称为 BGP 发言者(Speaker)。
- BGP 发言者负责接收或产生新的路由信息,并将这些信息发布(Advertise)给其他 BGP 发言者。
- 当 BGP 发言者收到来自其他 AS 的新路由时,如果该路由比当前已知路由更优或者当前尚未知道该路由,它就会把这条路由发布给所有其他 BGP 发言者,除了发布该路由的 BGP 发言者本身。
- BGP 发言者通过发布路由信息来告知其他 BGP 路由器它可以到达哪些目的地,以及到达这些目的地的最佳路径。
Peer(对等体)
- 在 BGP 中,相互交换消息的 BGP 发言者之间互称对等体(Peer)。
- 对等体之间建立 BGP 连接,用于交换路由信息和状态更新。
- BGP 对等体之间的连接通常通过 TCP 连接来实现,确保路由信息的可靠传输。
- 对等体之间通过 BGP 协议交换路由信息,以确保各自的路由表能够及时更新,并且了解到其他对等体所知道的最新路由信息。
💡记忆小技巧:BGP 中的 Speaker 负责产生和发布路由信息,而 Peer 则是相互交换路由信息的设备。