7.3.2 使用 NSX Edge 服务网关部署 Source NAT
在流量需要访问 Internet 时, 可以使用 Source NAT 将私有内网 IP 地址转换为共有 IP 地址。 在图 7.10 的例子中,通过 NSX Edge 网关将 192.168.1.0/24 网段的地址转换为 10.20.181.171, 这种技术称之为 masquerading(IP 伪装)。在这种模式下,所有 NSX Edge 网关身后的网段都会伪装成 10.20.181.171 这个 IP 地址,与 Internet 或内网中的其他 IP 地址进行通信。
7.3.3 使用 NSX Edge 服务网关部署 Destination NAT
Destination NAT 通常用于发布一项位于内网中的服务,使得外部用户可以通过 Internet 访问这项服务—如果没有 NAT 技术,那么在发布服务时,需要将服务器暴露在公网中, 这是不安全的,也不利于与内网资源进行整合。在图 7.11 的例子中, NSX Edge 网关通过 NAT 技术将 Web 服务器的 IP 地址 192.168.1.2 转换为公网地址 10.20.181.171,使得处于公 网的用户可以安全、便捷地访问这个服务。 NAT 技术同样可以将其转换为 10.20.181.170 这 个地址,且 10.20.181.170 和 10.20.181.171 两个地址可以设置为负载均衡模式(后续小节就 会讨论 NSX 负载均衡)。
7.4 利用 NSX Edge 服务网关实现负载均衡
负载均衡(Load Balance, LB)的技术核心为,将服务分摊到多个操作单元上执行, 这些服务包括 Web 服务、 FTP 服务、企业关键应用服务和其他服务等,从而共同完成工作 任务。负载均衡技术建立在现有网络结构之上,提供了一种廉价、高效、 透明的方法扩展 网络设备和服务器的带宽, 增加吞吐量, 加强网络数据处理能力, 提高网络的灵活性和可 用性。 本节从介绍负载均衡技术开始,引入如何通过 NSX Edge 实现三种部署负载均衡服务: 单臂模式、在线模式、分布式。
7.4.1 负载均衡技术
负载均衡设备可以提供多种负载平衡算法。企业可依照需求自行设定负载平衡规则, 而网络会参照所设定的规则,对相应服务在需要实现负载均衡时进行计算,从而使得各个 设备实现工作负载平均负担,并且可以在服务出现故障时,通过算法使得系统重新达到负 载均衡。这些算法包括:
依序(Round Robin);
比重(Weighted Round Robin);
流量比例(Traffic);
使用者端(User);
应用类别(Application);
联机数量(Session);
服务类别(Service);
自动分配(Auto Mode)。
负载均衡可以通过硬件来实现,也可以通过软件实现。软件负载均衡解决方案是指在 一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,优点是配 置简单,使用灵活,成本低廉。 硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通 常称为负载均衡器。这样一来,专门的设备可以完成专门的任务,而且独立于操作系统, 外加多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。负载均衡 器有多种多样的形式,除了独立的负载均衡器外,有些负载均衡器集成在交换设备中,部 署在服务器与 Internet 之间;有些负载均衡器则以两块网卡将这一功能集成到服务器中, 一 块网卡连接到 Internet 上,一块网卡连接到后端服务器群的内部网络里。
一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。在 VMware NSX 虚拟化环境中,利用 NSX Edge 服务网关部署的负载均衡,自然是通过软件实现的 负载均衡。传统的基于软件实现的负载均衡, 在每台服务器上安装额外的软件运行时会 消耗系统 CPU 和内存资源,越是功能强大的软件,消耗得越多,当连接请求特别大的时 候,软件本身可能成为系统的一个瓶颈。此外, 在传统方案中,软件可扩展性并不是很 好。但是使用 NSX Edge 服务网关部署的负载均衡, 则杜绝了传统模式的种种弊端—现 在的服务器由于 CPU 和内存都非常强大,且 VMware vSphere 又是最大化利用服务器资 源的解决方案,加上 NSX Edge 的 ECMP 部署方式,很难遇到软件瓶颈问题,而 NSX Edge 扩展性也非常良好。
此外, NSX 在版本 6.2 之后,支持分布式的负载均衡,更加杜绝了 软件瓶颈问题。 从应用的位置来看,负载均衡分为本地负载均衡(Local Load Balance)和全局负载均 衡(Global Load Balance,也叫地域负载均衡)。 本地负载均衡是指对本地的服务器群做负 载均衡,而全局负载均衡是指在放置于不同的地理位置、有不同网络结构的服务器群之间 实现负载均衡。 本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,并且不需花费巨 大费用来购置性能卓越的服务器,它充分利用现有设备,能有效避免服务器单点故障造 成的数据流量的损失。灵活多样的均衡策略把数据流量合理分配给数据中心内部的服务 器,由它们共同承担。 全局负载均衡主要用于在多区域部署服务器的情形,使得全球用户可以通过 Internet, 以一个 IP 地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度。 如果某 些特大公司拥有较多子公司,子公司都有服务器,且它们之间通过 Intranet(企业内部互联 网)互连, 就可以使用这种解决方案达到资源统一分配。全局负载均衡有以下的特点:
实现地理位置的无关性,能够远距离地为用户提供完全透明的服务;
除了能避免服务器、数据中心的单点失效外,也能避免由于 ISP 专线故障引起的 单点失效;
解决网络拥塞问题,提高服务器响应速度, 由于服务就近提供, 可以达到更 好的访问质量。 负载均衡有三种部署方式:路由模式、桥接模式、服务直接返回模式。路由模式部署 灵活,约 60%的用户采用这种方式进行部署;桥接模式不会改变现有的网络架构;服务直 接返回模式比较适合吞吐量大的网络应用。 如今,负载均衡技术的功能越来越强大,可以作为应用交付解决方案的核心功能来使 用。应用交付解决方案已经逐渐可以自动化部署和运维各种应用。
7.4.2 基于 NSX Edge 服务网关的负载均衡
当使用 NSX Edge 来部署负载均衡服务时,是为了实现两个功能: 将应用进行横向扩展(通
过将工作负载横向分布在多台服务器上)。 促进高可用性。图 7.12 所示为通过 NSX Edge 部署
负载均衡的基本架构:最终用户(无论是内部用户还是外部用户) 需要访问应用程序来获得服
务时,通过在 NSX Edge 上部署的基于软件的负载均衡,最优地、均衡地连接数据中心资源。
当集群内的服务器(虚拟机) 有一台无法提供服务时, NSX Edge 会通过算法,对负载均衡进
行重新计算,并将剩余服务器(虚拟机) 提供的服务进行重新定义并对外提供。
NSX Edge 的负载均衡服务有如下两个特征:
通过开放的 API 实现完全的可编程性;
与 NSX 其他功能有统一的中央管理和监控平台。
NSX Edge 提供的负载均衡服务满足绝大部分应用部署的需求,因为基于 NSX Edge 部署的负载均衡服务,提供了如下多种功能。
支持任何 TCP 应用,如 LDAP、 FTP、 HTTP、 HTTPS 等,并不局限于这些。
在 NSX 6.1 版本之后,支持 UDP 应用。
支持多种多样的负载均衡算法,包括 Round-Robin、最小连接、源 IP 地址哈希、 URI。
支持多种多样的健康状态检查,包括基于 TCP、 HTTP、 HTTPS 的内容检查。
会话保持(persistence):一些使用负载均衡功能的网站会要求属于同一会话的请求必须交付给相同的服务器, 这需要使用 persistence 模块来实现这一功能。 NSX Edge 负载均衡可以提供基于 Source IP、 MSRDP、 cookie、 ssl session-id 的会话保持功能。
节流(Connection throttling):节流功能可以控制应用程序的使用量,节省一个单 独的租户或整个服务实例的资源消耗。这种模式允许系统继续运行并满足服务质 量,即便在增加的需求资源中放置一个极端负载的情形。 NSX Edge 负载均衡使用 限制最大连接数(max connections)和每秒连接数(connections/sec)的方式来实 现这一功能—连接限制是通过限制用户发起的连接数、限制用户创建连接的速 率或者限制用户建立连接所占用的带宽资源,对设备上建立的连接进行统计和限 制, 从而保护内部网络资源(主机或服务器)以及合理分配设备系统资源。 第 7 层网络操控,包括 URL 阻止(URL block)、 URL 重写(URL rewrite)、内容 重写(comtent rewrite) 等。
SSL 工作流的优化。 NSX 负载均衡服务的性能和扩展性非常好,能支持非常苛刻的应用。每个 NSX Edge 实际上可以扩展到如下性能。
吞吐量: 9Gbit/s。 并发连接数: 1000000。 每秒新连接数: 131000。 使用 NSX Edge 来实现负载均衡,有如下两大优势。
负载均衡服务可以完全横跨租户实现分布式部署—每一个租户都可以部署自己 的负载均衡,且配置变动不会影响到其他租户; 一个租户的负载增加时不会影响 到其他租户,每个租户的负载均衡服务的扩展性良好。
其他网络服务仍然完全可用—同一租户可以同时在 NSX Edge 上使用负载均衡 服务和其他服务,如路由服务、防火墙服务、 VPN 服务。 NSX 网络虚拟化平台在 6.1 版本之前支持两种负载均衡部署模式: 单臂模式(One-arm mode, 也叫代理模式[Proxy mode])和在线模式(Inline mode, 也叫传输模式[Transparent mode])。在 NSX 6.2 版本之后, 还支持分布式负载均衡部署,应用部署的方式和功能在 NSX 网络虚拟化平台中更加完善。 NSX 网络虚拟化平台还支持在其上加载第三方应用交付解决方案,如 F5 和 A10 等厂 商的负载均衡、应用交付解决方案。之后的章节会讨论 NSX 和 F5 的集成解决方案。
7.4.3 使用单臂模式部署负载均衡
由 NSX Edge 直接连接到逻辑网络并提供负载均衡服务的模式叫作单臂模式(代理模 式)。 单臂模式在数据中心内部的部署拓扑如图 7.13 所示。 可以看到,拓扑中单独使用了 一个 NSX Edge 部署在数据中心内部。 图 7.14 为单臂模式下 NSX 负载均衡的工作流程,具体工作步骤如下。
1.外部用户将流量发送到负载均衡服务的虚拟 IP 地址(Virtual IP address, VIP)。
2. NSX Edge 中部署的负载均衡服务(以下简称 LB)接收到客户端传递来的原始数据后,执行两个地址的转换—目的 NAT(Destination NAT, D-NAT),它是服务器群中某一台应用的虚拟机的地址,用于取代 VIP;源 NAT(Source NAT, S-NAT),它是 LB 中定义的一个地址,用来取代客户端的 IP 地址。
3. S-NAT 需要强制穿越 LB,并将流量从服务器群中返回到客户端—因此,在这一步, 服务器群中的虚拟机回应了这个流量,将流量发送到了 LB。
4. LB 再次执行 S-NAT 和 D-NAT,并使用它的 VIP 作为源 IP 地址,将流量发送回外部的客户端。 单臂模式的优点是易于部署,非常灵活。它允许直接将 LB 服务(NSX Edge)部署在 需要实现负载均衡的逻辑网段,而无需在与物理网络通信提供路由服务的 NSX Edge 之上 做任何配置更改。但是,这种模式需要部署更多的 NSX Edge 实例,以执行 NAT 的工作, 并且数据中心内部的服务器对原始客户端的 IP 地址失去了可视性。 、
图 7.15 所示为使用传统模式的情况下(无论虚拟机是否处于同一主机内), Web 服务器 与 App 服务器进行交互并对外提供服务的流量模型。在传统模式中, Web 服务器与 App 服 务器之间东西向的三层流量,需要经过二层交换机、三层交换机、旁路模式部署的防火墙, 再回到三层交换机、二层交换机、物理服务器主机,这个过程需要 6 跳连接。在 Web 服务器 与 App 服务器建立连接后,就可以对外提供 Web 服务了。 外界要访问 Web 服务器的南北向 流量,需要先抵达核心交换机,绕道防火墙进行过滤(如只允许 HTTP 和 HTTPS 的流量) 并返回核心交换机。 这时候,需要再次绕道负载均衡服务器进行处理并返回核心交换机,然 后才能通过二层交换机抵达主机并访问 Web 服务,这个过程一共有 7 跳连接。此外, App 与数据库之间的连接,同样需要 6 跳,整个过程一共需要 19 跳才能完成。
服务器与 App 服务器尽管处在不同网段,却可以在逻辑网络内部实现直接的连接(0 跳); 就算不在同一主机内,也只需要 2 跳。而对外提供服务时,外部访问流量通过核心三层交 换机、二层交换机后去往 NSX Edge,这个 NSX Edge 串接在逻辑网络和物理网络之间,提 供路由和防火墙服务。流量之后返回二层交换机,进入主机, 就可以访问负载均衡 Web 服 务了。由于在单臂模式下负载均衡和 Web 服务器之间可以是直连的(0 跳),因此整个过程 最少只有 5 跳连接。 如果为单臂模式的负载均衡服务单独部署了 NSX Edge,则为 7 跳连接。
加上 App 与数据库服务器需要交互的 2 跳,使用 NSX 网络虚拟化解决方案之后,外部用 户访问一套完整的 Web 应用,最多需要 11 跳即可完成,最少只需要 7 跳连接。与传统部 署相比,在仅增加了 NSX Edge 的情况下,大幅精简优化了流量的路径。
版权归原作者 BinaryStarXin 所有, 如有侵权,请联系我们删除。