Skip to content

Commit ad08134

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into rolyon-rbac-provider-azure-service
2 parents 91c1252 + 5d9ec8f commit ad08134

20 files changed

+434
-57
lines changed

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

Lines changed: 58 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
author: greg-lindsay
77
ms.service: application-gateway
88
ms.topic: faq
9-
ms.date: 11/06/2023
9+
ms.date: 02/26/2024
1010
ms.author: greglin
1111
ms.custom: references_regions, devx-track-azurepowershell
1212
title: Frequently asked questions about Application Gateway
@@ -202,7 +202,7 @@ sections:
202202

203203
- question: Can I change the virtual network or subnet for an existing application gateway?
204204
answer: |
205-
You can move an application gateway across subnets within the same virtual network only. It's supported with v1 with a public and private frontend (dynamic allocation) and v2 with a public frontend only. We cannot move the application gateway to another subnet if the private frontend IP configuration is statically allocated. The application gateway should be in a *Stopped* state to perform this action. Stopping or starting v1 changes the public IP. This operation can only be done by using Azure PowerShell and the Azure CLI by running the following commands:
205+
You can move an application gateway across subnets within the same virtual network only. It's supported with v1 with a public and private frontend (dynamic allocation) and v2 with a public frontend only. We can't move the application gateway to another subnet if the private frontend IP configuration is statically allocated. The application gateway should be in a *Stopped* state to perform this action. Stopping or starting v1 changes the public IP. This operation can only be done by using Azure PowerShell and the Azure CLI by running the following commands:
206206
207207
**Azure PowerShell**
208208
@@ -465,9 +465,63 @@ sections:
465465
1. You can remove the old certificate later by selecting the **...** options button next to the old certificate. Select **Delete** and then select **Save**.
466466
For more information, see [Configure end-to-end TLS by using Application Gateway with the portal](./end-to-end-ssl-portal.md#add-authenticationtrusted-root-certificates-of-backend-servers).
467467
468-
If you're using the v2 SKU of the Application Gateway/WAF service, you don't have to upload the new certificate in the HTTP settings because v2 SKU uses "trusted root certificates," and no action needs to be taken here.
468+
If you're using the V2 SKU of the Application Gateway/WAF service, you don't have to upload the new certificate in the HTTP settings since V2 SKU uses "trusted root certificates", and no action needs to be taken here.
469+
470+
- name: Configuration - layer 4 proxy
471+
questions:
472+
- question: Does Application Gateway’s Layer 7 and Layer 4 use the same frontend IP addresses?
473+
answer: Yes. Both Layer 7 and Layer 4 routing through application gateway use the same frontend IP configuration. This way, you can direct all your clients to a single IP address (public or private) and the same gateway resource will route them based on the configured listener protocols and the ports.
474+
475+
- question: Can I use TCP or TLS proxy for HTTP(S) traffic?
476+
answer: While the HTTP(S) traffic can be served through L4 proxy protocols as well, we don't recommend doing so. The L7 proxy solution of Application Gateway offers greater control and security over the HTTP(S) protocols through advanced features such Rewrites, Session Affinity, Redirection, WebSockets, WAF and more.
469477

470-
- name: 'Configuration: Ingress controller for AKS'
478+
- question: What are the property names for Layer 4 proxy?
479+
answer: |
480+
The resource properties for Layer 4 features are different from the Layer 7 ones. Accordingly, when using REST API or CLI, you must use the following properties.
481+
482+
| Property | Purpose |
483+
| ------------------------- | -------------------------------------------------------------- |
484+
| listener | For TLS or TCP based listeners |
485+
| routingRule | To associate a layer 4 listener with a layer 4 backend setting |
486+
| backendSettingsCollection | For TLS or TCP based backend settings |
487+
488+
- [REST API](/rest/api/application-gateway/application-gateways/create-or-update)
489+
- [CLI](/cli/azure/network/application-gateway?view=azure-cli-latest)
490+
491+
> [!NOTE]
492+
> You can't use any layer 4 properties for HTTP or HTTPS protocol settings.
493+
494+
- question: Can I use a TCP/TLS listener with an HTTP(S) backend betting?
495+
answer: No. You can't cross-link Layer 4 and Layer 7 properties. Therefore, a routing rule will only allow you to link a Layer 4-type listener to a Layer 4-type Backend setting.
496+
497+
- question: Can L7 and L4 properties have same names?
498+
answer: You can't use the same name for an L7 (httpListeners) and L4 (listeners). This applies to other L4 properties such as backendSettingsCollection and routingRules also.
499+
500+
- question: Can I add Private endpoint to a Backend pool when using Layer 4 (TCP or TLS protocols)?
501+
answer: Absolutely. Similar to Layer 7 proxy, you can add a private endpoint to the backend pool of your application gateway. This private endpoint must be deployed in an adjacent subnet of the same virtual network of your application gateway.
502+
503+
- question: Does Application Gateway use Keepalive connection for backend servers?
504+
answer: It doesn't use Keepalive for backend connections. For each incoming request on the frontend listener connection, Application Gateway initiates a new backend connection to fulfill that request.
505+
506+
- question: Which IP address does the backend server see when a connection is established with Application Gateway?
507+
answer: The backend server sees the IP address of the application gateway. Currently, we don't support “Client IP preservation” through which the backend application can be made aware of the original client’s IP address.
508+
509+
- question: How can I set the SSL policy for TLS listeners?
510+
answer: The same SSL policy configuration is applicable for both Layer 7 (HTTPS) as well as Layer 4 (TLS). Currently, we don't support SSL Profile (listener-specific SSL policy or Mutual Authentication) for TLS listeners.
511+
512+
- question: Does Application Gateway support session affinity for Layer 4 routing?
513+
answer: No. Routing a client to the same backend server isn't supported at the moment. The connections will be distributed in a round-robin manner to the servers in a backend pool.
514+
515+
- question: Does the autoscale feature work with Layer 4 proxy?
516+
answer: Yes, the autoscale feature will operate for spikes and reductions in traffic for TLS or TCP protocol as well.
517+
518+
- question: Is Web Application Firewall (WAF) supported for Layer 4 traffic?
519+
answer: The Web Application Firewall (WAF) capabilities won't work for Layer 4 usage.
520+
521+
- question: Does Application Gateway’s Layer 4 proxy support UDP protocol?
522+
answer: No. UDP support isn't available at this time.
523+
524+
- name: Configuration - ingress controller for AKS
471525
questions:
472526
- question: What is an ingress controller?
473527
answer: |
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
title: Configure Azure Application Gateway TCP/TLS proxy (Preview)
3+
titleSuffix: Azure Application Gateway
4+
description: This article provides information on how to configure Application Gateway's layer 4 proxy service for non-HTTP workloads.
5+
services: application-gateway
6+
author: greg-lindsay
7+
ms.service: application-gateway
8+
ms.topic: how-to
9+
ms.date: 02/26/2024
10+
ms.author: greglin
11+
---
12+
13+
# Configure Azure Application Gateway TCP/TLS proxy (Preview)
14+
15+
To try out the layer 4 features of Azure Application Gateway, this article shows how to use the Azure portal to create an Azure Application Gateway with a SQL Server virtual machine as the backend server. Connectivity through a SQL client is also tested to verify the configuration works correctly. The article guides you through the following procedures:
16+
17+
- Create a SQL server Azure virtual machine
18+
- Create a new application gateway
19+
- Configure basic settings and a frontend public IP address
20+
- Add a backend pool and set the SQL server as a backend target
21+
- Create a routing rule
22+
- Create a listener with the required port (SQL 1433)
23+
- Create a backend setting using layer 4 protocol
24+
25+
- Add a SQL server to the backend pool
26+
- Connect to the application gateway using a SQL client
27+
28+
> [!IMPORTANT]
29+
> Application Gateway TCP/TLS proxy is currently in PREVIEW.<br>
30+
> See the [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
31+
32+
## Register to the preview
33+
34+
> [!NOTE]
35+
> When you join this preview, all Application Gateways will have the ability to use Layer 4 proxy features. This is an auto-approved registration and needs about **30 minutes to take effect**.
36+
37+
For more information about preview features, see [Set up preview features in Azure subscription](../azure-resource-manager/management/preview-features.md).
38+
39+
Use the following steps to enroll into the public preview for Application Gateway TCP/TLS proxy using the Azure portal:
40+
41+
1. Sign in to the [Azure portal](https://portal.azure.com/).
42+
2. In the search box, enter _subscriptions_ and select **Subscriptions**.
43+
44+
:::image type="content" source="../azure-resource-manager/management/media/preview-features/search.png" alt-text="Screenshot of Azure portal search.":::
45+
46+
3. Select the link for your subscription's name.
47+
48+
:::image type="content" source="../azure-resource-manager/management/media/preview-features/subscriptions.png" alt-text="Screenshot selecting the Azure subscription.":::
49+
50+
4. From the left menu, under **Settings** select **Preview features**.
51+
52+
:::image type="content" source="../azure-resource-manager/management/media/preview-features/preview-features-menu.png" alt-text="Screenshot of the Azure preview features menu.":::
53+
54+
5. You see a list of available preview features and your current registration status.
55+
56+
:::image type="content" source="../azure-resource-manager/management/media/preview-features/preview-features-list.png" alt-text="Screenshot of Azure portal list of preview features listed.":::
57+
58+
6. From **Preview features** type into the filter box **AllowApplicationGatewayTlsProxy**, select the feature, and then select **Register**.
59+
60+
:::image type="content" source="../azure-resource-manager/management/media/preview-features/filter.png" alt-text="Screenshot of Azure portal filter preview features.":::
61+
62+
## Create a SQL server
63+
64+
First, create a SQL Server virtual machine (VM) using the Azure portal.
65+
66+
1. From the Azure portal Home page, search for **SQL Virtual Machines** and then select **SQL virtual machines** under **Services**.
67+
68+
![Screenshot of selecting SQL virtual machines in the Azure portal.](./media/how-to-tcp-tls-proxy/select-sql-virtual-machines.png)
69+
70+
2. Select **Create** and then on the Select SQL deployment option page, choose a **Free SQL Server License** option from the drop-down menu. For example: **SQL Server 2022 Developer on Windows Server 2022**. You can also select a different Free license version to test.
71+
72+
3. After choosing a free SQL license version, select **Create**. The **Basics** tab opens.
73+
74+
4. Enter the following information on the **Basics** tab:
75+
- **Subscription**: Select your Azure subscription name.
76+
- **Resource group**: Create a new resource group so that you can easily remove it after testing, for example: **myresourcegroup**.
77+
- **Virtual machine name**: mySQLVM
78+
- **Region**: Select the same region as your resource group.
79+
- **Availability options**: Accept the default settings.
80+
- **Security type**: Accept the default settings.
81+
- **Image**: Accept the default settings.
82+
- **VM architecture**: Accept the default settings.
83+
- **Size**: Select a size compatible with the region.
84+
- **Administrator details**: Enter a username and password.
85+
- **Inbound port rules**: Accept the default settings.
86+
87+
![Screenshot displaying virtual machine settings.](./media/how-to-tcp-tls-proxy/create-a-virtual-machine.png)
88+
89+
5. Select **Review + create**, and then select **Create**. Deployment of the virtual machine takes a few minutes.
90+
6. When deployment is complete, select the SQL server resource's overview page and write down the public IP address of the virtual machine.
91+
92+
![Screenshot displaying the public IP address.](./media/how-to-tcp-tls-proxy/public-ip-address.png)
93+
94+
## Create an Application Gateway
95+
96+
1. On the Azure portal menu or from the **Home** page, select **Create a resource**.
97+
2. Under **Categories**, select **Networking** and then select **Application Gateway** in the **Popular Azure services** list.
98+
3. On the **Basics** tab, enter the following details:
99+
- **Subscription**: Select your Azure subscription name.
100+
- **Resource group**: Select the same resource group that you entered for the previous procedure to create a SQL server virtual machine.
101+
- **Application gateway name**: myL4AppGW
102+
- **Region**: Select the same region as your resource group.
103+
- **Tier**: Standard V2
104+
- **Enable autoscaling**: Accept the default setting.
105+
- **Minimum instance count**: 2
106+
- All other **Instance details**: Accept the default settings.
107+
- **Virtual network**: Select **Create new** and enter a name. For example: **myL4AppGWVNet**. Accept the default address space settings and replace the subnet name of default with a descriptive name such as **appgw-subnet**.
108+
109+
> [!NOTE]
110+
> Default address space and subnet settings are adjusted to avoid conflicting with other VNets that you have deployed.
111+
112+
![Screenshot displaying basic Application Gateway settings.](./media/how-to-tcp-tls-proxy/create-an-application-gateway-basics.png)
113+
114+
The following table provides more information about the settings used in this procedure.
115+
116+
| Field | Details |
117+
|-------|---------|
118+
| Subscription | Select the same subscription where you deployed the SQL server. |
119+
| Resource group | Select the same resource group where you deployed the SQL server. |
120+
| Application gateway name | You can provide any name for easy identification. |
121+
| Region | The region is automatically selected based on the resource group that you choose. |
122+
| Tier | For TCP/TLS proxy, you can select either Standard v2 or WAF v2. The WAF functions only apply to HTTP(S) when using a gateway in hybrid mode (HTTP, HTTPS along with TCP or TLS). |
123+
| Enable autoscaling | This setting allows your gateway to scale out and scale in based on loads. This is applicable for both Layer 7 and Layer 4 proxy. The default setting is **Yes**. |
124+
| Min/Max instance counts | For more information, see [Scaling Application Gateway v2 and WAF v2](application-gateway-autoscaling-zone-redundant.md). |
125+
| Availability zone | For more information, see [What are Azure regions and availability zones?](/azure/reliability/availability-zones-overview). |
126+
| HTTP2 | The default setting of disabled can be used for this test. |
127+
| Virtual network and subnet | You can choose an existing VNet under the region or create a new VNet. Application Gateway requires its own dedicated subnet with no other services deployed in it. |
128+
129+
4. Select **Next: Frontends**.
130+
5. Select a **Frontend IP address type** of **Public** and either use an existing IP address or create a new one.
131+
132+
<br><img src="./media/how-to-tcp-tls-proxy/create-a-public-ip-address.png" alt="Screenshot displaying creation of a new public IP address." width="70%">
133+
134+
6. Select **Next: Backends**.
135+
7. On the **Backends** tab, select **Add a backend pool**.
136+
8. Enter details under Add a backend pool:
137+
- **Name**: Enter a name for the backend pool, for example **sql-vm**.
138+
- **Target type**: Select **IP address or FQDN** and enter the public IP address of the SQL server virtual machine that you wrote down previously.
139+
140+
<img src="./media/how-to-tcp-tls-proxy/add-backend-pool.png" alt="Screenshot displaying backend pool creation." width="60%">
141+
142+
9. Select **Add** and then select **Next: Configuration**.
143+
144+
10. Next, you create listeners, backend settings and a routing rule that links frontend and backend properties. Start by **selecting Add a routing rule** and entering the following settings on the **Listener** tab:
145+
- **Rule name**: SQL-rule
146+
- **Priority**: 100
147+
- **Listener name**: sql-client-listener
148+
- **Frontend IP**: Public IPv4
149+
- **Protocol**: TCP
150+
- **Port**: 1433
151+
152+
<br><img src="./media/how-to-tcp-tls-proxy/create-routing-rule.png" alt="Screenshot displaying routing rule creation." width="70%">
153+
154+
11. Select the **Backend targets** tab and enter the following settings:
155+
156+
- **Target type**: Backend pool
157+
- **Backend target**: Select the pool name you created, for example **sql-vm**.
158+
- **Backend settings**: Select Add new and create backend settings with the following values:
159+
- **Backend settings name**: backend-settings-sql
160+
- **Backend protocol**: TCP
161+
- **Backend port**: 1433
162+
- **Time-out (seconds)**: 20
163+
164+
<br><img src="./media/how-to-tcp-tls-proxy/create-backend-settings.png" alt="Screenshot displaying backend settings creation." width="70%">
165+
166+
12. Select **Add** to add the backend settings, and then select **Add** to add the routing rule.
167+
168+
<br><img src="./media/how-to-tcp-tls-proxy/add-routing-rule.png" alt="Screenshot adding a routing rule." width="70%">
169+
170+
13. Select **Next: Tags** and add tags if desired. No tags are required for this demonstration.
171+
14. Select Next: **Review + Create** and then select **Create**. The deployment process takes a few minutes.
172+
173+
## Connect to the SQL server
174+
175+
1. Before connecting to the SQL server, verify that you have:
176+
- The public IP address of the Application Gateway frontend
177+
- Configured the SQL server to accept SQL authentication
178+
- Created an admin account on the SQL server
179+
180+
2. On a client device with [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) installed, connect to the public IP address of the Azure virtual machine.
181+
182+
<br><img src="./media/how-to-tcp-tls-proxy/sql-connect.png" alt="Screenshot displaying the connection to a SQL server." width="60%">
183+
184+
## Clean up resources
185+
186+
When no longer needed, remove the application gateway and all related resources by deleting the resource group you created, **myresourcegroup**.
187+
188+
## Unregister from the preview
189+
190+
Using the same process that you used to register for the preview, unregister from the preview by selecting the preview feature and then selecting **Unregister**.
191+
192+
## Next steps
193+
194+
To monitor the health of your backend pool, see [Backend health and diagnostic logs for Application Gateway](application-gateway-diagnostics.md).
50.1 KB
Loading
64.3 KB
Loading
84.2 KB
Loading
196 KB
Loading
133 KB
Loading
34.4 KB
Loading
58.3 KB
Loading
113 KB
Loading

0 commit comments

Comments
 (0)