路由配置与管理——BGP路由配置与管理3

来源:互联网 发布:软件系统测试报告模板 编辑:程序博客网 时间:2024/05/19 06:15

BGP路由选路和负载分担配置与管理

BGP具有很多路由属性(如BGP协议优先级、下一跳属性、本地优先级属性、AS路径属性、MED属性、团体属性等),这些属性有可能影响BGP的最终选路结果。配置任务如下:

①配置BGP协议优先级

②配置Next_Hop属性

③配置BGP路由首选值

④配置本机缺省Local_Pref属性

⑤配置AS_Path属性

⑥配置MED属性

⑦配置BGP团体属性

⑧配置BGP负载分担。

    一、配置BGP协议优先级

由于路由器上可能同时运行多个路由协议,就存在各个路由协议之间路由信息共享和路由路径选择的问题。系统为每一种路由协议设置一个缺省的内、外部优先级。在不同协议发现同一条路由时,优先级高的路由将被优选。

BGP协议的外部优先级包括了EBGP优先级、IBGP优先级和本地优先级。


二、配置Next_Hop属性

BGP在Next_Hop属性中规定,当ASBR(连接BGP路由器的肯定是ASBR)将从EBGP对等体学习到的路由转发给本AS内其他IBGP对等体时,默认不修改下一跳。这样,在IBGP对等体收到该路由后,会发现下一跳不可达(因为其下一跳不是直连设备的接口IP地址),于是将该路由设为非活跃路由,不通过该路由指导流量转发。

如果希望IBGP邻居通过该路由指导流量转发,可以在ASBR上配置向IBGP对等体(组)转发路由时,将自身出接口IP地址作为下一跳。这样IBGP对等体在收到ASBR从EBGP邻居学来的路由后发现下一跳可达,于是将路由设为活跃路由。

    当BGP路由发生变化时,BGP需要对非直连的下一跳重新进行迭代。如果不对迭代后的路由进行任何限制,则BGP可能会将下一跳迭代到一个错误的转发路径上。此时可配置BGP按路由策略迭代下一跳。


三、配置BGP路由首选值

协议首选值(PrefVal)是华为设备的私有属性仅在本地路由器上有效。当BGP路由表中存在到达相同目的地址的多条路由时,将优先选择协议首选值高的路由(而不是其他属性值,因为首选属性值是最优先进行比较的)。


四、配置本机缺省Local_Pref属性

Local_Pref(本地优先级)属性用于判断流量离开AS时的最佳路由。当BGP的设备通过不同的IBGP对等体得到到达外部AS的目的地址相同,但下一跳的多条路由时,将优先选择Local_Pref属性值较高的路由。但Local_Pref属性仅在IBGP对等体之间交换和比较,不通告给其他AS。它表明的是BGP路由器的优先级,而不是路由的优先级

另外Local_Pref属性是在PrefVal属性比较之后,所以仅当多条相同目的地址路由具有相同PrefVal属性值后才按Local_Pref属性值进行比较。


五、配置AS_Path属性

AS_Path(AS路径)属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。配置不同的AS_Path属性功能,可以实现灵活的路由选路。在配置AS_Path属性时,考虑一下几个方面:

①通常情况下,将AS_Path属性内的AS_Path数量作为BGP选路条件,路径越长,优先级越低。当不需要AS_Path属性作为选路条件时,可以配置不将AS_Path属性作为选路条件。

②通常情况下,BGP通过AS号检测路由环路,即路由中的AS路径中包括本地AS号的路由不再接收。当在Hub and Spoke组网方式下,为保证路由能够正确传递,从Hub-CE发布私网路由到Spoke-CE途中经过的相关BGP对等体需要配置允许AS_Path中AS号重复一次的路由通过。

③共有AS号可以直接在Internet上使用,私有AS号直接发布到Internet上可能造成环路现象。为了解决上述情况,可以在把路由发布到Internet前,配置发送EBGP更新报文时,AS_Path属性中仅携带公有AS编号。

④在重构AS_Path或聚合生成新路由时,可以对AS_Path中的AS号最大个数予以限制。配置AS_Path属性中AS号的最大个数后,接收路由时会检查AS_Path属性中的AS号是否超限,如果超限则丢弃路由。

⑤常规情况下,一个设备只支持一个BGP进程,即只支持一个AS号。但是在某些特殊情况下,例如网络由于迁移而更换AS号的时候,为了保证网络切换的顺利进行,可以为指定对等体设置一个伪AS号。

⑥BGP会检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号,确认第一个AS号必须是该EBGP对等体所在的AS。否则,该更信息被拒绝,EBGP连接中断。如果不需要BGP检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号,可以去使能此功能。






六、配置MED属性

MED属性相当于IGP使用的度量值(Metrics),它用于判断流量进入AS时的最佳路由。当一个运行BGP的设备通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其他条件相同的情况下,将优先选择MED值较小者作为进入EBGP对等体所有AS的最优路由





七、配置BGP团体属性

