《(十三)BGP路径属性和路由选择进程》由会员分享,可在线阅读,更多相关《(十三)BGP路径属性和路由选择进程(51页珍藏版)》请在金锄头文库上搜索。
1、BGP路径属性及路由选择判定过程本章内容nBGP路径属性分类n常用BGP路径属性nBGP的路由判定过程nBGP策略路由及相关配置BGP路径矢量路由nIGP宣告网络时,通常使用开销值来描述网络的可达性nBGP宣告网络时,通常用经过了多少个AS来描述目标网络的可达性nBGP使用路径属性来描述一条路径的好坏nBGP允许管理员用策略和规则定义数据如何通过ASBGP路径属性nBGP路由器发送关于目标网络的BGP更新消息,这些更新消息中包括有关BGP度量值的信息,被称为路径属性。nBGP使用路径属性来确定前往网络的最佳路径。nBGP更新消息中都有一个长度可变的路径属性序列,其形式为路径属性n属性类型:由一
2、个1字节的属性标记字段和一个1字节的属性类型编码字段组成。n属性标记字段的第1位指出了该属性是可选的还是公认的;第2位指出了可选属性是传递的还是非传递的;第3位指出了传递的属性是部分的还是完整的;第4位指出了属性长度字段是1字节还是2字节。其他标记位未使用,被设置为0。nBGP属性类型编码:属性类型编码:nCisco使用的属性类型编码如下使用的属性类型编码如下1、Origin 源头源头2、AS-Path AS路径路径3、Next hop 下一跳下一跳4、MED 多出口鉴别器多出口鉴别器5、Local-Preference 本地优先级本地优先级6、Atomic-Aggregate 原子聚合原子聚
3、合7、Aggregator 聚合站聚合站8、Community 共同体共同体(Cisco定义的定义的)BGP路径属性n路径属性分为四类:n公认必遵(公认强制)n公认自决(公认自由决定)n可选传递n可选非传递BGP路径属性n公认强制的:是所有BGP实施都必须能够识别都必须能够识别的属性。这些属性被传输给BGP邻居。必须存在于必须存在于BGP路由更新分组中路由更新分组中的属性。如果缺少一个公认属性,系统就会产生一条出错通知。这用于确保所有的BGP实现都共同遵从标准的属性值。n公认自由决定的:能被所有的能被所有的BGP实现所识别实现所识别的属性,这些属性被传输给BGP邻居。但它可以在、可以在、也可以
4、不在也可以不在BGP路由更新消息中路由更新消息中发送。即并非每条更新消息都必须包含它。BGP路径属性n可选传递的:非公认属性被称为可选的。不一定不一定被所有的被所有的BGP实现都支持实现都支持的属性。因此,它是可选的。因为该属性是可传递的,所以BGP应该接受它,并继续向其他并继续向其他BGP路由器通告该属性路由器通告该属性,并将其标记为部分的,即使它不能识别该属性。n可选非传递的:不一定被所有的不一定被所有的BGP实现都支持实现都支持的属性。因为该属性是不可传递的,所以不论接收到它的BGP路由器是否能识别该属性,BGP都都不应该将它传递给其他不应该将它传递给其他BGP对等体对等体。路由器必须将
5、其删除。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此外,Cisco还定义了BGP权重属性。权重属性在本地配置,不会传播给其他
6、BGP路由器。BGP路径属性n原子聚合:告诉邻接自治系统,始发路由器将路由聚合(汇总)了。当BGP通过aggregate-address汇总路由后,所有详细路径的AS信息会丢失。n聚合站(聚合者):指出了执行路由聚合的路由器的BGP路由器ID和自治系统号。当BGP路由器在做路由汇总的时候,它可以将自己的AS号和router-id以聚合者属性附加在聚合路由之后,实际就是通告聚合路由产生的源。AS-Path (AS路径属性)nAS路径属性是前往目标网络的路由经过的自治系统号列表,通告该路由的自治系统位于列表末尾。nAS路径属性是一种公认强制属性。每当路由更新通过自治系统时,该自治系统编号都被加入到
7、路径列表的开头,然后将其通告给下一个EBGP邻居。n路由器A通告了网络192.168.1.0,路由器C将路由器A通告的路由传递给路由器B,并加上自己的自治系统号AS-Path (AS路径属性)nBGP路由器使用AS路径属性确保无环路环境。BGP路由器收到一条AS路径属性包含其自治系统号的路由后,将不接受它。n仅当路由器将路由通告给EBGP邻居时,才会加上自己的自治系统号;将路由通告给IBGP邻居时不会修改AS路径属性。nBGP默认选择最短的AS path为最佳路径下一跳属性n公认强制属性。BGP也是一种逐跳路由协议。与IGP不同的是,BGP中的跳指的是自治系统,而不是路由器。因此下一跳是下一个
8、自治系统。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对
9、等体路由器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.1AS100AS200IBGPIBGPEBGP RTB可经下一跳可经下一跳10.0.0.2到达到达18.0.0.0/8可经下一跳可经下一跳10.0.0.3到达到达20.0.0.0/8 RTA可经下一跳可经下一跳10.
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/8 RTC 可经下一跳10.0.0.1到达19.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8源头(起源属性)n公认强制属性,它指出路径信息的源头。n用于指明这条路由是以什么方式被BGP学到的。nIGP:路由是始发自治系统内部的。,使用network命令通过BGP通告路由时,通常属于这种情况。在BGP表中,IGP源头用i表示。nEGP:路由是通过EGP获悉的,在BGP表中用e表示。EGP是一种过时的路由协议,Int
11、ernet不支持,因为它只执行分类路由选择,而不支持CIDRnincomplete不完全:路由的源头未知或是通过其他方法获悉的。路由被重分发到BGP中时,通常属于这种情况。在BGP表中,不完整源头用?表示。n优先级:IGPEGP不完整本地优先级n公认自由决定的属性,它告诉自治系统中的路由器:哪条路径是离开自治系统的首选路径。n本地优先级越高,路径被选中的可能性越大。n这里的“本地”指的是自治系统内部。本地优先级属性只发送给IBGP邻居,而不发送给EBGP对等体。本地优先级是在路由器上配置的一种属性,只在同一个自治系统内的路由器之间交换。nCisco路由器的默认本地优先级值为100.本地优先级属
12、性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 属性AS400AS100AS30
13、0AS200RTARTBRTCRTDRTERTFD (18.0.0.0/8)30.0.0.130.0.0.220.0.0.120.0.0.2D,local-pref1 100D,local-pref2 200 D,local-pref1 100 D,local-pref2 200RTA就会优先选择本地就会优先选择本地优先级高的优先级高的local-pref2MED多出口鉴别属性nMED属性也被称为度量值,是一种可选非传递属性。nMED用于向外部邻居指出进入自治系统的首选路径。当入口有多个时,自治系统可以使用MED动态地影响其他自治系统如何选择进入路径。n度量值越小,路径被选中的可能性越大。ME
14、Dn与本地优先级不同,MED是在自治系统之间交换的。MED被发送给EBGP对等体,这些路由器在其自治系统内传播MED,自治系统中的路由器将使用它,但不将它再传递给下一个自治系统。将收到的更新传递给下一个自治系统时,将把度量值重置为默认值0.nMED和本地优先级之间的差别在于:MED影响进影响进入自治系统的数据流,而本地优先级影响离开自入自治系统的数据流,而本地优先级影响离开自治系统的数据流。治系统的数据流。MEDn默认情况下,仅当路径来自同一个自治系统中的不同邻居时,路由器才比较它们的MED属性。n通过使用MED属性,BGP成了唯一一种这样的协议,即能够影响将数据流发送到自治系统时使用的路径。
15、nMED属性:路由器B是前往自治系统65500的最佳下一跳配置MED属性nR1(config-router)#default-metric ?n Default metricMED属性D(18.0.0.0/8)RTARTBRTC30.0.0.130.0.0.220.0.0.120.0.0.2AS100AS200D,metric1 10 D,metric2 20D,metric1 10D,metric2 20RTA会选择会选择metric值较小值较小的的metric1IBGPWeight权重属性(Cisco专用)n权重是Cisco定义的一种用于选择路径的属性。权重属性是在路由器本地配置的,只提供
16、本地路由策略,不会传播给任何BGP邻居。n如果有多条前往同一个目的地的路由,将选择权重最高的路由。n权重的取值范围是065535.当前路由器通告的路径的默认权重值为32768,其他路径的默认权重值为0Weight权重属性n当路由器本身有多个离开自治系统的出口时,将根据权重属性来决定选择哪个出口;而有多台路由器提供了多个出口时,将根据本地优先级来决定选择哪个出口。n权重属性:路由器A将路由器B作为前往网络172.20.0.0的下一跳配置权重nneighbor 172.16.49.9 weight 200n配置命令被用于一个邻居连接设置权重共同体属性nBGP共同体是一种用于过滤入站/出站路由的方法
17、。nBGP共同体让路由器能够用指示符(共同体)来标记路由,其他路由器将根据该标记来做出决策。nBGP共同体属性被用于一组具有相同特性(因此具有相同策略的)的目的地(路由);这样,路由器将根据共同体而不是路由采取措施。n共同体不被限制在单个网络或自治系统内,它们没有物理边界共同体属性n共同体是可选传递属性n如果路由器不能识别共同体,将把它留给下一台路由器去处理;如果路由器能够识别共同体,必须对其进行配置,使之传播共同体,否则共同体属性将被丢弃。BGP路由选优过程n从不同的自治系统那里收到有关不同目的地的更新后,BGP将做出使用哪条路径来前往目的地的决策。n前往特定网络的路径可能有多条,这些路径被
18、存储在BGP表中。评估并确定前往网络的路径不是最佳路径后,它们将被淘汰,但仍保留在BGP表中,以防最佳路径不可用。BGP路由选优过程n如果同步被启用,则不考虑未被同步(即没有出现在IGP路由表中)的路由,也不考虑下一跳不可达的路径。因此,选择最佳路由时,BGP只考虑已同步、没有自治系统环路且下一跳地址有效的路由。n在Cisco路由器上,BGP选择最佳路由的步骤如下:n第1步 首选权重最高的路由(权重是一种Cisco专用的属性,只用于当前路由器)BGP路由选优过程n第2步 如果权重相同,选择本地优先级最高的路由(本地优先级用于自治系统内部)n第3步 如果本地优先级相同,选择当前路由器通告的路由(
19、在BGP表中,当前路由器通告的路由的下一跳为0.0.0.0)n第4步 如果没有当前路由器通告的路由,选择AS路径最短的路由n第5步 如果AS路径长度相同,选择源头编码(IGPEGP不完全)最小的路径BGP路由选优过程n第6步 如果源头编码相同,选择MED最小的路径(将在AS之间交换MED)n第7步 如果MED相同,则外部路径(EBGP)优先于内部路径(IBGP)n第8步 如果禁用了同步(默认设置)且只有内部路径,则选择经过最近的IGP邻居的路径。这意味着路由器首选AS中最短的内部路径(最短的前往BGP下一跳的路径)BGP路由选优过程n第9步 对于EBGP路径,选择最老的路由,以最大限度地降低路
20、由翻滚的影响n第10步 首选邻居BGP路由器ID最小的路由n第11步 如果BGP路由器ID相同,选择邻居IP地址最小的路由n只有最佳路由被加入到路由表中,并被传播给BGP邻居BGP策略路由的实现n通过操纵用于选择路径的准则,可影响AS的进入和离开策略。n可以操纵BGP属性本地优先级、MED和权重来影响BGP对路径的选择,其中包括使用路由映射表来操纵这些属性。BGP路径操纵n不同于内部路由协议,BGP并非用于选择最快的路径,而是用于控制数据流的传输路径,以最大限度地利用带宽。下图是使用BGP而没有进行策略操纵时出现的一种常见情形。n本地优先级:对离开自己的流量有效,相对而言,是优先考虑的nMED
21、多出口鉴别:由外部EBGP注入的,是AS外的管理员想影响到此AS而设置的。实现BGP路由策略路由映射表n路由映射表被用于BGP中来控制路由更新n路由条目输入和输出策略通常都用路由映射表进行定义n要点:n1.多个路由映射表实例在路由器上顺序被执行n2.在路由映射表中没有发现匹配时,数据包将通过正常路由通道被转发。n3.如果希望丢弃不匹配规定标准的数据包,可用SET语句将数据包转发到接口NULL0上,可将此语句作为路由映射的最后一个条目。n例如:对一个BGP邻居路由器应用一个路由映射表naccess-list 1 permit 1.1.1.0 0.0.0.255naccess-list 2 per
22、mit 1.2.1.0 0.0.0.255nroute-map mymap permit 10nmatch ip address 1nset weight 300nroute-map mymap permit 20nmatch ip address 2nset weight 100nrouter bgp 65038nneighbor 172.16.20.2 remote-as 65011nneighbor 172.16.20.2 route-map mymap out设置本地优先级路由器A的配置路由器B的配置路由器A包含路由映射表的BGP配置过滤BGP路由更新使用路由映射表过滤BGP路由更新n要将路由映射表用于过滤入站或出站BGP路由,可使用路由器配置命令nneighbor ip address route-map name in|outn对于被允许通过的路由,可在路由映射表中使用set命令设置或修改其属性