论文部分内容阅读
摘要:以地市级城域网为模型,就目前城域网应用广泛的内部网关路由选择协议OSPF、外部网关路由选择协议BGP配合部署进行了解读,分析路由选择协议的RFC文档后提出此部署方式存在的弊端,并提供了一个新的OSPF BGP部署的解决方案,通过对比,分析了这种解决方案的优势。
关键词:城域网;OSPF;BGP;RFC
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)17-4105-05
目前城域网所广泛使用的内部网关路由选择协议为OSPF(Open Shortest Path First开放式最短路径优先),用来承载城域网内部的路由;使用外部网关路由选择协议为BGP(Border Gateway Protocol边界网关协议),用在与省网交互路由。正确部署OSPF与BGP至城域网后,可保证城域网的正常运行。下面将分别介绍两种OSPF BGP的部署方式。
1全网运行OSPF、出口运行BGP路由选择协议的部署方式
1.1路由发布方式及流量流程
建立城域网模型如图1所示,下图为典型城域网模型。省网A、省网B隶属省网,接入各地级城域网核心。
CR1、CR2为市城域网核心设备,为市级城域网出口。BR1、BR2、BR3、BR4为市城域网汇聚设备,汇聚业务控制层设备。SR1、Bras1、SR2、Bras2为市城域网业务控制设备。各设备之间链路以下简写为L(设备1设备2),如表示CR1至BR1的链路,则写为L(CR1BR1);表示流量通道也简写为L(设备1设备2设备3),如表示SR1-BR1-CR1的路径,则写为L(SR1BR1CR1)。
省网A、省网B,运行BGP协议,二者之间通过静态路由在环回地址上建立IBGP邻居关系,并通过静态路由在环回地址上分别与城域网核心CR1、CR2建立EBGP邻居关系。城域网核心CR1、CR2运行BGP、OSPF协议,CR1与CR2建立IBGP邻居关系、OSPF邻居关系,CR1分别与城域网汇聚BR1、BR2建立OSPF邻居关系,CR2分别与城域网汇聚BR3、BR4建立OSPF邻居关系。BR1、BR2、BR3、BR4运行OSPF协议,相互之间两两建立OSPF邻居关系。业务控制SR1、Bras1、SR2、Bras2运行OSPF协议分别与上联城域网汇聚BR建立OSPF邻居关系。
图1典型城域网构成拓扑
路由宣告时,省网A、省网B分别通过EBGP向CR1、CR2宣告省网内部路由及默认路由。CR1、CR2通过EBGP向省网A、省网B宣告所在城域网内路由。CR1、CR2分别通过OSPF向BR1、BR2、BR3、BR4强制下发默认路由。BR1、BR2、BR3、BR4分别通过OSPF向CR1、CR2宣告各自路由。BR1、BR2、BR3、BR4分别通过OSPF向所接SR、Bras下发城域网OSPF路由及默认路由。SR、Bras分别通过OSPF向BR宣告所带网段。
此时,城域网已经可以正常工作。以用户由SR1接入为例,说明流量出流向。流量出城域网方向,SR1的路由表内会有两条默认路由通往BR1、BR4,此时流量流入BR1、BR4。通过OSPF的负载分担算法,L(SR1BR1)和L(SR1BR4)流量各占50%。BR1、BR4检查路由表,其默认路由是由CR1、CR2强制下发,流量会分别传递给CR1、CR2。CR1、CR2的默认路由是由省网A、省网B通过EB? GP下发,流量最终会通过链路L(CR1省网A)、L(CR2省网B)至省网,并各自分担50%流量。由于目的地址不确定性导致回程流量的不确定性,可能从省网A回程、或从省网B回程,或为负载分担省网A、省网B两个方向均有流量。现分开考虑,如从省网A回程,省网A将会将流量发送至CR1,CR1通过OSPF学习到路由将流量发送至BR1,同理BR1发送流量至SR1;从省网B回程,省网B将流量送至CR2,CR2将流量发送至BR4,BR4发送流量至SR1。
以上说明了全网运行OSPF、出口运行BGP路由选择协议的部署情况,及正常情况下流量的出入城域网是如何进行的。正常情况下,此部署方式无任何问题,即可满足城域网流量需要,又保证了链路冗余备份。但深入分析后,会发现此种部署方式有一定弊端。
1.2 OSPF的30分钟刷新LSA的特性过多消耗网络资源
根据“OSPF Version 2”,RFC2328[1]的规定,为确保数据库的准确性,OSPF每隔30分钟对路由器始发的每条LSA记录扩散(刷新)一次,并将它的序号增加1,老化时间设置为0。这种间隔被称为LSA的刷新时间(LSA Refresh Time)。其他的OSPF路由器一旦收到这个新的拷贝,就会用这个新的拷贝替换该条LSA通告原来的拷贝,并使这个新的拷贝的老化时间开始增加。根据这个原则,无论网络拓扑是否改变,LSA的生存期30分钟必须被重新扩散一次,此特性在保证域内OSPF数据库一致的情况下也消耗了过多的网络资源[2]。
1.3单上行链路、出口互联链路故障时产生流量黑洞
1.3.1当CR1、CR2配置为OSPF强制下发默认路由情况
当L(省网ACR1)和L(CR1CR2)同时出现故障时,以用户在SR1上接入访问省外目的的出流量为例。此时,由于配置CR1为强制下发默认路由,CR1上行中断后仍旧下发默认路由给BR1,CR2也下发默认路由给BR4。BR1、BR4将转发默认路由给SR1,SR1根据默认路由引导流量送入BR1、BR4。流量给BR4后可以正常通过CR2转发至省网B。但是流量由SR1送给BR1后将出现问题。BR1会根据收到的CR1强制下发的默认路由,将流量送给CR1,正常情况下流量应由CR1上送给省网A,但由于链路中断CR1上没有省网A下发给其的BGP的默认路由。此时,CR1会检查路由表,CR1发现:由于CR1与CR2建立着IBGP邻居关系,而IBGP邻居关系可通过OSPF协议保持建立状态,所以CR2收到的EBGP默认路由会以IBGP默认路由的方式转发给CR1。CR1通过此条IBGP的默认路由,将流量转发给CR2。但由于CR1、CR2之间链路也为故障状态,流量不能送达。则CR1将根据IGP也就是OSPF的算法,将流量送给BR1。流量到达BR1后还会以默认路由将流量送回给CR1,此时产生了流量的黑洞,当流量的TTL=1时,流量将被丢弃。SR1始发的出流量将只有50%正常,另50%将被丢弃。此过程如图2所示。 图2流量黑洞产生原理图
以上故障情况在OSPF默认路由配置为非强制下发模式下仍旧出现,下面继续讨论上述故障发生在CR1、CR2配置为OSPF默认路由非强制下发模式。
1.3.2当CR1、CR2配置为OSPF非强制下发默认路由情况
故障发生后,CR1上行中断,将收不到省网A发送的EBGP默认路由,此时按照配置预期,CR1应该不再下发OSPF的默认路由,即可避免流量黑洞的产生。但是CR1虽然收不到EBGP邻居发送的默认路由,而与CR2的IBGP邻居关系仍旧存在,CR1上仍旧收到由CR2转发过来的IBGP默认路由。CR1是否可以根据IBGP的默认路由来下发OSPF的默认路由成为关键,然而RFC2328上并未规定OSPF下发默认路由的触发条件。可分两种情况考虑:
当只有EBGP默认路由为OSPF默认路由下发的条件而IBGP默认路由不能作为OSPF默认路由下发的条件时,CR1不会下发OSPF默认路由,此时SR1上只收到一条默认路由,由CR2产生并由BR4转发至SR1,此时SR1流量将通过L(SR1BR4CR2省网B),没有流量黑洞的产生。此过程如图3所示。
图3 EBGP默认路由为OSPF默认路由下发条件
当EBGP默认路由、IBGP默认路由都可作为OSPF默认路由下发条件时,CR1仍然会下发默认路由,流量黑洞产生方式与强制下发情况一样。
图4 EBGP默认路由、IBGP默认路由都可作为OSPF默认路由下发条件
由于RFC没有硬性规定,此特性则和路由器生产厂家对于RFC2328的理解有必然关系。经过对全球最大路由器生产厂家Cisco公司此方面内容的查看,发现Cisco公司研发的Cisco网络互联操作系统( Internetwork Operating System, IOS)中IBGP默认路由是可以触发配置为非强制下发的OSPF路由选择协议下发OSPF默认路由的。通过表1可看出两种OSPF默认路由下发规则在单上行链路、出口互联链路故障时均有出现流量黑洞的隐患。
表1 OSPF默认路由下发的对比情况
1.4回程流量不均衡出现瓶颈
城域网中由于访问目的地的不确定性导致了回程流量的不均衡性。出城域网流量由核心下发的默认路由引导,所以出流量在双出口处为负载分担流出。但回程流量则没有这个属性,鉴于此类问题,在网络设计初期需要考虑到,但由于不均衡性总是在发生着偏移[3],所以省网也会针对不同时期,对城域网的回程流量做一些调整。但省网的调整,相对于城域网内设备来说,颗粒度太大,一般以GB为单位进行流量调整。而城域网并无有效的流量调整方式,如下面一种情况:
城域网中针对SR1下接入用户的流量30%由L(省网ACR1)流入,70%由L(省网BCR2)流入。CR1、CR2根据OSPF路由表,将流量分别送给BR1、BR4。以至L(BR1SR1)流量为30%,L(BR4SR1)的流量为70%。假定SR1下接入用户峰值,两省中继总流量为4Gbits/s,为保证链路的资源合理利用,L(SR1BR1)设计容量为2GB,L(SR1BR4)设计容量为4GB。当流量按照30%、70%流入时,L(SR1BR1)峰值流量为1.2Gbits/s,L(SR1BR4)峰值流量为2.8Gbits/s,均在每条链路的合理利用率之内。但如果此时流量方向发生偏移,两出口入流量均分,即50%由L(省网ACR1)流入,50%由L(省网BCR2)流入时,L(SR1BR1)、L(SR1BR4)峰值流量将均为2Gbits/s,L(SR1BR1)峰值流量将达到100%。此过程如图5所示。
图5回程流量不均衡出现瓶颈
上述三种问题:OSPF的30分钟刷新LSA的特性过多消耗网络资源、核心层故障后产生流量黑洞、回程流量不均衡出现瓶颈。在全网运行OSPF、出口运行BGP部署方案中,并未有较好的解决方法。
2全网部署OSPF BGP路由选择协议
针对上述全网运行OSPF、出口运行BGP部署方式出现的问题,使用全网部署OSPF BGP路由选择协议可以很好的解决这三种问题。
2.1路由发布方式及流量流程
在图一的典型城域网模型中,OSPF只用来承载城域网内设备的互联地址及环回地址,保证各个城域网设备的连通性,而不用其进行承载城域网内用户路由。所有城域网内设备启用BGP路由选择协议,BR3、BR4配置为RR,BR3、BR4建立IBGP邻居关系,CR1、CR2、BR1、BR4、SR1、SR2、Bras1、Bras2均通过环回地址分别与RR(BR3、BR4)的环回地址建立IBGP邻居关系并作为路由器反射客户端,CR1、CR2通过环回地址建立IBGP邻居关系。IBGP用于承载用户路由。部署完毕后,此模型可正常进行城域网流量的转发。
以SR1接入用户访问省外网络的出入流量为例,CR1、CR2分别通过EBGP收到省网A、省网B下发的默认路由,CR1、CR2以IBGP转发默认路由给RR(BR2、BR3),由RR将默认路由反射给SR1。此时SR1收到两条IBGP的默认路由,下一跳分别为CR1、CR2。SR1通过OSPF协议递归查找到两个CR1、CR2,将数据负载分担分别送至BR1、BR4。BR1、BR4通过RR也会收到CR1、CR2的IBGP默认路由,并通过OSPF迭代各自的下一跳,将流量送至CR1、CR2,后再由CR1、CR2分别送至省网A、省网B。SR1将自己承载的用户路由以IBGP方式通告给RR,再由RR反射给CR1、CR2,CR1、CR2以EBGP方式通告给省网A、省网B。回程流量则分别使用L(省网ACR1BR1SR1)、L(省网BCR2BR4SR1)两条链路回程。
以上例子,说明了全网部署BGP的路由通告过程及流量引导方式。下面则针对全网运行OSPF、出口运行BGP部署方式下不能解决的三个问题进行论述。 2.2解决OSPF的30分钟刷新LSA的特性过多消耗网络资源的问题
全网部署OSPF BGP路由选择协议,使用IBGP来承载用户路由,而OSPF只进行城域网中设备连通性的保证。则不会有大量的OSPF的LSA产生。根据RFC1771[4],BGP采用增量的路由更新,即只有网络拓扑变更或通告属性发生变化时才会产生路由更新。所以,使用全网部署OSPF BGP路由选择协议时,OSPF只有少量的互联、设备环回地址的LSA,不会因为30分钟的刷新LSA过多消耗网络资源。
2.3解决单上行链路、出口互联链路故障时产生流量黑洞的问题
当L(省网ACR1)和L(CR1CR2)同时出现故障时,以用户在SR1上接入访问省外目的的出流量为例。此时,CR1不能收到省网A通过EBGP下发的默认路由,CR2通过省网EBGP学到的默认路由会以IBGP的形式更新给CR1,CR1会学到CR2的IBGP默认路由,根据IBGP的通告原则,CR1收到IBGP邻居学到的路由不会通告给其他的IBGP邻居即RR(BR2、BR3),则RR只会将CR2的IBGP默认路由反射给SR1。SR1上只有一条IBGP默认路由,下一跳为CR2,SR1通过OSPF路由表递归查询到下一跳为BR4,BR4通过OSPF迭代查找到下一条为CR2则流量通过L(SR1BR4CR2省网2)。
根据上述路由发布及流量引导过程,全网运行OSPF、出口运行BGP部署方式中产生的流量黑洞被完全避免了。
2.4解决回程流量不均衡出现瓶颈的问题
继续讨论2.3章节出现的流量瓶颈,出现流量瓶颈后,可在根据SR1上所接入用户地址进行流量调整。根据A Border Gateway Protocol 4 (BGP-4)”RFC1771关于LOCAL_PREF的选路定义[4],通过向CR1、CR2分别通告SR1下接入用户路由的LOCAL_PREF不同,可对回程流量进行调整。假设SR1下接入用户地址段为A的流量50%由省网A回程、50%由省网B回程,目的减小L(BR4SR1)链路的流量时,在BR1上通告地址段A给RR(BR3、BR4)的LOCAL_PREF设置为200。设置完成后,CR1、CR2的BGP路由表中网段A的路由条目各有两个:从SR1上学习到的LOCAL_PREF为100(默认值),从BR1上学习到的LOCAL_PREF为200。通过RFC规定,CR1、CR2将优选BR1作为到达目的网段A的下一跳。CR1将流量送至BR1,BR1通过OSPF迭代查找到下一跳地址为SR1,将流量送至SR1。CR2通过OSPF迭代查找下一跳BR1,通过两条链路L(CR2CR1BR1)和L(CR2BR4BR1)进行负载均衡,流量送至BR1后,BR1通过OSPF迭代查找,将流量送至SR1。流量使用L(CR2CR1BR1SR1)、L(CR2BR4BR1SR1)、L(CR1BR1SR1)两条链路,使得网段A的回程流量不经过L(BR4SR1),将可以减轻某些压力过大链路上的流量压力。
上述流量调整实例可看出,通过更改通告的LOCAL_PREF属性,即可对城域网内回程路由不均衡进行调整。
3展望
随着MPSL L3 VPN业务的日益发展,大量的用户VPN路由将依靠MP-BGP进行更新,因此部署BGP至城域网设备成为必然,虽然部署MP-BGP对于IPv4协议簇并未有影响即对于现网业务没有影响,但是随着IPv4路由迁移,将全网运行OSPF、出口运行BGP路由协议改造为全网运行OSPF BGP路由选择协议是一个对现网改造的过程,这会影响现网业务。所以此工程涉及面广,工作量大,影响范围远,需要进行详细的分析及考虑才可进行。
参考文献:
[1] J. Moy, OSPF Version 2, RFC2328, April 1998.
[2]施文辉.IP城域网优化方案研究与实施案例[M].北京:北京邮电大学,2008. 35-37.
[3] Liang Ben-lai1,Yang Zhong-ming2,DENG Jia-bin1, Load Balance Algorithm of Multiple Links Based on Traffic Schedule, Computer Engineering[J], 2011(9): 118-119.
[4] Y. Rekhter, T. Li.A Border Gateway Protocol 4 (BGP-4), RFC1771, March 1995.
关键词:城域网;OSPF;BGP;RFC
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)17-4105-05
目前城域网所广泛使用的内部网关路由选择协议为OSPF(Open Shortest Path First开放式最短路径优先),用来承载城域网内部的路由;使用外部网关路由选择协议为BGP(Border Gateway Protocol边界网关协议),用在与省网交互路由。正确部署OSPF与BGP至城域网后,可保证城域网的正常运行。下面将分别介绍两种OSPF BGP的部署方式。
1全网运行OSPF、出口运行BGP路由选择协议的部署方式
1.1路由发布方式及流量流程
建立城域网模型如图1所示,下图为典型城域网模型。省网A、省网B隶属省网,接入各地级城域网核心。
CR1、CR2为市城域网核心设备,为市级城域网出口。BR1、BR2、BR3、BR4为市城域网汇聚设备,汇聚业务控制层设备。SR1、Bras1、SR2、Bras2为市城域网业务控制设备。各设备之间链路以下简写为L(设备1设备2),如表示CR1至BR1的链路,则写为L(CR1BR1);表示流量通道也简写为L(设备1设备2设备3),如表示SR1-BR1-CR1的路径,则写为L(SR1BR1CR1)。
省网A、省网B,运行BGP协议,二者之间通过静态路由在环回地址上建立IBGP邻居关系,并通过静态路由在环回地址上分别与城域网核心CR1、CR2建立EBGP邻居关系。城域网核心CR1、CR2运行BGP、OSPF协议,CR1与CR2建立IBGP邻居关系、OSPF邻居关系,CR1分别与城域网汇聚BR1、BR2建立OSPF邻居关系,CR2分别与城域网汇聚BR3、BR4建立OSPF邻居关系。BR1、BR2、BR3、BR4运行OSPF协议,相互之间两两建立OSPF邻居关系。业务控制SR1、Bras1、SR2、Bras2运行OSPF协议分别与上联城域网汇聚BR建立OSPF邻居关系。
图1典型城域网构成拓扑
路由宣告时,省网A、省网B分别通过EBGP向CR1、CR2宣告省网内部路由及默认路由。CR1、CR2通过EBGP向省网A、省网B宣告所在城域网内路由。CR1、CR2分别通过OSPF向BR1、BR2、BR3、BR4强制下发默认路由。BR1、BR2、BR3、BR4分别通过OSPF向CR1、CR2宣告各自路由。BR1、BR2、BR3、BR4分别通过OSPF向所接SR、Bras下发城域网OSPF路由及默认路由。SR、Bras分别通过OSPF向BR宣告所带网段。
此时,城域网已经可以正常工作。以用户由SR1接入为例,说明流量出流向。流量出城域网方向,SR1的路由表内会有两条默认路由通往BR1、BR4,此时流量流入BR1、BR4。通过OSPF的负载分担算法,L(SR1BR1)和L(SR1BR4)流量各占50%。BR1、BR4检查路由表,其默认路由是由CR1、CR2强制下发,流量会分别传递给CR1、CR2。CR1、CR2的默认路由是由省网A、省网B通过EB? GP下发,流量最终会通过链路L(CR1省网A)、L(CR2省网B)至省网,并各自分担50%流量。由于目的地址不确定性导致回程流量的不确定性,可能从省网A回程、或从省网B回程,或为负载分担省网A、省网B两个方向均有流量。现分开考虑,如从省网A回程,省网A将会将流量发送至CR1,CR1通过OSPF学习到路由将流量发送至BR1,同理BR1发送流量至SR1;从省网B回程,省网B将流量送至CR2,CR2将流量发送至BR4,BR4发送流量至SR1。
以上说明了全网运行OSPF、出口运行BGP路由选择协议的部署情况,及正常情况下流量的出入城域网是如何进行的。正常情况下,此部署方式无任何问题,即可满足城域网流量需要,又保证了链路冗余备份。但深入分析后,会发现此种部署方式有一定弊端。
1.2 OSPF的30分钟刷新LSA的特性过多消耗网络资源
根据“OSPF Version 2”,RFC2328[1]的规定,为确保数据库的准确性,OSPF每隔30分钟对路由器始发的每条LSA记录扩散(刷新)一次,并将它的序号增加1,老化时间设置为0。这种间隔被称为LSA的刷新时间(LSA Refresh Time)。其他的OSPF路由器一旦收到这个新的拷贝,就会用这个新的拷贝替换该条LSA通告原来的拷贝,并使这个新的拷贝的老化时间开始增加。根据这个原则,无论网络拓扑是否改变,LSA的生存期30分钟必须被重新扩散一次,此特性在保证域内OSPF数据库一致的情况下也消耗了过多的网络资源[2]。
1.3单上行链路、出口互联链路故障时产生流量黑洞
1.3.1当CR1、CR2配置为OSPF强制下发默认路由情况
当L(省网ACR1)和L(CR1CR2)同时出现故障时,以用户在SR1上接入访问省外目的的出流量为例。此时,由于配置CR1为强制下发默认路由,CR1上行中断后仍旧下发默认路由给BR1,CR2也下发默认路由给BR4。BR1、BR4将转发默认路由给SR1,SR1根据默认路由引导流量送入BR1、BR4。流量给BR4后可以正常通过CR2转发至省网B。但是流量由SR1送给BR1后将出现问题。BR1会根据收到的CR1强制下发的默认路由,将流量送给CR1,正常情况下流量应由CR1上送给省网A,但由于链路中断CR1上没有省网A下发给其的BGP的默认路由。此时,CR1会检查路由表,CR1发现:由于CR1与CR2建立着IBGP邻居关系,而IBGP邻居关系可通过OSPF协议保持建立状态,所以CR2收到的EBGP默认路由会以IBGP默认路由的方式转发给CR1。CR1通过此条IBGP的默认路由,将流量转发给CR2。但由于CR1、CR2之间链路也为故障状态,流量不能送达。则CR1将根据IGP也就是OSPF的算法,将流量送给BR1。流量到达BR1后还会以默认路由将流量送回给CR1,此时产生了流量的黑洞,当流量的TTL=1时,流量将被丢弃。SR1始发的出流量将只有50%正常,另50%将被丢弃。此过程如图2所示。 图2流量黑洞产生原理图
以上故障情况在OSPF默认路由配置为非强制下发模式下仍旧出现,下面继续讨论上述故障发生在CR1、CR2配置为OSPF默认路由非强制下发模式。
1.3.2当CR1、CR2配置为OSPF非强制下发默认路由情况
故障发生后,CR1上行中断,将收不到省网A发送的EBGP默认路由,此时按照配置预期,CR1应该不再下发OSPF的默认路由,即可避免流量黑洞的产生。但是CR1虽然收不到EBGP邻居发送的默认路由,而与CR2的IBGP邻居关系仍旧存在,CR1上仍旧收到由CR2转发过来的IBGP默认路由。CR1是否可以根据IBGP的默认路由来下发OSPF的默认路由成为关键,然而RFC2328上并未规定OSPF下发默认路由的触发条件。可分两种情况考虑:
当只有EBGP默认路由为OSPF默认路由下发的条件而IBGP默认路由不能作为OSPF默认路由下发的条件时,CR1不会下发OSPF默认路由,此时SR1上只收到一条默认路由,由CR2产生并由BR4转发至SR1,此时SR1流量将通过L(SR1BR4CR2省网B),没有流量黑洞的产生。此过程如图3所示。
图3 EBGP默认路由为OSPF默认路由下发条件
当EBGP默认路由、IBGP默认路由都可作为OSPF默认路由下发条件时,CR1仍然会下发默认路由,流量黑洞产生方式与强制下发情况一样。
图4 EBGP默认路由、IBGP默认路由都可作为OSPF默认路由下发条件
由于RFC没有硬性规定,此特性则和路由器生产厂家对于RFC2328的理解有必然关系。经过对全球最大路由器生产厂家Cisco公司此方面内容的查看,发现Cisco公司研发的Cisco网络互联操作系统( Internetwork Operating System, IOS)中IBGP默认路由是可以触发配置为非强制下发的OSPF路由选择协议下发OSPF默认路由的。通过表1可看出两种OSPF默认路由下发规则在单上行链路、出口互联链路故障时均有出现流量黑洞的隐患。
表1 OSPF默认路由下发的对比情况
1.4回程流量不均衡出现瓶颈
城域网中由于访问目的地的不确定性导致了回程流量的不均衡性。出城域网流量由核心下发的默认路由引导,所以出流量在双出口处为负载分担流出。但回程流量则没有这个属性,鉴于此类问题,在网络设计初期需要考虑到,但由于不均衡性总是在发生着偏移[3],所以省网也会针对不同时期,对城域网的回程流量做一些调整。但省网的调整,相对于城域网内设备来说,颗粒度太大,一般以GB为单位进行流量调整。而城域网并无有效的流量调整方式,如下面一种情况:
城域网中针对SR1下接入用户的流量30%由L(省网ACR1)流入,70%由L(省网BCR2)流入。CR1、CR2根据OSPF路由表,将流量分别送给BR1、BR4。以至L(BR1SR1)流量为30%,L(BR4SR1)的流量为70%。假定SR1下接入用户峰值,两省中继总流量为4Gbits/s,为保证链路的资源合理利用,L(SR1BR1)设计容量为2GB,L(SR1BR4)设计容量为4GB。当流量按照30%、70%流入时,L(SR1BR1)峰值流量为1.2Gbits/s,L(SR1BR4)峰值流量为2.8Gbits/s,均在每条链路的合理利用率之内。但如果此时流量方向发生偏移,两出口入流量均分,即50%由L(省网ACR1)流入,50%由L(省网BCR2)流入时,L(SR1BR1)、L(SR1BR4)峰值流量将均为2Gbits/s,L(SR1BR1)峰值流量将达到100%。此过程如图5所示。
图5回程流量不均衡出现瓶颈
上述三种问题:OSPF的30分钟刷新LSA的特性过多消耗网络资源、核心层故障后产生流量黑洞、回程流量不均衡出现瓶颈。在全网运行OSPF、出口运行BGP部署方案中,并未有较好的解决方法。
2全网部署OSPF BGP路由选择协议
针对上述全网运行OSPF、出口运行BGP部署方式出现的问题,使用全网部署OSPF BGP路由选择协议可以很好的解决这三种问题。
2.1路由发布方式及流量流程
在图一的典型城域网模型中,OSPF只用来承载城域网内设备的互联地址及环回地址,保证各个城域网设备的连通性,而不用其进行承载城域网内用户路由。所有城域网内设备启用BGP路由选择协议,BR3、BR4配置为RR,BR3、BR4建立IBGP邻居关系,CR1、CR2、BR1、BR4、SR1、SR2、Bras1、Bras2均通过环回地址分别与RR(BR3、BR4)的环回地址建立IBGP邻居关系并作为路由器反射客户端,CR1、CR2通过环回地址建立IBGP邻居关系。IBGP用于承载用户路由。部署完毕后,此模型可正常进行城域网流量的转发。
以SR1接入用户访问省外网络的出入流量为例,CR1、CR2分别通过EBGP收到省网A、省网B下发的默认路由,CR1、CR2以IBGP转发默认路由给RR(BR2、BR3),由RR将默认路由反射给SR1。此时SR1收到两条IBGP的默认路由,下一跳分别为CR1、CR2。SR1通过OSPF协议递归查找到两个CR1、CR2,将数据负载分担分别送至BR1、BR4。BR1、BR4通过RR也会收到CR1、CR2的IBGP默认路由,并通过OSPF迭代各自的下一跳,将流量送至CR1、CR2,后再由CR1、CR2分别送至省网A、省网B。SR1将自己承载的用户路由以IBGP方式通告给RR,再由RR反射给CR1、CR2,CR1、CR2以EBGP方式通告给省网A、省网B。回程流量则分别使用L(省网ACR1BR1SR1)、L(省网BCR2BR4SR1)两条链路回程。
以上例子,说明了全网部署BGP的路由通告过程及流量引导方式。下面则针对全网运行OSPF、出口运行BGP部署方式下不能解决的三个问题进行论述。 2.2解决OSPF的30分钟刷新LSA的特性过多消耗网络资源的问题
全网部署OSPF BGP路由选择协议,使用IBGP来承载用户路由,而OSPF只进行城域网中设备连通性的保证。则不会有大量的OSPF的LSA产生。根据RFC1771[4],BGP采用增量的路由更新,即只有网络拓扑变更或通告属性发生变化时才会产生路由更新。所以,使用全网部署OSPF BGP路由选择协议时,OSPF只有少量的互联、设备环回地址的LSA,不会因为30分钟的刷新LSA过多消耗网络资源。
2.3解决单上行链路、出口互联链路故障时产生流量黑洞的问题
当L(省网ACR1)和L(CR1CR2)同时出现故障时,以用户在SR1上接入访问省外目的的出流量为例。此时,CR1不能收到省网A通过EBGP下发的默认路由,CR2通过省网EBGP学到的默认路由会以IBGP的形式更新给CR1,CR1会学到CR2的IBGP默认路由,根据IBGP的通告原则,CR1收到IBGP邻居学到的路由不会通告给其他的IBGP邻居即RR(BR2、BR3),则RR只会将CR2的IBGP默认路由反射给SR1。SR1上只有一条IBGP默认路由,下一跳为CR2,SR1通过OSPF路由表递归查询到下一跳为BR4,BR4通过OSPF迭代查找到下一条为CR2则流量通过L(SR1BR4CR2省网2)。
根据上述路由发布及流量引导过程,全网运行OSPF、出口运行BGP部署方式中产生的流量黑洞被完全避免了。
2.4解决回程流量不均衡出现瓶颈的问题
继续讨论2.3章节出现的流量瓶颈,出现流量瓶颈后,可在根据SR1上所接入用户地址进行流量调整。根据A Border Gateway Protocol 4 (BGP-4)”RFC1771关于LOCAL_PREF的选路定义[4],通过向CR1、CR2分别通告SR1下接入用户路由的LOCAL_PREF不同,可对回程流量进行调整。假设SR1下接入用户地址段为A的流量50%由省网A回程、50%由省网B回程,目的减小L(BR4SR1)链路的流量时,在BR1上通告地址段A给RR(BR3、BR4)的LOCAL_PREF设置为200。设置完成后,CR1、CR2的BGP路由表中网段A的路由条目各有两个:从SR1上学习到的LOCAL_PREF为100(默认值),从BR1上学习到的LOCAL_PREF为200。通过RFC规定,CR1、CR2将优选BR1作为到达目的网段A的下一跳。CR1将流量送至BR1,BR1通过OSPF迭代查找到下一跳地址为SR1,将流量送至SR1。CR2通过OSPF迭代查找下一跳BR1,通过两条链路L(CR2CR1BR1)和L(CR2BR4BR1)进行负载均衡,流量送至BR1后,BR1通过OSPF迭代查找,将流量送至SR1。流量使用L(CR2CR1BR1SR1)、L(CR2BR4BR1SR1)、L(CR1BR1SR1)两条链路,使得网段A的回程流量不经过L(BR4SR1),将可以减轻某些压力过大链路上的流量压力。
上述流量调整实例可看出,通过更改通告的LOCAL_PREF属性,即可对城域网内回程路由不均衡进行调整。
3展望
随着MPSL L3 VPN业务的日益发展,大量的用户VPN路由将依靠MP-BGP进行更新,因此部署BGP至城域网设备成为必然,虽然部署MP-BGP对于IPv4协议簇并未有影响即对于现网业务没有影响,但是随着IPv4路由迁移,将全网运行OSPF、出口运行BGP路由协议改造为全网运行OSPF BGP路由选择协议是一个对现网改造的过程,这会影响现网业务。所以此工程涉及面广,工作量大,影响范围远,需要进行详细的分析及考虑才可进行。
参考文献:
[1] J. Moy, OSPF Version 2, RFC2328, April 1998.
[2]施文辉.IP城域网优化方案研究与实施案例[M].北京:北京邮电大学,2008. 35-37.
[3] Liang Ben-lai1,Yang Zhong-ming2,DENG Jia-bin1, Load Balance Algorithm of Multiple Links Based on Traffic Schedule, Computer Engineering[J], 2011(9): 118-119.
[4] Y. Rekhter, T. Li.A Border Gateway Protocol 4 (BGP-4), RFC1771, March 1995.