团体属性可在BGP对等体之间传播,且不受AS的限制。利用团体属性可以使多个AS中的一组BGP设备共享相同的策略,从而简化路由策略的应用并降低维护管理的难度。BGP设备可以在发布路由时,新增或改变路由的团体属性。由团体属性延伸的扩展团体属性是针对特定业务的扩展,目前仅支持在VPN中应用Route-Target属性。





表中第4步apply community命令有多种应用方式。现假设原BGP路由的团体名为30,在符合路由策略过滤条件的情况下,替换或追加AS规则如下:

①如果配置了apply community100命令,则团体名更改为100

②如果配置了apply community100 150命令,则团体名更改为100或150,即BGP路由属于两个团体。

③如果配置了apply community100 150 additive命令,则团体名更改为30、100或150,即BGP路由属于三个团体。

示例:配置名为setcommunity的路由策略,匹配AS-path-filter为8的路由,更改其团体属性为no-export。

<Huawei>system-view

[Huawei]route-policy setcommunity permitnode 16

[Huawei-route-policy]if-matchas-path-filter 8

[Huawei-route-policy]apply community no-export

示例:将100:2、1.1.1.1:22、100.100:100这三个扩展团体属性值添加到BGP的VPN Route-Target扩展团体属性中

<Huawei>system-view

[Huawei]route-policy policy permit node 10

[Huawei-route-policy]apply extcommunity rt100:2 rt 1.1.1.1:22 rt 100.100:100 additive

八、配置BGP负载分担

在大型网络中,到达同一目的地通常会存在多条有效路由,但是BGP只将最优路由发布给对等体,这一特点往往造成很多流量负载不均衡的情况。通过配置BGP负载分担,可以使流量负载均衡。

一般情况下,只有在“BGP协议的选路规则”中所描述的前8个属性完全相同,且AS_Path属性也相同时,BGP路由之间才能互相等价,实现BGP的负载分担。具体条件:

①原始下一跳(也就是路由到达设备前的下一跳)不相同。

②首选值(PrefVal)相同

③本地优先级(Local_Pref)相同

④都是聚合路由,或者都不是聚合路由。

⑤Origin类型(IGP、EGP、Incomplete)相同。

⑥MED值相同。

⑦都是EBGP路由或都是IBGP路由。

⑧AS内部IGP的Metric相同。

⑨AS_Path属性完全相同。

以上路由负载分担的规则也可以通过配置来改变,如忽略路由AS_Path属性值的比较、忽略IGPMetric的比较,但需要确保不会引起环路。

如果实现了BGP负载分担,则无论是否配置了peer {group-name | ipv4-address} next-hop-local命令,在向IBGP对等体组发布路由时都先将下一跳地址改变为自身出接口IP地址。

BGP负载分担的配置主要有两个方面:一是配置允许实施负载分担的最大等价路由条数;二是配置在进行负载分担时是否比较AS_Path属性。


九、BGP路由选路和负载分担管理

display bgp paths [as-regular-expression]:查看BGP的AS路径信息。

display bgp Routing-tabledifferent-origin-as:查看源AS不一致(目的地址相同)的路由。

display bgp routing-tableregular-expression as-regular-expression:查看匹配AS正则表达式的路由信息。

display bgp routing-table [network [{mask | mask-length} [longer-prefixes]]]:查看BGP路由表中的信息。

display bgp routing-tablecommunity [community-number | aa:nn]&<1-29> [internet | no-advertise | no-export |no-export-subcpnfed]*[whole-match]:查看指定BGP团体的路由信息。

display bgprouting-tablecommunity-filter {{community-filter-name |basic-community-filter-number}[whole-match] |advanced-community-filter-number}:查看匹配指定BGP团系属性过滤器的路由。

display bgp multicastrouting-table [ip-address [mask-length [longer-prefixes] | mask[longer-prefixes]]]:查看MBGP路由表的路由信息。

display bgp multicastrouting-tablestatistics:查看MBGP路由表的统计信息。

十、通过MED属性控制路由选择的配置示例


如上拓扑,所有路由器都配置BGP,RouterA在AS65008中,RouterB和RouterC在AS 65009中。RouterA与RouterB、RouterC之间运行EBGP,RouterB和RouterC之间运行IBGP。要求从AS 65008到AS65009的流量优先通过RouterC到达。

    1、基本配置思路

只需在配置好基本的BGP功能,建立各处的EBGP或者IBGP对等体连接后,再把RouterB的MED属性调大(RouterC的MED属性采用缺省的最小值0)即可。

2、具体配置步骤

①配置各路由器接口的IP,以A为例

<RouterA>system-view

[RouterA]interfacegigabitetehernet 1/0/0

[RouterA-GigabitEthernet1/0/0]ipaddress 200.1.1.2 24

[RouterA-GigabitEthernet1/0/0]quit

[RouterA]interfacegigabitetehernet 2/0/0

[RouterA-GigabitEthernet2/0/0]ipaddress 200.1.2.2 24

[RouterA-GigabitEthernet2/0/0]quit

