BGP负载分担的问题讲解

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BGP流量负载分担规划

1BGP流量负载分担概述

如何优化的利用网络带宽资源,是流量负载分担的关注重点。BGP(Border Gateway Protocol, 边界网关协议)选择单条最优路径的这一特征往往会出现流量负载不均衡的流量模型, BGP流量负载均衡从两个角度出发解决这个问题:通过BGP强大的策略控制流量的负载均衡;通过多路径选路实现负载分担。本文就要从这两个角度来展开分析BGP在流量负载分担方面的技术应用。

2负载均衡

在实际网络中进行负载均衡需要综合考虑链路和设备节点的负载情况,在满足业务的实际需求前提下,可以通过BGP的策略工具对流量进行均衡的规划和调整。对于一个AS来说,流量的方向分为入境和出境两个方向,这种区分对应到实际的网络有不同的规划,所以我们在此通过不同的场景进行介绍。

2.1入方向流量负载均衡

图1 多宿主到不同的上游的负载均衡

我们先分析一下图1的场景,AS100希望流量能够在AS200和AS300间进行负载均衡,也就是说根据业务分别映射到Link1和Link2上。

在规划中我们有如下思路:

1 AS100可以在RA和RB上通过策略只向各自的对等体通告部分路由前缀,这样可以起到不同的业务对应由不同的AS承载。如172.168.1.0/25通过RA通告给RC,172.168.1.128/25通过RB通告给RD。这种规划能够满足流量分担的效果,但是一旦出现链路或节点的失效,就会导致部分流量无法切换,业务中断。

2 通过步骤1我们可以看到简单的通过路由过滤无法很好的实现需求。我们可以通过对不同的前缀进行策略区分。接着步骤1的思路,AS100希望172.168.1.0/25优先通过AS200进入,希望172.168.128.0/25优选通过AS300进入。可以在RA 上通过策略将172.168.128.0/128通告的AS-PATH加一个AS-Number,如:1000 100。RB上通过策略将172.168.1.0/25通告给RD的AS-PATH加一个AS-Number,如:2000 100。

RE上关于172.168.1.0/25的前缀从RC通告过来的AS-PATH是: 200 100,通过RD通告过来的AS-PATH是:300 2000 100,因此优选走AS200。关于172.168.128.0/25同理会优选AS300。该规划可以在满足需求的同时解决路由备份的问题。但是我们考虑下面一个场景,当RC和RD建立BGP连接,RD上关于172.168.1.0/25的前缀从RC通告过来的AS-PATH是100 200,从RB上通告过来的AS-PATH是2000 100,也就是说RD上关于172.168.1.0/25无法很好的进行路由选路控制。

3 团体属性是进行本地进行路由控制的重要属性,但是团体属性需要BGP对等双方有属性处理的共识。在步骤2的基础上,RB在通告172.168.1.0/25时,可以将团体属性值修改为100:120,在RD上将团体属性的前缀预定义

Local-preference为120,这样对于RD来说在收到RC和RB的前缀AS-PATH相同长度的情况下,RB通告的前缀Local-preference高,优选RB。

分析完图1所示的场景,我们可以继续看看多宿主相同上游的场景,如图2:

图2 多宿主相同AS的负载均衡

对于相同的上游AS,我们更多的需要考虑上游AS内部的选路,对于跨过上游AS 的远端AS的选路我们很难控制,因此本文讨论的重点就在本地和上游AS的选路策略部署。先分析需求,本地AS希望172.168.1.0/25通过RB进入,

172.168.128.0/25通过RC进入。存在下述三种方式:

1 借鉴上文中多宿主不同AS的做法,将172.168.128.0/25通告给RB时,将

AS-PATH设置为1000 100,将172.168.1.0/25通告给RC时,将AS-PATH设置为2000 100。由于RB和RC之间是IBGP邻居,因此对于RB来说,172.168.1.0/25从RA学习到的AS-PATH是100,从RC上学习到的AS-PATH是2000 100,优选RA的路由。对于172.168.128.0/24来说,从RA学习的路由AS-PATH为1000 100,从RC学习的路由AS-PATH为100,优选RC。这满足了需求。

2 同样,在AS间协商进行策略部署的前提下,可以在RA上对不同的业务前缀进行属性赋值的区分,在RB/RC对不同的属性设置不同的本地优先级进行业务的分担均衡。

3 还是针对图2,对于AS200进行入方向的流量负载分担部署,最直接的方法就是通过修改MED值的方法,使得RA通过MED值直接进行路由的优选。

2.2出方向负载均衡

我们还是先分析图1的场景,AS100希望出方向的业务流量能够在RA和RB间进行合理的负载均衡:

1 可以通过在RA和RB上进行入境路由前缀过滤,通过前缀在不同的出口路由器的通告分担来实现业务流量出方向的负载均衡。

2 入境的过滤适用于对端AS的业务负载分担,但是对于远端Internet的业务,无法通过入境路由前缀过滤的方法实现,否则会出现单点故障导致业务中断的情况。对于Internet业务就需要进行入境路由前缀策略控制,例如通过添加

AS-PATH或者对特定前缀设置不同的本地优先级等。

3 对于单点故障导致业务中断的考虑还可以通过出口路由器发布缺省路由的方式作为路径的备份,一旦出现某个出口路由器故障,路径可以通过缺省路由切换至其他出口路由器,起到备份的效果。

4 同样可以和上游AS协商,通过通告来的前缀携带不同的团体属性进行相应的策略控制。

对于图2的场景,单出口路由器上进行负载分担可以借助路由策略的方法更为灵活:

1 针对不同对等体进行入境路由前缀过滤,使业务自然分担到不同的出口链路上。同时配置缺省路由指向对等体,防止单点故障业务中断;

2 通过针对特定前缀设置多种属性,如Local-preference、Origin、MED等,在本地进行路由优选。

2.3AS内部负载均衡

AS内部的负载均衡相对容易部署,通过策略对业务进行区分,对不同的业务使用不同的BGP属性进行控制。如图3,RB和RC同时向RA通告172.168.1.0/25和172.168.128.0/25,RA希望172.168.1.0/25业务从RB走,172.168.128.0/128从RC走。满足这种需求,可以直接在RA上对业务进行区分,对RB通告的172.168.1.0/25的Local preference设置为120,将RC通告的

172.168.128.0/25的Local preference设置为120,本地优选结果能够满足需求。

相关文档
最新文档