Skip to content

Commit 8a756c5

Browse files
author
Michael Bender
committed
merged ipv6
1 parent 99bb0ad commit 8a756c5

5 files changed

+225
-17
lines changed

articles/virtual-network/ip-services/create-custom-ip-address-prefix-ipv6-portal.md

Lines changed: 199 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: Create a custom IPv6 address prefix - Azure portal
2+
title: Create a custom IPv6 address prefix
33
titleSuffix: Azure Virtual Network
4-
description: Learn how to onboard a custom IPv6 address prefix using the Azure portal
4+
description: Learn how to onboard a custom IPv6 address prefix using the Azure portal, Azure CLI, or PowerShell.
55
author: mbender-ms
66
ms.author: mbender
77
ms.service: virtual-network
@@ -10,7 +10,7 @@ ms.topic: how-to
1010
ms.date: 08/24/2023
1111
---
1212

13-
# Create a custom IPv6 address prefix using the Azure portal
13+
# Create a custom IPv6 address prefix
1414

1515
A custom IPv6 address prefix enables you to bring your own IPv6 ranges to Microsoft and associate it to your Azure subscription. The range would continue to be owned by you, though Microsoft would be permitted to advertise it to the Internet. A custom IP address prefix functions as a regional resource that represents a contiguous block of customer owned IP addresses.
1616

@@ -20,24 +20,39 @@ The steps in this article detail the process to:
2020

2121
* Provision the range for IP allocation
2222

23-
* Enable the range to be advertised by Microsoft
23+
* Enable the IPv6 range to be advertised by Microsoft
2424

25-
## Differences between using BYOIPv4 and BYOIPv6
25+
For this article, choose between the Azure portal, Azure CLI, or PowerShell to create a custom IPv6 address prefix.
2626

27-
> [!IMPORTANT]
28-
> Onboarded custom IPv6 address prefixes have several unique attributes which make them different than custom IPv4 address prefixes.
27+
[!INCLUDE [ip-services-ipv4-ipv6-differences](../../../includes/ip-services-ipv4-ipv6-differences.md)]
28+
29+
## Prerequisites
2930

