Skip to content

Commit c8902a0

Browse files
Merge pull request #311931 from riturajc/appgwpace/cni-overlay-limitations
Document CNI Overlay limitations for AGfC (PACE 142517)
2 parents 9e33797 + 15d1b9b commit c8902a0

3 files changed

Lines changed: 31 additions & 26 deletions

File tree

articles/application-gateway/configuration-infrastructure.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,12 @@ You can use the built-in roles, such as [Network contributor](../role-based-acce
8282
## Permissions
8383
Depending on whether you're creating new resources or using existing ones, add the appropriate permissions from the following list:
8484

85-
|Resource | Resource status | Required Azure permissions |
86-
|---|---|---|
87-
| Subnet | Create new| `Microsoft.Network/virtualNetworks/subnets/write' <br> 'Microsoft.Network/virtualNetworks/subnets/join/action` |
88-
| Subnet | Use existing| `Microsoft.Network/virtualNetworks/subnets/read` <br> `Microsoft.Network/virtualNetworks/subnets/join/action` |
89-
| IP addresses| Create new| `Microsoft.Network/publicIPAddresses/write` <br> `Microsoft.Network/publicIPAddresses/join/action` |
90-
| IP addresses | Use existing| `Microsoft.Network/publicIPAddresses/read` <br> `Microsoft.Network/publicIPAddresses/join/action` |
85+
| Resource | Resource status | Required Azure permissions |
86+
| --- | --- | --- |
87+
| Subnet | Create new | `Microsoft.Network/virtualNetworks/subnets/write' <br> 'Microsoft.Network/virtualNetworks/subnets/join/action` |
88+
| Subnet | Use existing | `Microsoft.Network/virtualNetworks/subnets/read` <br> `Microsoft.Network/virtualNetworks/subnets/join/action` |
89+
| IP addresses | Create new | `Microsoft.Network/publicIPAddresses/write` <br> `Microsoft.Network/publicIPAddresses/join/action` |
90+
| IP addresses | Use existing | `Microsoft.Network/publicIPAddresses/read` <br> `Microsoft.Network/publicIPAddresses/join/action` |
9191
| ApplicationGatewayWebApplicationFirewallPolicies | Create new / Update existing | `Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/write` <br> `Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/read` <br> `Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/join/action` |
9292

9393
For more information, see [Azure permissions for Networking](../role-based-access-control/permissions/networking.md) and [Virtual network permissions](../virtual-network/virtual-network-manage-subnet.md#permissions).
@@ -148,43 +148,43 @@ To use an NSG with your application gateway, you need to create or retain some e
148148

149149
**Client traffic**: Allow incoming traffic from the expected clients (as source IP or IP range), and for the destination as your application gateway's entire subnet IP prefix and inbound access ports. For example, if you have listeners configured for ports 80 and 443, you must allow these ports. You can also set this rule to `Any`.
150150

151-
| Source | Source ports | Destination | Destination ports | Protocol | Access |
152-
|---|---|---|---|---|---|
153-
|`<as per need>`|Any|`<Subnet IP Prefix>`|`<listener ports>`|TCP|Allow|
151+
| Source | Source ports | Destination | Destination ports | Protocol | Access |
152+
| --- | --- | --- | --- | --- | --- |
153+
| `<as per need>` | Any | `<Subnet IP Prefix>` | `<listener ports>` | TCP | Allow |
154154

155155
After you configure *active public and private listeners* (with rules) *with the same port number*, your application gateway changes the **Destination** of all inbound flows to the frontend IPs of your gateway. This change occurs even for listeners that aren't sharing any port. You must include your gateway's frontend public and private IP addresses in the **Destination** of the inbound rule when you use the same port configuration.
156156

157-
| Source | Source ports | Destination | Destination ports | Protocol | Access |
158-
|---|---|---|---|---|---|
159-
|`<as per need>`|Any|`<Public and Private frontend IPs>`|`<listener ports>`|TCP|Allow|
157+
| Source | Source ports | Destination | Destination ports | Protocol | Access |
158+
| --- | --- | --- | --- | --- | --- |
159+
| `<as per need>` | Any | `<Public and Private frontend IPs>` | `<listener ports>` | TCP | Allow |
160160

161161
**Infrastructure ports**: Allow incoming requests from the source as the **GatewayManager** service tag and **Any** destination. The destination port range differs based on SKU and is required for communicating the status of the backend health. These ports are protected/locked down by Azure certificates. External entities can't initiate changes on those endpoints without appropriate certificates in place.
162162

163163
- **V2**: Ports 65200-65535
164164
- **V1**: Ports 65503-65534
165165

166-
| Source | Source ports | Destination | Destination ports | Protocol | Access |
167-
|---|---|---|---|---|---|
168-
|GatewayManager|Any|Any|`<as per SKU given above>`|TCP|Allow|
166+
| Source | Source ports | Destination | Destination ports | Protocol | Access |
167+
| --- | --- | --- | --- | --- | --- |
168+
| GatewayManager | Any | Any | `<as per SKU given above>` | TCP | Allow |
169169

170170
> [!TIP]
171171
> The communication with Gateway Manager service is regional by default.
172172
173173
**Azure Load Balancer probes**: Allow incoming traffic from the source as the **AzureLoadBalancer** service tag. This rule is created by default for [NSGs](../virtual-network/network-security-groups-overview.md). You must not override it with a manual **Deny** rule to ensure smooth operations of your application gateway.
174174

175-
| Source | Source ports | Destination | Destination ports | Protocol | Access |
176-
|---|---|---|---|---|---|
177-
|AzureLoadBalancer|Any|Any|Any|Any|Allow|
175+
| Source | Source ports | Destination | Destination ports | Protocol | Access |
176+
| --- | --- | --- | --- | --- | --- |
177+
| AzureLoadBalancer | Any | Any | Any | Any | Allow |
178178

179179
You can block all other incoming traffic by using a **Deny All** rule.
180180

181181
#### Outbound rules
182182

183183
**Outbound to the internet**: Allow outbound traffic to the internet for all destinations. This rule is created by default for [NSGs](../virtual-network/network-security-groups-overview.md). You must not override it with a manual **Deny** rule to ensure smooth operations of your application gateway. Outbound NSG rules that deny any outbound connectivity must not be created.
184184

185-
| Source | Source ports | Destination | Destination ports | Protocol | Access |
186-
|---|---|---|---|---|---|
187-
|Any|Any|Internet|Any|Any|Allow|
185+
| Source | Source ports | Destination | Destination ports | Protocol | Access |
186+
| --- | --- | --- | --- | --- | --- |
187+
| Any | Any | Internet | Any | Any | Allow |
188188

189189
> [!NOTE]
190190
> Application Gateways that don't have [Network Isolation](application-gateway-private-deployment.md#route-table-control) enabled don't allow traffic to be sent between peered VNets when **Allow traffic to remote virtual network** is disabled.

articles/application-gateway/for-containers/container-networking.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Azure Kubernetes Service (AKS) uses two main networking models: **overlay** netw
2828
When choosing a networking model, consider the use cases for each CNI plugin and the type of network model it uses:
2929

3030
| CNI plugin | Networking model | Use case highlights |
31-
|-------------|----------------------|-----------------------|
31+
| ------------- | ---------------------- | ----------------------- |
3232
| **Azure CNI Overlay** | Overlay | - Best for VNET IP conservation<br/>- Max node count supported by API Server + 250 pods per node<br/>- Simpler configuration<br/> - No direct external pod IP access |
3333
| **Azure CNI Pod Subnet** | Flat | - Direct external pod access<br/>- Modes for efficient VNet IP usage _or_ large cluster scale support |
3434
| **Azure CNI Node Subnet** | Flat | - Direct external pod access<br/>- Simpler configuration <br/>- Limited scale <br/>- Inefficient use of VNet IPs |
@@ -72,10 +72,16 @@ A: Yes, upgrade of the AKS cluster from CNI to CNI Overlay and Application Gatew
7272
> [!WARNING]
7373
> Ensure the Application Gateway for Containers subnet is a /24 before upgrading. Upgrading from CNI to CNI Overlay with a larger subnet (/23 or larger) will lead to an outage and require the Application Gateway for Containers subnet to be recreated with a /24 subnet size.
7474
75-
Q: Can I upgrade an existing cluster with Kubenet to CNI Overlay?
76-
75+
Q: Can I upgrade an existing cluster with Kubenet to CNI Overlay?
7776
A: Yes, however, installation of Application Gateway for Containers on a cluster with Kubenet isn't supported. Install Application Gateway for Containers post-upgrade to CNI Overlay.
7877

78+
Q: If I use Application Gateway for Containers with CNI Overlay, can I forward requests to Azure Firewall or a Network Virtual Appliance (NVA)?
79+
A: No. With CNI Overlay, NVAs don't have access to proxy traffic to the overlay network.
80+
If you need Azure services or NVAs to access the overlay network, use Azure CNI (flat networking) instead of CNI Overlay.
81+
82+
Q: Can I deploy Application Gateway for Containers in a separate virtual network from my AKS cluster?
83+
A: No. Separate virtual networks for Application Gateway for Containers and AKS aren't currently supported. Application Gateway for Containers must be deployed in the same virtual network as your AKS cluster.
84+
7985
## Next steps
8086

8187
* [Deploy ALB Controller - Add-on](quickstart-deploy-application-gateway-for-containers-alb-controller-addon.md)

articles/application-gateway/ssl-overview.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,9 @@ The following tables outline the differences in SNI between the v1 and v2 SKU in
150150

151151
#### For live traffic
152152

153-
154153
| Scenario | v1 | v2 |
155154
| --- | --- | --- |
156-
| When an FQDN or SNI is available | The SNI is set using the backend server's FQDN. | The SNI value is set based on the [TLS validation type](configuration-http-settings.md?tabs=backendhttpsettings#backend-https-validation-settings) in the Backend Settings.<br><br> 1. **Complete validation** – SNI is set according to the following order of precedence: <br> a) Backend Settings hostname (as per Overridden value or Pick from backend server) <br> b) Host header of the incoming client request <br><br> 2. **Configurable** <br> Use specific SNI: Uses this fixed hostname for validation. <br> Skip SNI: No Subject Name validation. |
155+
| When an FQDN or SNI is available | The SNI is set using the backend server's FQDN. | The SNI value is set based on the [TLS validation type](configuration-http-settings.md?tabs=backendhttpsettings#backend-https-validation-settings) in the Backend Settings.<br><br> 1. **Complete validation** – SNI is set according to the following order of precedence: <br> a) Backend Setting's hostname (as per Overridden value or Pick from backend server) <br> b) Host header of the incoming client request <br><br> 2. **Configurable** <br> Use specific SNI: Uses this fixed hostname for validation. <br> Skip SNI: No Subject Name validation. |
157156
| When an FQDN or SNI is NOT available (only IP address is available) | SNI won't be set as per [RFC 6066](https://tools.ietf.org/html/rfc6066) if the backend pool entry isn't an FQDN | SNI won't be set as per [RFC 6066](https://tools.ietf.org/html/rfc6066). |
158157

159158
## Next steps

0 commit comments

Comments
 (0)