Skip to content

Commit 42180af

Browse files
committed
Changes in outbound connection guide
1 parent a4d7294 commit 42180af

1 file changed

Lines changed: 63 additions & 41 deletions

File tree

articles/sap/workloads/high-availability-guide-standard-load-balancer-outbound-connections.md

Lines changed: 63 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,58 +14,80 @@ ms.custom: sfi-image-nochange
1414
# Customer intent: As a system administrator managing SAP high-availability solutions, I want to configure outbound connectivity options for Azure VMs without exposing them to public endpoints, so that I can ensure compliance with security requirements while maintaining necessary Azure service accessibility.
1515
---
1616

17-
# Public endpoint connectivity for Virtual Machines using Azure Standard Load Balancer in SAP high-availability scenarios
17+
# Outbound connectivity for standalone SAP VMs and SAP VMs behind Azure Standard Load Balancer
1818

19-
The scope of this article is to describe configurations that enable outbound connectivity to public end points. The configurations are mainly in the context of high availability with Pacemaker for SUSE / RHEL.
19+
> [!IMPORTANT]
20+
> For new virtual networks created after March 31, 2026, Azure defaults subnets to private, which disables default outbound access. Any VM that must reach public internet or public Microsoft endpoints now needs an explicit outbound method. Existing virtual networks are not changed automatically.
2021
21-
If you're using Pacemaker with Azure fence agent in your high availability solution, then the virtual machines (VMs) must have outbound connectivity to the Azure management API. The article presents several options to enable you to select the option that's best suited for your scenario.
22+
This document outline different options to configure explicit outbound internet connectivity to reach internet or public endpoint for Azure VMs running SAP workloads. It covers both standalone VMs and VMs placed behind an internal Azure Standard Load Balancer.
2223

2324
## Overview
2425

25-
When you implement high availability for SAP solutions via clustering, one of the necessary components is [Azure Load Balancer](../../load-balancer/load-balancer-overview.md). Azure offers two load balancer SKUs: Standard and Basic.
26+
SAP systems deployment on Azure require outbound connectivity to reach internet or public endpoints even when the VMs themselves are not publicly reachable. Common examples include:
2627

