BGP路径属性及路由 选择判定过程本章内容nBGP路径属性分类n常用BGP路径属性nBGP的路由判定过程nBGP策略路由及相关配置BGP路径矢量路由nIGP宣告网络时,通常使用开销值来描述网 络的可达性nBGP宣告网络时,通常用经过了多少个AS 来描述目标网络的可达性nBGP使用路径属性来描述一条路径的好坏nBGP允许管理员用策略和规则定义数据如 何通过ASBGP路径属性nBGP路由器发送关于目标网络的BGP更新 消息,这些更新消息中包括有关BGP度量 值的信息,被称为路径属性nBGP使用路径属性来确定前往网络的最佳 路径nBGP更新消息中都有一个长度可变的路径 属性序列,其形式为BGP路径属性n路径属性分为四类:n公认必遵(公认强制)n公认自决(公认自由决定)n可选传递n可选非传递BGP路径属性n公认强制的:是所有BGP实施都必须能够识别的 属性这些属性被传输给BGP邻居必须存在于 BGP路由更新分组中的属性如果缺少一个公认 属性,系统就会产生一条出错通知这用于确保 所有的BGP实现都共同遵从标准的属性值n公认自由决定的:能被所有的BGP实现所识别的 属性,但它可以在、也可以不在BGP路由更新消 息中发送。
n可选传递的:不一定被所有的BGP实现都支持的 属性因此,它是可选的因为该属性是可传递 的,所以BGP应该接受它,并继续向下游通告该 属性,即使它不能识别该属性n可选非传递的:不一定被所有的BGP实现都支持 的属性因为该属性是不可传递的,所以不论接 收到它的BGP路由器是否能识别该属性,BGP都 不应该将它传递给其他BGP对等体n每一个属性都通过它的类型和属性代码所识别,这些在 Internet使用的代码和属性类型已经在IANA注册nBGP定义的属性如下:n公认强制属性:AS路径(AS-path)、下一跳(next-hop)、源 头(origin)n公认自由决定的属性:本地优先级(local preference)、原 子聚合(Atomic aggregate)n可选传递属性:聚合站(aggregator)、共同体(community)n可选非传递属性:多出口鉴别器(MED,Multi-exit- discriminator)n剖析BGP路径属性的格式,路径属性由下面三个 字段组成:n属性类型:由一个1字节的属性标记字段和一个1 字节的属性类型编码字段组成n属性标记字段的第1位指出了该属性是可选的还是 公认的;第2位指出了可选属性是传递的还是非传 递的;第3位指出了传递的属性是部分的还是完整 的;第4位指出了属性长度字段是1字节还是2字 节。
其他标记位未使用,被设置为0nBGP属性类型编码:nCisco使用的属性类型编码如下 1、Origin 源头 2、AS-Path AS路径 3、Next hop 下一跳 4、MED 多出口鉴别器 5、Local-Preference 本地优先级 6、Atomic-Aggregate 原子聚合 7、Aggregator 聚合站 8、Community 共同体(Cisco定义的)AS-Path (AS路径属性)nAS路径属性石前往目标网络的路由经过的 自治系统号列表,通告该路由的自治系统 位于列表末尾nAS路径属性是一种公认强制属性每当路 由更新通过自治系统时,该自治系统编号 都被加入到路径列表的开头,然后将其通 告给下一个EBGP邻居n路由器C将路由器A通告的路由传递给路由器B,并加上自 己的自治系统号AS-Path (AS路径属性)nBGP路由器使用AS路径属性确保无环路环 境BGP路由器收到一条AS路径属性包含 其自治系统号的路由后,将不接受它n仅当路由器将路由通告给EBGP邻居时,才 会加上自己的自治系统号;将路由通告给 IBGP邻居时不会修改AS路径属性nBGP默认选择最短的AS path为最佳路径下一跳属性n公认强制属性。
BGP也是一种逐跳路由协 议与IGP不同的是,BGP中的跳指的是自 治系统,而不是路由器因此下一跳是下 一个自治系统n对于另一个自治系统的网络而言,下一跳 是前往该网络的路径中,下一个自治系统 的入口IP地址下一跳属性n就EBGP而言,下一跳地址是发送更新的邻居路 由器的IP地址nIBGP规定,应在IBGP中通告EBGP通告的下一跳 即它的内部邻居的外部邻居n当路由在一个多路访问网络上(如以太网)被通告 时,其下一跳通常是路由器连接到此网络介质的 接口的IP地址n归纳:下一跳并不一定要直连,第二种情况如果 有IGP,也可达n路由器A将网络172.16.0.0通告给路由器B,下一跳为10.10.10.3.因此 路由器B将前往172.16.0.0的下一跳属性设置为10.10.10.3n路由器B向IBGP对等体路由器C通告网络172.16.0.0,下一跳为 10.10.10.3(路由器A的地址)因此,路由器C知道,前往172.16.0.0 的下一跳是10.10.10.3,而不是预期的172.20.10.1Next Hop 属性18.0.0.0/820.0.0.0/8RTARTCRTBRTD19.0.0.0/821.0.0.221.0.0.110.0.0.210.0.0.310.0.0.1AS100AS200IBGPIBGPEBGPRTB 可经下一跳10.0.0.2到达18.0.0.0/8 可经下一跳10.0.0.3到达20.0.0.0/8RTA 可经下一跳10.0.0.2到达18.0.0.0/8 可经下一跳10.0.0.3到达20.0.0.0/8 可经下一跳21.0.0.1到达19.0.0.0/8RTC 可经下一跳10.0.0.1到达19.0.0.0/8 可经下一跳10.0.0.3到达20.0.0.0/8源头(起源属性)n公认强制属性,它指出路径信息的源头。
n用于指明这条路由是以什么方式被BGP学到的nIGP:路由是始发自治系统内部的通过IGP学到的使用network命 令通过BGP通告路由时,通常属于这种情况在BGP表中,IGP源头 用i表示nEGP:路由是通过EGP获悉的,在BGP表中用e表示EGP是一种过 时的路由协议,Internet不支持,因为它只执行分类路由选择,而不 支持CIDRnincomplete不完全:路由的源头未知或是通过其他方法获悉的路由 被重分发到BGP中时,通常属于这种情况在BGP表中,不完整源头 用?表示n优先级:IGP>EGP>不完整本地优先级n公认自由决定的属性,它告诉自治系统中的路由 器:哪条路径是离开自治系统的首选路径n本地优先级越高,路径被选中的可能性越大n这里的“本地”指的是自治系统内部本地优先级 属性只发送给IBGP邻居,而不发送给EBGP对等 体本地优先级是在路由器上配置的一种属性, 只在同一个自治系统内的路由器之间交换nCisco路由器的默认本地优先级值为100.本地优先级属性n要点:n1.为AS中的路由器提供一个指示,哪条路径被优 先选择为此AS的出口n2.有较高本地优先值的路径将被优先选用。
n3.缺省优先值为100n4.本地优先属性中的本地,指的是只发送给IBGP 邻居,它不被发送给EBGP的对等体配置本地优先级n权重值只影响本地路由器,而本地优先属 性则影响AS内所有其他路由器n缺省值为100.优先级值大的优先nR1(confi295g-router)#bgp default local- preference ?Configure default local preference value Local-Preference 属性AS400AS100AS300AS200RTARTBRTCRTDRTERTFD (18.0.0.0/8)30.0.0.130.0.0.220.0.0.120.0.0.2D,local-pref1 100D,local-pref2 200D,local-pref1 100 >D,local-pref2 200 RTA就会优先选择本地 优先级高的local-pref2MED多出口鉴别属性nMED属性也被称为度量值,是一种可选非 传递属性nMED用于向外部邻居指出进入自治系统的 首选路径当入口有多个时,自治系统可 以使用MED动态地影响其他自治系统如何 选择进入路径。
n度量值越小,路径被选中的可能性越大n与本地优先级不同,MED是在自治系统之间交换 的MED被发送给EBGP对等体,这些路由器在 其自治系统内传播MED,自治系统中的路由器将 使用它,但不将它再传递给下一个自治系统将 收到的更新传递给下一个自治系统时,将把度量 值重置为默认值0.nMED和本地优先级之间的差别在于:MED影响进 入自治系统的数据流,而本地优先级影响离开自 治系统的数据流n默认情况下,仅当路径来自同一个自治系 统中的不同邻居时,路由器才比较它们的 MED属性n通过使用MED属性,BGP成了唯一一种这 样的协议,即能够影响将数据流发送到自 治系统时使用的路径nMED属性:路由器B是前往自治系统65500的最 佳下一跳配置MED属性n方法一:nR1(config-router)#default-metric ?n Default metricn方法二:nroute-map setmedout permit 10nset metric 50nrouter bgp 400nneighbor 4.4.4.4 route-map setmedoutMED属性D(18.0.0.0/8)RTARTBRTC30.0.0.130.0.0.220.0.0.120.0.0.2AS100AS200>D,metric1 10D,metric2 20D,metric1 10D,metric2 20RTA会选择metric值较小 的metric1IBGPWeight权重属性(Cisco专用)n权重是Cisco定义的一种用于选择路径的属性。
权 重属性是在路由器本地配置的,只提供本地路由 策略,不会传播给任何BGP邻居n如果有多条前往同一个目的地的路由,将选择权 重最高的路由n权重的取值范围是0~65535.当前路由器通告的路 径的默认权重值为32768,其他路径的默认权重 值为0n当路由器本身有多个离开自治系统的出口 时,将根据权重属性来决定选择哪个出口 ;而有多台路由器提供了多个出口时,将 根据本地优先级来决定选择哪个出口n权重属性:路由器A将路由器B作为前往网络 172.20.0.0的下一跳配置权重nneighbor 172.16.49.9 weight 200n配置命令被用于一个邻居连接设置权重n原子聚合属性:当BGP通过aggregate- address汇总路由后,所有详细路径的AS信 息会丢失n聚合者属性:当BGP路由器在做路由汇总 的时候,它可以将自己的AS号和router-id 以聚合者属性附加在聚合路由之后,实际 就是通告聚合路由产生的源共同体属性nBGP共同体是一种用于过滤入站/出站路由的方法 nBGP共同体让路由器能够用指示符(共同体)来标 记路由,其他路由器将根据该标记来做出决策nBGP共同体属性被用于一组具有相同特性(因此具 有相同策略的)的目的地(路由);这样,路由器将 根据共同体而不是路由采取措施。
n共同体不被限制在单个网络或自治系统内,它们 没有物理边界共同体属性n共同体是可选传递属性n如果路由器不能识别共同体,将把它留给 下一台路由器去处理;如果路由器能够识 别共同体,必须对其进行配置,使之传播 共同体,否则共同体属性将被丢弃BGP路由选优过程n从不同的自治系统那里收到有关不同目的 地的更新后,BGP将做出使用哪条路径来 前往目的地的决策n前往特定网络的路径可能有多条,这些路 径被存储在BGP表中评估并确定前往网 络的路径不是最佳路径后,它们将被淘汰 ,单仍保留在BGP表中,以防最佳路径不 可用BGP路由选优过程n如果同步被启用,则不考虑。