天天看点

BGP概述及基础配置BGP概述及基础配置

bgp ( border gateway protocol) ——边界网关协议

是一种实现自治系统as(autonomous system)之间的路由可达,并选择最佳路由的距离矢量路由协议。

as是指由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。

bgp网络中的每个as都被分配一个唯一 的as号, 用于区分不同的as。

as号分为2字节as号和4字节as号,其中2字节as号的范围为1至65535,其中1-64511 是互联网上注册公有as号,类似公网ip地址:64512-65535是私有as号,类似私网ip地址。4字节as号的范围为1至4294967295,支持4字节as号的设备能够与支持2字节as号的设备兼容。

iana (互联网数字分配机构)负责as号的分发。

BGP概述及基础配置BGP概述及基础配置

as的概念

自治系统( autonomous system , as ) , 指的是在同一个组织管理下、使用相同策略的设备的集合。

不同as通过as号区分, as号取值范围1-65535 ,其中64512-65535是私有as号。iana负责as号的分发。

中国电信163 as号: 4134。

中国电信cn2 as号: 4809。

中国网通 as号: 9929。

1、bgp能够承载大批量的路由信息,能够支撑大规模网络。

2、bgp使用tcp作为其传输层协议(监听端口号为179),提高了协议的可靠性。

3、bgp是外部路由协议,用来在as之间传递数据,对稳定性要求非常高。因此用tcp协议的高可靠性来保证bgp协议的稳定性。

4、bgp的对等体之间必须逻辑上连通,并进行tcp连接。 目的端口号为179,本地端口号任意。

5、bgp对等体和igp对等体不同,bgp对等体(peer) 是指使用tcp建立连接的两端,而非与igp同概念的直连邻居,只要tcp能够建立连接并不一定需要直连。

6、bgp本身只负责控制路由,数据转发依然靠静态或igp路由。

7、bgp支持无类别域间路由cidr。

8、路由更新时,bgp只发送更新的路由,大大减少了bgp传播路由所占用的带宽,适用于在internet上传播大量的路由信息。

9、bgp是一种增强的距离矢量路由协议,从设计上避免了环路的发生。

10、as之间:bgp通过携带as_path信息标记途经的as,带有本地as号的路由将被丢弃,从而避免了域间产生环路。

11、as内部:bgp在as内学到的路由不会再通告给as内的bgp邻居,避免了as内产生环路。

12、bgp提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。

13、bgp提供了防止路由振荡的机制(路由衰减),有效提高了internet网络的稳定性。

14、 bgp易于扩展,能够适应网络新的发展(ipv4单/组播、 vpv4单/组播)。 主要是通过tlv进行扩展。

bgp按照运行方式分为ebgp ( external/ exterior bgp) 和ibgp ( internal/interior bgp )

●ebgp: 运行于不同as之间的bgp称为ebgp。 为了防止as间产生环路, 当bgp设备接收ebgp对等体发送的路由时,会将带有本地as号的路由丢弃。

●ibgp: 运行于同一as内部的bgp称为ibgp。为了防止as内产生环路,bgp设备不将从ibgp对等体学到的路由通告给其他ibgp对等体, 并与所有ibgp对等体建立全连接。为了解决ibgp对等体的连接数量太多的问题,bgp设计了路由反射器和bgp联盟。

bgp的router-id是一个用于标识bgp设备的32位值,通常是ipv4地址的形式,在bgp会话建立时发送的0pen报文中携带。对等体之间建立bgp会话时,每个bgp设备都必须有唯一的router-id,否则对等体之间不能建立bgp连接。

bgp的router-id在bgp网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺省情况下,bgp选择设备上的loopback按口的ipv4地址作为bgp的router-id。如果设备_上没有配置loopback接口,系统会选择接口中最大的ipv4地址作为bgp的router-id。一旦选出router-id, 除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的router- id。

bgp对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和9个原则。

bgp对等体间通过以下5种报文进行交互,其中keepalive报 文为周期性发送,其余报文为触发式发送:

open报文:用于协商bgp对等体的各项参数,主要包括bgp版本(v4)、as号等信息,建立bgp对等体连接。

open是tcp连接建立后发送的第一个报文

update报文:用于在对等体之间交换路由信息。

连接建立后,有路由需要发送或者路由变化时,发送update通告对端可达或者撤销路由信息及路径属性。

notification报文:用于中断bgp连接。

