Skip to content

Commit 9063fa6

Browse files
authored
Merge pull request #101548 from anavinahar/OneOverview
Combining LB overviews
2 parents a9cae50 + 07eea99 commit 9063fa6

File tree

4 files changed

+80
-240
lines changed

4 files changed

+80
-240
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46580,6 +46580,11 @@
4658046580
"redirect_url": "/azure/active-directory/managed-identities-azure-resources/overview",
4658146581
"redirect_document_id": false
4658246582
},
46583+
{
46584+
"source_path": "articles/load-balancer/load-balancer-standard-overview.md",
46585+
"redirect_url": "/azure/load-balancer/load-balancer-overview",
46586+
"redirect_document_id": false
46587+
},
4658346588
{
4658446589
"source_path": "articles/load-balancer/load-balancer-arm.md",
4658546590
"redirect_url": "/azure/load-balancer/load-balancer-overview",

articles/load-balancer/concepts-limitations.md

Lines changed: 65 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ Azure Load Balancer contains several key components for it's operation. These c
2626
- **[Public IP Address](https://docs.microsoft.com/azure/virtual-network/virtual-network-public-ip-address)**
2727
- **[Private IP Address](https://docs.microsoft.com/azure/virtual-network/virtual-network-ip-addresses-overview-arm#private-ip-addresses)**
2828

29-
* **Backend pool**: The group of virtual machines or instances in the Virtual Machine Scale Set that are going to serve the incoming request. To scale cost-effectively to meet high volumes of incoming traffic, computing guidelines generally recommend adding more instances to the backend pool. Load balancer instantly reconfigures itself via automatic reconfiguration when you scale instances up or down. Adding or removing VMs from the backend pool reconfigures the load balancer without additional operations on the load balancer resource.
29+
* **Backend pool**: The group of virtual machines or instances in the Virtual Machine Scale Set that are going to serve the incoming request. To scale cost-effectively to meet high volumes of incoming traffic, computing guidelines generally recommend adding more instances to the backend pool. Load Balancer instantly reconfigures itself via automatic reconfiguration when you scale instances up or down. Adding or removing VMs from the backend pool reconfigures the Load Balancer without additional operations. The scope of the backend pool is any virtual machine in the virtual network. A backend pool can have up to 1000 backend instances or IP configurations.
30+
Basic Load Balancers have limited scope (availability set) can only scale up to 300 IP configurations. For more information on limits, see [Load Balancer limits](https://docs.microsoft.com/azure/azure-resource-manager/management/azure-subscription-service-limits#load-balancer). When considering how to design your backend pool, you can design for the least number of individual backend pool resources to further optimize the duration of management operations. There is no difference in data plane performance or scale.
3031
* **Health probes**: A **[health probe](https://docs.microsoft.com/azure/load-balancer/load-balancer-custom-probe-overview)** is used to determine the health of the instances in the backend pool. You can define the unhealthy threshold for your health probes. When a probe fails to respond, the Load Balancer stops sending new connections to the unhealthy instances. A probe failure doesn't affect existing connections.
3132

3233
The connection continues until the application:
@@ -37,14 +38,15 @@ Azure Load Balancer contains several key components for it's operation. These c
3738
Load Balancer provides different health probe types for endpoints:
3839
- TCP
3940
- HTTP
40-
- HTTPS
41+
- HTTPS (HTTP probe with Transport Layer Security (TLS) wrapper)
4142

43+
Basic Load Balancer does not support HTTPS probes. In addition, Basic Load Balancer will terminate all TCP connections (including established connections).
4244
For more information, see [Probe types](load-balancer-custom-probe-overview.md#types).
4345

4446
* **Load-balancing rules**: Load-Balancing rules are the ones that tell the Load Balancer what needs to be done when.
4547
* **Inbound NAT rules**: An Inbound NAT rule forwards traffic from a specific port of a specific frontend IP address to a specific port of a specific backend instance inside the virtual network. **[Port forwarding](https://docs.microsoft.com/azure/load-balancer/tutorial-load-balancer-port-forwarding-portal)** is done by the same hash-based distribution as load balancing. Common scenarios for this capability are Remote Desktop Protocol (RDP) or Secure Shell (SSH) sessions to individual VM instances inside an Azure Virtual Network. You can map multiple internal endpoints to ports on the same front-end IP address. You can use the front-end IP addresses to remotely administer your VMs without an additional jump box.
46-
* **Outbound rules**: An **[outbound rule](https://docs.microsoft.com/azure/load-balancer/load-balancer-outbound-rules-overview)** configures outbound Network Address Translation (NAT) for all virtual machines or instances identified by the backend pool to be translated to the frontend.
47-
48+
* **Outbound rules**: An **[outbound rule](https://docs.microsoft.com/azure/load-balancer/load-balancer-outbound-rules-overview)** configures outbound Network Address Translation (NAT) for all virtual machines or instances identified by the backend pool of your Standard Load Balancer to be translated to the frontend.
49+
Basic Load Balancer does not support Outbound Rules.
4850
![Azure Load Balancer](./media/load-balancer-overview/load-balancer-overview.png)
4951

5052
## <a name = "load-balancer-concepts"></a>Load Balancer concepts
@@ -76,12 +78,48 @@ The following image displays the hash-based distribution:
7678
* Application payloads are transparent to Load Balancer. Any UDP or TCP application can be supported.
7779
* Because Load Balancer doesn't interact with the TCP payload and provide TLS offload, you can build end-to-end encrypted scenarios. Using Load Balancer gains large scale-out for TLS applications by ending the TLS connection on the VM itself. For example, your TLS session keying capacity is only limited by the type and number of VMs you add to the back-end pool.
7880

79-
* **Outbound connections (SNAT)**: All outbound flows from private IP addresses inside your virtual network to public IP addresses on the internet can be translated to a front-end IP address of the Load Balancer. When a public front end is tied to a back-end VM by way of a load-balancing rule, Azure translates outbound connections to the public front-end IP address. This configuration has the following advantages:
81+
* **Outbound connections**: All outbound flows from private IP addresses inside your virtual network to public IP addresses on the internet can be translated to a frontend IP address of the Load Balancer. When a public front end is tied to a backend VM by way of a load-balancing rule, Azure translates outbound connections to the public frontend IP address. This configuration has the following advantages:
8082
* Easy upgrade and disaster recovery of services, because the front end can be dynamically mapped to another instance of the service.
8183
* Easier access control list (ACL) management. ACLs expressed as front-end IPs don't change as services scale up or down or get redeployed. Translating outbound connections to a smaller number of IP addresses than machines reduces the burden of implementing safe recipient lists.
82-
For more information, see [Outbound connections in Azure](load-balancer-outbound-connections.md).
83-
Standard Load Balancer has additional SKU-specific capabilities beyond these fundamentals, as described below.
8484

85+
Standard Load Balancer utilizes a [robust, scalable, and predictable SNAT algorithm](load-balancer-outbound-connections.md#snat).These are the key tenets to remember when working with Standard Load Balancer:
86+
87+
- load-balancing rules infer how SNAT is programmed. Load balancing rules are protocol specific. SNAT is protocol specific and configuration should reflect this rather than create a side effect.
88+
89+
- **Multiple frontends**
90+
When multiple frontends are available, all frontends are used and each frontend multiplies the number of available SNAT ports. If you want more SNAT ports because you are expecting or are already experiencing a high demand for outbound connections, you can also add incremental SNAT port inventory by configuring additional frontends, rules, and backend pools to the same virtual machine resources.
91+
92+
- **Control which frontend is used for outbound**
93+
You can choose and control if you do not wish for a particular frontend to be used for outbound connections. If you want to constrain outbound connections to only originate from a specific frontend IP address, you can optionally disable outbound SNAT on the rule that expresses the outbound mapping.
94+
95+
- **Control outbound connectivity**
96+
outbound scenarios are explicit and outbound connectivity does not exist until it has been specified. Standard Load Balancer exists within the context of the virtual network. A virtual network is an isolated, private network. Unless an association with a public IP address exists, public connectivity is not allowed. You can reach [VNet Service Endpoints](../virtual-network/virtual-network-service-endpoints-overview.md) because they are inside of and local to your virtual network. If you want to establish outbound connectivity to a destination outside of your virtual network, you have two options:
97+
- assign a Standard SKU public IP address as an Instance-Level Public IP address to the virtual machine resource or
98+
- place the virtual machine resource in the backend pool of a public Standard Load Balancer.
99+
100+
Both will allow outbound connectivity from the virtual network to outside of the virtual network.
101+
102+
If you _only_ have an internal Standard Load Balancer associated with the backend pool in which your virtual machine resource is located, your virtual machine can only reach virtual network resources and [VNet Service Endpoints](../virtual-network/virtual-network-service-endpoints-overview.md). You can follow the steps described in the preceding paragraph to create outbound connectivity.
103+
104+
Outbound connectivity of a virtual machine resource not associated with Standard SKUs remains as before.
105+
106+
Review [detailed discussion of Outbound Connections](load-balancer-outbound-connections.md).
107+
108+
* **Availability Zones**: Standard Load Balancer supports additional abilities in regions where Availability Zones are available. These features are incremental to all Standard Load Balancer provides. Availability Zones configurations are available for both types, public and internal Standard Load Balancer.
109+
A zone-redundant frontend survives zone failure and is served by dedicated infrastructure in all of the zones simultaneously.
110+
Additionally, you can guarantee a frontend to a specific zone. A zonal frontend shares fate with the respective zone and is served only by dedicated infrastructure in a single zone.
111+
Cross-zone load balancing is available for the backend pool, and any virtual machine resource in a virtual network can be part of a backend pool.
112+
Basic Load Balancer does not support zones.
113+
Review [detailed discussion of Availability Zones related abilities](load-balancer-standard-availability-zones.md) and [Availability Zones Overview](../availability-zones/az-overview.md) for more information.
114+
115+
* **HA Ports**: You can configure load-balancing rules to make your application scale and be highly reliable. When you use an HA Ports load-balancing rule, Standard Load Balancer will provide per flow load balancing on every ephemeral port of an internal Standard Load Balancer's frontend IP address. The feature is useful for other scenarios where it is impractical or undesirable to specify individual ports. An HA Ports load-balancing rule allows you to create active-passive or active-active n+1 scenarios for Network Virtual Appliances and any application, which requires large ranges of inbound ports. A health probe can be used to determine which backends should be receiving new flows. You can use a Network Security Group to emulate a port range scenario. Basic Load Balancer does not support HA Ports.
116+
Review [detailed discussion of HA Ports](load-balancer-ha-ports-overview.md)
117+
>[!IMPORTANT]
118+
> If you are planning to use a Network Virtual Appliance, check with your vendor for guidance on whether their product has been tested with HA Ports and follow their specific guidance for implementation.
119+
120+
* **Multiple frontends**: Load Balancer supports multiple rules with multiple frontends. Standard Load Balancer expands this to outbound scenarios. Outbound scenarios are essentially the inverse of an inbound load-balancing rule. The inbound load-balancing rule also creates an associate for outbound connections. Standard Load Balancer uses all frontends associated with a virtual machine resource through a load-balancing rule. Additionally, a parameter on the load-balancing rule and allows you to suppress a load-balancing rule for the purposes of outbound connectivity, which allows the selection of specific frontends including none.
121+
122+
For comparison, Basic Load Balancer selects a single frontend at random and there is no ability to control which one was selected.
85123
## Load Balancer types
86124

87125
### <a name = "publicloadbalancer"></a>Public Load Balancer
@@ -130,16 +168,21 @@ Standalone VMs, availability sets, and virtual machine scale sets can be connect
130168

131169
For more information, see [Load balancer limits](https://docs.microsoft.com/azure/azure-resource-manager/management/azure-subscription-service-limits#load-balancer). For Standard Load Balancer details, see [overview](load-balancer-standard-overview.md), [pricing](https://aka.ms/lbpricing), and [SLA](https://aka.ms/lbsla).
132170

133-
134171
## <a name = "limitations"></a>Limitations
135172

136-
* Load Balancer provides load balancing and port forwarding for specific TCP or UDP protocols. Load-balancing rules and inbound NAT rules support TCP and UDP, but not other IP protocols including ICMP.
173+
- SKUs are not mutable. You may not change the SKU of an existing resource.
174+
- A standalone virtual machine resource, availability set resource, or virtual machine scale set resource can reference one SKU, never both.
175+
- A Load Balancer rule cannot span two virtual networks. Frontends and their related backend instances must be located in the same virtual network.
176+
- [Move subscription operations](../azure-resource-manager/management/move-resource-group-and-subscription.md) are not supported for Standard LB and Public IP resources.
177+
- Web Worker Roles without a VNet and other Microsoft platform services can be accessible from instances behind only an internal Standard Load Balancer. You must not rely on this as the respective service itself or the underlying platform can change without notice. You must always assume you need to create [outbound connectivity](load-balancer-outbound-connections.md) explicitly if desired when using an internal Standard Load Balancer only.
178+
179+
- Load Balancer provides load balancing and port forwarding for specific TCP or UDP protocols. Load-balancing rules and inbound NAT rules support TCP and UDP, but not other IP protocols including ICMP.
137180

138181
Load Balancer doesn't terminate, respond, or otherwise interact with the payload of a UDP or TCP flow. It's not a proxy. Successful validation of connectivity to a front end must take place in-band with the same protocol used in a load balancing or inbound NAT rule. At least one of your virtual machines must generate a response for a client to see a response from a front end.
139182

140183
Not receiving an in-band response from the Load Balancer front end indicates no virtual machines could respond. Nothing can interact with a Load Balancer front end without a virtual machine able to respond. This principle also applies to outbound connections where port masquerade SNAT is only supported for TCP and UDP. Any other IP protocols, including ICMP, fail. Assign an instance-level public IP address to mitigate this issue. For more information, see [Understanding SNAT and PAT](load-balancer-outbound-connections.md#snat).
141184

142-
* Internal Load Balancers don't translate outbound originated connections to the front end of an internal Load Balancer because both are in private IP address space. Public Load Balancers provide [outbound connections](load-balancer-outbound-connections.md) from private IP addresses inside the virtual network to public IP addresses. For internal Load Balancers, this approach avoids potential SNAT port exhaustion inside a unique internal IP address space, where translation isn't required.
185+
- Internal Load Balancers don't translate outbound originated connections to the front end of an internal Load Balancer because both are in private IP address space. Public Load Balancers provide [outbound connections](load-balancer-outbound-connections.md) from private IP addresses inside the virtual network to public IP addresses. For internal Load Balancers, this approach avoids potential SNAT port exhaustion inside a unique internal IP address space, where translation isn't required.
143186

144187
A side effect is that if an outbound flow from a VM in the back-end pool attempts a flow to front end of the internal Load Balancer in its pool _and_ is mapped back to itself, the two legs of the flow don't match. Because they don't match, the flow fails. The flow succeeds if the flow didn't map back to the same VM in the back-end pool that created the flow to the front end.
145188

@@ -149,8 +192,18 @@ For more information, see [Load balancer limits](https://docs.microsoft.com/azur
149192

150193
You can combine an internal Load Balancer with any third-party proxy or use internal [Application Gateway](../application-gateway/application-gateway-introduction.md) for proxy scenarios with HTTP/HTTPS. While you could use a public Load Balancer to mitigate this issue, the resulting scenario is prone to [SNAT exhaustion](load-balancer-outbound-connections.md#snat). Avoid this second approach unless carefully managed.
151194

152-
* In general, forwarding IP fragments isn't supported on load-balancing rules. IP fragmentation of UDP and TCP packets isn't supported on load-balancing rules. High availability ports load-balancing rules can be used to forward existing IP fragments. For more information, see [High availability ports overview](load-balancer-ha-ports-overview.md).
195+
- In general, forwarding IP fragments isn't supported on load-balancing rules. IP fragmentation of UDP and TCP packets isn't supported on load-balancing rules. High availability ports load-balancing rules can be used to forward existing IP fragments. For more information, see [High availability ports overview](load-balancer-ha-ports-overview.md).
153196

154197
## Next steps
155198

156-
See [Create a public Standard Load Balancer](quickstart-load-balancer-standard-public-portal.md) to get started with using a Load Balancer: create one, create VMs with a custom IIS extension installed, and load balance the web app between the VMs.
199+
- See [Create a public Standard Load Balancer](quickstart-load-balancer-standard-public-portal.md) to get started with using a Load Balancer: create one, create VMs with a custom IIS extension installed, and load balance the web app between the VMs.
200+
- Learn more about [Azure Load Balancer](load-balancer-overview.md).
201+
- Learn about using [Standard Load Balancer and Availability Zones](load-balancer-standard-availability-zones.md).
202+
- Learn about [Health Probes](load-balancer-custom-probe-overview.md).
203+
- Learn about [Standard Load Balancer Diagnostics](load-balancer-standard-diagnostics.md).
204+
- Learn about using [Load Balancer for outbound connections](load-balancer-outbound-connections.md).
205+
- Learn about [Outbound Rules](load-balancer-outbound-rules-overview.md).
206+
- Learn about [TCP Reset on Idle](load-balancer-tcp-reset.md).
207+
- Learn about [Standard Load Balancer with HA Ports load balancing rules](load-balancer-ha-ports-overview.md).
208+
- Learn about using [Load Balancer with Multiple Frontends](load-balancer-multivip-overview.md).
209+
- Learn more about [Network Security Groups](../virtual-network/security-overview.md).

0 commit comments

Comments
 (0)