1 BGP流量负载分担概述
如何优化的利用网络带宽资源,是流量负载分担的关注重点。BGP(Border Gateway Protocol,
2 负载均衡
在实际网络中进行负载均衡需要综合考虑链路和设备节点的负载情况,在满足业务的实际需求前提下,可以通过BGP的策略工具对流量进行均衡的规划和调整。对于一个AS来说,流量的方向分为入境和出境两个方向,这种区分对应到实际的网络有不同的规划,所以我们在此通过不同的场景进行介绍。
2.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
3
分析完图1所示的场景,我们可以继续看看多宿主相同上游的场景,如图2:
对于相同的上游AS,我们更多的需要考虑上游AS内部的选路,对于跨过上游AS的远端AS的选路我们很难控制,因此本文讨论的重点就在本地和上游AS的选路策略部署。先分析需求,本地AS希望172.168.1.0/25通过RB进入,172.168.128.0/25通过RC进入。存在下述三种方式:
1
2
3
2.2 出方向负载均衡
我们还是先分析图1的场景,AS100希望出方向的业务流量能够在RA和RB间进行合理的负载均衡:
1
2
3
4
对于图2的场景,单出口路由器上进行负载分担可以借助路由策略的方法更为灵活:
1
2
2.3 AS内部负载均衡
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,本地优选结果能够满足需求。
3 等价负载分担
上文介绍的是多宿主情况下的负载均衡规划思路,本章节需要关注的是通过等价路由在路由器之间进行负载分担的部署方式。
3.1 EBGP多跳负载分担
图4的场景是两台出口路由器之间通过环回口建立EBGP邻接,我们知道对于EBGP邻接超过1跳建立邻接需要通过命令peer x.x.x.x ebgp-max-hop ,其中Maximum hop设置大于1。对每一个链路接口对应配置静态路由,指向对端环回口地址,路由下一跳为链路对端接口地址。这种方法通过路由下一跳地址的迭代,将流量负载分担到不同的链路上,实现多跳的EBGP对等体间的多链路负载分担。
3.2 EBGP多路径负载分担
RA和RB通过两条链路的物理接口地址建立两个单跳EBGP邻接关系,以RA举例,从两个EBGP会话均收到关于172.16.1.0/24的路由信息,在其他属性都相同的前提下,两个EBGP对等体通告的路由形成等价。
比较上述两种负载分担方式,第一种方式,建立了一个EBGP会话,会话直接绑定在两个出口路由器的环回地址,通过直连路由迭代下一跳的方式在链路间实现负载分担。这种方式EBGP会话属于多跳会话,需要两个AS间进行环回地址的路由部署,适用性有一定的限制。第二种方式,需要建立多个会话,对资源有一定的消耗,同时对于EBGP等价路由的配置,是针对本设备所有BGP对等体适用,无法区分对等体,因此,缺少一定的灵活性。
3.3 AS内部负载分担
AS内部的负载分担规划同样可以采用下一跳迭代的方式在同一个IBGP会话间进行多链路的负载分担。对于多IBGP对等体通告的路由在优选属性相同的前提下能够形成负载分担。对于图6中的场景,RB和RC向RA通告172.168.1.0/24的路由前缀,在ORIGIN,LOCAL-PREFERENCE以及AS-PATH路径属性均相同的前提下能够形成负载分担。
多链路的负载分担还是可以通过下一跳迭代到等价IGP路由或者默认路由来实现,例如图7所示场景:
RD和RA
3.4 负载分担规划原则
ORIGIN,LOCAL-PREFERENCE,MED以及AS-PATH路径属性均相同是形成负载分担的前提,在此前提下还要遵循一定的原则进行负载分担规划。以图8举例,
l
l
4 总结
负载均衡和负载分担均是BGP通过策略控制达到流量在网络中不同节点、不同链路间的平衡,起到合理利用网络资源的效果。本文介绍的是对具体网络负载均衡或分担的需求进行规划的思路,实际中满足需求的手段多种多样,需要根据实际情况做相应的规划调整,因此在实际的网络规划时不要拘泥于本文提及的方法,更多的是思路上的借鉴。同时,负载均衡和分担往往需要经过多次尝试才能尽可能接近均衡的,过于精确的均衡往往会带来策略上的复杂度,同时在考虑均衡的同时还要兼顾路径的备份。