BGP介绍
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易于扩展,能够适应网络新的发展。
BGP4+定义
BGP4+是一种用于自治系统AS(Autonomous System)之间的动态路由协议,它是对BGP的扩展。
传统的BGP4只能管理IPv4的路由信息,对于使用其它网络层协议(如IPv6等)的应用,在跨自治系统传播路由信息时就受到一定限制。
为了实现对IPv6协议的支持,BGP4需要将IPv6协议的信息反映到NLRI(Network Layer Reachable Information)属性及Next_Hop属性中。
BGP4+中引入的两个NLRI属性分别是:
MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。
MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。
BGP4+中的Next_Hop属性用IPv6地址来表示,可以是IPv6全球单播地址或者下一跳的链路本地地址。
BGP4+是利用BGP的多协议扩展属性,来达到在IPv6网络中应用的目的,BGP协议原有的消息机制和路由机制并没有改变。
目的
BGP用于在AS之间传递路由信息,并不是所有情况都需要运行BGP。
以下情况中需要使用BGP协议:
如图9-1,用户需要同时与两个或者多个ISP相连,ISP需要向用户提供部分或完全的Internet路由。这时可以通过BGP路由携带的各种属性来决定到达目的地,走哪一个ISP的AS更为经济。
不同组织下的用户之间需要传递AS路径信息。
用户需要通过三层VPN传播私网路由,请参见《HUAWEI NE20E-S2 特性描述-VPN》。
用户需要传播组播路由构造组播拓扑,请参见《HUAWEI NE20E-S2 特性描述-IP组播》。
以下情况不需要使用BGP协议:
用户只与一个ISP相连。
ISP不需要向用户提供Internet路由。
AS间使用了缺省路由进行连接。