②配置各路由器的BGP基本功能。包括配置各自的对等体连接,并需要在RouterB和RouterC上引入它们之间的直连路由9.1.1.0/24(主要用于后面的BGP路由表验证)。因为没有配置Loopback接口,所以需要明确配置各路由器的RouterID。A、B、C的路由器ID分别设置为1.1.1.1、2.2.2.2、3.3.3.3。


此时可通过display bgprouting-table 9.1.1.0 24查看RouterA的

路由表中是否有9.1.1.0/24这条路由。


到目的地址9.1.1.0/24有两条有效路由,其中下一跳为200.1.1.1的路由是最优路由,通告到了RouterB和RouterC,来自RouterC的非最优路由没有被通告。

③通过策略配置RouterB发送给RouterA的MED值为100,使它的优先级降低,而RouterC仍采用缺省的最低MED值0(优先级最高)。本例仅需为发给EBGP对等体RouterA的路由改变MED属性值,所以需要用到路由策略。

[RouterB]route-policy policy 10 permit node10

[RouterB-route-policy]apply cost 100

[RouterB-route-policy]quit

[RouterB]bgp 65009

[RouterB-bgp]peer 200.1.1.2 route-policypolicy 10 export !—指定将发往对等体A的路由MED属性值配置为100

此时在通过display bgprouting-table 9.1.1.0 24


由于下一跳为200.1.1.1(RouterB)的路由MED值为100,而下一跳为200.1.2.1的MED值为0,所以BGP优先选择来自RouterC的MED值较小的路由,并通告到了B和C,来自B的非最优路由没有被通告。

十一、BGP团体配置示例


如上拓扑,RouterB分别与RouterA、RouterC之间建立EBGP连接,要求AS10发布到AS20中的路由不再被AS20向其他AS发布。

    1、基本配置思路

    只需先配置好各路由器的BGP基本功能,然后在RouterA上利用路由策略定义发往对等体RouterB的路由带有No_Export团体属性,就可实现AS10发布到AS20中的路由不再被AS20向其他AS发布。

2、具体配置步骤

①配置各路由器接口的IP地址,以A为例

<RouterA>system-view

[RouterA]interface gigabitetehernet 2/0/0

[RouterA-GigabitEthernet2/0/0]ip address200.1.2.1 24

[RouterA-GigabitEthernet2/0/0]quit

②配置各路由器的BGP基本功能。包括配置各自的对等体连接,并需要在RouterA上引入它的直连路由9.1.1.0/24(主要用于BGP路由表验证)。A、B、C的路由器ID分别设为:1.1.1.1、2.2.2.2、3.3.3.3。


通过display bgprouting-table9.1.1.0在RouterB上的BGP路由表中查看路由9.1.1.0/24详细信息。可看到RouterB把收到的BGP路由发布给了位于AS30的RouterC


通过display bgprouting-table查看RouterC的BGP路由表,可发现RouterC已从RouterB学习到了目的地址为9.1.1.0/24的路由。


③在RouterA上通过路由策略配置BGP团体属性,使RouterA发布给RouterB的BGP路由不再被RouterB发布给其他AS。


此时在RouterB上通过display bgp routing-table9.1.1.0查看BGP路邮报,可看到9.1.1.0/24这条路由携带的团体属性,并且RouterB没有把9.1.1.0/24这条路由发布给其他区域的对等体。


十二、BGP负载分担配置示例


如上拓扑,所有路由器都配置BGP,现要求充分利用网络资源,减少RouterA到目的地址8.1.1.0/24网络拥塞。

    1、基本配置思路

先配置好各路由器的BGP基本功能,然后在RouterA上配置负载分担功能,使从RouterA发送的流量可以经过RouterB和RouterC两条路径到达RouterD,实现对网络资源的充分利用。

2、具体配置步骤

①配置各路由器接口的IP

<RouterA>system-view

[RouterA]interface gigabitetehernet 1/0/0

[RouterA-GigabitEthernet1/0/0]ip address200.1.1.1 24

[RouterA-GigabitEthernet1/0/0]quit

[RouterA]interface gigabitetehernet 2/0/0

[RouterA-GigabitEthernet2/0/0]ip address200.1.2.1 24

[RouterA-GigabitEthernet2/0/0]quit

②配置各路由器的BGP基本功能。包括配置各自的对等体连接,并需要在RouterD上引入它的直连路由8.1.1.0/24。A、B、C、D的路由器ID分别设为1.1.1.1、2.2.2.2、3.3.3.3、4.4.4.4。


执行display bgp routing-table 8.1.1.0 24:


RouterA到8.1.1.0/24有两条有效路由,其中下一跳为200.1.1.2的路由是最优路由(因为B的RouterID小一些)。

③在RouterA上配置负载分担,允许两条等价路由。

[RouterA]BGP 100

[RouterA-bgp]ipv4-family unicast

[RouterA-bgp-af-ipv4]maximum load-balancing2

[RouterA-bgp-af-ipv4]quit

[RouterA-bgp]quit

此时在通过display bgprouting-table 8.1.1.0 24:BGP路由8.1.1.0/24存在两个下一跳,分别是200.1.1.2和200.1.2.2,且都被优选。


0 0
原创粉丝点击