27-
Standard Azure load balancer offers some advantages over the Basic load balancer. For instance, Standard works across Azure Availability zones, has better monitoring and logging capabilities for easier troubleshooting, and reduced latency. The "high availability ports" feature covers all ports, making it no longer necessary to list all individual ports.
28+
- Azure fence agent, requires access to `management.azure.com` and `login.microsoftonline.com` for STONITH operations in pacemaker clusters.
29+
- [Azure Backup](../../backup/backup-azure-sap-hana-database.md#establish-network-connectivity)
30+
- [Azure Site Recovery](../../site-recovery/azure-to-azure-about-networking.md#outbound-connectivity-for-urls)
31+
- Using package repositories for patching the operating system.
32+
- SAP application data flow may require outbound connectivity to external APIs or partner systems.
2833

29-
There are some important differences between the Basic and the Standard SKU of Azure load balancer. One of them is the handling of outbound traffic to public end point. For full Basic versus Standard SKU load balancer comparison, see [Load Balancer SKU comparison](../../load-balancer/load-balancer-overview.md).
34+
When VMs are placed in the backend pool of an internal Standard load balancer, there is no outbound connectivity by default. This was always true for Standard SKU load balancers. The March 31, 2026 change extends this principle to all new virtual network, even for standalone VMs without any load balancer.
3035

31-
When VMs without public IP addresses are placed in the backend pool of internal (no public IP address) Standard Azure load balancer, there's no outbound connectivity to public end points, unless extra configuration is performed.
36+
> [!NOTE]
37+
> When VMs without public IP addresses are added to the back-end pool of an internal Standard Azure Load Balancer, they lack outbound internet connectivity. Further configuration is needed to enable routing to public endpoints.
38+
> VMs that have public IP addresses, or that are included in an Azure Load Balancer backend pool with a public IP, already have outbound access to public endpoints.
3239
33-
A VM can establish outbound connectivity to public endpoints if a public IP address is assigned. The same applies when the VM is included in the backend pool of a load balancer with a public IP.
40+
## Outbound connectivity options
3441

35-
SAP systems often contain sensitive business data. It's rarely acceptable for VMs hosting SAP systems to be accessible via public IP addresses. At the same time, there are scenarios, which would require outbound connectivity from the VM to public end points.
42+
There are dfiferent ways to configure explicit outbound connectivity for VMs, as illustrated in the flowchart at [How and when default outbound access is provided](../../virtual-network/ip-services/default-outbound-access.md?tabs=portal#how-and-when-default-outbound-access-is-provided). Before selecting an approach, review the capabilities, constraints, and supporting documentation for each option to determine the best fit for your SAP environment, security requirements, and operational model.
3643

37-
Examples of scenarios, requiring access to Azure public end point are:
44+
# [NAT Gateway](#tab/nat-gateway)
3845

39-
- Azure Fence Agent requires access to **management.azure.com** and **login.microsoftonline.com**
40-
- [Azure Backup](../../backup/backup-azure-sap-hana-database.md#establish-network-connectivity)
41-
- [Azure Site Recovery](../../site-recovery/azure-to-azure-about-networking.md#outbound-connectivity-for-urls)
42-
- Using public repository for patching the operating system
43-
- The SAP application data flow may require outbound connectivity to public end point
46+
- [What is Azure NAT Gateway?](../../nat-gateway/nat-overview.md) - Overview of Azure NAT Gateway, its architecture, and key benefits for outbound connectivity.
47+
- [Tutorial: Create a NAT gateway using the Azure portal](../../nat-gateway/quickstart-create-nat-gateway-v2.md) - Instructions for creating and configuring a NAT gateway resource.
48+
- [Design virtual networks with NAT gateway](../../nat-gateway/nat-gateway-design.md) - Guidance on planning and designing NAT gateway deployments within your virtual network.
4449

45-
If your SAP deployment doesn’t require outbound connectivity to public end points, you don’t need to implement extra configuration. It's sufficient to create internal standard SKU Azure Load Balancer for your high availability scenario, assuming that there's also no need for inbound connectivity from public end points.
50+
# [Azure Standard Load Balancer](#tab/azure-standard-lb)
4651

47-
> [!NOTE]
48-
> When VMs without public IP addresses are added to the back-end pool of an internal Standard Azure Load Balancer, they lack outbound internet connectivity. Further configuration is needed to enable routing to public endpoints.
49-
> VMs that have public IP addresses, or that are included in an Azure Load Balancer backend pool with a public IP, already have outbound access to public endpoints.
52+
- [Azure Standard Load Balancer overview](../../load-balancer/load-balancer-overview.md) - Comprehensive overview of Azure Standard Load Balancer, important principles, concepts, and tutorials.
53+
- [Outbound connections in Azure](../../load-balancer/load-balancer-outbound-connections.md#scenarios) - Scenarios for achieving outbound connectivity in Azure.
54+
- [Load balancer outbound rules](../../load-balancer/load-balancer-outbound-connections.md#outboundrules) - Concepts of load balancer outbound rules and how to create them for explicit SNAT configuration.
5055

51-
## Prerequisites
56+
# [Azure Firewall](#tab/azure-firewall)
5257

53-
**Azure Standard Load Balancer**:
58+
- [What is Azure Firewall?](../../firewall/overview.md) - Overview of Azure Firewall, a cloud-native network security service.
59+
- [Tutorial: Deploy and configure Azure Firewall using the Azure portal](../../firewall/tutorial-firewall-deploy-portal.md) - Step-by-step instructions for deploying Azure Firewall.
60+
- [Virtual network traffic routing - User-defined routes](../../virtual-network/virtual-networks-udr-overview.md#user-defined) - How to configure custom routing to direct traffic through a virtual appliance.
61+
- [Network security groups - Service tags](../../virtual-network/network-security-groups-overview.md#service-tags) - Simplify NSG and firewall rule configuration using service tags.
5462

55-
* [Azure Standard Load Balancer overview](../../load-balancer/load-balancer-overview.md) - Comprehensive overview of Azure Standard Load balancer, important principles, concepts, and tutorials.
56-
* [Outbound connections in Azure](../../load-balancer/load-balancer-outbound-connections.md#scenarios) - Scenarios on how to achieve outbound connectivity in Azure.
57-
* [Load balancer outbound rules](../../load-balancer/load-balancer-outbound-connections.md#outboundrules)- Explains the concepts of load balancer outbound rules and how to create outbound rules.
63+
# [Proxy Server](#tab/proxy-server)
5864

59-
**Azure Firewall**:
65+
- There are many different proxy options available in the industry. Understand how the proxy is configured in your environment.
6066

61-
* [Azure Firewall Overview](../../firewall/overview.md)- overview of Azure Firewall.
62-
* [Tutorial: Deploy and configure Azure Firewall](../../firewall/tutorial-firewall-deploy-portal.md) - instructions on how to configure Azure Firewall via Azure portal.
63-
* [Virtual Networks - User defined rules](../../virtual-network/virtual-networks-udr-overview.md#user-defined) - Azure routing concepts and rules.
64-
* [Security Groups Service Tags](../../virtual-network/network-security-groups-overview.md#service-tags) - how to simplify your Network Security Groups (NSG) and Firewall configuration with service tags.
67+
---
6568

6669
## Achieve outbound connectivity to public end points
6770

68-
# [Option 1](#tab/option-1)
71+
# [NAT Gateway](#tab/nat-gateway)
72+
73+
Azure NAT Gateway is a fully managed, highly resilient Network Address Translation (NAT) service that provides outbound connectivity for VMs in a subnet. NAT Gateway is configured at the subnet level — once associated with a subnet, it becomes the preferred outbound connectivity method for all resources in that subnet. NAT Gateway takes precedence over other outbound configurations, including load balancer outbound rules and instance-level public IP addresses.
74+
75+
To achieve outbound connectivity to public end points, without allowing inbound connectivity to the VM from a public end point, associate an Azure NAT Gateway with the subnet where the SAP VMs and Standard Load Balancer are deployed. Use [Network Security Groups](../../virtual-network/network-security-groups-overview.md) to control the public end points that are accessible for outbound calls from the VMs.
76+
77+
## Important considerations
78+
79+
- Azure NAT Gateway is a fully managed service with built-in high availability and supports [zonal and zone-redundant deployments](../../nat-gateway/nat-availability-zones.md). No dditional infrastructure or routing configuration is required. Review the key [limitation of Standard v2 Azure NAT Gateway (zone-redundant)](../../nat-gateway/nat-overview.md#key-limitations-of-standardv2-nat-gateway) to ensure that it supports your configuration.
80+
- NAT Gateway is configured at the subnet level. All VMs in the associated subnet automatically use the NAT Gateway for outbound connectivity. No per-VM configuration is needed.
81+
- When a NAT Gateway is associated with a subnet, it takes precedence over other explicit outbound methods, including load balancer outbound rules and instance-level public IP addresses for new connections.
82+
83+
## Deployment steps
84+
85+
For step-by-step instructions on creating and configuring an Azure NAT Gateway, see:
86+
87+
- [Quickstart: Create a NAT gateway using the Azure portal](../../nat-gateway/quickstart-create-nat-gateway-portal-v2.md) - Instructions on how to create a NAT gateway resource and associate it with a subnet.
88+
- [Manage a NAT gateway](../../nat-gateway/manage-nat-gateway-v2.md) - How to add or remove public IP addresses and subnets from an existing NAT Gateway.
89+
90+
# [Azure Standard Load Balancer](#tab/azure-standard-lb)
6991

7092
Create another external Azure Standard Load Balancer for outbound connections to internet.
7193

@@ -75,7 +97,7 @@ The configuration would look like:
7597

7698
![A diagram of control connectivity to public end points with Network Security Groups.](./media/high-availability-guide-standard-load-balancer/high-availability-guide-standard-load-balancer-public.png)
7799

78-
### Important considerations
100+
## Important considerations
79101

80102
- You can use one extra Public Load Balancer for multiple VMs in the same subnet to achieve outbound connectivity to public end point and optimize cost.
81103
- Use [Network Security Groups](../../virtual-network/network-security-groups-overview.md) to control which public end points are accessible from the VMs. You can assign the Network Security Group either to the subnet, or to each VM. Where possible, use [Service tags](../../virtual-network/network-security-groups-overview.md#service-tags) to reduce the complexity of the security rules.
@@ -84,7 +106,7 @@ The configuration would look like:
84106
> [!TIP]
85107
> Where possible, use [Service tags](../../virtual-network/network-security-groups-overview.md#service-tags) to reduce the complexity of NSG.
86108
87-
### Deployment steps
109+
## Deployment steps
88110

89111
Create the Load Balancer.
90112

@@ -117,7 +139,7 @@ Create the Load Balancer.
117139

118140
For more information on Azure NSG, see [Security Groups](../../virtual-network/network-security-groups-overview.md).
119141

120-
# [Option 2](#tab/option-2)
142+
# [Azure Firewall](#tab/azure-firewall)
121143

122144
Another option to achieve outbound connectivity to public end points, without allowing inbound connectivity to the VM from public end points, is with Azure Firewall. Azure Firewall is a managed service, with built-in High Availability and it can span multiple Availability Zones.
123145

@@ -127,7 +149,7 @@ The architecture would look like:
127149

128150
![A diagram of an outbound network connection passing through an Azure Firewall.](./media/high-availability-guide-standard-load-balancer/high-availability-guide-standard-load-balancer-firewall.png)
129151

130-
### Important considerations
152+
## Important considerations
131153

132154
- Azure firewall is cloud native service, with built-in High Availability and it supports zonal deployment.
133155
- Requires an extra subnet that must be named AzureFirewallSubnet.
@@ -137,7 +159,7 @@ The architecture would look like:
137159
> [!TIP]
138160
> Where possible, use [Service tags](../../virtual-network/network-security-groups-overview.md#service-tags) to reduce the complexity of the Azure Firewall rules.
139161
140-
### Deployment steps
162+
## Deployment steps
141163

142164
The deployment steps assume that you already have your virtual network and subnet defined for your VMs.
143165

@@ -185,11 +207,11 @@ Create User Defined Route from the subnet of your VMs to the private IP of **MyA
185207
1. Next hop address: Enter the private IP address of the firewall you configured: **11.97.1.4**.
186208
1. Save your information.
187209

188-
# [Option 3](#tab/option-3)
210+
# [Proxy Server](#tab/proxy-server)
189211

190212
You could use proxy to allow Pacemaker calls to the Azure management API public end point.
191213

192-
### Important considerations
214+
## Important considerations
193215

194216
- If there's already corporate proxy in place, you could route outbound calls to public end points through it. Outbound calls to public end points go through the corporate control point.
195217
- Make sure the proxy configuration allows outbound connectivity to Azure management API: `https://management.azure.com` and `https://login.microsoftonline.com`.
@@ -199,15 +221,15 @@ You could use proxy to allow Pacemaker calls to the Azure management API public
199221
- Depending on the location of the proxy, it may introduce extra latency in the calls from the Azure Fence Agent to the Azure Management API. If your corporate proxy is still on the premises, while your Pacemaker cluster is in Azure, measure latency and consider, if this solution is suitable for you.
200222
- If there isn’t already highly available corporate proxy in place, we don't recommend this option as the customer would be incurring extra cost and complexity. If you decide to deploy extra proxy solution, to allow outbound connectivity from Pacemaker to Azure Management public API, you need to make sure the proxy is highly available. The latency from the VMs to the proxy is low.
201223

202-
### Pacemaker configuration with Proxy
224+
## Pacemaker configuration with Proxy
203225

204226
There are many different Proxy options available in the industry. Step-by-step instructions for the proxy deployment are outside of the scope of this document. In the following example, we assume that your proxy is responding to **MyProxyService** and listening to port **MyProxyPort**.
205227

206228
To allow pacemaker to communicate with the Azure management API, perform the following steps on all cluster nodes:
207229

208230
1. Edit the pacemaker configuration file `/etc/sysconfig/pacemaker` and add the following lines (all cluster nodes):
209231

210-
```
232+
```bash
211233
sudo vi /etc/sysconfig/pacemaker
212234
# Add the following lines
213235
http_proxy=http://MyProxyService:MyProxyPort
@@ -218,7 +240,7 @@ To allow pacemaker to communicate with the Azure management API, perform the fol
218240

219241
**SUSE**:
220242

221-
```
243+
```bash
222244
# Place the cluster in maintenance mode
223245
sudo crm configure property maintenance-mode=true
224246

@@ -231,7 +253,7 @@ To allow pacemaker to communicate with the Azure management API, perform the fol
231253

232254
**Red Hat**:
233255

234-
```
256+
```bash
235257
# Place the cluster in maintenance mode
236258
sudo pcs property set maintenance-mode=true
237259

0 commit comments

Comments
 (0)