【云计算 IT 基础知识】系列1 目录/汇总(持续更新)
5.3.8 BGP
概念
边界网关协议BGP(Border Gateway Protocol)是一种自治系统(AS)间的动态路由发现协议,它的基 功能是在AS间自动交换无环路的路由信息。与OSPF等内部路由协议 不同,BGP着眼点不在于发现和计算路由,而在于控制路由的传播和选择最好的路由。 BGP属于外部网关协议EGP(Exterior Gateway Protocol)。
特点
BGP具有如下特点:
l 简明:对网络拓扑无限制,只有四种报文。
l 可靠:使用TCP作为传输协议。
l 有效:发送增量路由,而非周期性广播。
l 灵活:路由携带属性,具有丰富的路由策略,控制路由在入口和出口处的选择。
应用
路由计算过程
当BGP运行于同一AS内部时,被称为IBGP(Internal BGP),当BGP运行于不同AS之间 时,称为EBGP(External BGP)。
BGP的应用场景如图5-24所示。
BGP主要用于用户需要同时与两个或者多个ISP相连,ISP向用户提供部分或完全的Internet 路由的场景。此时,可以通过BGP路由携带的AS信息来决定走哪一个ISP的AS更为经 济。
以下情况不需要使用BGP协议:
l 用户只与一个ISP相连。
l ISP不需要向用户提供Internet路由。 l AS间使用了缺省路由进行连接。
原理
一条路由在Internet上的传播如图5-25所示。
路由的传播过程说明如下:
IGP AS 2
EBGP:外部BGP协议 IGP:内部网关协议
-
1. RT 1将通过某种IGP协议(如OSPF)发现和计算出的路由传递给位于AS 0边界的 RT 2。
2. RT 2使用EBGP协议,将路由传递给位于AS 1边界的RT 3。
3. RT 3使用IBGP协议,将路由传递给同样位于AS 1边界的RT 5。
4. RT 5使用EBGP协议,将路由传递给位于AS 2边界的RT 6。
5. RT 7通过IGP协议获得由RT 6传递过来的路由。
在路由传播过程中,位于AS 1内部的RT 4并不需要知道这些路由。当路由信息传播到AS 2时,如果RT 7需要知道这些外部路由,RT 6一般会先将外部路由进行过滤或聚合,再 向RT 7传递,从而避免由于外部路由数量太大而超出了内部路由器的处理能力。
报文类型
BGP报文类型如表5-10所示。
IBGP 与 IGP 的比较
l IBGP存在的必要性
IGP处理路由的条目有限,而目前Internet上核心路由器的路由表已经超过10万条。 IGP 身无法处理如此大量的路由。而且IGP 身的处理原则决定了,一旦其中任何 一条路由发生变化,所有运行IGP的路由器都必须重新计算路由。如果其中某条路 由出现路由抖动的情况,会导致所有IGP路由器每时每刻必须重新计算所有路由。 一般的路由器不可能提供其计算所需要的资源。而IBGP的路由控制能力远强于 IGP,因此运行IBGP的路由器可对上述情况做适当到了路由策略处理,从而保证整 个AS内部的路由器学习到的路由数目控制在可接受的范围之内。
IBGP通过携带路由属性来防止路由环路。如果没有IBGP协议,当所有IBGP路由重 分发到IGP中后,路由属性必然丢失,这就破坏了BGP的路由环路防止机制,产生 了路由环路的隐患。
l IGP存在的必要性
IBGP之间是TCP连接,也就意味着IBGP之间采用的是逻辑连接的方式,不一定存 在实际的物理链路。所以需要有IGP来提供路由,以完成BGP路由的递归查找。
IBGP协议 身实际上并不发现路由,IBGP将路由发现的工作全部移交给了IGP协 议,它 身着重于路由的控制。因此,如果没有IGP,IBGP也就毫无用处了。
------------------------------------------------------------