网络通信 频道

分布式数据中心三层网络互联方案

  【IT168厂商动态】实现分布式数据中心部署需要通过三种网络互联:数据中心间存储网络互联、数据中心服务器接入层二层网络互联、数据中心间三层网络互联。本文就“三层网络互联”详述传统互联方案及其相关优化方案的不同特点。

  一、 传统方案 —— 单侧网关

  单业务的传统部署模式为单侧网关模式,单业务流只从一个数据中心进出(单进单出),对另一个数据中心的前端网络利用不高,且可能在数据中心互联链路上存在较大流量。单侧网关方案适用于业务流量不大、便于区分、业务连续性要求不高的场景。

  1. 方案说明

分布式数据中心三层网络互联方案
  图1. 单侧网关的部署方案

  对于同一个网段内的虚机流量来说,只会选择一个数据中心的设备作为网关进行流量转发。即使该网段内某虚机从一个数据中心动态迁移到另一个数据中心,流量也只从单一数据中心进出;但对于不同网段的虚机流量,可以通过设定不同数据中心的不同网关,从而将流量分担到不同的数据中心。

  唯一网关部署

    针对单侧网关部署方案,也可以采用仅仅在一个数据中心部署唯一的网关方案,如图2左侧拓扑,这种方案会导致正常情况下大量的流量通过互联链路,造成不必要的带宽占用,并且一旦原数据中心的网关设备出现故障后,只能通过手工增加配置的方式切换到灾备的数据中心,切换方式非常不灵活,所以不建议采用这种部署方式。

   VRRP部署

  推荐的方式是在两个数据中心之间部署VRRP协议,如图2右侧拓扑,在主用的数据中心VRRP优先级调整较高,正常情况下通过主数据中心的网关设备转发流量,而故障之后可以迅速的切换到灾备中心的网关设备,实现自动切换。但是会有较多的VRRP报文通过互联链路转发,可能会受到互联链路的质量限制,存在VRRP异常切换的风险。

分布式数据中心三层网络互联方案
  图2. 唯一网关部署 VS VRRP方案部署

  对于访问数据中心的用户,要访问服务器的资源,必须保证流量的来回路径一致,所以就需要将网关侧发布的路由作为优选路由。简单来说,可以通过拆分网段的方式,确保较长掩码长度的路由被优选。路由部署的方式如图3所示:

分布式数据中心三层网络互联方案
  图3. 单网关的路由发布与选择

  在正常情况下,数据中心2内的虚机发出的流量必须经由数据中心之间的互联链路至数据中心1的网关设备进行转发,这会导致二层转发时的次优路径问题。实际组网中基于光纤互联时,造成的延时非常小,这种次优路径问题对业务基本没有影响,维护技术与传统的数据中心管理技术没有差别。

  在设计路由的同时,也必须考虑防火墙的部署方式。两个数据中心共部署4台防火墙,而且4台防火墙要做到“全部Active”,基本不可行;如果每个数据中心只部署1台防火墙,跨中心做双Active,但是在切换的时候会导致网关和防火墙的同时切换和状态重新同步,维护和切换非常麻烦,所以不建议将网关部署在防火墙上,而应部署在交换机上,通过策略路由的方式引导流量经过防火墙。这种方式的优点有:

  汇聚交换机与核心路由器之间运行OSPF,三层联通性好。

  网关在汇聚交换机上,防火墙无需处理过多的主机ARP请求。

   控制灵活,服务器之间的互访是否需要过防火墙,都可以通过策略控制。

  2. 流量路径切换

  当网关设备出现故障时,流量路径如图4左侧拓扑所示。通过VRRP协议的检测,不同业务的网关均切换至数据中心2。对于分支机构或者外部用户,仅仅可以学习到一条聚合路由,因此流量也会切换至数据中心2。另一种情况,当虚机从数据中心1迁移至数据中心2时,流量路径如图4右侧拓扑所示。由于网关仍然在数据中心1,因此流量经过数据中心1的网关完成转发,存在次优路由的代价。

