Azure 负载均衡器的多个 VIP
您现在访问的是微软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 负载均衡器中可以灵活定义负载均衡规则。 规则声明如何将前端上的地址和端口映射到后端上的目标地址和端口。 是否在不同的规则中重复使用后端端口取决于规则的类型。 每种类型的规则有特定的要求,可能会影响主机配置和探测设计。 有两种类型的规则:
- 默认规则,不重复使用后端端口
- 浮动 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的更多相关文章
- Azure 负载均衡器介绍
您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. Azure 负载均衡器 ...
- Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则
<Windows Azure Platform 系列文章目录> 注意:如果Azure面对的客户只是企业级客户,企业级客户使用NAT设备访问Internet的话,因为多个客户端使用相同的So ...
- Azure ARM (12) ARM模式下,在负载均衡器上设置多个公网IP地址
<Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公 ...
- Azure ARM (11) ARM模式下,创建虚拟机并配置负载均衡器
<Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 在前几章中,我们做了准备工作: 1.创建ARM Resouce Group,叫Lei ...
- 最全的Windows Azure学习教程汇总
Windows Azure 是微软基于云计算的操作系统,能够为开发者提供一个平台,帮助开发可运行在云服务器.数据中心.Web 和 PC 上的应用程序. Azure 是一种灵活和支持互操作的平台,能够将 ...
- Windows Azure Virtual Machine (28) 使用Azure实例级别IP,Instance-Level Public IP Address (PIP)
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 熟悉Azure平台的读者都知道,我们在使用Azure Virtual ...
- 什么是 Azure 中的虚拟机规模集?
虚拟机规模集是一种 Azure 计算资源,可用于部署和管理一组相同的 VM. 由于所有 VM 的配置都相同,因此无需对 VM 进行任何预先配置. 这样就可以更方便地构建面向大型计算.大数据.容器化工作 ...
- Azure 中的虚拟网络和虚拟机
创建 Azure 虚拟机 (VM) 时,必须创建虚拟网络 (VNet) 或使用现有的 VNet. 此外,还需要确定如何在 VNet 上访问 VM. 在创建资源之前必须做好规划,确保了解网络资源的限制. ...
- Azure上的那些IP
相信第一次接触Azure的读者都会碰到这样一个问题,就是Azure的IP地址,笔者第一次接触Azure也是被搞懵逼了,一会儿VIP,不知道的还以为是会员的意思呢,一会儿又是DIP,后来又来了个PIP, ...
随机推荐
- R语言函数
函数是一个组织在一起的一组以执行特定任务的语句.R语言有大量的内置函数,用户也可以创建自己的函数. 在R语言中的函数是一个对象,所以R语言解释器为能够通过控制到该函数,带有参数可能是函数必要完成的操作 ...
- oracle:存储过程和触发器
存储过程(stored procedure) :可以看作带名字的pl/sql程序块:通过名字调用执行:可以带参数或不带参数. 触发器(trigger):通过事件触发执行,可看成特殊类型的存储过程. 下 ...
- 每天一道leetcode203-移除链表的元素
考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 2018. ...
- Data Warehouse Hardware - DW硬件需求计算
1. Disk I/O, 硬盘IO速度 硬盘的IO速度一直都是数据库的瓶颈,所以有条件的情况下尽可能的使用高IO的磁盘. 可以使用微软的工具SQLIO测试磁盘的IOPS 2. CPU的主频, DW和传 ...
- 八、curator recipes之选举主节点LeaderSelector
简介 前面我们看到LeaderLatch对于选举的实现:https://www.cnblogs.com/lay2017/p/10264300.html 节点在加入选举以后,除非程序结束或者close( ...
- 三分钟理解Java中字符串(String)的存储和赋值原理
可能很多Java的初学者对String的存储和赋值有迷惑,以下是一个很简单的测试用例,你只需要花几分钟时间便可理解. 1.在看例子之前,确保你理解以下几个术语: 栈:由JVM分配区域,用于保存线程执行 ...
- PHP 经典算法
<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_s ...
- SQLite metadata
http://www.devart.com/dotconnect/sqlite/docs/MetaData.html https://github.com/sqlitebrowser/sqlitebr ...
- webapi views目录下html文件无法访问
找到views下web.config 增加如下红色标注内容 <?xml version="1.0"?> <configuration> <config ...
- MongoDB Limit/限制记录
Limit() 方法 要限制 MongoDB 中的记录,需要使用 limit() 方法. limit() 方法接受一个数字型的参数,这是要显示的文档数. 语法: limit() 方法的基本语法如下 & ...
1
#N/A