一、 概述
BGP是自治系统路由协议,用于AS间交换路由信息,目前广为使用的是BGP-4,支持CIDR,BGP协议使用TCP179端口传输。同一AS的路由之间传输的协议称为IBGP,不同AS的路由之间传输的协议称为EBGP,BGP采用增量更新策略,不会定期同步路由。
二、 概念介绍
自治系统(autonomous system),一段互联网IP地址的管理者,或者称ISP(互联网服务提供者)。自治系统内,管理者可以自主决定路由的所有操作,自治系统之间的访问,通过BGP等外部路由协议交换信息。提供互联网服务的ISP必须经过注册并分配AS号,该AS号全网唯一,中国的AS号管理者是中国互联网络信息中心(cnnic)。
对等体(peer),BGP连接是一对一连接,建立BGP连接的双方称为对等体,对等体通过AS号进行识别,相同AS号的称内部对等体,使用IBGP协议,不同AS号的称外部对等体,使用EBGP。
三、 消息类型
BGP主要支持5种消息类型:
建立OPEN消息
当TCP连接建立后,双方发送OPEN消息,如果OPEN消息可以接受,则发送KEEPALIVE消息确认回复。
BGP协议OPEN消息
OPEN消息中的主要字段有:
版本号(version),当前为4;
自治系统号(My Autonomous System),用于区分同一AS还是不同AS;
保持时间(Hold Time),双方协商保持时间,如果两方不一致,取较小的时间,在保持时间内,如果没有收到KEEPALIVE消息或UPDATE消息,则认为BGP连接中断;
识别号(BGP Identifier),类似于路由器识别号,用于区别路由器,建议使用路由器loopback地址。
更新UPDATE消息
用于在对等体之间传递路由信息,该消息可以检测路由环路。UPDATE消息可以包含以下几部分:
BGP协议update消息
撤销路由(withdrawn routes,需要撤销的路由条目;
路径属性(path attributes,详细介绍见下一章,由属性类型(attribute type)、属性长度(attribute length)、属性值(attribute value)三项组成。
属性类型(attribute type)共2字节,第1个字节为标志位(flags),第2个字节为代号位(code),BGP通过多种属性,表示传递的不同信息。
路径属性类型
标志位用于区分类型,主要有公认强制属性、公认非强制属性、可选传递属性、可选非传递属性。
代号位用于标记信息的类型,主要类型有ORIGIN、AS_PATH、NEXT_HOP等。
网络层可达信息(NLRI,network layer reachability information,携带所有路由可达的目的前缀的信息。
通告NOTIFICATION消息
当BGP协议检测到错误时,发送此消息,此消息发送时,BGP连接立即中断。
通告消息格式
错误代码含义:
保持连接KEEPALIVE消息
建立BGP连接的对等体必须定期发送KEEPALIVE消息,发送周期为双方协商的Hold Timer的1/3,最快发送频率不能小于1秒。
路由刷新ROUTE-REFRESH消息
用于BGP对等体重新发送指定的路由信息。
四、 路径属性(path attributes)
路径属性主要有4种类型:公认强制属性(Well-known mandatory)、公认非强制属性(Well-known discretionary)、可选传递属性(Optional transitive)、可选非传递属性(Optional non-transitive)。
公认属性所有BGP路由器必须支持。强制属性表示携带有路由信息(NLRI)的更新update消息必须同时包含的属性。非强制属性表示在更新update消息中根据情况使用。
起源origin
由路由发送者标记携带的NLRI路由信息的初始属性,中间路由器不能进行更改。
0表示IGP,NLRI由内部AS产生;
1表示EGP,NLRI通过EGP学习;
2表示INCOMPLETE,NLRI通过其他方式学习。
AS路径AS_PATH
记录NLRI路由信息经过的所有AS路由。
当路由发送者向内部对等体发送时,AS_PATH无需更改;
当向外部对等体发送时,发送者将自己的AS号加入AS_PATH中。
AS_PATH可以用于检测路由环路,当接收到的信息中含有自己AS号时,BGP路由器默认应该忽略该路由信息。
下一跳NEXT_HOP
指示携带的NLRI路由信息的下一跳。
五、 选路策略
BGP协议主要是用于传递路由信息,在将BGP路由引入本地路由表前,根据如下步骤确定路由:
1、根据预定策略计算路由优先级(多根据路由器默认设定,或自定义规则);
2、路由选择:
2.1、排除下一跳不可达路由;
2.2、排除AS_PATH出现环路的路由;
2.3.1、到同一目的的路由,选择优先级最高的;
2.3.2、到目的只有一条路由的,选择此路由;
2.3.3、到同一目的有多条相同优先级的路由,按照下述顺序选择:
2.3.3.1、AS_PATH中AS最少的优先;
2.3.3.2、ORIGIN序号小的优先,即按照IGP、EGP、INCOMPLETE顺序;
2.3.3.3、MED小的优先;
2.3.3.4、从EBGP收到的优先于从IBGP收到的;
2.3.3.5、到下一跳metric最小的优先;
2.3.3.6、BGP识别号小的优先;
2.3.3.7、对等体IP小的优先;
BGP协议详解
百家号独家
举报/反馈

网络攻城师

412获赞 230粉丝
专注数字科技,科普与专业并重
关注
0
0
收藏
分享