BGP是为了在AS之间更高效率的传递路由和维护大量的路由而产生的一个外部网关协议。
BGP定义
BGP(Border Gateway Protocol)是一种用于自治系统AS(Autonomous System)之间的动态路由协议。
早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用一些路由策略。
当前使用的版本是BGP-4。
BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider)之间。
BGP协议具有如下特点:
-
BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议(IGP)不同,其着眼点不在于发现和计算路由,而在于在AS之间选择最佳路由和控制路由的传播。
-
BGP使用TCP作为其传输层协议,提高了协议的可靠性。
-
BGP进行域间的路由选择,对协议的稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
-
BGP的对等体之间必须在逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。
-
-
BGP支持无类别域间路由CIDR(Classless Inter-Domain Routing)。
-
路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
-
BGP是一种距离矢量(Distance-Vector)路由协议。
-
BGP从设计上避免了环路的发生。
-
AS之间:BGP通过携带AS路径信息来标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
-
AS内部:BGP在AS内学到的路由不再通告给AS内的BGP邻居,避免了AS内产生环路。
-
-
BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
-
BGP提供了防止路由振荡的机制,有效提高了Internet网络的稳定性。
-
BGP易于扩展,能够适应网络新的发展。
目的
BGP用于在AS之间传递路由信息,并不是所有情况都需要运行BGP。
以下情况中需要使用BGP协议:
-
如图1,用户需要同时与两个或者多个ISP相连,ISP需要向用户提供部分或完全的Internet路由。这时可以通过BGP路由携带的各种属性来决定到达目的地,走哪一个ISP的AS更为经济。
-
不同组织下的用户之间需要传递AS路径信息。
-
用户需要通过三层VPN传播私网路由。
-
用户需要传播组播路由构造组播拓扑。
以下情况不需要使用BGP协议:
-
用户只与一个ISP相连。
-
ISP不需要向用户提供Internet路由。
-
AS间使用了缺省路由进行连接。