文档介绍:BGP选路解析
1 BGP选路概述
解析BGP选路的意义
每个路由协议都有自己计算路由的方法,计算路由的方法称为路由算法,BGP选路方法就是BGP的路由算法,BGP运行路由算法的目的是计算出有效路由进而优选出最优路由,选路算法是BGP路由协议的核心算法之一。
BGP选路与常见IGP选路的区别
众所周知,链路状态算法的路由协议,其路由非通告所得,而是计算所得,所以在链路状态算法如OSPF,在其作用域内无法人为地干涉路由优选,即算法不可改变,在路由器的实现中在代码中固定,人为干涉的结果会导致路由无法计算或计算出错,在链路状态算法的作用域之间,有相对比较简单的计算规则,一般也没有必要人为地去干涉选路(如OSPF协议的区域间路由)。
以上原因导致OSPF的路由计算对网络管理员来说比较傻瓜化,大部分的选路工作由机器完成,管理员参与的部分极少。
基于距离矢量的IGP,如RIP由于路由协议中携带的信息量极少,可供选路决策的条件很少,所以讨论其协议内部的路由优选意义不大。
BGP选路是一个比较复杂的过程,需要深入讨论,原因是BGP的设计者将需要大部分由代码固化完成的工作分了一部分出来“允许”管理员参与完成,在协议中也包含了丰富的优选参数,可供选路时自动或人为地进行控制与决策。这也说明,关于BGP的主要工作内容由两部分:
² 在AS之间及AS内部传递路由――自动完成
² 控制、管理、优化路由――自动或由管理员手动完成
通过选路,我们可以看出设计者设计如此多属性的原因,与通用的IGP协议采用单一Metric计算路由相比,BGP的众多属性更细致地反映一条路由的“历史背景”,在选路过程中可以自动或手动地利用这些丰富的材料进行综合考虑,进而更为细腻地优选和控制路由。
2 BGP选路过程解析
选路规则
BGP IPv4选路规则如下:
Ø 下一跳(Next_Hop)不可达的路由及其他无效路由不参与优选;
Ø 优选协议优先级值低的路由;
Ø 标签路由(有LSP隧道)优于非标签路由;
Ø 若配置了Preferred-value值,优选值高的;
Ø 优选本地优先级(Local_Pref)最高的路由;
Ø 优选本路由器始发的路由;
Ø 优选AS路径(AS_Path)最短的路由;
Ø 依次选择Origin属性值为IGP、EGP、plete的路由;
Ø 优选MED值最低的路由;
Ø EBGP路由优于联盟EBGP路由,联盟EBGP路由由于IBGP路由;
Ø 优选下一跳(Next_Hop)花费(Cost)值最低的路由;
Ø 优选Cluster_List长度最短的路由;
Ø 优选Originator_ID最小的路由;
Ø Router ID值小者优先;
Ø BGP会话地址小者优先。
以上优选规则是从前到后依次比较的,只有在前一个条件无法选出最优路由的情况下才考虑紧接的后一个条件。
实例解析选路过程
在本小节,通过实例的方式,按照以上选路规则解析路由器在选路过程中各步骤的决策条件。由于BGP属性丰富,实际使用环境千变万化,在实际使用中会出现各种应用场景,一个完整体现所有决策过程的拓扑会很复杂,为了简洁明了地展开,本文用简化的拓扑来解析每个决策步骤。
图 1基本选路拓扑
图1说明:
RA、RB、RC都属于AS100,三者建立Full mesh IBGP连接
RD、RE属于AS200,二者建立IBGP连接
RA环回地址:
RB环回地址:
RC环回地址:
步骤1:NEXT_HOP不可达的路由及没有隧道的标签路由都是无效路由,不参与优选
解析:,但下一跳没有改变,下一跳属于AS外部路由,RA不可达,所以下面两条路由没有星号(*)标志,都是无效的路由。
在RA上的BGP表信息如下:
[RA]display bgp routing-table
Total Number of Routes: 2
BGP Local Router ID is
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - plete
Network NextHop MED LocPrf PrefVal Path/Ogn
i 0 100 0 200i
i 0 100