当bgp在运行中发现错误时,发送notification报文 通告bgp对端,随后与之相关的邻居关系将被关闭。

keepalive报文:用于保持bgp连接。(保活)

定时发送keepalive报文以保持bgp对等体关系的有效性。响应收到的正确的open报文

route-refresh报文:用于在改变路由策略后软复位bgp路由表请求对等体重新发送路由信息。只有支持路由刷新( route-refresh)能力的bgp设备会发送和响应此报文。

1、idle状态是bgp初始状态。在id1e状态下,bgp拒绝邻居发送的连接请求。只有在收到本设备的start事件后,bgp才开始尝试和其它bgp对等体进行tcp连接,并转至connect状态。

2、在connect状态下,bgp启动连接重传定时器(connect retry) ,等待tcp完成连接。

如果tcp连接成功,那么bgp向对等体发送0pen报文, 并转至opensent状态。

如果tcp连接失败,那么bgp转至active状态,反复尝试连接。

如果连接重传定时器超时,bgp仍没有收到bgp对等体的响应,那么bgp继续尝试和其它bgp对等体进行tcp连接,停留在connect状态。

3、在active状态下,bgp总是在试图建立tcp连接。

如果tcp连接成功,那么bgp向对等体发送open报文, 关闭连接重传定时器,并转至opensent状态。

如果tcp连接失败,那么bgp停留在active状态。

如果连接重传定时器超时,bgp仍没有收到bgp对等体的响应,那么bgp转至connect状态。

4、在opensent状态下,bgp等待对等体的open报文,并对收到的open报文中的as号、版本号、认证码等进行检查。

如果收到的open报文正确,那么bgp发送keepalive报文,并转至openconfirm状态。

如果发现收到的open报文有错误,那么bgp发送notification报文给对等体,并转至id1e状态。

5、在openconfirm状态下,bgp等待keepalive或notification报文。如果收到keepalive报文,则转至established状态,如果收到notification报文则转至idle状态。

6、在established状态下,bgp可以和对等体交换update、keepalive、route-refresh报文和notification报文。

如果收到正确的update或keepalive报文,那么bgp就认为对端处于正常运行状态,将保持bgp连接。

如果收到错误的update或keepalive报文,那么bgp发送notification报文通知对端,并转至idle状态。

如果收到notification报文, 那么bgp转至idle状态。

如果收到tcp拆链通知,那么bgp断开连接,转至idle状态。

route- refresh报文不会改变bgp状态。

BGP概述及基础配置BGP概述及基础配置

bgp设备将最优路由加入bgp路由表,形成bgp路由。bgp设备与对等体建立邻居关系后,采取以下交互原则:

从ibgp对等体获得的bgp路由,bgp设备只发布给它的ebgp对等体

从ebgp对等体获得的bgp路由,bgp设备发布给它所有ebgp和ibgp对等体

当存在多条到达同一目的地址的有效路由时,bgp设备只将最优路由发布给对等体

路由更新时,bgp设备只发送更新的bgp路由

所有对等体发送的路由,bgp设备都会接收

所有ebgp对等体在传递过程中下一跳改变

所有ibgp对等体在传递过程中下一跳不变

默认ebgp传递时ttl值为1

默认ibgp传递时ttl值为255

直连建立对等体需要注意的点

建立ibgp对等体时要让下一跳可达,处于边界的ibgp对等体需要将下一跳指向自己,这样才能建立ibgp对等体

用环回口建立邻居需要注意的点

需要修改更新源,默认更新源是物理口,需要修改成环回口。建立ibgp对等体时要保障下一跳可达,处于边界的ibgp对等体需要将下一跳指向自己,这样才能建立ibgp对等体建立ebgp对等体时因为ebgp只能传一跳,因而,在建立ebgp对等体时,需要修改ebgp多跳的跳数为2以上(自己环回到对端环回是两跳,默认一跳)

关于为什么要用环回口建邻居

原因是环回口稳定,只要路由器启动着,环回口就不down,而物理链路可能会受线路或者接口等因素的影响导致对等体关系有问题,因而一般bgp建立对等体都是环回口来建

BGP概述及基础配置BGP概述及基础配置

启用bgp,后面跟as系统号

宣告router-id,建立邻居关系用

宣告和谁建立邻居关系

通告bgp路由,(network、import)

——r1(ibgp)与r2、r3、r4、r5、r6建立邻居关系( r2、r4、r5配置与其相似略)——