您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

Azure 负载均衡器的多个 VIP

重要

Azure 负载均衡器支持两种不同的类型:“基本”和“标准”。 本文介绍基本负载均衡器。 虽然基本负载均衡器已推出正式版,但标准负载均衡器目前仍以公共预览版提供。 有关标准负载均衡器的详细信息,请参阅标准负载均衡器概述

使用 Azure 负载均衡器可对多个端口和/或多个 IP 地址上的服务进行负载均衡。 可以使用公共和内部负载均衡器定义来对一组 VM 之间的流量进行负载均衡。

本文介绍此功能的基础知识、重要概念和约束。 如果只想要公开一个 IP 地址上的服务,可以查看公共内部负载均衡器配置的简要说明。 添加多个 VIP 是对单个 VIP 配置的递增。 使用本文中的概念,随时可以扩展简化的配置。

定义 Azure 负载均衡器时,前端和后端配置与规则相连接。 规则引用的运行状况探测用于确定如何将新流量发送到后端池中的节点。 前端由虚拟 IP (VIP) 定义,VIP 是由 IP 地址(公共或内部)、传输协议(UDP 或 TCP)和端口号组成的 3 元组。 DIP 是附加到后端池中 VM 的 Azure 虚拟 NIC 上的 IP 地址。

下表包含一些示例前端配置:

VIP IP 地址 协议 端口
1 65.52.0.1 TCP 80
#N/A 65.52.0.1 TCP 8080
3 65.52.0.1 UDP 80
4 65.52.0.2 TCP 80

该表显示了四个不同的前端。 前端 #1、#2 和 #3 是具有多个规则的单一 VIP。 每个前端使用相同的 IP 地址,但端口或协议不同。 前端 #1 和 #4 是多个 VIP 的示例,在多个 VIP 中重复使用相同的前端协议和端口。

在 Azure 负载均衡器中可以灵活定义负载均衡规则。 规则声明如何将前端上的地址和端口映射到后端上的目标地址和端口。 是否在不同的规则中重复使用后端端口取决于规则的类型。 每种类型的规则有特定的要求,可能会影响主机配置和探测设计。 有两种类型的规则:

  1. 默认规则,不重复使用后端端口
  2. 浮动 IP 规则,重复使用后端端口

Azure Load Balancer 允许在相同的负载均衡器配置中混用这两种规则类型。 负载均衡器可以针对给定的 VM 同时使用这两种规则或两者的任意组合,只要遵守规则的约束即可。 选择哪种规则类型取决于应用程序要求以及支持该配置的复杂性。应该评估哪种规则类型最适合自己的方案。

我们将从默认行为开始进一步探讨这些方案。

规则类型 #1:不重复使用后端端口

在此方案中,前端 VIP 的配置如下:

VIP IP 地址 协议 端口
 1 65.52.0.1 TCP 80
 #N/A 65.52.0.2 TCP 80

DIP 是入站流量的目标。 在后端池中,每个 VM 公开 DIP 上唯一端口上的所需服务。 此服务通过规则定义与前端关联。

我们定义了两个规则:

规则 映射前端 目标后端池
1  VIP1:80  DIP1:80,  DIP2:80
#N/A  VIP2:80  DIP1:81,  DIP2:81

现在,Azure 负载均衡器的完整映射如下:

规则 VIP IP 地址 协议 端口 目标 端口
 1 65.52.0.1 TCP 80 DIP IP 地址 80
 #N/A 65.52.0.2 TCP 80 DIP IP 地址 81

每个规则必须生成具有目标 IP 地址和目标端口唯一组合的流量。 通过改变流量的目标端口,多个规则可将流量发送到不同端口上的相同 DIP。

运行状况探测始终定向到 VM 的 DIP。 必须确保探测反映 VM 的运行状况。

规则类型 #2:使用浮动 IP 来重复使用后端端口

使用 Azure 负载均衡器可以灵活地在多个 VIP 中重复使用前端端口,无论使用哪种规则类型。 此外,在某些应用程序方案中,后端池中单个 VM 上的多个应用程序实例偏好或必须使用相同端口。 重复使用端口的常见示例包括提供高可用性群集、网络虚拟设备,以及公开多个不重新加密的 TLS 终结点。

