Skip to content

Commit 33007d0

Browse files
authored
Merge pull request #107954 from sharad4u/master
Adding documentation for various missing fields in the API, updating limits and adding clarity for the operational behavior of Front Door in the docs
2 parents 48e562f + 06eea7d commit 33007d0

8 files changed

+78
-37
lines changed

articles/frontdoor/front-door-backend-pool.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,18 @@ A backend pool defines how the different backends should be evaluated via health
6262
### Health probes
6363
Front Door sends periodic HTTP/HTTPS probe requests to each of your configured backends. Probe requests determine the proximity and health of each backend to load balance your end-user requests. Health probe settings for a backend pool define how we poll the health status of app backends. The following settings are available for load-balancing configuration:
6464

65-
- **Path**. The URL used for probe requests for all the backends in the backend pool. For example, if one of your backends is contoso-westus.azurewebsites.net and the path is set to /probe/test.aspx, then Front Door environments, assuming the protocol is set to HTTP, will send health probe requests to http\://contoso-westus.azurewebsites.net/probe/test.aspx.
65+
- **Path**: The URL used for probe requests for all the backends in the backend pool. For example, if one of your backends is contoso-westus.azurewebsites.net and the path is set to /probe/test.aspx, then Front Door environments, assuming the protocol is set to HTTP, will send health probe requests to http\://contoso-westus.azurewebsites.net/probe/test.aspx.
6666

67-
- **Protocol**. Defines whether to send the health probe requests from Front Door to your backends with HTTP or HTTPS protocol.
67+
- **Protocol**: Defines whether to send the health probe requests from Front Door to your backends with HTTP or HTTPS protocol.
6868

69-
- **Interval (seconds)**. Defines the frequency of health probes to your backends, or the intervals in which each of the Front Door environments sends a probe.
69+
- **Method**:The HTTP method to be used for sending health probes. Options include GET or HEAD (default).
70+
> [!NOTE]
71+
> For lower load and cost on your backends, Front Door recommends using HEAD requests for health probes.
72+
73+
- **Interval (seconds)**: Defines the frequency of health probes to your backends, or the intervals in which each of the Front Door environments sends a probe.
7074

7175
>[!NOTE]
72-
>For faster failovers, set the interval to a lower value. The lower the value, the higher the health probe volume your backends receive. For example, if the interval is set to 30 seconds with 90 Front Door environments or POPs globally, each backend will receive about 3-5 probe requests per second.
76+
>For faster failovers, set the interval to a lower value. The lower the value, the higher the health probe volume your backends receive. For example, if the interval is set to 30 seconds with say, 100 Front Door POPs globally, each backend will receive about 200 probe requests per minute.
7377
7478
For more information, see [Health probes](front-door-health-probes.md).
7579

articles/frontdoor/front-door-caching.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ms.author: sharadag
1414
---
1515

1616
# Caching with Azure Front Door
17-
The following document specifies behavior for Front Door with routing rules that have enabled caching.
17+
The following document specifies behavior for Front Door with routing rules that have enabled caching. Front Door is a modern Content Delivery Network (CDN) and so along with dynamic site acceleration and load balancing, it also supports caching behaviors just like any other CDN.
1818

1919
## Delivery of large files
2020
Azure Front Door delivers large files without a cap on file size. Front Door uses a technique called object chunking. When a large file is requested, Front Door retrieves smaller pieces of the file from the backend. After receiving a full or byte-range file request, a Front Door environment requests the file from the backend in chunks of 8 MB.
@@ -99,7 +99,7 @@ The following order of headers is used in order to determine how long an item wi
9999
2. Cache-Control: max-age=\<seconds>
100100
3. Expires: \<http-date>
101101

102-
Cache-Control response headers that indicate that the response wont be cached such as Cache-Control: private, Cache-Control: no-cache, and Cache-Control: no-store are honored. However, if there are multiple requests in-flight at a POP for the same URL, they may share the response. If no Cache-Control is present the default behavior is that AFD will cache the resource for X amount of time where X is randomly picked between 1 to 3 days.
102+
Cache-Control response headers that indicate that the response won't be cached such as Cache-Control: private, Cache-Control: no-cache, and Cache-Control: no-store are honored. However, if there are multiple requests in-flight at a POP for the same URL, they may share the response. If no Cache-Control is present the default behavior is that AFD will cache the resource for X amount of time where X is randomly picked between 1 to 3 days.
103103

104104
## Request headers
105105

articles/frontdoor/front-door-custom-domain-https.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ You can use your own certificate to enable the HTTPS feature. This process is do
8080
8181
2. Azure Key Vault certificates: If you already have a certificate, you can upload it directly to your Azure Key Vault account or you can create a new certificate directly through Azure Key Vault from one of the partner CAs that Azure Key Vault integrates with. Upload your certificate as a **certificate** object, rather than a **secret**.
8282

