BGP边界网关协议(Border Gateway Protocol)概念、邻居建立
一、定义
主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用一些路由策略。当前使用的版本是BGP-4。
二、环境
底层以OSPF进行igp互联互通,上层使用BGP协议。
三、基本原理
1、BGP是一种外部网关协议,主要作用于AS之间的路由传递及控制路由传播,BGP本身不产生路由,发现和计算的路由的工作由底层的IBGP承载。
2、BGP是可靠的,基于TCP179端口建立安全可靠的TCP连接,保证了BGP的稳定性,源端口人地,目的端口为179。
3、BGP的路由更新为增量更新,UPdata报文之包含需要更新的路由信息,不是全量更新,更加节省资源,适用于互联网之间的大量路由信息传递(全球大概齐九十多万条路由信息)
4、BGP是一种距离矢量协议
5、BGP本身具备防环功能,IGP之间通过水平分割来防环,EGP之间通过携带的as-path号来防环。
6、BGP具有丰富的选路(十二条属性)可以主观的进行路由的选路涉及
7、BGP本身提供了防止路由震荡的机制(Connect计时器),一定程度上提高了互联网的稳定性
8、BGP易于扩展,能够适应网络的扩展需求(路由反射器)
9、BGP的运行方式
IBGP:运行于AS内部的联系
EBGP:运行于AS之间的域间关系
四、EBGP邻居建立
1、配置
2、直连路由建立邻居
参考上图的AR1和AR2的配置
1)通过直连接口建立EBGP邻居关系
优点:简单、便捷
缺点:单点故障、无冗余备份链路
2)前文提过bgp建立依托于tcp179的连接,peer的意义在于向peer地址发起tcp连接,只允许peer地址之间建立tcp连接。(后文附报文分析)
3)route-id要唯一
3、逻辑接口建立邻居
参考上图的AR1和AR3的配置,该方式依托于底层的igp路由可达(以loopback口为例)
1)通过逻辑接口建立EBGP邻居关系
优点:消除了单点故障
缺点:配置较复杂
2)前文提过bgp建立依托于tcp179的连接,peer的意义在于向peer地址发起tcp连接,只允许peer地址之间建立tcp连接。(后文附报文分析)
3)配置时需指定出接口,否则无法建立tcp连接
4)因为ebg的ttl值为1,非直连建立邻居时,需配置ttl多跳来达到需求
5)route-id要唯一
4、源检测
在构建EBGP邻居是,不仅存在直连检测(ttl=1),还存在一个源检测(可取消)
5、直连检测解决方式
1)ebgp-max-hop:EBGP连接最大跳数(默认255)
2)valid-ttl-hops:GTSM功能”指定需要检测的TTL跳数值。如果配置为hops,则被检测的报文的TTL值有效范围为[255–hops+1,255]。
五、IBGP邻居建立
具体内容基本同EBGP一致,不详细解读,看配置按需理解
六、邻居关系
常见的邻居状态为idel、active、Established
1、空闲(Idle)
空闲状态、初始状态、报错回退
2、连接(Connect)
BGP对等体之间建立tcp连接,转到该状态,启动重传定时器
1)TCP建立成功,进入下一状态
2)TCP建立失败,进入active状态
3)重传定时器超时,仍然没有收到对等体相应,继续等待维持当前状态
3、活跃(Active)
1)TCP连接成功,进入下一状态,并发送open报文
2)TCP建立失败,停留该状态
3)定时器超时,回到上一状态
4、Open报文已发送(OpenSent)
1)open报文字段正确,进入下一状态,并发送keeplive报文
2)open报文字段错误,发送Notification报文给对等体,并转至Idle状态。
5、Open报文已确认(OpenConfirm)
1)收到keeplive报文进入下一状态
2)收到Notification报文回到idle状态
6、建立(Established)
1)收到正确的update、keeplive报文保持邻居关系
2)收到错误的update、keeplive报文回到idle状态
3)Route-refresh报文,路由重刷,不会影响邻居关系
4)TCP连接断开,回到idle状态
七、报文分析
1、TCP179
tcp三次握手建立连接,对等体之间都会发送tcp连接,谁先建立用谁的,也就是对等体之间只维护一条tcp连接。部分设备不会主动发送tcp连接,现网使用时应明确特性。
2、Open报文
该报文检测my as、peer的number等信息是否一致(当前是EGP的报文,不一致是正常现象)
3、Keepalive报文
周期性的向对等体发出Keepalive消息,用来保持连接的有效性。又叫保活报文
4、Update报文
用于对等体之间的路由交互,可以发布路由,也可以撤销路由
报文内部可以携带需要更新的增量路由信息,也可以同时携带不可达或老化的路由
5、Notification报文
BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断
6、Route-refresh报文
Route-refresh消息用来请求对等体重新发送所有的可达路由信息。
该报文不会影响邻居关系