CDN技术栈之网络篇(一):BGP协议

CDN技术栈之网络篇(一):BGP协议

IBGP和EBGP

实际应用中,EBGP使用更多,管理距离为20

BGP状态机

5种状态,Idel、connect、open sent、open confirm、establish。常见的active状态,是在connect之后,如果与对端建立TCP连接失败的话,会转到active状态,尝试再次连接,这一般发生在对端还没有配置正确的情况下。

BGP十三条选路原则

BGP一定会选择出一条最优路径。默认情况下不会负载均衡,相比而言,RIP、EIGRP和OSPF等协议,当出现一模一样的路由条目(管理距离一样、度量值一样)此时就会负载均衡。但是BGP一定会选择其中一条。
BGP选路策略中可以人为控制的是前6条,实际用的比较多的是第4条

A<--->B<--->C
B收到来自A和C的相同地址,B会如何选择?(ABC可能是IBGP也可能是EBGP)

  1. 权重值(Weight)当收到多条去往同一个地址的路由时,可以通过将其中一条路由的Weight调大,会优选Weight值大的。只能在B本地指定,A和C自己不能指定。
  2. 本地优先级Local Perference 默认的LocPre是100,本地优先级越大越好。
    • 在IBGP环境下,可以在A和C上设定LocPre值,可以传递给B
    • 在EBGP环境下,LocPre默认不显示,其实是100;在B上可以自由设定LocPre值,并且会生效;但是不能从A和C上传递给B
  3. 下一跳属性(next hop) 如果下一跳是0.0.0.0 也就是本地也有该地址宣告,则优先走本地
  4. AS-Path 可以在B上配置,也可以在A、C上配置,可传递。只比较长度,通常是将自己的AS号多写几个来延长AS-Path
    • IBGP:不生效
  5. 起源属性(Origin)e表示EGP传递来的,i表示从BGP内部进来的,?表示重分布进来的。 i > e > ?,通过将i改成e,可以让路由器不优先走这条路由
    • IBGP:in/out 都生效
    • EBGP:in/out 都生效
  6. 度量值(MED) 越小越好。
    • IBGP:in/out 都生效
    • EBGP:in/out 都生效
  7. EBGP的的路由优于IBGP。
  8. Prefer the path through the closest IGP neighbor. 当上面都一致时,就比较IBP协议的度量值,如ospf的cost值,选择最小的。
  9. prefer the oldest route from RBGP. 选择更久之前学习到了路由,因为bgp邻居建立时间越久说明越稳定。
  10. 查看BGP的route-id选择id更小的。
  11. 选择地址更小的BGP路由器传过来的路由;
  12. 如果配置了maximum-path [ibgp] number,如果存在多条等价路径就会插入多条路径
  13. 优选更短的cluster-list,因为每经过一个RR,cluster-list都会加上这个RR的route-id

其他概念

对等体:邻居
对等体组:邻居组,有点像策略模板
RR(路由反射器):解决了IBGP邻居路由传递的问题,因为IBGP防环机制默认不传递IBGP路由条目。利用cluster-list防环
联邦:将一个大的AS分成几个小的联邦c

团体属性:community

可以被透传的属性。
团体属性:
是一组具有相同特征的目标地址的集合。团体属性用一组4字节为单位的列表来表示,设备中团体属性表示的格式为aa:nn或者团体号;团体属性用来简化路由策略的应用和降低维护管理的难度,利用团体属性可以使更多个AS中的一组BGP设备共享相同的策略。
团体属性分为:
1、标准
1)私有团体属性 管理员自定义
2)公有团体属性 标准固定值
2、扩展
RT、SOO
共有团体属性:
1、no-advertise 0xffffff02 携带该属性的路由不会通告给任何BGP邻居
2、no-export 0xffffff01 携带该属性的路由不会传递互本AS(指的是主AS)
3、loacl-as 0xffffff03 携带该属性的路由不会传递出联邦子AS
4、internet 0x00000000 携带该属性的路由可以任意传播不受AS的限制

私有团体属性:
aa:nn
aa和nn的取值范围都是(0-65535),管理员可以根据自己的实际情况设置具体数值,通常aa表示自治系统AS编号,nn是管理员自定义的团体属性标识