83-
> [!IMPORTANT]
84-
> You must upload the certificate in PFX format **without** password protection.
83+
> [!NOTE]
84+
> For your own SSL certificate, Front Door doesn't support certificates with EC cryptography algorithms.
8585
8686
#### Register Azure Front Door
8787

@@ -256,8 +256,8 @@ The following table shows the operation progress that occurs when you disable HT
256256
If you have a CNAME entry for your custom domain that points directly to your endpoint hostname (and you are not using the afdverify subdomain name), you won't receive a domain verification email. Validation occurs automatically. Otherwise, if you don't have a CNAME entry and you haven't received an email within 24 hours, contact Microsoft support.
257257

258258
4. *Is using a SAN certificate less secure than a dedicated certificate?*
259-
260-
A SAN certificate follows the same encryption and security standards as a dedicated certificate. All issued SSL certificates use SHA-256 for enhanced server security.
259+
260+
A SAN certificate follows the same encryption and security standards as a dedicated certificate. All issued SSL certificates use SHA-256 for enhanced server security.
261261

262262
5. *Do I need a Certificate Authority Authorization record with my DNS provider?*
263263

articles/frontdoor/front-door-custom-domain.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ In this tutorial, you learn how to:
2828
2929
[!INCLUDE [quickstarts-free-trial-note](../../includes/quickstarts-free-trial-note.md)]
3030