分布式数据中心三层网络互联方案
  图4. 网关设备故障时的灾备切换

  3. 方案小结

  单侧网关方案的特点:

  Ingress(客户机——服务器)访问路径:将到同一地址的路由采用不同的优先级或者拆分成不同掩码长度的网段,分别从两个数据中心向外发布。控制路由的各种属性使得网关侧发布的路由被优选。

  Egress (服务器——客户机)访问路径:通过VRRP协议,使得某些业务优选一个数据中心的网关进行转发。

  方案的优点:

  流量路径明确、配置管理简单。

  安全性强,FW基于状态监测报文。

  缺点主要为:

  基于业务网段的不同来区分,粒度较大。

  当互联链路存在链路质量问题时,次优路径影响会较为明显。

  二、 优化方案1 —— RHI + 网关分离

  网关分离方案适用于业务流量较大、IP规划复杂、业务连续性要求较高的场景。采用“RHI(路由健康注入)+网关分离”的方案,对于单业务来说网关同时部署在两个数据中心,业务流在不同情况下可分别从两个数据中心进出(双进双出),避免了传统方案中存在的前端网络利用不高和互联链路流量的问题。

  1. 方案说明

分布式数据中心三层网络互联方案
  图5. RHI+网关分离方案

  如图5所示,两个数据中心同时部署同一个网段的网关,网关IP地址相同,虚机就近选择本数据中心的网关进行三层流量转发。实现网关分离有两种方式:

  一种方式是手工配置。可以在汇聚交换机中,配置VRRP协议以交换机的实MAC地址方式回应服务器对网关地址的ARP请求(单播的ARP应答报文),并且在DCI设备的对应端口上丢弃VRRP的Hello报文和对端交换机以实MAC发来的ARP应答报文。

  另外一种方式是在DCI设备上采用一些特性来实现对于报文的隔离,如H3C的EVI或者Cisco的OTV技术。当互联的各个数据中心站点网络拥有本地的三层网关时,为了保证流量从本地网关进行三层转发,可以配置EVI-ISIS进行MAC路由策略过滤,不允许发布网关的虚拟MAC地址到其他站点。而且边缘设备要过滤丢弃从其他站点收到的异地网关发送的免费ARP。这种情况下,边缘设备对未知组播报文不会泛洪到其他站点,包括VRRP协议报文。当需要在站点间部署单侧网关方案时,可以在配置VRRP协议MAC为选择性泛洪MAC,从而允许站点之间交互VRRP协议报文。

  “RHI(路由健康注入)+网关分离”方案的另一个关键点是通过RHI(路由健康注入)技术检测虚机的存活状态,并发布虚机对应的主机路由。如图6所示,两个数据中心的SLB设备同时探测同一虚机的IP地址。如果数据中心1的SLB设备探测虚机工作正常,则将虚机的主机路由注入数据中心的IGP协议中,使得客户机访问虚机时可以正确的选择数据中心节点。与此同时,数据中心2的设备检测服务器失败,不会注入路由。这种方案会导致大量的主机路由发布在网络中,一方面对SLB设备压力非常大,需要探测大量的主机存活状态并发布主机路由,往往也会成为整网的故障点,另一方面会导致整个网络的路由条目非常多,不仅占用CPU资源,也会影响整网路由的稳定性,因此建议仅仅对于虚机数量较少的情况或者运行关键业务系统的虚机采用这种部署方式。

分布式数据中心三层网络互联方案
  图6. RHI+网关分离方案的路由发布与选择

  另外,在这种部署的情况下,由于正常情况的流量都是选择本地的网关设备进行转发,因此两个数据中心的防火墙之间不需要进行状态同步。这也就造成了数据中心级别的切换,可能会导致较长时间的防火墙切换,导致业务中断,甚至部分业务切换失败。这个问题的折衷方案就是在防火墙禁用基于状态的会话检测,但是这也会带来一定的安全隐患,导致安全级别显著降低。

  2. 流量路径切换

  如图7所示,当网关设备或者虚机出现故障后,业务都会发生迁移,由数据中心1迁移至数据中心2。此时,数据中心1的路由检测设备发现服务器失败,不会发布主机路由。数据中心2的路由检测设备开始能够正常检测到服务器,通过数据中心2发布对应的主机路由,使得访问该业务的流量也随之切换至数据中心2。在这个过程中,完全由路由检测设备控制路由的发布和撤销,不需要人工干预,完成单业务切换的灵活智能。

