Create or modify a Direct peering using PowerShell
This article describes how to create a Microsoft Direct peering by using PowerShell cmdlets and the Azure Resource Manager deployment model. This article also shows you how to check the status of the resource, update it, or delete and deprovision it.
If you prefer, you can complete this guide by using the Azure portal.
Before you begin
- Review the prerequisites and the Direct peering walkthrough before you begin configuration.
- If you already have Direct peering connections with Microsoft that aren't converted to Azure resources, see Convert a legacy Direct peering to an Azure resource by using PowerShell.
Work with Azure PowerShell
To run the cmdlets, you can use Azure Cloud Shell, a free interactive shell. It has common Azure tools preinstalled and configured to use with your account. Select Copy to copy the code, and paste it into Cloud Shell. Then select Enter to run it. There are a few ways to launch Cloud Shell:
Launch Method | Screenshot |
---|---|
Open Cloud Shell in your browser. | |
Select the Cloud Shell button on the toolbar in the upper right of the Azure portal. | |
If you don't want to use Azure Cloud Shell, you can install PowerShell locally instead. If you choose to install and use PowerShell locally, be sure to install the latest version of the Azure Resource Manager PowerShell cmdlets. PowerShell cmdlets are updated frequently. You typically need to update your PowerShell cmdlets to get the latest feature functionality. If you don't, you might encounter issues.
To find the version of PowerShell that you're running locally, use the 'Get-Module -ListAvailable Az' cmdlet. To update, see Install the Azure PowerShell module. For more information, see how to install and configure Azure PowerShell.
If you use PowerShell on macOS, follow the steps in Installing PowerShell on macOS.
Create and provision a Direct peering
Sign in to your Azure account and select your subscription
Before you begin configuration, install and import the required modules. You need Administrator privileges to install modules in PowerShell.
Install and import the Az module.
Install-Module Az -AllowClobber Import-Module Az
Install and import the Az.Peering module.
Install-Module -Name Az.Peering -AllowClobber Import-Module Az.Peering
Verify that the modules imported properly by using this command:
Get-Module
Sign in to your Azure account by using this command:
Connect-AzAccount
Check the subscriptions for the account, and select the subscription in which you want to create a peering.
Get-AzSubscription Select-AzSubscription -SubscriptionId "subscription-id"
If you don't already have a resource group, you must create one before you create a peering. You can do so by running the following command:
New-AzResourceGroup -Name "PeeringResourceGroup" -Location "Central US"
Important
If you haven't already associated your ASN and subscription, follow the steps in Associate Peer ASN. This action is required to request a peering.
Note
The location of a resource group is independent of the location where you choose to set up a peering.
Get the list of supported peering locations for Direct peering
The PowerShell cmdlet Get-AzPeeringLocation returns a list of peering locations with the mandatory parameter Kind
, which you'll use in later steps.
Get-AzPeeringLocation -Kind Direct
Direct peering locations contain the following fields:
- PeeringLocation
- Country
- PeeringDBFacilityId
- PeeringDBFacilityLink
- BandwidthOffers
Validate that you're present at the desired peering facility by referring to PeeringDB.
This example shows how to use Seattle as the peering location to create a Direct peering.
$peeringLocations = Get-AzPeeringLocation -Kind Direct
$peeringLocation = $peeringLocations | where {$_.PeeringLocation -contains "Seattle"}
$peeringLocation
PeeringLocation : Seattle
Address : 2001 Sixth Avenue
Country : US
PeeringDBFacilityId : 71
PeeringDBFacilityLink : https://www.peeringdb.com/fac/71
BandwidthOffers : {10Gbps, 100Gbps}
Create a Direct peering
The following example shows how to create a 10-Gbps Direct peering in Seattle.
Use the PowerShell cmdlet New-AzPeeringDirectConnectionObject to create DirectConnection objects that are to be used in the new peering request.
This example shows how to create a DirectConnection object.
$connection1 = New-AzPeeringDirectConnectionObject `
-PeeringDBFacilityId $peeringLocation[0].PeeringDBFacilityId `
-SessionPrefixV4 10.21.31.0/31 `
-SessionPrefixV6 fe01::3e:0/127 `
-MaxPrefixesAdvertisedIPv4 1000 `
-MaxPrefixesAdvertisedIPv6 100 `
-BandwidthInMbps 10000
Note
The value for $peeringLocation[] in the previous example should correspond to the peering location of your choice.
Create another connection in case you need redundancy at a given peering location.
$connection2 = New-AzPeeringDirectConnectionObject `
-PeeringDBFacilityId $peeringLocation[0].PeeringDBFacilityId `
-SessionPrefixV4 10.21.33.0/31 `
-SessionPrefixV6 fe01::3f:0/127 `
-MaxPrefixesAdvertisedIPv4 1000 `
-MaxPrefixesAdvertisedIPv6 100 `
-BandwidthInMbps 10000
Use the PowerShell cmdlet New-AzPeering to create a new Direct peering. This command requires an ASN resource ID, which can be retrieved as shown here.
$asn = Get-AzPeerAsn
New-AzPeering `
-Name "SeattleDirectPeering" `
-ResourceGroupName "PeeringResourceGroup" `
-PeeringLocation $peeringLocation[0].PeeringLocation `
-PeerAsnResourceId $asn.Id `
-DirectConnection $connection1 [, $connection2]
This example shows the response when the request was processed successfully.
Name : SeattleDirectPeering
Sku.Name : Basic_Direct_Free
Kind : Direct
Connections : 71
PeerAsn.Id : /subscriptions/{subscriptionId}/providers/Microsoft.Peering/peerAsns/SeattleDirectPeering
UseForPeeringService : False
PeeringLocation : Seattle
ProvisioningState : Succeeded
Location : centralus
Id : /subscriptions/{subscriptionId}/resourceGroups/PeeringResourceGroup/providers/Microsoft.Peering/peerings/SeattleDirectPeering
Type : Microsoft.Peering/peerings
Tags : {}
Note that in place of {subscriptionId} in this output, the actual subscription ID will be displayed.
Verify Direct peering
To get the list of peerings, run the Get-AzPeering command.
$directPeering = Get-AzPeering -ResourceGroupName "PeeringResourceGroup" -Name "SeattleDirectPeering"
The following example shows the response when end-to-end provisioning was successfully completed.
Name : SeattleDirectPeering
Sku.Name : Basic_Direct_Free
Kind : Direct
Connections : {71}
PeerAsn.Id : /subscriptions/{subscriptionId}/providers/Microsoft.Peering/peerAsns/SeattleDirectPeering
UseForPeeringService : False
PeeringLocation : Seattle
ProvisioningState : Succeeded
Location : centralus
Id : /subscriptions/{subscriptionId}/resourceGroups/PeeringResourceGroup/providers/Microsoft.Peering/peerings/SeattleDirectPeering
Type : Microsoft.Peering/peerings
Tags : {}
Modify a Direct peering
This section describes how to perform the following modification operations for Direct peering:
- Add Direct peering connections.
- Remove Direct peering connections.
- Upgrade or downgrade bandwidth on Active connections.
- Add IPv4 or IPv6 sessions on Active connections.
- Remove IPv4 or IPv6 sessions on Active connections.
Add Direct peering connections
This example describes how to add connections to existing Direct peering.
$directPeering = Get-AzPeering -Name "SeattleDirectPeering" -ResourceGroupName "PeeringResourceGroup"
$connection = New-AzPeeringDirectConnection `
-PeeringDBFacilityId $peeringLocation.PeeringDBFacilityId `
-SessionPrefixV4 "10.22.31.0/31" `
-SessionPrefixV6 "fe02::3e:0/127" `
-MaxPrefixesAdvertisedIPv4 1000 `
-MaxPrefixesAdvertisedIPv6 100 `
-BandwidthInMbps 10000
$directPeering.Connections.Add($connection)
$directPeering | Update-AzPeering
Remove Direct peering connections
Removing a connection isn't currently supported on PowerShell. For more information, contact Microsoft peering.
Upgrade or downgrade bandwidth on Active connections
This example describes how to add 10 Gbps to an existing Direct connection.
$directPeering = Get-AzPeering -Name "SeattleDirectPeering" -ResourceGroupName "PeeringResourceGroup"
$directPeering.Connections[0].BandwidthInMbps = 20000
$directPeering | Update-AzPeering
Add IPv4 or IPv6 sessions on Active connections
This example describes how to add an IPv6 session on an existing Direct connection with only an IPv4 session.
$directPeering = Get-AzPeering -Name "SeattleDirectPeering" -ResourceGroupName "PeeringResourceGroup"
$directPeering.Connections[0].BGPSession.SessionPrefixv6 = "fe01::3e:0/127"
$directPeering | Update-AzPeering
Remove IPv4 or IPv6 sessions on Active connections
Removing an IPv4 or IPv6 session from an existing connection isn't currently supported on PowerShell. For more information, contact Microsoft peering.
Deprovision a Direct peering
Currently, deprovisioning isn't supported using the Azure portal or PowerShell. To deprovision, contact Microsoft peering.
Additional resources
You can get detailed descriptions of all the parameters by running the following command:
Get-Help Get-AzPeering -detailed