如果想要在多个规则中重复使用后端端口,必须在规则定义中启用浮动 IP。

浮动 IP 是所谓的直接服务器返回 (DSR) 的一部分。 DSR 包括两个组成部分:流拓扑和 IP 地址映射方案。 在平台级别,Azure 负载均衡器始终在 DSR 流拓扑中运行,无论是否已启用浮动 IP。 这意味着,流的出站部分始终正确重写为直接流回到来源。

使用默认规则类型时,Azure 将公开传统的负载均衡 IP 地址映射方案以便于使用。启用浮动 IP 会更改 IP 地址映射方案,提供更大的灵活性,请参阅下面的说明。

下图演示了此配置:

此方案中,后端池中的每个 VM 有三个网络接口:

  • DIP:与 VM 关联的虚拟 NIC(Azure NIC 资源的 IP 配置)
  • VIP1:来宾 OS 中的环回接口,该接口上已配置 VIP1 的 IP 地址
  • VIP2:来宾 OS 中的环回接口,该接口上已配置 VIP2 的 IP 地址

重要

逻辑接口的配置在来宾 OS 中执行。 此配置不是由 Azure 执行或管理。 如果没有此配置,规则将无法正常运行。 运行状况探测定义使用 VM 的 DIP,而不是逻辑 VIP。 因此,服务必须在 DIP 端口上提供探测响应,反映逻辑 VIP 上提供的服务的状态。

假设上述方案使用相同的前端配置:

VIP IP 地址 协议 端口
 1 65.52.0.1 TCP 80
 #N/A 65.52.0.2 TCP 80

我们定义了两个规则:

规则 映射前端 目标后端池
1  VIP1:80  VIP1:80(在 VM1 和 VM2 中)
#N/A  VIP2:80  VIP2:80(在 VM1 和 VM2 中)

下表显示负载均衡器中的完整映射:

规则 VIP IP 地址 协议 端口 目标 端口
 1 65.52.0.1 TCP 80 与 VIP 相同 (65.52.0.1) 与 VIP 相同 (80)
 #N/A 65.52.0.2 TCP 80 与 VIP 相同 (65.52.0.2) 与 VIP 相同 (80)

入站流量的目标是 VM 中环回接口上的 VIP 地址。 每个规则必须生成具有目标 IP 地址和目标端口唯一组合的流量。 通过改变流量的目标 IP 地址,可以在同一 VM 上重复使用端口。 通过将服务绑定到 VIP 的 IP 地址和相应环回接口的端口,可以向负载均衡器公开服务。

请注意,本示例未更改目标端口。 这是一个浮动 IP 方案,不过 Azure 负载均衡器也支持定义规则来重写后端的目标端口,使其与前端的目标端口不同。

浮动 IP 规则类型是多种负载均衡器配置模式的基础。 具有多个侦听器的 SQL AlwaysOn 配置是目前提供的示例之一。 一段时间后,我们会介绍更多此类方案。

限制

  • 只有 IaaS VM 支持多个 VIP 配置。
  • 使用浮点 IP 规则时,应用程序必须为出站流量使用 DIP。 如果应用程序绑定到来宾 OS 中环回接口上配置的 VIP 地址,则无法使用 SNAT 来重写出站流量,此时流量处理会失败。
  • 公共 IP 地址会影响计费。 有关详细信息,请参阅 IP 地址定价
  • 订阅有所限制。 有关详细信息,请参阅服务限制