31+
> [!NOTE]
32+
> Front Door does **not** support custom domains with [punycode](https://en.wikipedia.org/wiki/Punycode) characters.
33+
3134
## Prerequisites
3235

3336
Before you can complete the steps in this tutorial, you must first create a Front Door. For more information, see [Quickstart: Create a Front Door](quickstart-create-front-door.md).

articles/frontdoor/front-door-diagnostics.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,14 @@ Front Door currently provides diagnostic logs (batched hourly). Diagnostic logs
7171
| Property | Description |
7272
| ------------- | ------------- |
7373
| BackendHostname | If request was being forwarded to a backend, this field represents the hostname of the backend. This field will be blank if the request was redirected or forwarded to a regional cache (when caching is enabled for the routing rule). |
74+
| CacheStatus | For caching scenarios, this field defines the cache hit/miss at the POP |
7475
| ClientIp | The IP address of the client that made the request. If there was an X-Forwarded-For header in the request, then the Client IP is picked from the same. |
7576
| ClientPort | The IP port of the client that made the request. |
7677
| HttpMethod | HTTP method used by the request. |
7778
| HttpStatusCode | The HTTP status code returned from the proxy. |
7879
| HttpStatusDetails | Resulting status on the request. Meaning of this string value can be found at a Status reference table. |
7980
| HttpVersion | Type of the request or connection. |
81+
| POP | Short name of the edge where the request landed. |
8082
| RequestBytes | The size of the HTTP request message in bytes, including the request headers and the request body. |
8183
| RequestUri | URI of the received request. |
8284
| ResponseBytes | Bytes sent by the backend server as the response. |
@@ -87,6 +89,16 @@ Front Door currently provides diagnostic logs (batched hourly). Diagnostic logs
8789
| TrackingReference | The unique reference string that identifies a request served by Front Door, also sent as X-Azure-Ref header to the client. Required for searching details in the access logs for a specific request. |
8890
| UserAgent | The browser type that the client used. |
8991

92+
**Note:** For various routing configurations and traffic behaviors, some of the fields like backendHostname, cacheStatus, sentToOriginShield, and POP field may respond with different values. The below table explains the different values, these fields will have for various scenarios:
93+
94+
| Scenarios | Count of log entries | POP | BackendHostname | SentToOriginShield | CacheStatus |
95+
| ------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
96+
| Routing rule without caching enabled | 1 | Edge POP code | Backend where request was forwarded | False | CONFIG_NOCACHE |
97+
| Routing rule with caching enabled. Cache hit at the edge POP | 1 | Edge POP code | Empty | False | HIT |
98+
| Routing rule with caching enabled. Cache miss at edge POP but cache hit at parent cache POP | 2 | 1. Edge POP code</br>2. Parent cache POP code | 1. Parent cache POP hostname</br>2. Empty | 1. True</br>2. False | 1. MISS</br>2. PARTIAL_HIT |
99+
| Routing rule with caching enabled. Cache miss at both edge and parent cache POP | 2 | 1. Edge POP code</br>2. Parent cache POP code | 1. Parent cache POP hostname</br>2. Backend that helps populate cache | 1. True</br>2. False | 1. MISS</br>2. MISS |
100+
101+
90102
## Next steps
91103

92104
- [Create a Front Door profile](quickstart-create-front-door.md)

articles/frontdoor/front-door-faq.md

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,22 +82,18 @@ Routes for your Front Door are not ordered and a specific route is selected base
8282

8383
### How do I lock down the access to my backend to only Azure Front Door?
8484

85-
To lock down your application to accept traffic only from your specific Front Door, you will need to set up IP ACLs for your backend and then restrict the set of accepted values for the header 'X-Forwarded-Host' sent by Azure Front Door. These steps are detailed out as below:
85+
To lock down your application to accept traffic only from your specific Front Door, you will need to set up IP ACLs for your backend and then restrict the traffic on your backend to the specific value of the header 'X-Azure-FDID' sent by Front Door. These steps are detailed out as below:
8686

87-
- Configure IP ACLing for your backends to accept traffic from Azure Front Door's backend IP address space and Azure's infrastructure services only. We are working towards integrating with [Azure IP Ranges and Service Tags](https://www.microsoft.com/download/details.aspx?id=56519) but for now you can refer the IP ranges as below:
87+
- Configure IP ACLing for your backends to accept traffic from Azure Front Door's backend IP address space and Azure's infrastructure services only. Refer the IP details below for ACLing your backend:
8888

89-
- Front Door's **IPv4** backend IP space: `147.243.0.0/16`
90-
- Front Door's **IPv6** backend IP space: `2a01:111:2050::/44`
89+
- Refer *AzureFrontDoor.Backend* section in [Azure IP Ranges and Service Tags](https://www.microsoft.com/download/details.aspx?id=56519) for Front Door's IPv4 backend IP address range or you can also use the service tag *AzureFrontDoor.Backend* in your [network security groups](https://docs.microsoft.com/azure/virtual-network/security-overview#security-rules) or with [Azure Firewall](https://docs.microsoft.com/azure/firewall/service-tags).
90+
- Front Door's **IPv6** backend IP space while covered in the service tag, is not listed in the Azure IP ranges JSON file. If you are looking for explicit IPv6 address range, it is currently limited to `2a01:111:2050::/44`
9191
- Azure's [basic infrastructure services](https://docs.microsoft.com/azure/virtual-network/security-overview#azure-platform-considerations) through virtualized host IP addresses: `168.63.129.16` and `169.254.169.254`
9292

9393
> [!WARNING]
9494
> Front Door's backend IP space may change later, however, we will ensure that before that happens, that we would have integrated with [Azure IP Ranges and Service Tags](https://www.microsoft.com/download/details.aspx?id=56519). We recommend that you subscribe to [Azure IP Ranges and Service Tags](https://www.microsoft.com/download/details.aspx?id=56519) for any changes or updates.
9595
96-
- Filter on the values for the incoming header '**X-Forwarded-Host**' sent by Front Door. The only allowed values for the header should be all of the frontend hosts as defined in your Front Door config. In fact even more specifically, only the host names for which you want to accept traffic from, on this particular backend of yours.
97-
- Example – let’s say your Front Door config has the following frontend hosts _`contoso.azurefd.net`_ (A), _`www.contoso.com`_ (B), _`api.contoso.com`_ (C), and _`notifications.contoso.com`_ (D). Let’s assume that you have two backends X and Y.
98-
- Backend X should only take traffic from host names A and B. Backend Y can take traffic from A, C, and D.
99-
- So, on Backend X you should only accept traffic that has the header '**X-Forwarded-Host**' set to either _`contoso.azurefd.net`_ or _`www.contoso.com`_. For everything else, backend X should reject the traffic.
100-
- Similarly, on Backend Y you should only accept traffic that has the header '**X-Forwarded-Host**' set to either _`contoso.azurefd.net`_, _`api.contoso.com`_ or _`notifications.contoso.com`_. For everything else, backend Y should reject the traffic.
96+
- Perform a GET operation on your Front Door with the API version `2020-01-01` or higher. The same operation can also be done by referring your Front Door profile in Azure portal. In the 'Overview' section in Azure portal, you will see a field named *Front Door ID" and in the API call this field is called `frontdoorID`. Filter on the incoming header '**X-Azure-FDID**' sent by Front Door to your backend with the value as that of the field `frontdoorID`.
10197

10298
### Can the anycast IP change over the lifetime of my Front Door?
10399

@@ -178,17 +174,36 @@ The following are the current cipher suites supported by Azure Front Door:
178174
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
179175
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
180176

177+
### Can I configure SSL policy to control SSL Protocol versions?
178+
179+
You can configure a minimum TLS version in Azure Front Door in the custom domain HTTPS settings via Azure portal or the [Azure REST API](https://docs.microsoft.com/rest/api/frontdoorservice/frontdoor/frontdoors/createorupdate#minimumtlsversion). Currently, you can choose between 1.0 and 1.2.
180+
181+
### Can I configure Front Door to only support specific cipher suites?
182+
183+
No, configuring Front Door for specific cipher suites is not supported. However, you can get your own custom SSL certificate from your Certificate Authority (say Verisign, Entrust, or Digicert) and have specific cipher suites marked on the certificate when you have it generated.
184+
185+
### Does Front Door support OCSP stapling?
186+
187+
Yes, OCSP stapling is supported by default by Front Door and no configuration is required.
188+
181189
### Does Azure Front Door also support re-encryption of traffic to the backend?
182190

183191
Yes, Azure Front Door supports SSL offload, and end to end SSL, which re-encrypts the traffic to the backend. In fact, since the connections to the backend happen over it's public IP, it is recommended that you configure your Front Door to use HTTPS as the forwarding protocol.
184192

185-
### Can I configure SSL policy to control SSL Protocol versions?
193+
### Does Front Door support self-signed certificates on the backend for HTTPS connection?
186194

187-
You can configure a minimum TLS version in Azure Front Door via the [Azure REST API](https://docs.microsoft.com/rest/api/frontdoorservice/frontdoor/frontdoors/createorupdate#minimumtlsversion). Currently, you can choose between 1.0 and 1.2.
195+
No, self-signed certificates are not supported on Front Door and the restriction applies to both:
188196

189-
### Can I configure Front Door to only support specific cipher suites?
197+
1. **Backends**: You cannot use self-signed certificates when you are forwarding the traffic as HTTPS or HTTPS health probes or filling the cache for from origin for routing rules with caching enabled.
198+
2. **Frontend**: You cannot use self-signed certificates when using your own custom SSL certificate for enabling HTTPS on your custom domain.
199+
200+
### Why is HTTPS traffic to my backend failing?
201+
202+
For having successful HTTPS connections to your backend whether for health probes or for forwarding requests, there could be two reasons why HTTPS traffic might fail:
190203

191-
No, configuring Front Door for specific cipher suites is not supported.
204+
1. **Certificate subject name mismatch**: For HTTPS connections, Front Door expects that your backend presents certificate from a valid CA with subject name(s) matching the backend hostname. As an example, if your backend hostname is set to `myapp-centralus.contosonews.net` and the certificate that your backend presents during the SSL handshake neither has `myapp-centralus.contosonews.net` nor `*myapp-centralus*.contosonews.net` in the subject name, the Front Door will refuse the connection and result in an error.
205+
1. **Solution**: While it is not recommended from a compliance standpoint, you can workaround this error by disabling certificate subject name check for your Front Door. This is present under Settings in Azure portal and under BackendPoolsSettings in the API.
206+
2. **Backend hosting certificate from invalid CA**: Only certificates from [valid CAs]() can be used at the backend with Front Door. Certificates from internal CAs or self-signed certificates are not allowed.
192207

193208
## Diagnostics and logging
194209

articles/frontdoor/front-door-health-probes.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ ms.author: sharadag
1717

1818
In order to determine the health and proximity of each backend from a given Front Door environment, each Front Door environment periodically sends a synthetic HTTP/HTTPS request to each of your configured backends. Front Door then uses responses from these probes to determine the "best" backends to which it should route real client requests.
1919

20-
> [!NOTE]
21-
> Since Front Door has many edge environments globally, health probe requests volume to your backends can be quite high - ranging from 18 requests every minute to as high as 960 requests per minute, depending on the health probe frequency configured.
20+
> [!WARNING]
21+
> Since Front Door has many edge environments globally, health probe requests volume to your backends can be quite high - ranging from 25 requests every minute to as high as 1200 requests per minute, depending on the health probe frequency configured. With the default probe frequency of 30 seconds, the probe volume on your backend should be about 200 requests per minute.
2222
2323
## Supported protocols
2424

@@ -63,6 +63,10 @@ If health probes fail for every backend in a backend pool, then Front Door consi
6363

6464
Once any backend returns to a healthy state, then Front Door will resume the normal load-balancing algorithm.
6565

66+
## Disabling health probes
67+
68+
If you have a single backend in your backend pool, you can choose to disable the health probes reducing the load on your application backend. Even if you have multiple backends in the backend pool but only one of them is in enabled state, you can disable health probes.
69+
6670
## Next steps
6771

6872
- Learn how to [create a Front Door](quickstart-create-front-door.md).

0 commit comments

Comments
 (0)