浅谈BGP协议的工作原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈BGP 协议的工作原理
图文信息中心 李宪民
【摘 要】BGP (Border Gateway Protocol :边界网关协议):是一种增强的距离矢量路由协议,属于外部路由协议。从功能上讲它是一种自治系统间的动态路由协议。它通过维护IP 路由表或‘前缀’表来实现自治系统(AS )之间的可达性,使用基于路径、网络策略或规则集来决定路由。它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统号(AS)序列属性的网络可达信息,来构造自治系统的拓扑图,从而消除路由环路,并使得基于自治系统级别的策略控制得以实施。
本文从应用的角度出发,通过BGP 协议特点、BGP 路由通告原则、成为BGP 路由的方法、BGP 报文(消息)、BGP 邻接关系的建立、BGP 的路由属性、BGP 路由选择等七个方面对BGP 协议进行阐释。
【关键词】 BGP 路由协议 自治系统 对等体 状态机 BGP 报文 路由属性
一、BGP 协议简介
BGP (Border Gateway Protocol )是一种自治系统间的动态路由协议,它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统号序列属性的路径可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的路由策略。与OSPF 和RIP 等在自治区域内部运行的协议对应,BGP 是一种EGP (Exterior Gateway Protocol )协议,而OSPF 、RIP 、ISIS 等为IGP (Interior Gateway Protocol )协议。BGP 协议经常用于ISP 之间。
BGP 协议从1989年以来就已经开始使用。它最早发布的三个版本分别是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前使用的是RFC1771(BGP- 4)。 随着INTERNET 的飞速发展,路由表的体积也迅速增加,自治区域间路由信息的交换量越来越大,影响了网络的性能。BGP 支持无类别域间选路CIDR (Classless Interdomain Routing ),可以有效的减少日益增大的路由表。BGP-4正迅速成为事实上的Internet 边界路由协议标准。
二、BGP 协议相关概念
(一)自治系统( Autonomous System )
自治系统:是由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。每个自治系统都有唯一的自治系统编号,这个编号是由因特网授权的管理机构分配的。
引入自治系统的基本思想:通过不同的编号来区分不同的自治系统。通过采用路由协议和自治系统编号,路由器就可以确定彼此间的路径和路由信息的交换方法。
自治系统的编号范围是1到65535,其中1到64511是注册的因特网编号,64512到65535是私有网络编号。 (二)BGP 路由传递 一般情况下一条路由是从自治系统内部
产生的,它由某种内部路由协议发现和计算,传递到自治系统的边界,由自治系统边界路由
器(ASBR )通过EBGP 连接传播到其它自治系统中。路由在传播过程中可能会经过若干个
自治系统,这些自治系统称为过渡自治系统。如右图中AS5。若这个自治系统有多个边界路
由器,这些路由器之间运行IBGP 来交换路由信息。这时内部的路由器并不需要知道这些外部路由,它们只需要在边界路由器之间维护IP 连通性。如:AS2、AS3、AS4。还有一种自治系统称为Stub AS ,如:AS1、AS6、AS7。其内部只有一个ASBR 通过EBGP 连接外部,AS1AS7AS6
AS5AS4
AS3AS2
同外部其他AS的通信要靠过渡自治系统来转发数据。
对一个具体的ASBR来说,其路由的来源有两种:从对等体接收的或者从IGP引入的。对于接收的路由,根据其属性(如AS路径、团体属性等)进行过滤,并设置某些属性(如本地优先级、MED值等),之后若需要的话,将具体的路由聚合为超网路由。BGP可能从多个对等体收到目的地相同的路由,根据规则选择最好的路由并加入IP路由表。对于IGP 路由,则要经过引入策略的过滤和设置。BGP发送优选的BGP路由和引入的有效的IGP路由给对等体。
(三)BGP对等体
运行BGP协议来交换路由信息的路由器被称为BGP 发言人(BGP Speaker),和它通信的其它的BGP发言人,两个发言者之间构成交换路由信息的连接,这两个路由器成为相邻体或者对等体。换句话说,两个BGP发言者之间相互连接,完成路由信息的交互,这两个路由器就称为BGP对等体,是两个边缘路由器实体。BGP对等体(peer)就是BGP邻居,对等体关系就是BGP邻居关系。
BGP有两种邻居:IBGP和EBGP。
如右图所示:如果两个交换BGP报文
的对等体属于同一个自治系统,那么
这两个对等体就是IBGP对等体
(Internal BGP),如RTB-RTD。
如果两个交换BGP报文的对等体
属于不同的自治系统,那么这两个对
等体就是EBGP对等体(External BGP),如RTA-RTB。
虽然BGP是运行于自治系统之间的路由协议,但是一个AS的不同边界路由器之间也要建立BGP连接,只有这样才能实现路由信息在全网的传递,如RTB和RTD,为了建立AS100和AS300之间的通信,我们要在它们之间建立IBGP连接。
IBGP对等体之间不一定是物理上直连的,只要TCP连接能够建立即可。为了IBGP对等体路由通告的可靠性,我们一般采用loopback接口建立IBGP邻居关系,同时必须指定路由更新报文的源接口。
路由器一般默认要求EBGP对等体之间是有物理上的直连链路,同时一般也提供改变这个缺省设置的配置命令。允许同非直连相连网络上的邻居建立EBGP连接,这时需要修改EBGP的最大跳数。
(四)IBGP全连接
物理意义的全连接:在所有ASBR任意两点之间建立物理链路。实际组网中不能保证。
逻辑意义的全连接:AS内所有设备都运行BGP,所有ASBR和所有其他路由器间建立IBGP邻居关系通告路由。这一点更不可能。大多数的实际情况是ASBR上同时运行BGP 和IGP,其他路由器仅运行IGP。所以通常在大规模网络中,如果局部无法实现ASBR全连接的话,我们可以利用BGP路由反射器或者BGP联盟来解决这样的问题