Skip to content

Commit b055056

Browse files
Merge pull request #224305 from JackStromberg/patch-100
Private AppGW feature public preview
2 parents cec896f + 864d5bf commit b055056

19 files changed

+407
-18
lines changed

articles/application-gateway/application-gateway-faq.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,13 @@ sections:
276276

277277
- question: How do I use Application Gateway V2 with only private frontend IP address?
278278
answer: |
279-
Application Gateway V2 currently doesn't support only private IP mode. It supports the following combinations
279+
Application Gateway V2 currently supports private IP frontend configuration only (no public IP) via public preview. More information can be found [here](application-gateway-private-deployment.md).
280+
281+
For current general availability support, Application Gateway V2 supports the following combinations
280282
* Private IP and Public IP
281283
* Public IP only
282284
283-
But if you'd like to use Application Gateway V2 with only private IP, you can follow the process below:
285+
To restrict traffic only to private IP addresses with current functionality, you can follow the process below:
284286
1. Create an Application Gateway with both public and private frontend IP address
285287
2. Don't create any listeners for the public frontend IP address. Application Gateway won't listen to any traffic on the public IP address if no listeners are created for it.
286288
3. Create and attach a [Network Security Group](../virtual-network/network-security-groups-overview.md) for the Application Gateway subnet with the following configuration in the order of priority:

articles/application-gateway/application-gateway-private-deployment.md

Lines changed: 372 additions & 0 deletions
Large diffs are not rendered by default.

articles/application-gateway/application-gateway-probe-overview.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ ms.custom: devx-track-azurepowershell
1414

1515
Azure Application Gateway by default monitors the health of all resources in its backend pool and automatically removes any resource considered unhealthy from the pool. Application Gateway continues to monitor the unhealthy instances and adds them back to the healthy backend pool once they become available and respond to health probes. By default, Application gateway sends the health probes with the same port that is defined in the backend HTTP settings. A custom probe port can be configured using a custom health probe.
1616

17-
The source IP address that Application Gateway uses for health probes will depend on the backend pool:
17+
The source IP address that Application Gateway uses for health probes depend on the backend pool:
1818

1919
- If the server address in the backend pool is a public endpoint, then the source address is the application gateway's frontend public IP address.
2020
- If the server address in the backend pool is a private endpoint, then the source IP address is from the application gateway subnet's private IP address space.
2121

22-
![application gateway probe example][1]
22+
:::image type="content" source="media/application-gateway-probe-overview/appgatewayprobe.png" alt-text="Diagram showing Application Gateway initiating health probes to individual backend targets within a backend pool":::
2323

2424
In addition to using default health probe monitoring, you can also customize the health probe to suit your application's requirements. In this article, both default and custom health probes are covered.
2525

@@ -29,7 +29,7 @@ In addition to using default health probe monitoring, you can also customize the
2929

3030
An application gateway automatically configures a default health probe when you don't set up any custom probe configuration. The monitoring behavior works by making an HTTP GET request to the IP addresses or FQDN configured in the backend pool. For default probes if the backend http settings are configured for HTTPS, the probe uses HTTPS to test health of the backend servers.
3131

