扩展宽带Mega POP 下一代L2TP服务(LNS/隧道交换机)
思科服务器负载均衡(SLB)架构
简介
本文的目的是为扩展L2TP LNS和TS服务提供一个可扩展的、经过验证的架构。思科服务器负载均衡(SLB)技术能将LNS/TS POP扩展到OC-12/STM-4/10GE 和2000k用户密度以上。这种新的架构可以用一种"按发展程度付费"的方式和完全基于网络的冗余,为电信级部署提供简便的治理。这种简便的治理是通过消除L2TP终端组件对于物理接口的依靠性而获得的。L2TP被封装在UDP中,因而可以作为"IP"流量进行处理。就像针对某个特定WWW网页、基于Web的流量可以在多个服务器上进行负载均衡一样,L2TP隧道也可以在多个网络组件上进行负载均衡。
思科服务器负载均衡架构的主要特性
每个7英尺的电信机架可以扩展到20万个以上的L2TP隧道为了讨论方便,我们将"Mega POP"定义为一个用于隧道汇聚(隧道交换机)或者隧道端接(PPPL2TP)的L2TP LNS中心。图1显示了一种高等级的宽带接入 技术,包括了从用户接入到端接的整个过程。我们所讨论的 Mega POP包括L2TP 网络服务器/隧道交换机(LNS/TS)。它是一个汇聚点,用户密度可能高达10-200K,接口可能超过OC-12/STM-4。对于这个解决方案,它可以交换 Cisco 7600数据。
图 1
Mega POP--单一设备解决方案还是多设备架构?
多种服务"合而为一"的想法看起来非常具有吸引力。电信运营商可以得到一个功能丰富的设备,具有很高的吞吐率和更高的接口密度,所有问题就可以迎刃而解。用户可以利用它汇聚很多用户,提供多种服务,并从一个控制点对其进行治理。但是,只要我们稍做分析,就可以发现,这种解决方案的大部分假想的优点都是站不住脚的。事实上,即使是一个精心设计的单一设备POP,要想在提供多种服务的同时扩展规模也会碰到很多问题。例如,目前在市场上密度最高的解决方案中,每个设备的最高限值是32K个用户,而且没有任何负载均衡和故障转移机制。假如输入的L2TP流量直接在某个单一设备上端接,流量无法在使用率较低和较高的网络资源之间进行负载均衡。这种"传统的"方式并不能将需求与可用的资源对应起来。
定义Mega PoP
图 2
如上图所示,Mega Pop由三个不同的部分组成:
输入汇聚-- 汇聚BB用户,每个设备对L2TP进行端接或者隧道交换
PoP内部汇聚-- 通过连接到输入汇聚点的以太网交换机,以一种"低成本的方式"互联输入流量。
输出汇聚--输出汇聚点,它可以在连接到核心或者某个ISP时汇总路由升级信息
传统的LNS/TS节点从一个最多能够端接32K个用户的单一设备开始。第一个LNS/TS路由器随后通过上行链路(通常是OC3/STM-1)连接到电信运营商核心,或者直接连接到某个ISP。随着需要端接的用户越来越多,电信运营商需要添加更多的汇聚路由器,并需要添加一个以太网交换机,以汇聚输入流量。这些流量随后被送入某个输出汇聚路由器,由该路由器汇总路由信息,将流量以多路复用的方式发送到核心。LNS/TS路由器与核心的单一对等关系会提高核心开支,并且当用户进入和离开网络时在核心中产生额外的路由升级信息。输出汇聚路由器可以从核心接收这些额外的路由升级信息。
可扩展的多设备POP
图 3
下一代架构
下一代架构与传统架构的区别在于,它将物理的"第二层"服务与第三层到第七层服务脱离。隧道被接入Cisco 7600,并在Cisco 7200、Cisco 7400或者Cisco 10000系列路由器之间进行负载均衡。这种架构可以为来自于LAC的输入流量和用于进程端接和隧道转发的分布式处理而整合一个通用的输入和输出点。图3概括地显示了我们所讨论的内容。
Cisco 7600 路由器在这个新架构中扮演三个角色:
#1) Cisco 7600 被用作L2TIP隧道的第二层端接点,具有多种不同的接口--从DS0到10GE接口。所支持的接口协议包括ATM、POS、DPT和以太网。
#2) 具有256Gig交换机矩阵的Cisco 7600 被用作汇聚来自或者发往LNS/TS路由器的用户流量的交换平台。
#3) 具有30Mpps转发性能的Cisco 7600 也被用作一个核心后端ISP IP或者MPLS VPN网络的一个功能强大的对等路由器。
图 4
优势
独一无二的容错性针对容错性而设计意味着没有单点故障,具有很高的可用性。这种架构能够部署在Cisco 7600上,提供全状态的主动冗余SLB功能。多个汇聚路由器为服务提供冗余。堆叠的路由器可以提供一个较小的故障隔离域。假如堆叠中的某个路由器发生故障,只有堆叠中的进程会中断,而且可以均衡到其他路由器。
运营效率用户可以在不影响物理第二层端接电路的情况下,添加或者移除每个LNS/TS汇聚路由器。电信运营商能在流量模式发生变化时,添加L2TP端接路由器,并且不影响他们的面向用户的接口。
服务器负载均衡
提供SLB功能Cisco 7600可以被设置为一个具有一个虚拟服务器IP地址的SLB虚拟服务器。虚拟服务器IP是输入的L2TP隧道的实际目的地。虚拟服务器与某个配置了"实际"服务器的服务器群相关联。SLB使用一种名为"猜测器"的、配置在服务器群中的负载均衡预算算法。此外,还有一种名为"探测器"的运行状况监控功能,它可以通过不同的方式,按照预先定义的间隔监控实际的服务器,它配置在SLB实际服务器中。
用户能通过多种方法在Cisco 7600上配置IP SLB。我们下面讨论的一种方法是利用内容交换模块(CSM)硬件加速器执行IP SBL功能,因为它可以提供独特的性能优势。这种方法需要在Cisco 7600 MSFC和CSM之间设置一个VLAN。MSFC可以为在客户端和实际服务器之间执行NAT的CSM提供一个网关路由器。图5显示的是客户端和服务器通过一台在CSM上使用IP SLB的Cisco 7600建立连接。
图 5
设计时需要考虑的因素
在部署这种架构时,需要考虑很多问题。问题之一是SLB和汇聚路由器之间采用了NAT技术。在上面的例子中,Cisco 7600将按照汇聚服务器对输入的隧道进行NAT。这意味着尽管隧道拥有一个目的地"x"(虚拟服务器),它们仍然会按照它们所要负载均衡的汇聚服务器进行NAT。实际的上游用户分组流量将通过CSM,从LAC进入,在这里系统将会根据SLB,为其设置一个新的NAT服务器地址,也就是汇聚路由器的地址。问题发生在向用户发送下行流量时。流量分组并不会再次穿越CSM,因而不会被NAT。在LAC收到的分组将具有一个不同于它的上游目的地的源地址。这可能会在某些L2TP部署中导致故障。
这个问题可以通过创建一个对称的或者双向的NAT来解决,这样下游分组就可以恢复虚拟服务器IP地址。基于策略的路由可用于完成这项任务。在汇聚路由器所连接的VLAN上需要执行一项输入策略。这项策略将下一跳地址设置为MSFC的地址和虚拟服务器的VLAN。这将使得下游分组顺利通过CSM,并将源地址设置为虚拟服务器的地址。
使用对称NAT将导致所有下游流量都经过CSM传输,因而会将系统的最高带宽降低到CSM的极限带宽。用户应当考虑到这一点,并将其与使用对称NAT的必要性进行权衡。假设CSM的总带宽是4Gbps,而宽带的平均不对称比例为6:1,那么我们将损失大约3.3Gbps的带宽。
针对容错性进行设计
这种架构的真正优势在于它能够针对容错性进行设计。用户可以用很多输入和输出接口来代替一个大型LNS设备。在同类解决方案中,很少(甚或没有一个)解决方案能在发生中断时保持正常运行。假如某个设备发生故障,相关的所有接口和用户都将随之中断。假如处理器运行不稳定,所有服务都会受到影响。接口冗余意味着接口密度的降低。
与单一设备解决方案相比,本文所提出的多设备架构向前迈进了一大步。因为很多汇聚路由器共同分担负载,假如某个路由器发生故障,新输入的进程可以被均衡到其他的路由器上。由于冗余的Cisco 7600可以为汇聚路由器提供全状态SLB冗余和冗余连接,所以可以进一步提高容错性,如图6所示。
图 6
CSM在容错性方面,使用了一种类似于HSRP的功能。Cisco 7600之间的一种端口汇聚模式以太网通道可以提供对冗余CSM的访问,并为所有流量提供了通用的冗余路径。
每个汇聚服务器可以连接到两个Cisco 7600。利用NAT,CSM使每个汇聚服务器都可以拥有一个独特的回环IP地址,即CSM中定义的"实际服务器"地址。L3路由可以将冗余连接转发到相应的汇聚服务器回环地址。
该系统采用了非凡的设计,能提供活动/待命CSM冗余。活动/待命CSM冗余需要在每个Cisco 7600中设置一个CSM。当Cisco 7600-2上的CSM-2处于待命状态时,Cisco 7600-1上预先设置的CSM-1处于活动状态。尽管CSM-2处于待命状态,Cisco 7600-2仍然可以转发其他流量。每个 Cisco 7600都可以连接到核心,建立进出POP的多条路径。
利用这种架构,在发生中断或者某个汇聚路由器运行失常时,POP中的所有组件都可以获得保护。
为核心提供了有效的冗余输入和输出连接。SLB CSM 配置
ip slb mode csm → 在CSM上启动SLB
ip slb vlan 20 client → 将CSM与MSFC关联
ip address 1.1.1.2 255.255.255.0 → CSM IP 地址
gateway 1.1.1.1 → MSFC GW 地址
!
ip slb probe PING icmp → 服务器运行状况监视器
interval 2
retries 10
failed 3
!
ip slb serverfarm LNS → 服务器群<名称>
nat server → 用于虚拟服务器IP的NAT服务器
no nat client
predictor leastconns → 用于负载均衡的预告器,以最少的连接在服务器上建立新隧道
real 10.10.10.2 → 实际服务器
weight 1 → 设置服务器权重
inservice
real 10.10.10.3 → 实际服务器
weight 1
inservice
probe PING → 调用运行状况监视器 <PING>
!
ip slb vserver V-LNS → 虚拟服务器<名称>
virtual 1.1.1.3 udp 1701 → 虚拟服务器IP,均衡UDP 端口1707 (L2TP dest)
serverfarm LNS
idle 10
persistent rebalance
inservice
<snip>
!
interface Vlan10
ip address 10.10.10.1 255.255.255.0
!
interface Vlan20
ip address 1.1.1.1 255.255.255.0
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05