您现在访问的是微软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. springboot-1-介绍

    之前跟着一个博主学过springboot, 但不怎么全面, 最近看了本书, 汪云飞的springboot 实战, 发现springboot太强大了, 跟着书重新走一遍... 边写边记录 http:// ...

  2. 在超链接href中实现form的提交

    <form name="form1" method="post" action=""> <div class=" ...

  3. Java时间的使用

    JAVA处理日期时间常用方法: 1.java.util.Calendar Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字 ...

  4. JS类型和类 小记录

    七种数据类型 number 记住二进制是0b开头 八进制0开头,后来ES5添加了0o开头 十六进制是0x开头 string var s = ' + ' // 无回车符号 或 var s = ` ` / ...

  5. Linux下如何查看版本信息(转)

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然.   1.# uname -a   (Linux查看版本当前操作系统内核信息)   L ...

  6. Jsp&Servlet入门级项目全程实录第1讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.jdbc数据库连接(略) 2.登录表单 2.1设置内边距 <dir style="padding- ...

  7. WCF 之部署(2010版本之上)

    首先,在WIN系统下打开IIS,每种操作系统是不同的,请不要弄混. 1.控制面板---左下放的程序---启用或关闭Windows功能,如图: 2.找到Internet Information Serv ...

  8. webpack工具、Vue、react模块化

    一.为什么要有webpack print('hello,world') fsdl fdsf title2 title3 引用 斜体字 加粗 有序列表1 有序列表2 无序列表1 无序列表2 行内code ...

  9. WPF实现夜间模式

    背景 项目中设计了一个黑色主题,稍加改正也可作为夜间模式,效果图如下: 原理 由于项目中存在地图,而地图完全是由位图组成,不能直接改变背景色,所以我在内容上面放置了一个黑色的Border作为遮罩.可通 ...

  10. github flow

    github flow Github flow 是Git flow的简化版,专门配合"持续发布".它是 Github.com 使用的工作流程 它只有一个长期分支,就是master, ...