32-
For example: You configure your application gateway to use backend servers A, B, and C to receive HTTP network traffic on port 80. The default health monitoring tests the three servers every 30 seconds for a healthy HTTP response with a 30 second timeout for each request. A healthy HTTP response has a [status code](https://msdn.microsoft.com/library/aa287675.aspx) between 200 and 399. In this case, the HTTP GET request for the health probe will look like `http://127.0.0.1/`.
32+
For example: You configure your application gateway to use backend servers A, B, and C to receive HTTP network traffic on port 80. The default health monitoring tests the three servers every 30 seconds for a healthy HTTP response with a 30-second-timeout for each request. A healthy HTTP response has a [status code](https://msdn.microsoft.com/library/aa287675.aspx) between 200 and 399. In this case, the HTTP GET request for the health probe looks like `http://127.0.0.1/`.
3333

3434
If the default probe check fails for server A, the application gateway stops forwarding requests to this server. The default probe still continues to check for server A every 30 seconds. When server A responds successfully to one request from a default health probe, application gateway starts forwarding the requests to the server again.
3535

@@ -61,10 +61,10 @@ The following table provides definitions for the properties of a custom health p
6161
| Probe property | Description |
6262
| --- | --- |
6363
| Name |Name of the probe. This name is used to identify and refer to the probe in backend HTTP settings. |
64-
| Protocol |Protocol used to send the probe. This has to match with the protocol defined in the backend HTTP settings it is associated to|
65-
| Host |Host name to send the probe with. In v1 SKU, this value will be used only for the host header of the probe request. In v2 SKU, it will be used both as host header as well as SNI |
64+
| Protocol |Protocol used to send the probe. This has to match with the protocol defined in the backend HTTP settings it's associated to|
65+
| Host |Host name to send the probe with. In v1 SKU, this value is used only for the host header of the probe request. In v2 SKU, it is used both as host header and SNI |
6666
| Path |Relative path of the probe. A valid path starts with '/' |
67-
| Port |If defined, this is used as the destination port. Otherwise, it uses the same port as the HTTP settings that it is associated to. This property is only available in the v2 SKU
67+
| Port |If defined, this is used as the destination port. Otherwise, it uses the same port as the HTTP settings that it's associated to. This property is only available in the v2 SKU
6868
| Interval |Probe interval in seconds. This value is the time interval between two consecutive probes |
6969
| Time-out |Probe time-out in seconds. If a valid response isn't received within this time-out period, the probe is marked as failed |
7070
| Unhealthy threshold |Probe retry count. The backend server is marked down after the consecutive probe failure count reaches the unhealthy threshold |
@@ -90,6 +90,10 @@ Once the match criteria is specified, it can be attached to probe configuration
9090

9191
## NSG considerations
9292

93+
Fine grain control over the Application Gateway subnet via NSG rules is possible in public preview. More details can be found [here](application-gateway-private-deployment.md#network-security-group-control).
94+
95+
With current functionality there are some restrictions:
96+
9397
You must allow incoming Internet traffic on TCP ports 65503-65534 for the Application Gateway v1 SKU, and TCP ports 65200-65535 for the v2 SKU with the destination subnet as **Any** and source as **GatewayManager** service tag. This port range is required for Azure infrastructure communication.
9498

9599
Additionally, outbound Internet connectivity can't be blocked, and inbound traffic coming from the **AzureLoadBalancer** tag must be allowed.

articles/application-gateway/configuration-frontend-ip.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,16 @@ You can configure the application gateway to have a public IP address, a private
1515

1616
## Public and private IP address support
1717

18-
Application Gateway V2 currently doesn't support only private IP mode. It supports the following combinations:
18+
Application Gateway V2 currently supports the following combinations:
1919

2020
* Private IP address and public IP address
2121
* Public IP address only
22+
* [Private IP address only (preview)](application-gateway-private-deployment.md)
2223

2324
For more information, see [Frequently asked questions about Application Gateway](application-gateway-faq.yml#how-do-i-use-application-gateway-v2-with-only-private-frontend-ip-address).
2425

2526

26-
A public IP address isn't required for an internal endpoint that's not exposed to the Internet. That's known as an *internal load-balancer* (ILB) endpoint or private frontend IP. An application gateway ILB is useful for internal line-of-business applications that aren't exposed to the Internet. It's also useful for services and tiers in a multi-tier application within a security boundary that aren't exposed to the Internet but that require round-robin load distribution, session stickiness, or TLS termination.
27+
A public IP address isn't required for an internal endpoint that's not exposed to the Internet. A private frontend configuration is useful for internal line-of-business applications that aren't exposed to the Internet. It's also useful for services and tiers in a multi-tier application within a security boundary that aren't exposed to the Internet but that require round-robin load distribution, session stickiness, or TLS termination.
2728

2829
Only one public IP address and one private IP address is supported. You choose the frontend IP when you create the application gateway.
2930

articles/application-gateway/configuration-infrastructure.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ By visiting Azure Advisor for your account, you can verify if your subscription
7171

7272
## Network security groups
7373

74-
Network security groups (NSGs) are supported on Application Gateway. But there are some restrictions:
74+
Network security groups (NSGs) are supported on Application Gateway.
75+
76+
Fine grain control over the Application Gateway subnet via NSG rules is possible in public preview. More details can be found [here](application-gateway-private-deployment.md#network-security-group-control).
77+
78+
With current functionality there are some restrictions:
7579

7680
- You must allow incoming Internet traffic on TCP ports 65503-65534 for the Application Gateway v1 SKU, and TCP ports 65200-65535 for the v2 SKU with the destination subnet as **Any** and source as **GatewayManager** service tag. This port range is required for Azure infrastructure communication. These ports are protected (locked down) by Azure certificates. External entities, including the customers of those gateways, can't communicate on these endpoints.
7781

@@ -97,6 +101,10 @@ For this scenario, use NSGs on the Application Gateway subnet. Put the following
97101

98102
## Supported user-defined routes
99103

104+
Fine grain control over the Application Gateway subnet via Route Table rules is possible in public preview. More details can be found [here](application-gateway-private-deployment.md#route-table-control).
105+
106+
With current functionality there are some restrictions:
107+
100108
> [!IMPORTANT]
101109
> Using UDRs on the Application Gateway subnet might cause the health status in the [backend health view](./application-gateway-diagnostics.md#backend-health) to appear as **Unknown**. It also might cause generation of Application Gateway logs and metrics to fail. We recommend that you don't use UDRs on the Application Gateway subnet so that you can view the backend health, logs, and metrics.
102110
@@ -151,3 +159,4 @@ For this scenario, use NSGs on the Application Gateway subnet. Put the following
151159
## Next steps
152160

153161
- [Learn about frontend IP address configuration](configuration-frontend-ip.md).
162+
- [Learn about private Application Gateway deployment](application-gateway-private-deployment.md).
137 KB
Loading
103 KB
Loading
137 KB
Loading
148 KB
Loading
199 KB
Loading

0 commit comments

Comments
 (0)