BGP 路由技术

BGP概述

BGP特征

传输协议:TCP、端口号:179
BGP 是外部路由协议,用来在AS之间传递路由信息,是一种增强的路径矢量路由协议;
拥有可靠的路由更新机制,具有丰富的Metric度量方法;
无环路协议设计,为路由条目附带多种属性信息;
支持CIDR(无类别域间选路),丰富的路由过滤和路由策略;
无需周期性更新,路由更新时只发送增量路由;
周期性发送keepAlive报文以保持TCP连通性。

TCP连接的建立与中止

建立:三次握手

在这里插入图片描述

中止:四次断开

在这里插入图片描述

BGP报文类型

运行bgp的路由器称之为bgp speaker,它们之间会交换五种类型的报文。
Open:负责和对等体建立邻居关系,主要包括bgp版本、AS号等信息;试图建立bgp邻居关系的两个路由器在建立了tcp会话连接之后开始交换open信息以确认能否形成邻居关系。
Keepalive:该报文在对等体之间周期性的发送,用于判断对等体之间的可达性,实现bgp邻居关系的维护。
Update:该报文用于在对等体之间交换路由信息,其中包括撤销路由信息和可达路由信息及其各种路由属性,是五个报文中最重要的。
Notification:bgp的差错检验机制,一旦检测到任何形式的差错,bgp speaker 会发送一个notification报文,随后与之相关的邻接关系将被关闭。
Route-refresh:用来通知bgp对等体自己支持路由刷新能力。

BGP工作原理

BGP邻居关系

Idle(空闲)
idle是bgp连接的第一个状态,在空闲状态,bgp在等待一个启动事件。启动事件出现以后,bgp初始化资源,复位连接重试计时器(connect-retry),发起一条tcp连接,同时接入connect状态。
Connect(连接)
在connect状态,bgp发起第一个tcp连接,如果连接重试计时器超时,就重新发起tcp连接,并继续保持在connect状态,如果tcp连接成功,就转入opensent状态,如果tcp连接失败,就转入active状态。
Active(活跃)
在active状态,bgp总是在试图建立tcp状态,如果连接重试计时器超时,就退回到connnect状态,如果tcp连接成功,就转入opensent状态,如果tcp连接失败,就继续保持在active状态,并继续发起tcp连接。
Opensent(打开消息已发送)
在opensent状态,tcp连接已经建立,bgp也已经发送了第一个open报文,剩下的工作,bgp就在等待其对等体发送open报文,并对收到的open报文进行正确的检查,如果有错误,系统就会发送一条出错通知消息并退回到idle状态。如果没有错误,bgp就开始发送keepalive报文,并复位keepalive计时器,开始计时,同时转入openconfirm状态。
Openconfirm(打开消息确认)
在openconfirm状态,bgp发送一个keepalive报文,同时复位保持计时器,如果收到一个keepalive报文,就转入established阶段,bgp邻居关系就建立起来了,如果tcp连接中断,就退回到idle状态。
Established(连接已建立)
在Established状态,bgp邻居已经建立,这时,bgp将和它的邻居们交换update报文,同时复位保持计时器。

通告BGP路由的方式:network/import方式

BGP的配置

对等体交互原则

1、从ibgp对等体获得的bgp路由,bgp设备只传递给它的ebgp对等体
2、从ebgp对等体获得的bgp路由,bgp设备传递给它所有ebgp和ibgp对等体(对等体是ibgp只能传送一跳,对等体是ebgp则不限制)
3、当存在多条到达同一目的地址的有效路由时,bgp设备只将最优路由发布给对等体
4、路由更新时,bgp设备只发送更新的bgp路由
5、所有对等体发送的路由,bgp设备都会接收
6、所有ebgp对等体在传递过程中,下一跳改变
7、所有ibgp对等体在传递过程中,吓一跳不变
8、默认ebgp传递时TTL值为1
9、默认ibgp传递时TTL值为255

BGP属性

起源属性(origin)

无法改变,IGP优先级高于egp,egp优先级高于incomplete

AS路径(as-path)属性

适用于igp/egp,越短越优先

下一跳(next-hop)属性

不建议改

local-pref属性

适用于IBGP,本地优先级,越大越优

MED属性

适用于EBGP,med值越小,链路越优先

BGP选路原则

1、若去往目的网络的路由下一跳不可达,则可以忽略此路由 2、Preferred-value优先级以数值高的路由优先 3、local-preference优先级以数值高的路由优先 4、聚合路由优先级高于非聚合路由 5、本地手动聚合路由的优先级高于本地自动聚合的路由 6、本地通过network命令引入的路由的优先级高于本地通过import-route命令引入的路由 7、AS路径长度最短(最少个数)的路径优先级高 8、比较origin属性,igp优先级高于egp,egp优先级高于incomplete 9、选择med优先级较小的路由 10、ebgp路由优先级高于ibgp路由 11、bgp优先选择到bgp下一跳的igp度量(metic)低的路程