BGP用于在AS之间传播IPv4单播路由 。这是BGP的基本功能。IBGP会话帮助路由穿过一个AS内部。
其实BGP还可以用于通告很多其它类型的信息,有两个原因
首先三种属性让BGP有了很强的可扩展性。
Multiprotocol Reachable NLRI属性可以用来通告各种地址信息,使用AFI和SAFI来表示要通告的地址类型,其中除了NLRI还有nexthop。比如通告IPv6路由时,其中的NLRI是IPv6地址前缀,nexthop也是IPv6地址。再比如通告BGP/MPLS VPN路由时,NLRI内容是IP prefix+Label+RD,nexthop是PE的loopback地址。使用Multiprotocol unreachable NLRI属性来撤销路由。
最后是扩展团体属性,它有type字段,每种type的扩展团体属性有其特有的结构。这样除了NLRI和nexthop外,还可以按需通告其它额外的信息。比如通告MPLS/BGP VPN路由时,使用扩展团体属性来携带RT。
第二个原因是BGP邻居可以是multi-hop的。这对通告VPN等路由来说是必须的。因为PE常常是非直连的。而IGP邻居都是直连的,所以无法直接使用IGP邻居在非直连的PE之间通告VPN路由。
bgp不仅可以通告IPv4路由还可以通告IPv6路由,不仅可以通告单播路由,还可以通告组播路由、L3单播VPN路由、L3组播VPN路由、L2 VPN NLRI。涉及的VPN类型有BGP/MPLS VPN、VPLS、EVPN等。