Azure 负载均衡器的多个 VIP的更多相关文章

  1. Azure 负载均衡器介绍

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. Azure 负载均衡器 ...

  2. Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则

    <Windows Azure Platform 系列文章目录> 注意:如果Azure面对的客户只是企业级客户,企业级客户使用NAT设备访问Internet的话,因为多个客户端使用相同的So ...

  3. Azure ARM (12) ARM模式下,在负载均衡器上设置多个公网IP地址

    <Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公 ...

  4. Azure ARM (11) ARM模式下,创建虚拟机并配置负载均衡器

    <Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 在前几章中,我们做了准备工作: 1.创建ARM Resouce Group,叫Lei ...

  5. 最全的Windows Azure学习教程汇总

    Windows Azure 是微软基于云计算的操作系统,能够为开发者提供一个平台,帮助开发可运行在云服务器.数据中心.Web 和 PC 上的应用程序. Azure 是一种灵活和支持互操作的平台,能够将 ...

  6. Windows Azure Virtual Machine (28) 使用Azure实例级别IP,Instance-Level Public IP Address (PIP)

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 熟悉Azure平台的读者都知道,我们在使用Azure Virtual ...

  7. 什么是 Azure 中的虚拟机规模集?

    虚拟机规模集是一种 Azure 计算资源,可用于部署和管理一组相同的 VM. 由于所有 VM 的配置都相同,因此无需对 VM 进行任何预先配置. 这样就可以更方便地构建面向大型计算.大数据.容器化工作 ...

  8. Azure 中的虚拟网络和虚拟机

    创建 Azure 虚拟机 (VM) 时,必须创建虚拟网络 (VNet) 或使用现有的 VNet. 此外,还需要确定如何在 VNet 上访问 VM. 在创建资源之前必须做好规划,确保了解网络资源的限制. ...

  9. Azure上的那些IP

    相信第一次接触Azure的读者都会碰到这样一个问题,就是Azure的IP地址,笔者第一次接触Azure也是被搞懵逼了,一会儿VIP,不知道的还以为是会员的意思呢,一会儿又是DIP,后来又来了个PIP, ...

随机推荐

  1. spring 线程异步执行

    多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了.spring封装了Java的多线程的实现,你只需要关注于并发事物的流程以及一些并发负载量等特性,具体来说 ...

  2. spring data 自定义接口

    1 spring data jpa 虽然说spring data 提供了很多DAO 接口,但是依然可能不能满足我们日常的使用,所以,有时我们需要自定义接口方法.自定义接口方法步骤如下: 1.  创建自 ...

  3. EF4.4增删改查实例

    第一.先创建一个名为Store数据库,将下面脚本代码执行创建表: USE [Store] GO /****** Object: Table [dbo].[Category] Script Date: ...

  4. 利用css实现搜索过滤

    无意中找到一种利用css就可实现的搜索过滤的方法,不得不说看了代码之后确实被惊艳到了,亏我之前面试还因为做这个功能做太慢而拖了后腿.在此记录下代码: <!DOCTYPE html> < ...

  5. 转:详解PV、UV、VV、IP及其关系与计算

    一.什么是PV? PV即Page View,网站浏览量,指页面浏览的次数,用以衡量网站用户访问的网页数量.用户每次打开一个页面便记录1次PV,多次打开同一页面则浏览量累计.一般来说,PV与来访者的数量 ...

  6. “System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理

    “System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理 这个原因肯定不是因为程序内部的逻辑错误,或者别的什么情况. 想想,肯 ...

  7. 版本管控---Visual Source Safe(VSS)和Team Foundation Server(TFS)

    Visual Source Safe 是用于软件专业开发人员的源代码管理工具 Team Foundation Server是为开发团队提供集成源代码管理.问题跟踪和进程管理的更改管理系统 相同点 1. ...

  8. Java学习--扑克牌比大小的小游戏

    实现:生成五十四张牌,然后进行洗牌,输入两名玩家,然后分别发两张牌,进行比较大小,两张牌中拥有较大一张牌的玩家获胜 Card.java代码如下: package com.cardgame; publi ...

  9. sublime text3 JS语法检测插件

    首先ctrl+shift+P用包管理器安装sublimeLinter和sublimeLinter-jshint 前往node官网下载nodejs并安装 安装完node后打开命令行输入npm insta ...

  10. 6、Object、String、StringBuffer

    Java的Api以及Object类 API概念 * A:API(Application Programming Interface) * 应用程序编程接口 * B:Java API * 就是Java提 ...