分布式数据中心三层网络互联方案
  图7. 流量路径切换

  3. 方案小结

  “RHI+网关分离”方案的特点为:

  Ingress(客户机——服务器)访问路径:各中心同时发布服务器网段的等价路由。各中心依据主机/虚拟机的存活状态,向外发布主机路由,由此牵引流量选择对应的数据中心节点。

  Egress (服务器——客户机)访问路径:服务器网关指向本地汇聚交换机。流量选择本地汇聚交换机进行转发。

  方案的优点:

  网关分离,无需跨中心运行VRRP协议,网络故障域只限定在单侧数据中心,有效的隔离了故障域。

  通过主机路由注入,解决了“次优路径”问题,降低了数据中心之间的互联链路的带宽占用。

   可以根据某些业务或者IP地址进行流量的分担,控制更加灵活便利。

  缺点主要为:

  防火墙建议禁用状态监测,降低了安全性。

  路由检测设备成为网络的关键节点,影响业务的可靠性和可维护性。

  有些用户由于安全监管的要求,不允许增加检测设备,或者不允许发布主机路由,导致方案无法部署。

  引入大量主机路由,会对整网路由的稳定性和自愈时间造成冲击,将会影响网络维护效率。

  三、 优化方案 2—— 动态DNS + 网关分离

  “动态DNS+网关分离”的方案的适用场景与“RHI+网关分离”方案类似,不同的是它要求数据中心侧配置有DNS设备,通过动态DNS可以实现访问流量的智能分发调配,无需增加广域网开销。该方案有两个关键技术,一是“网关分离”,在本文前一章节有详细说明,此处不再赘述。另一关键技术是“动态DNS解析技术”,同一个虚机在不同数据中心通过NAT(由SLB设备实现)呈现不同的服务IP地址。GSLB作为DNS服务器,虚机的迁移事件可触发vCenter上的可执行脚本,远程修改GSLB上虚机对应的DNS记录,由此实现新上线用户的三层路径优化。

  1. 方案说明

  如图8所示,数据中心1、数据中心2的服务器采用了VMware虚拟化技术,vCenter部署在数据中心1,网络汇聚层实现二层互联,两个数据中心同时部署同一个网段的网关,网关IP地址相同,虚机就近选择本数据中心的网关进行三层流量转发;汇聚层设备上旁挂主备方式部署的SLB设备,汇聚于核心路由器间部署主备方式的防火墙;广域网中部署了基于DNS技术的GSLB设备,客户机端通过域名方式访问数据中心的业务系统。当管理员通过数据中心1中的vCenter将业务系统app.h3c.com对应的虚拟机从数据中心1迁移至数据中心2时,当前已在线用户的访问流量不中断(可以存在三层方案次优路径),而新上线访问app.h3c.com的用户选择三层最优路径访问位于数据中心2的虚机。

分布式数据中心三层网络互联方案
  图8. 动态DNS+网关分离方案

  2. 流量路径切换

  如图8所示,当app.h3c.com对应的虚拟机运行在数据中心1时的流量如下:

  步骤1:某用户A希望访问app.h3c.com,其客户机向本地部署的DNS服务器发起查询请求,通过迭代查询,最终由作为权威DNS服务器的GSLB返回查询结果:app.h3c.com对应的IP地址是数据中心1中的SLB1上配置的VIP_1。

  步骤2:用户A发起的流量经过核心广域网的转发来到数据中心1的SLB主设备上。

  步骤3:SLB1设备对用户A的流量做NAT(地址转换),报文的源IP被改为SLB1的接口地址IP-1地址,目的地址被改为虚机的真实地址VM-IP。

  步骤4:虚机到用户A的回程报文的源IP是VM-IP,目的IP是SLB的接口地址IP-1。由于虚拟机的网关指向汇聚交换机,从虚拟机到用户A的回程流量经汇聚交换机转发到主SLB1上。

  步骤5:SLB1查会话表,将该IP报文的源地址改为VIP-1,将目的地址改为用户A的实际IP,最后该IP报文经核心广域网转发到用户A。

  如图9所示,某时刻,数据中心1的管理员在将app.h3c.com对应的虚拟机通过vCenter迁移至数据中心2,此时有两个制约因素要求用户A访问虚拟机的流量仍然将数据中心1作为访问流量的入口:

分布式数据中心三层网络互联方案
  图9. 虚机迁移后,已上线用户的流量

  由于用户A的终端设备(PC)具有本地DNS缓存,在DNS缓存超时之前,用户A的终端仍然将app.h3c.com解析成VIP-1。

  由于从用户A的终端设备到提供app.h3c.com业务的虚机的访问路径上存在防火墙,且防火墙通常采用基于TCP/UDP状态的会话检查机制,所以对于已经上线的用户A(防火墙上已建立用户A到虚机的会话表项),必须保证虚机迁移后,从用户A到虚机的访问路径仍然保持原有路径(经过原来的防火墙)。

  上述限制条件意味着从用户A访问app.h3c.com的数据流在步骤2和步骤3会发生如下变化:

  步骤2:SLB1上经过NAT处理后的报文被转发至数据中心1的汇聚交换机(有VM-1对应的直连网段路由),该汇聚交换机查ARP表后,将报文发往与数据中心2的汇聚交换机相连的端口。数据中心2的汇聚交换机查MAC表,完成最终转发。

  步骤3:由于数据中心1的汇聚设备与数据中心2的汇聚设备采用了网关分离部署方式,所以虚机到用户A的回程报文首先发向数据中心2的本地网关(数据中心2的汇聚交换机)。数据中心2汇聚交换机与数据中心1汇聚交换机互联的三层接口上已经学到SLB1接口地址IP-1对应的路由,所以回程报文经数据中心1汇聚交换机转发后回到SLB1。

  这种次优路径流量不会一直存在,当用户A结束对app.h3c.com的所有访问流量后一段时间,本地DNS缓存超时清空,用户A如果再次发起的TCP/UDP会话,则数据流将按照后文所述用户B的方式转发。图10是数据中心1的服务器管理员通过vCenter将app.h3c.com对应的虚拟机迁往数据中心2后,新上线用户B的流量路径说明。

