Skip to content

Commit af19bfa

Browse files
Merge pull request #302832 from MicrosoftDocs/main
Auto Publish – main to live - 2025-07-16 17:00 UTC
2 parents 4d0235a + 8200ccf commit af19bfa

31 files changed

+676
-483
lines changed
152 KB
Loading

articles/app-service/overview-inbound-outbound-ips.md

Lines changed: 122 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how inbound and outbound IP addresses are used in Azure App S
44
author: msangapu-msft
55
ms.author: msangapu
66
ms.topic: article
7-
ms.date: 03/10/2025
7+
ms.date: 07/16/2025
88
ms.update-cycle: 1095-days
99
ms.custom:
1010
- UpdateFrequency3
@@ -19,42 +19,42 @@ ms.custom:
1919

2020
## How IP addresses work in App Service
2121

22-
An App Service app runs in an App Service plan, and App Service plans are deployed into one of the deployment units in the Azure infrastructure (internally called a webspace). Each deployment unit is assigned a set of virtual IP addresses, which includes one public inbound IP address and a set of [outbound IP addresses](#find-outbound-ips). All App Service plans in the same deployment unit, and app instances that run in them, share the same set of virtual IP addresses. For an App Service Environment (an App Service plan in [Isolated tier](https://azure.microsoft.com/pricing/details/app-service/)), the App Service plan is the deployment unit itself, so the virtual IP addresses are dedicated to it as a result.
22+
An App Service app runs in an App Service plan, and App Service plans are deployed into one of the deployment units in the Azure infrastructure (internally called a webspace). Each deployment unit is assigned to a set of virtual IP addresses, which includes one public inbound IP address and a set of [outbound IP addresses](#find-outbound-ips). All App Service plans in the same deployment unit, and app instances that run in them, share the same set of virtual IP addresses. For an App Service Environment (an App Service plan in [Isolated tier](https://azure.microsoft.com/pricing/details/app-service/)), the App Service plan is the deployment unit itself, so the virtual IP addresses are dedicated to it as a result.
2323

2424
Because you're not allowed to move an App Service plan between deployment units, the virtual IP addresses assigned to your app usually remain the same, but there are exceptions.
2525

2626
> [!NOTE]
27-
> The Premium V4 tier does not provide a stable set of outbound IP addresses. This behavior is intentional. Although applications running on the Premium V4 tier can make outbound calls to internet-facing endpoints, the App Service platform does not provide a stable set of outbound IP addresses for the Premium V4 tier. This is a change in behavior from previous App Service pricing tiers. The portal will show "Dynamic" for outbound IP addresses and additional outbound IP addresses information for applications using Premium V4. ARM and CLI calls will return empty strings for the values of *outboundIpAddresses* and *possibleOutboundIpAddresses*. If applications running on Premium V4 require a stable outbound IP address(es), developers will need to use a solution like [Azure NAT Gateway](overview-nat-gateway-integration.md) to get a predictable IP address for outbound internet-facing traffic.
27+
> The Premium V4 tier doesn't provide a stable set of outbound IP addresses. This behavior is intentional. Although applications running on the Premium V4 tier can make outbound calls to internet-facing endpoints, the App Service platform doesn't provide a stable set of outbound IP addresses for the Premium V4 tier. This behavior is a change in behavior from previous App Service pricing tiers. The portal shows "Dynamic" for outbound IP addresses and additional outbound IP addresses information for applications using Premium V4. Azure Resource Manager (ARM) and CLI calls return empty strings for the values of *outboundIpAddresses* and *possibleOutboundIpAddresses*. If applications running on Premium V4 require a stable outbound IP address or addresses, developers need to use a solution like [Azure NAT Gateway](overview-nat-gateway-integration.md) to get a predictable IP address for outbound internet-facing traffic.
2828
2929
## When inbound IP changes
3030

31-
Regardless of the number of scaled-out instances, each app has a single inbound IP address. The inbound IP address may change when you perform one of the following actions:
31+
Regardless of the number of scaled-out instances, each app has a single inbound IP address. The inbound IP address might change when you perform one of the following actions:
3232

33-
- Delete an app and recreate it in a different resource group (deployment unit may change).
34-
- Delete the last app in a resource group _and_ region combination and recreate it (deployment unit may change).
33+
- Delete an app and recreate it in a different resource group (deployment unit might change).
34+
- Delete the last app in a resource group _and_ region combination and recreate it (deployment unit might change).
3535
- Delete an existing IP-based TLS binding, such as during certificate renewal (see [Renew certificate](configure-ssl-certificate.md#renew-an-expiring-certificate)).
3636

3737
## Find the inbound IP
3838

39-
Just run the following command in a local terminal:
39+
Run the following command in a local terminal:
4040

4141
```bash
4242
nslookup <app-name>.azurewebsites.net
4343
```
4444

4545
## Get a static inbound IP
4646

47-
Sometimes you might want a dedicated, static IP address for your app. To get a static inbound IP address, you need to [secure a custom DNS name with an IP-based certificate binding](./configure-ssl-bindings.md). If you don't actually need TLS functionality to secure your app, you can even upload a self-signed certificate for this binding. In an IP-based TLS binding, the certificate is bound to the IP address itself, so App Service creates a static IP address to make it happen.
47+
Sometimes you might want a dedicated, static IP address for your app. To get a static inbound IP address, you need to [secure a custom DNS name with an IP-based certificate binding](./configure-ssl-bindings.md). If you don't actually need TLS functionality to secure your app, you can even upload a self-signed certificate for this binding. In an IP-based TLS binding, the certificate is bound to the IP address itself, so App Service creates a static IP address to make it happen.
4848

4949
## When outbound IPs change
5050

5151
Regardless of the number of scaled-out instances, each app has a set number of outbound IP addresses at any given time. Any outbound connection from the App Service app, such as to a back-end database, uses one of the outbound IP addresses as the origin IP address. The IP address to use is selected randomly at runtime, so your back-end service must open its firewall to all the outbound IP addresses for your app.
5252

5353
The set of outbound IP addresses for your app changes when you perform one of the following actions:
5454

55-
- Delete an app and recreate it in a different resource group (deployment unit may change).
56-
- Delete the last app in a resource group _and_ region combination and recreate it (deployment unit may change).
57-
- Scale your app between the lower tiers (**Basic**, **Standard**, and **Premium**), the **PremiumV2** tier, the **PremiumV3** tier, and the **Pmv3** options within the **PremiumV3** tier (IP addresses may be added to or subtracted from the set).
55+
- Delete an app and recreate it in a different resource group (deployment unit might change).
56+
- Delete the last app in a resource group _and_ region combination and recreate it (deployment unit might change).
57+
- Scale your app between the lower tiers (**Basic**, **Standard**, and **Premium**), the **PremiumV2** tier, the **PremiumV3** tier, and the **Pmv3** options within the **PremiumV3** tier (IP addresses might be added to or subtracted from the set).
5858

5959
You can find the set of all possible outbound IP addresses your app can use, regardless of pricing tiers, by looking for the `possibleOutboundIpAddresses` property or in the **Additional Outbound IP Addresses** field in the **Properties** page in the Azure portal. See [Find outbound IPs](#find-outbound-ips).
6060

@@ -90,13 +90,13 @@ For function apps, see [Function app outbound IP addresses](/azure/azure-functio
9090

9191
## Get a static outbound IP
9292

93-
You can control the IP address of outbound traffic from your app by using virtual network integration together with a virtual network NAT gateway to direct traffic through a static public IP address. [Virtual network integration](./overview-vnet-integration.md) is available on **Basic**, **Standard**, **Premium**, **PremiumV2**, and **PremiumV3** App Service plans. To learn more about this setup, see [NAT gateway integration](./networking/nat-gateway-integration.md).
93+
You can control the IP address of outbound traffic from your app by using virtual network integration and a virtual network NAT gateway to direct traffic through a static public IP address. [Virtual network integration](./overview-vnet-integration.md) is available on **Basic**, **Standard**, **Premium**, **PremiumV2**, and **PremiumV3** App Service plans. To learn more about this setup, see [NAT gateway integration](./networking/nat-gateway-integration.md).
9494

9595
## IP Address properties in Azure portal
9696

97-
IP Addresses appear in multiple places in Azure portal. The properties page will show you the raw output from `inboundIpAddress`, `possibleInboundIpAddresses`, `outboundIpAddresses`, and `possibleOutboundIpAddresses`. The overview page will also show the same values, but not include the **Possible Inbound IP Addresses**.
97+
IP Addresses appear in multiple places in Azure portal. The properties page shows you the raw output from `inboundIpAddress`, `possibleInboundIpAddresses`, `outboundIpAddresses`, and `possibleOutboundIpAddresses`. The overview page also shows the same values, but not include the **Possible Inbound IP Addresses**.
9898

99-
Networking overview shows the combination of **Inbound IP Address** and any private endpoint IP addresses in the **Inbound addresses** field. If public network access is disabled, the public IP address won't be shown. The **Outbound addresses** field has a combined list of **(Possible) Outbound IP Addresses**, and if the app is virtual network integrated and is routing all traffic, and the subnet has a NAT gateway attached, the field will also include the IP addresses from the NAT gateway.
99+
Networking overview shows the combination of **Inbound IP Address** and any private endpoint IP addresses in the **Inbound addresses** field. If public network access is disabled, the public IP address isn't shown. The **Outbound addresses** field has a combined list of **(Possible) Outbound IP Addresses**, and if the app is virtual network integrated and is routing all traffic, and the subnet has a NAT gateway attached, the field also includes the IP addresses from the NAT gateway.
100100

101101
:::image type="content" source="./media/overview-inbound-outbound-ips/networking-overview.png" alt-text="Screenshot that shows how IP addresses are shown in the networking overview page.":::
102102

@@ -111,6 +111,114 @@ The tag can be used to allow outbound traffic in a Network security group (NSG)
111111
> [!NOTE]
112112
> Service tag helps you define network access, but it shouldn't be considered as a replacement for proper network security measures as it doesn't provide granular control over individual IP addresses.
113113
114+
## Inbound IPv6 support (public preview)
115+
116+
Azure App Service supports IPv6 for inbound traffic. Apps can receive traffic over both IPv4 and IPv6 protocols, providing compatibility with modern networks and clients that require IPv6 connectivity.
117+
118+
> [!NOTE]
119+
> Inbound IPv6 support is in public preview. Outbound IPv6 support is in public preview just for Windows apps. For more information on outbound IPv6 support, see [Announcing App Service Outbound IPv6 Support in Public Preview](https://techcommunity.microsoft.com/blog/appsonazureblog/announcing-app-service-outbound-ipv6-support-in-public-preview/4423368). All outbound connections from your Linux apps still use IPv4.
120+
121+
### Prerequisites
122+
123+
To use IPv6 inbound traffic, you need:
124+
125+
- An IPv6 address that accepts incoming traffic
126+
- A DNS record that returns an IPv6 (AAAA) record
127+
- A client that can send and receive IPv6 traffic
128+
129+
> [!IMPORTANT]
130+
> Many local networks and development environments only support IPv4, which might affect your ability to test IPv6 connectivity from your local machine.
131+
132+
### How IPv6 addressing works
133+
134+
All App Service deployment units include IPv6 addresses, enabling your app to receive traffic on both IPv4 and IPv6 addresses. For backward compatibility, the DNS response for the default hostname (`<app-name>.azurewebsites.net`) returns only the IPv4 address by default.
135+
136+
You can configure the IP mode behavior using the `IPMode` property:
137+
138+
- **IPv4** (default): DNS returns IPv4 address only
139+
- **IPv6**: DNS returns IPv6 address only
140+
- **IPv4AndIPv6**: DNS returns both IPv4 and IPv6 addresses
141+
142+
### Configure IPv6 support
143+
144+
# [Azure portal](#tab/azure-portal)
145+
146+
To update an app to return IPv6 DNS records in the Azure portal, go to the **Configuration** page for the App Service app and set the **Inbound IP mode** property.
147+
148+
:::image type="content" source="./media/overview-inbound-outbound-ips/ip-mode-configuration.png" alt-text="Screenshot that shows how the inbound IP mode is set in the App Service configuration page.":::
149+
150+
# [Azure CLI](#tab/azure-cli)
151+
152+
To update an app to return IPv6 DNS records in the Azure CLI, run the following command.
153+
154+
```azurecli
155+
# Configure IPv6 only
156+
az resource update --name <app-name> --set properties.ipMode="IPv6" -g <resource-group-name> --resource-type "Microsoft.Web/sites"
157+
158+
# To update a slot, you need to provide the resource ID of the slot
159+
az resource update --ids '/subscriptions/<sub-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/sites/<app-name>/slots/<slot-name>' --set properties.ipMode='IPv6'
160+
```
161+
162+
# [Azure Resource Manager template](#tab/arm-template)
163+
164+
To deploy a new app or update an existing app using an Azure Resource Manager (ARM) template, set the `IPMode` to either "IPv6" or "IPv4AndIPv6".
165+
166+
```json
167+
{
168+
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
169+
"contentVersion": "1.0.0.0",
170+
"variables": {
171+
"appName": "APP-SERVICE-NAME",
172+
"appIPMode": "IPv6",
173+
"appServicePlanName": "PLAN-NAME",
174+
"location": "[resourceGroup().location]"
175+
},
176+
"resources": [
177+
{
178+
"name": "[variables('appName')]",
179+
"type": "Microsoft.Web/sites",
180+
"apiVersion": "2021-03-01",
181+
"location": "[variables('location')]",
182+
"dependsOn": [
183+
"[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
184+
],
185+
"properties": {
186+
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
187+
"httpsOnly": true,
188+
"ipMode": "[variables('appIPMode')]"
189+
}
190+
}
191+
]
192+
}
193+
```
194+
195+
---
196+
197+
### Test IPv6 connectivity
198+
199+
To test IPv6 connectivity to your app, use the following curl command:
200+
201+
```bash
202+
curl -6 https://<app-name>.azurewebsites.net
203+
```
204+
205+
### Custom domains and IPv6
206+
207+
When using custom domains, you can configure DNS records to support IPv6:
208+
209+
- **IPv6 only**: Add an AAAA record pointing to your app's IPv6 address. Clients must support IPv6.
210+
- **Dual-stack**: Add both A (IPv4) and AAAA (IPv6) records, or use a CNAME record to the default hostname, which inherits the `IPMode` behavior.
211+
212+
### IPv6 considerations
213+
214+
Consider the following factors when implementing IPv6 support:
215+
216+
- **Compatibility**: Use `IPv4AndIPv6` mode for maximum client compatibility
217+
- **Testing**: Verify that your network infrastructure and test environments support IPv6
218+
- **Client support**: Ensure your application clients can handle IPv6 addresses
219+
- **Outbound traffic**: Remember that outbound connections always use IPv4
220+
- **Client testing**: To ensure propert functionality, test your application with both IPv4 and IPv6 clients
221+
114222
## Next steps
115223

116224
* Learn how to [restrict inbound traffic](./app-service-ip-restrictions.md) by source IP addresses.

articles/app-service/overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Whether you're a student, a small business, a startup, or an enterprise, App Ser
3535
- **Command-line friendly**: Deploy using command line tools you already use, such as Maven, Gradle, Azure Developer CLI, Azure CLI, and Azure PowerShell.
3636
- **Scalability**: Automatically scale your applications based on demand.
3737
- **Global reach**: Deploy your apps in data centers around the world.
38-
- **Application templates**: Choose from an extensive list of application templates in the [Azure Marketplace](https://azure.microsoft.com/marketplace/), such as WordPress, Joomla, and Drupal.
38+
- **Application templates**: Choose from an extensive list of application templates in the [Azure Marketplace](https://azure.microsoft.com/marketplace/), such as WordPress, Joomla, Django , Node.js and Drupal.
3939
- **Social sign-in support**: Turn-key social sign-in with [Google](configure-authentication-provider-google.md), [Facebook](configure-authentication-provider-facebook.md), [X](configure-authentication-provider-twitter.md), and [Microsoft accounts](configure-authentication-provider-microsoft.md).
4040

4141
### Enterprises
@@ -51,4 +51,4 @@ For information about which Azure compute services best fit your scenario, see [
5151

5252
## Next Steps
5353

54-
- [Getting started with Azure App Service](getting-started.md)
54+
- [Getting started with Azure App Service](getting-started.md)
189 KB
Loading

articles/azure-vmware/native-connect-multiple-private-clouds.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Connect multiple Azure VMware Solution Generation 2 Private Clouds
3-
description: Learn about connecting multiple Azure VMware Solution Generation 2 Private Clouds.
2+
title: Connect multiple Azure VMware Solution Generation 2 private clouds
3+
description: Learn about connecting multiple Azure VMware Solution Generation 2 private clouds.
44
ms.topic: how-to
55
ms.service: azure-vmware
66
author: jjaygbay1
@@ -11,21 +11,21 @@ ms.custom: engagement-fy25
1111
# Customer intent: As a cloud administrator, I want to connect multiple Azure VMware Solution Generation 2 private clouds using Virtual Network peering, so that I can ensure efficient communication and optimize performance across my cloud infrastructure.
1212
---
1313

14-
# Connect multiple Azure VMware Solution Generation 2 Private Clouds
14+
# Connect multiple Azure VMware Solution Generation 2 private clouds
1515

16-
In this article, you learn how to connect a Azure VMware Solution Generation 2 (Gen 2) private cloud to other Gen 2 private clouds.
16+
In this article, you learn how to connect an Azure VMware Solution Generation 2 (Gen 2) private cloud to other Gen 2 private clouds.
1717

1818
## Prerequisite
1919

2020
Have multiple Azure VMware Solution Gen 2 private clouds deployed successfully.
2121

22-
## Connect multiple Azure VMware Solution Gen 2
22+
## Use Virtual Network peering to connect multiple private clouds
2323

24-
Private clouds deployed in different Azure Virtual Networks can be connected using Virtual Network peering. The Virtual Network peering provides the best possible throughput and latency between Azure VMware Solution private clouds in the same region. For more information about how to do Azure Virtual Network peering, see [Create, change, or delete a Virtual Network peering](/azure/virtual-network/virtual-network-peering-overview).
24+
You can connect private clouds deployed in different Azure Virtual Networks using virtual network peering. The virtual network peering provides the best possible throughput and latency between Azure VMware Solution private clouds in the same region. For more information about how to do Azure Virtual Network peering, see [Create, change, or delete a Virtual Network peering](/azure/virtual-network/virtual-network-peering-overview).
2525

2626
Depending on the location of the private cloud, you may require local Virtual Network peering or a global Virtual Network peering.
2727

28-
:::image type="content" source="./media/native-connectivity/native-connect-multiple-solutions-on-premises.png" alt-text="Diagram of an multiple Azure VMware Solution Gen 2 private clouds connected together." lightbox="media/native-connectivity/native-connect-multiple-solutions-on-premises.png":::
28+
:::image type="content" source="./media/native-connectivity/native-connect-multiple-solutions-on-premises.png" alt-text="Diagram of multiple Azure VMware Solution Gen 2 private clouds connected together." lightbox="media/native-connectivity/native-connect-multiple-solutions-on-premises.png":::
2929

3030
## Related topics
3131
- [Connectivity to an Azure Virtual Network](native-network-connectivity.md)

0 commit comments

Comments
 (0)