You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/application-gateway/application-gateway-autoscaling-zone-redundant.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ services: application-gateway
5
5
author: vhorne
6
6
ms.service: application-gateway
7
7
ms.topic: article
8
-
ms.date: 02/26/2020
8
+
ms.date: 03/24/2020
9
9
ms.author: victorh
10
10
---
11
11
@@ -164,7 +164,7 @@ The following table compares the features available with each SKU.
164
164
|--|--|
165
165
|Authentication certificate|Not supported.<br>For more information, see [Overview of end to end SSL with Application Gateway](ssl-overview.md#end-to-end-ssl-with-the-v2-sku).|
166
166
|Mixing Standard_v2 and Standard Application Gateway on the same subnet|Not supported|
167
-
|UserDefined Route (UDR) on Application Gateway subnet|Not supported|
167
+
|User-Defined Route (UDR) on Application Gateway subnet|Supported (specific scenarios). In preview.<br> For more information about supported scenarios, see [Application Gateway configuration overview](configuration-overview.md#user-defined-routes-supported-on-the-application-gateway-subnet).|
168
168
|NSG for Inbound port range| - 65200 to 65535 for Standard_v2 SKU<br>- 65503 to 65534 for Standard SKU.<br>For more information, see the [FAQ](application-gateway-faq.md#are-network-security-groups-supported-on-the-application-gateway-subnet).|
169
169
|Performance logs in Azure diagnostics|Not supported.<br>Azure metrics should be used.|
170
170
|Billing|Billing scheduled to start on July 1, 2019.|
Copy file name to clipboardExpand all lines: articles/application-gateway/application-gateway-faq.md
+11-7Lines changed: 11 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ services: application-gateway
5
5
author: vhorne
6
6
ms.service: application-gateway
7
7
ms.topic: article
8
-
ms.date: 03/06/2020
8
+
ms.date: 03/24/2020
9
9
ms.author: victorh
10
10
---
11
11
@@ -91,6 +91,10 @@ Yes. In addition to multiple instances of a given Application Gateway deployment
91
91
92
92
A single subnet can't support both Standard_v2 and Standard Application Gateway together.
93
93
94
+
### Does Application Gateway v2 support user-defined routes (UDR)?
95
+
96
+
Yes, but only specific scenarios. For more information, see [Application Gateway configuration overview](configuration-overview.md#user-defined-routes-supported-on-the-application-gateway-subnet).
97
+
94
98
### Does Application Gateway support x-forwarded-for headers?
95
99
96
100
Yes. See [Modifications to a request](https://docs.microsoft.com/azure/application-gateway/how-application-gateway-works#modifications-to-the-request).
@@ -385,24 +389,24 @@ Yes. If your configuration matches following scenario, you won't see allowed tra
385
389
386
390
### How do I use Application Gateway V2 with only private frontend IP address?
387
391
388
-
Application Gateway V2 currently does not support only private IP mode. It supports the following combinations
392
+
Application Gateway V2 currently doesn't support only private IP mode. It supports the following combinations
389
393
* Private IP and Public IP
390
394
* Public IP only
391
395
392
396
But if you'd like to use Application Gateway V2 with only private IP, you can follow the process below:
393
397
1. Create an Application Gateway with both public and private frontend IP address
394
-
2.Do not create any listeners for the public frontend IP address. Application Gateway will not listen to any traffic on the public IP address if no listeners are created for it.
398
+
2.Don't create any listeners for the public frontend IP address. Application Gateway will not listen to any traffic on the public IP address if no listeners are created for it.
395
399
3. Create and attach a [Network Security Group](https://docs.microsoft.com/azure/virtual-network/security-overview) for the Application Gateway subnet with the following configuration in the order of priority:
396
400
397
401
a. Allow traffic from Source as **GatewayManager** service tag and Destination as **Any** and Destination port as **65200-65535**. This port range is required for Azure infrastructure communication. These ports are protected (locked down) by certificate authentication. External entities, including the Gateway user administrators, can't initiate changes on those endpoints without appropriate certificates in place
398
402
399
-
b. Allow traffic from Source as **AzureLoadBalancer** service tag and Destination and destination port as **Any**
403
+
b. Allow traffic from Source as **AzureLoadBalancer** service tag and destination port as **Any**
400
404
401
-
c. Deny all inbound traffic from Source as **Internet** service tag and Destination and destination port as **Any**. Give this rule the *least priority* in the inbound rules
405
+
c. Deny all inbound traffic from Source as **Internet** service tag and destination port as **Any**. Give this rule the *least priority* in the inbound rules
402
406
403
-
d. Keep the default rules like allowing VirtualNetwork inbound so that the access on private IP address is not blocked
407
+
d. Keep the default rules like allowing VirtualNetwork inbound so that the access on private IP address isn't blocked
404
408
405
-
e. Outbound internet connectivity can't be blocked. Otherwise, you will face issues with logging, metrics, etc.
409
+
e. Outbound internet connectivity can't be blocked. Otherwise, you will face issues with logging, metrics, and so on.
406
410
407
411
Sample NSG configuration for private IP only access:
408
412

Copy file name to clipboardExpand all lines: articles/application-gateway/configuration-overview.md
+56-16Lines changed: 56 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,9 +5,8 @@ services: application-gateway
5
5
author: vhorne
6
6
ms.service: application-gateway
7
7
ms.topic: article
8
-
ms.date: 11/15/2019
8
+
ms.date: 03/24/2020
9
9
ms.author: absha
10
-
11
10
---
12
11
13
12
# Application Gateway configuration overview
@@ -32,11 +31,11 @@ An application gateway is a dedicated deployment in your virtual network. Within
32
31
33
32
#### Size of the subnet
34
33
35
-
Application Gateway consumes 1 private IP address per instance, plus another private IP address if a private front-end IP is configured.
34
+
Application Gateway uses one private IP address per instance, plus another private IP address if a private front-end IP is configured.
36
35
37
-
Azure also reserves 5 IP addresses in each subnet for internal use: the first 4 and the last IP addresses. For example, consider 15 application gateway instances with no private front-end IP. You need at least 20 IP addresses for this subnet: 5 for internal use and 15 for the application gateway instances. So, you need a /27 subnet size or larger.
36
+
Azure also reserves five IP addresses in each subnet for internal use: the first four and the last IP addresses. For example, consider 15 application gateway instances with no private front-end IP. You need at least 20 IP addresses for this subnet: five for internal use and 15 for the application gateway instances. So, you need a /27 subnet size or larger.
38
37
39
-
Consider a subnet that has 27 application gateway instances and an IP address for a private front-end IP. In this case, you need 33 IP addresses: 27 for the application gateway instances, 1 for the private front end, and 5 for internal use. So, you need a /26 subnet size or larger.
38
+
Consider a subnet that has 27 application gateway instances and an IP address for a private front-end IP. In this case, you need 33 IP addresses: 27 for the application gateway instances, one for the private front end, and five for internal use. So, you need a /26 subnet size or larger.
40
39
41
40
We recommend that you use a subnet size of at least /28. This size gives you 11 usable IP addresses. If your application load requires more than 10 Application Gateway instances, consider a /27 or /26 subnet size.
42
41
@@ -65,23 +64,64 @@ For this scenario, use NSGs on the Application Gateway subnet. Put the following
65
64
66
65
#### User-defined routes supported on the Application Gateway subnet
67
66
68
-
For the v1 SKU, user-defined routes (UDRs) are supported on the Application Gateway subnet, as long as they don't alter end-to-end request/response communication. For example, you can set up a UDR in the Application Gateway subnet to point to a firewall appliance for packet inspection. But you must make sure that the packet can reach its intended destination after inspection. Failure to do so might result in incorrect health-probe or traffic-routing behavior. This includes learned routes or default 0.0.0.0/0 routes that are propagated by Azure ExpressRoute or VPN gateways in the virtual network.
67
+
> [!IMPORTANT]
68
+
> Using UDRs on the Application Gateway subnet might cause the health status in the [back-end health view](https://docs.microsoft.com/azure/application-gateway/application-gateway-diagnostics#back-end-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 back-end health, logs, and metrics.
69
69
70
-
For the v2 SKU, UDRs are not supported on the Application Gateway subnet. For more information, see [Azure Application Gateway v2 SKU](application-gateway-autoscaling-zone-redundant.md#differences-with-v1-sku).
70
+
-**v1**
71
71
72
-
> [!NOTE]
73
-
> UDRs are not supported for the v2 SKU as of now.
72
+
For the v1 SKU, user-defined routes (UDRs) are supported on the Application Gateway subnet, as long as they don't alter end-to-end request/response communication. For example, you can set up a UDR in the Application Gateway subnet to point to a firewall appliance for packet inspection. But you must make sure that the packet can reach its intended destination after inspection. Failure to do so might result in incorrect health-probe or traffic-routing behavior. This includes learned routes or default 0.0.0.0/0 routes that are propagated by Azure ExpressRoute or VPN gateways in the virtual network.
74
73
75
-
> [!NOTE]
76
-
> Using UDRs on the Application Gateway subnet might cause the health status in the [back-end health view](https://docs.microsoft.com/azure/application-gateway/application-gateway-diagnostics#back-end-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 back-end health, logs, and metrics.
74
+
-**v2**
75
+
76
+
For the v2 SKU, there are supported and unsupported scenarios:
77
+
78
+
**v2 supported scenarios**
79
+
> [!WARNING]
80
+
> An incorrect configuration of the route table could result in asymmetrical routing in Application Gateway v2. Ensure that all management/control plane traffic is sent directly to the Internet and not through a virtual appliance. Logging and metrics could also be affected.
81
+
82
+
83
+
**Scenario 1**: UDR to disable Border Gateway Protocol (BGP) Route Propagation to the Application Gateway subnet
84
+
85
+
Sometimes the default gateway route (0.0.0.0/0) is advertised via the ExpressRoute or VPN gateways associated with the Application Gateway virtual network. This breaks management plane traffic, which requires a direct path to the Internet. In such scenarios, a UDR can be used to disable BGP route propagation.
86
+
87
+
To disable BGP route propagation, use the following steps:
88
+
89
+
1. Create a Route Table resource in Azure.
90
+
2. Disable the **Virtual network gateway route propagation** parameter.
91
+
3. Associate the Route Table to the appropriate subnet.
92
+
93
+
Enabling the UDR for this scenario shouldn't break any existing setups.
94
+
95
+
**Scenario 2**: UDR to direct 0.0.0.0/0 to the Internet
96
+
97
+
You can create a UDR to send 0.0.0.0/0 traffic directly to the Internet.
98
+
99
+
**Scenario 3**: UDR for Azure Kubernetes Service kubenet
100
+
101
+
If you're using kubenet with Azure Kubernetes Service (AKS) and Application Gateway Ingress Controller (AGIC), you need to set up a route table to allow traffic sent to the pods to be routed to the correct node. This won't be necessary if you use Azure CNI.
102
+
103
+
To set up the route table to allow kubenet to work, use the following steps:
104
+
105
+
1. Create a Route Table resource in Azure.
106
+
2. Once it's created, go to the **Routes** page.
107
+
3. Add a new route:
108
+
- Address prefix should be the IP range of the pods you want to reach in AKS.
109
+
- Next hop type should be **Virtual Appliance**.
110
+
- Next hop address should be the IP address of the node hosting the pods within the IP range defined in the address prefix field.
111
+
112
+
**v2 unsupported scenarios**
113
+
114
+
**Scenario 1**: UDR for Virtual Appliances
115
+
116
+
Any scenario where 0.0.0.0/0 needs to be redirected through any virtual appliance, a hub/spoke virtual network, or on-premise (forced tunneling) isn't supported for the v2 public preview.
77
117
78
118
## Front-end IP
79
119
80
120
You can configure the application gateway to have a public IP address, a private IP address, or both. A public IP is required when you host a back end that clients must access over the internet via an internet-facing virtual IP (VIP).
81
121
82
122
A public IP 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.
83
123
84
-
Only 1 public IP address or 1 private IP address is supported. You choose the front-end IP when you create the application gateway.
124
+
Only 1 public IP address or one private IP address is supported. You choose the front-end IP when you create the application gateway.
85
125
86
126
- For a public IP, you can create a new public IP address or use an existing public IP in the same location as the application gateway. For more information, see [static vs. dynamic public IP address](https://docs.microsoft.com/azure/application-gateway/application-gateway-components#static-versus-dynamic-public-ip-address).
87
127
@@ -105,7 +145,7 @@ When you create a new listener, you choose between [*basic* and *multi-site*](ht
105
145
106
146
#### Order of processing listeners
107
147
108
-
For the v1 SKU, requests are matched according to the order of the rules and the type of listener. If a rule with basic listener comes first in the order, it is processed first and will accept any request for that port and IP combination. To avoid this, configure the rules with multi-site listeners first and push the rule with the basic listener to the last in the list.
148
+
For the v1 SKU, requests are matched according to the order of the rules and the type of listener. If a rule with basic listener comes first in the order, it's processed first and will accept any request for that port and IP combination. To avoid this, configure the rules with multi-site listeners first and push the rule with the basic listener to the last in the list.
109
149
110
150
For the v2 SKU, multi-site listeners are processed before basic listeners.
111
151
@@ -251,15 +291,15 @@ The application gateway routes traffic to the back-end servers by using the conf
251
291
252
292
### Cookie-based affinity
253
293
254
-
Azure Application Gateway uses gatewaymanaged cookies for maintaining user sessions. When a user sends the first request to Application Gateway, it sets an affinity cookie in the response with a hash value which contains the session details, so that the subsequent requests carrying the affinity cookie will be routed to the same backend server for maintaining stickiness.
294
+
Azure Application Gateway uses gateway-managed cookies for maintaining user sessions. When a user sends the first request to Application Gateway, it sets an affinity cookie in the response with a hash value which contains the session details, so that the subsequent requests carrying the affinity cookie will be routed to the same backend server for maintaining stickiness.
255
295
256
296
This feature is useful when you want to keep a user session on the same server and when session state is saved locally on the server for a user session. If the application can't handle cookie-based affinity, you can't use this feature. To use it, make sure that the clients support cookies.
257
297
258
298
The [Chromium browser](https://www.chromium.org/Home)[v80 update](https://chromiumdash.appspot.com/schedule) brought a mandate where HTTP cookies without [SameSite](https://tools.ietf.org/id/draft-ietf-httpbis-rfc6265bis-03.html#rfc.section.5.3.7) attribute has to be treated as SameSite=Lax. In the case of CORS (Cross-Origin Resource Sharing) requests, if the cookie has to be sent in a third-party context, it has to use *SameSite=None; Secure* attributes and it should be sent over HTTPS only. Otherwise, in a HTTP only scenario, the browser doesn't send the cookies in the third-party context. The goal of this update from Chrome is to enhance security and to avoid Cross-Site Request Forgery (CSRF) attacks.
259
299
260
-
To support this change, starting February 17th 2020, Application Gateway (all the SKU types) will inject another cookie called *ApplicationGatewayAffinityCORS* in addition to the existing *ApplicationGatewayAffinity* cookie. The *ApplicationGatewayAffinityCORS* cookie has two more attributes added to it (*"SameSite=None; Secure"*) so that sticky session are maintained even for cross-origin requests.
300
+
To support this change, starting February 17 2020, Application Gateway (all the SKU types) will inject another cookie called *ApplicationGatewayAffinityCORS* in addition to the existing *ApplicationGatewayAffinity* cookie. The *ApplicationGatewayAffinityCORS* cookie has two more attributes added to it (*"SameSite=None; Secure"*) so that sticky session are maintained even for cross-origin requests.
261
301
262
-
Note that the default affinity cookie name is *ApplicationGatewayAffinity* and you can change it. In case you are using a custom affinity cookie name, an additional cookie is added with CORS as suffix. For example, *CustomCookieNameCORS*.
302
+
Note that the default affinity cookie name is *ApplicationGatewayAffinity* and you can change it. In case you're using a custom affinity cookie name, an additional cookie is added with CORS as suffix. For example, *CustomCookieNameCORS*.
263
303
264
304
> [!NOTE]
265
305
> If the attribute *SameSite=None* is set, it is mandatory that the cookie also contains the *Secure* flag, and must be sent over HTTPS. If session affinity is required over CORS, you must migrate your workload to HTTPS.
> The -EnableSoftDelete flag must be used for SSL termination to function properly.
69
+
> The -EnableSoftDelete flag must be used for SSL termination to function properly. If you're configuring [Key Vault soft-delete through the Portal](../key-vault/key-vault-ovw-soft-delete.md#soft-delete-behavior), the retention period must be kept at 90 days, the default value. Application Gateway doesn't support a different retention period yet.
0 commit comments