30-
* Custom IPv6 prefixes use a *parent*/*child* model. In this model, the Microsoft Wide Area Network (WAN) advertises the global (parent) range, and the respective Azure regions advertise the regional (child) ranges. Global ranges must be /48 in size, while regional ranges must always be /64 size. You can have multiple /64 ranges per region.
31+
# [Azure portal](#tab/azureportal)
3132

32-
* Only the global range needs to be validated using the steps detailed in the [Create Custom IP Address Prefix](create-custom-ip-address-prefix-portal.md) articles. The regional ranges are derived from the global range in a similar manner to the way public IP prefixes are derived from custom IP prefixes.
33+
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
34+
- A customer owned IPv6 range to provision in Azure. A sample customer range (2a05:f500:2::/48) is used for this example, but wouldn't be validated by Azure; you need to replace the example range with yours.
3335

34-
* Public IPv6 prefixes must be derived from the regional ranges. Only the first 2048 IPv6 addresses of each regional /64 custom IP prefix can be utilized as valid IPv6 space. Attempting to create public IPv6 prefixes that span beyond this will result in an error.
36+
# [Azure CLI](#tab/azurecli/)
3537

36-
## Prerequisites
38+
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
39+
- This tutorial requires version 2.37 or later of the Azure CLI (you can run az version to determine which you have). If using Azure Cloud Shell, the latest version is already installed.
40+
- Sign in to Azure CLI and ensure you've selected the subscription with which you want to use this feature using `az account`.
41+
- A customer owned IPv6 range to provision in Azure.
42+
- In this example, a sample customer range (2a05:f500:2::/48) is used. This range won't be validated by Azure. Replace the example range with yours.
43+
44+
# [Azure PowerShell](#tab/azurepowershell/)
3745

3846
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
47+
- Azure PowerShell installed locally or Azure Cloud Shell.
48+
- Sign in to Azure PowerShell and ensure you've selected the subscription with which you want to use this feature. For more information, see [Sign in with Azure PowerShell](/powershell/azure/authenticate-azureps).
49+
- Ensure your Az.Network module is 5.1.1 or later. To verify the installed module, use the command `Get-InstalledModule -Name "Az.Network"`. If the module requires an update, use the command `Update-Module -Name "Az.Network"` if necessary.
3950
- A customer owned IPv6 range to provision in Azure. A sample customer range (2a05:f500:2::/48) is used for this example, but wouldn't be validated by Azure; you need to replace the example range with yours.
4051

52+
If you choose to install and use PowerShell locally, this article requires the Azure PowerShell module version 5.4.1 or later. Run `Get-Module -ListAvailable Az` to find the installed version. If you need to upgrade, see [Install Azure PowerShell module](/powershell/azure/install-azure-powershell). If you're running PowerShell locally, you also need to run `Connect-AzAccount` to create a connection with Azure
53+
54+
---
55+
4156
> [!NOTE]
4257
> For problems encountered during the provisioning process, please see [Troubleshooting for custom IP prefix](manage-custom-ip-address-prefix.md#troubleshooting-and-faqs).
4358
@@ -52,6 +67,8 @@ The following steps display the modified steps for provisioning a sample global
5267
> [!NOTE]
5368
> Clean up or delete steps aren't shown on this page given the nature of the resource. For information on removing a provisioned custom IP prefix, see [Manage custom IP prefix](manage-custom-ip-address-prefix.md).
5469
70+
# [Azure portal](#tab/azureportal)
71+
5572
### Provision a global custom IPv6 address prefix
5673

5774
The following flow creates a custom IP prefix in the specified region and resource group. No zonal properties are provided because the global range isn't associated with any particular region (and therefore no regional availability zones).
@@ -151,12 +168,180 @@ It's possible to commission the global custom IPv6 prefix prior to the regional
151168
> [!IMPORTANT]
152169
> As the global custom IPv6 prefix transitions to a **Commissioned** state, the range is being advertised with Microsoft from the local Azure region and globally to the Internet by Microsoft's wide area network under Autonomous System Number (ASN) 8075. Advertising this same range to the Internet from a location other than Microsoft at the same time could potentially create BGP routing instability or traffic loss. For example, a customer on-premises building. Plan any migration of an active range during a maintenance period to avoid impact.
153170
171+
# [Azure CLI](#tab/azurecli/)
172+
173+
### Create a resource group and specify the prefix and authorization messages
174+
175+
Create a resource group in the desired location for provisioning the global range resource.
176+
177+
> [!IMPORTANT]
178+
> Although the resource for the global range will be associated with a region, the prefix will be advertised by the Microsoft WAN globally.
179+
180+
```azurecli-interactive
181+
az group create \
182+
--name myResourceGroup \
183+
--location westus2
184+
```
185+
186+
### Provision a global custom IPv6 address prefix
187+
188+
The following command creates a custom IP prefix in the specified region and resource group. Specify the exact prefix in CIDR notation as a string to ensure there's no syntax error. (The `-authorization-message` and `-signed-message` parameters are constructed in the same manner as they are for IPv4; for more information, see [Create a custom IP prefix - CLI](create-custom-ip-address-prefix-cli.md).) No zonal properties are provided because the global range isn't associated with any particular region (and therefore no regional availability zones).
189+
190+
```azurecli-interactive
191+
byoipauth="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx|2a05:f500:2::/48|yyyymmdd"
192+
193+
az network custom-ip prefix create \
194+
--name myCustomIPv6GlobalPrefix \
195+
--resource-group myResourceGroup \
196+
--location westus2 \
197+
--cidr ‘2a05:f500:2::/48’ \
198+
--authorization-message $byoipauth \
199+
--signed-message $byoipauthsigned
200+
```
201+
202+
### Provision a regional custom IPv6 address prefix
203+
204+
After the global custom IP prefix is in a **Provisioned** state, regional custom IP prefixes can be created. These ranges must always be of size /64 to be considered valid. The ranges can be created in any region (it doesn't need to be the same as the global custom IP prefix), keeping in mind any geolocation restrictions associated with the original global range. The *children* custom IP prefixes are advertised locally from the region they're created in. Because the validation is only done for global custom IP prefix provision, no Authorization or Signed message is required. (Because these ranges are advertised from a specific region, zones can be utilized.)
205+
206+
```azurecli-interactive
207+
az network custom-ip prefix create \
208+
--name myCustomIPv6RegionalPrefix \
209+
--resource-group myResourceGroup \
210+
--location westus2 \
211+
--cidr ‘2a05:f500:2:1::/64’ \
212+
--zone 1 2 3
213+
```
214+
215+
Similar to IPv4 custom IP prefixes, after the regional custom IP prefix is in a **Provisioned** state, public IP prefixes can be derived from the regional custom IP prefix. These public IP prefixes and any public IP addresses derived from them can be attached to networking resources, though they aren't yet being advertised.
216+
217+
> [!IMPORTANT]
218+
> Public IPv6 prefixes derived from regional custom IPv6 prefixes can only utilize the first 2048 IPs of the /64 range.
219+
220+
## Commission the custom IPv6 address prefixes
221+
222+
When commissioning custom IPv6 prefixes, the global and regional prefixes are treated separately. In other words, commissioning a regional custom IPv6 prefix isn't connected to commissioning the global custom IPv6 prefix.
223+
224+
:::image type="content" source="./media/create-custom-ip-address-prefix-ipv6/any-region-prefix.png" alt-text="Diagram of custom IPv6 prefix showing parent prefix and child prefixes across multiple regions.":::
225+
226+
The safest strategy for range migrations is as follows:
227+
1. Provision all required regional custom IPv6 prefixes in their respective regions. Create public IPv6 prefixes and public IP addresses and attach to resources.
228+
2. Commission each regional custom IPv6 prefix and test connectivity to the IPs within the region. Repeat for each regional custom IPv6 prefix.
229+
3. After all regional custom IPv6 prefixes (and derived prefixes/IPs) have been verified to work as expected, commission the global custom IPv6 prefix, which will advertise the larger range to the Internet.
230+
231+
Using the example ranges above, the command sequence would be:
232+
233+
```azurecli-interactive
234+
az network custom-ip prefix update \
235+
--name myCustomIPv6GlobalPrefix \
236+
--resource-group myResourceGroup \
237+
--state commission
238+
```
239+
240+
Followed by:
241+
242+
```azurecli-interactive
243+
az network custom-ip prefix update \
244+
--name myCustomIPv6RegionalPrefix \
245+
--resource-group myResourceGroup \
246+
--state commission
247+
```
248+
249+
> [!NOTE]
250+
> The estimated time to fully complete the commissioning process for a custom IPv6 global prefix is 3-4 hours. The estimated time to fully complete the commissioning process for a custom IPv6 regional prefix is 30 minutes.
251+
252+
It's possible to commission the global custom IPv6 prefix prior to the regional custom IPv6 prefixes. Doing this advertises the global range to the Internet before the regional prefixes are ready so it's not recommended for migrations of active ranges. You can decommission a global custom IPv6 prefix while there are still active (commissioned) regional custom IPv6 prefixes. Also, you can decommission a regional custom IP prefix while the global prefix is still active (commissioned).
253+
254+
> [!IMPORTANT]
255+
> As the global custom IPv6 prefix transitions to a **Commissioned** state, the range is being advertised with Microsoft from the local Azure region and globally to the Internet by Microsoft's wide area network under Autonomous System Number (ASN) 8075. Advertising this same range to the Internet from a location other than Microsoft at the same time could potentially create BGP routing instability or traffic loss. For example, a customer on-premises building. Plan any migration of an active range during a maintenance period to avoid impact.
256+
257+
258+
# [Azure PowerShell](#tab/azurepowershell/)
259+
260+
### Create a resource group and specify the prefix and authorization messages
261+
262+
Create a resource group in the desired location for provisioning the global range resource.
263+
264+
> [!IMPORTANT]
265+
> Although the resource for the global range will be associated with a region, the prefix will be advertised by the Microsoft WAN globally.
266+
267+
```azurepowershell-interactive
268+
$rg =@{
269+
Name = 'myResourceGroup'
270+
Location = 'WestUS2'
271+
}
272+
New-AzResourceGroup @rg
273+
```
274+
275+
### Provision a global custom IPv6 address prefix
276+
277+
The following command creates a custom IP prefix in the specified region and resource group. Specify the exact prefix in CIDR notation as a string to ensure there's no syntax error. (The `-AuthorizationMessage` and `-SignedMessage` parameters are constructed in the same manner as they are for IPv4; for more information, see [Create a custom IP prefix - PowerShell](create-custom-ip-address-prefix-powershell.md).) No zonal properties are provided because the global range isn't associated with any particular region (and therefore no regional availability zones).
278+
279+
```azurepowershell-interactive
280+
$prefix =@{
281+
Name = 'myCustomIPv6GlobalPrefix'
282+
ResourceGroupName = 'myResourceGroup'
283+
Location = 'WestUS'
284+
CIDR = '2a05:f500:2::/48'
285+
AuthorizationMessage = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx|2a05:f500:2::/48|yyyymmdd'
286+
SignedMessage = $byoipauthsigned
287+
}
288+
$myCustomIPv6GlobalPrefix = New-AzCustomIPPrefix @prefix
289+
```
290+
291+
### Provision a regional custom IPv6 address prefix
292+
293+
After the global custom IP prefix is in a **Provisioned** state, regional custom IP prefixes can be created. These ranges must always be of size /64 to be considered valid. The ranges can be created in any region (it doesn't need to be the same as the global custom IP prefix), keeping in mind any geolocation restrictions associated with the original global range. The "children" custom IP prefixes will be advertised locally from the region they're created in. Because the validation is only done for global custom IP prefix provision, no Authorization or Signed message is required. (Because these ranges will be advertised from a specific region, zones can be utilized.)
294+
295+
```azurepowershell-interactive
296+
$prefix =@{
297+
Name = 'myCustomIPv6RegionalPrefix'
298+
ResourceGroupName = 'myResourceGroup'
299+
Location = 'EastUS2'
300+
CIDR = '2a05:f500:2:1::/64'
301+
}
302+
$myCustomIPv6RegionalPrefix = New-AzCustomIPPrefix @prefix -Zone 1,2,3
303+
```
304+
305+
Similar to IPv4 custom IP prefixes, after the regional custom IP prefix is in a **Provisioned** state, public IP prefixes can be derived from the regional custom IP prefix. These public IP prefixes and any public IP addresses derived from them can be attached to networking resources, though they aren't yet being advertised.
306+
307+
> [!IMPORTANT]
308+
> Public IPv6 prefixes derived from regional custom IPv6 prefixes can only utilize the first 2048 IPs of the /64 range.
309+
310+
### Commission the custom IPv6 address prefixes
311+
312+
When commissioning custom IPv6 prefixes, the global and regional prefixes are treated separately. In other words, commissioning a regional custom IPv6 prefix isn't connected to commissioning the global custom IPv6 prefix.
313+
314+
:::image type="content" source="./media/create-custom-ip-address-prefix-ipv6/any-region-prefix.png" alt-text="Diagram of custom IPv6 prefix showing parent prefix and child prefixes across multiple regions.":::
315+
316+
The safest strategy for range migrations is as follows:
317+
1. Provision all required regional custom IPv6 prefixes in their respective regions. Create public IPv6 prefixes and public IP addresses and attach to resources.
318+
2. Commission each regional custom IPv6 prefix and test connectivity to the IPs within the region. Repeat for each regional custom IPv6 prefix.
319+
3. After all regional custom IPv6 prefixes (and derived prefixes/IPs) have been verified to work as expected, commission the global custom IPv6 prefix, which will advertise the larger range to the Internet.
320+
321+
Using the example ranges above, the command sequence would be:
322+
323+
```azurepowershell-interactive
324+
Update-AzCustomIpPrefix -ResourceId $myCustomIPv6RegionalPrefix.Id -Commission
325+
```
326+
Followed by:
327+
328+
```azurepowershell-interactive
329+
Update-AzCustomIpPrefix -ResourceId $myCustomIPv6GlobalPrefix.Id -Commission
330+
```
331+
> [!NOTE]
332+
> The estimated time to fully complete the commissioning process for a custom IPv6 global prefix is 3-4 hours. The estimated time to fully complete the commissioning process for a custom IPv6 regional prefix is 30 minutes.
333+
334+
It's possible to commission the global custom IPv6 prefix prior to the regional custom IPv6 prefixes. Doing this advertises the global range to the Internet before the regional prefixes are ready so it's not recommended for migrations of active ranges. You can decommission a global custom IPv6 prefix while there are still active (commissioned) regional custom IPv6 prefixes. Also, you can decommission a regional custom IP prefix while the global prefix is still active (commissioned).
335+
336+
> [!IMPORTANT]
337+
> As the global custom IPv6 prefix transitions to a **Commissioned** state, the range is being advertised with Microsoft from the local Azure region and globally to the Internet by Microsoft's wide area network under Autonomous System Number (ASN) 8075. Advertising this same range to the Internet from a location other than Microsoft at the same time could potentially create BGP routing instability or traffic loss. For example, a customer on-premises building. Plan any migration of an active range during a maintenance period to avoid impact.
338+
339+
---
340+
154341
## Next steps
155342

156343
- To learn about scenarios and benefits of using a custom IP prefix, see [Custom IP address prefix (BYOIP)](custom-ip-address-prefix.md).
157344

158345
- For more information on managing a custom IP prefix, see [Manage a custom IP address prefix (BYOIP)](manage-custom-ip-address-prefix.md).
159346

160-
- To create a custom IP address prefix using the Azure CLI, see [Create custom IP address prefix using the Azure CLI](create-custom-ip-address-prefix-cli.md).
161-
162-
- To create a custom IP address prefix using PowerShell, see [Create a custom IP address prefix using Azure PowerShell](create-custom-ip-address-prefix-powershell.md).
347+
- To create a custom IP address prefix using the Azure portal, Azure CLI or Azure PowerShell, see [Create custom IP address prefix](create-custom-ip-address-prefix-portal.md).

articles/virtual-network/ip-services/create-custom-ip-address-prefix-ipv6-powershell.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ If you choose to install and use PowerShell locally, this article requires the A
4949
5050
## Pre-provisioning steps
5151

52-
To utilize the Azure BYOIP feature, you must perform and number of steps prior to the provisioning of your IPv6 address range. Refer to the [IPv4 instructions](create-custom-ip-address-prefix-powershell.md#pre-provisioning-steps) for details. Note all these steps should be completed for the IPv6 global (parent) range.
52+
To utilize the Azure BYOIP feature, you must perform and number of steps prior to the provisioning of your IPv6 address range. Refer to the [IPv4 instructions](./create-custom-ip-address-prefix-ipv6-portal.md#pre-provisioning-steps) for details. Note all these steps should be completed for the IPv6 global (parent) range.
5353

5454
## Provisioning for IPv6
5555

articles/virtual-network/ip-services/create-custom-ip-address-prefix-portal.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ If you choose to install and use PowerShell locally, this article requires the A
6363
6464
---
6565

66+
## Pre-provisioning steps
67+
6668
[!INCLUDE [ip-services-pre-provisioning-steps](../../../includes/ip-services-pre-provisioning-steps.md)]
6769

6870
## Provisioning steps

0 commit comments

Comments
 (0)