分布式数据中心三层网络互联方案
  图10. 虚机迁移后,新上线用户的流量示意

  步骤1:VMware vCenter 支持“基于事件触发的脚本技术”,用户可以给vCenter上发生的多种类型的事件(Event)定义执行脚本(TCL/TK)。在本方案中,数据中心1的服务器管理员已经为app.h3c.com对应虚拟机从数据中心1到数据中心2的动态迁移事件定义了一个执行脚本——“Telnet到GSLB上,将app.h3c.com的DNS解析改为VIP-2”。而修改之前,GSLB上是将app.h3c.com域名解析为VIP-1。因此,当app.h3c.com对应虚机成功迁移到数据中心2时,GSLB上对app.h3c.com域名的解析也发生了变化。

  步骤2:新上线的用户B希望访问app.h3c.com,其客户端向本地配置的DNS服务器发起查询请求,通过一系列迭代查询,最终由作为权威DNS服务器的GSLB返回查询结果,app.h3c.com对应的地址是数据中心2中的SLB2上配置的VIP_2

  步骤3、步骤4、步骤5、步骤6的过程与上文介绍的用户A第一次访问数据中心1时的流程相同。

  3. 方案小结

  采用“动态DNS+网关分离”方案的特点为:

  在前端网络通过GSLB实现站点选择,在数据中心内部通过NAT可访问呈现不同IP地址的同一虚机,进而实现流量的智能调配,无需额外发布路由。

  虚拟机迁移后在客户端DNS缓存老化时间内存在次优路径,通过与vCenter的联动可保证迁移后新建连接以优化路径实现访问。

  方案的优点:

  用户基于DNS访问数据中心虚拟机对应的业务系统。

  依靠SLB设备的NAT功能,同一个虚拟机在不同的数据中心呈现不同的VIP。

  SLB对来自客户端的流量做S-NAT,实现网络会话的连续不中断。

  vCenter上通过虚拟机迁移事件触发执行脚本以修改DNS对域名的解析。

  缺点主要为:

  NAT后源地址转换,服务器无法获知客户端实际IP。

  数据中心侧必须有DNS设备。

  四、 方案对比

  本文讨论了分布式数据中心三层互联的三种实现方案,总体上看,可将三种方案分为两类:单侧网关方案和网关分离方案。两类方案的综合对比如下:

分布式数据中心三层网络互联方案

  单侧网关 网关分离

  技术成熟度 5 4

  配置简易性 5 4

  流量路径明晰 2 5

  设备投资成本 4 3

  网络健壮性 4 3

  *注:满分为5,分值越接近5,表示该项技术参数越优良。

  单网关方案和网关分离方案各有优缺点,且互不排斥。在规划网络的时候,应按照用户的需求,对于业务流量不大、便于区分、业务连续性要求不高的场景采用单侧网关方案,而对于业务流量较大、IP规划复杂、业务连续性要求较高的场景采用网关分离方案,将两种方案综合运用、灵活组合,以满足用户对于分布式数据中心高可靠性的严苛要求。

  五、 结束语

  综上所述,传统单一网关方案无论是从技术实现还是配置维护的角度来说,都是最为简单的,其主要适用于规模不大,流量较小,业务简单的场景。而对于大规模复杂场景,则需要根据实际情况灵活选择设计方案。对于两种网关分离的优化方案,采用“路由健康注入”方案所需条件较为简单,但发布路由的方式导致广域网开销上升,且存在防火墙禁用状态监测带来的隐患;采用“动态DNS”方案无需增加广域网开销,但要求数据中心侧配置有DNS设备。没有最完美的方案,只有最合适的方案,在实际规划中,应充分考虑业务需求、成本、实现难度等因素,灵活构建对客户更高价值的网络。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章