BGP介绍
BGP(边界网关路由协议)作为应用最广泛的EGP路由协议,独自撑起了全球的网络。BGP工作在AS(自治系统)之间,每一个AS内使用IGP,AS间使用EGP,而BGP是典型的EGP协议。BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路。
BGP的特点:
1、无类别路径矢量——距离矢量的升级版(AS-BY-AS)
2、使用单播更新发送所有信息,基于TCP179端口工作
3、增量更新,仅触发无周期
4、具有丰富的属性来取代IGP的度量进行选路(多个参数控制协议)
5、可以对流量实行强大的控制
6、默认不被用于负载均衡,通过各种选路规则仅仅产生一条路
7、BGP支持认证和聚合(汇总)
衡量IGP协议好坏的标准:
1、选路佳(无环)
2、收敛是否快
3、占用资源是否少
衡量EGP协议好坏的标准:
1、可靠性
2、可控性
3、AS BY AS(以AS为一跳)
BGP的数据包
Open 仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive 保活 周期1min查询邻居关系是否存在;实际保活TCP会话;hold time 默认3min
Update 携带路由条目 目标网络号+各种属性
Notification 出现错误数据时收发;
BGP的邻居
1、IBGP邻居----两台设备在同一个AS内
2、EBGP邻居---两台设备在不同的AS
BGP的防环机制 –水平分割
1、EBGP水平分割—解决EBGP环路;
依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;
BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;
EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;
2、IBGP水平分割—解决IBGP环路由中的一种机制
本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;
AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;
由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)
在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;
后期可以依赖打破水平分割的机制来解决---联邦、路由反射器
BGP的选路:
1、优选Preference_Value值最高的路由(私有属性,仅本地有效)。
不传递 权限最高属性 可以干涉EBGP/IBGP选路
2、优选本地优先级(Local_Preference)最高的路由。
IBGP邻居关系间传递 只能,最常干涉IBGP关系的选路
3、优选手动聚合>自动聚合>network>import>从对等体学到的。
4、优选AS_Path短的路由。
EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
起源类型IGP>EGP>Incomplete。
起源属性 i优于e优于?; 可在控制层面任意接口修改;
对于来自同一AS的路由,优选MED值小的。
最常用于干涉EBGP选路的属性
1、优选从EBGP学来的路由(EBGP>IBGP)。
2、优选AS内部IGP的Metric最小的路由。
3、优选Cluster_List最短的路由。
4、优选Orginator_ID最小的路由。
5、优选Router_ID最小的路由器发布的路由。
6、优选具有较小IP地址的邻居学来的路由。