How to configure ExpressRoute Direct

ExpressRoute Direct gives you the ability to connect directly into Microsoft’s global network at peering locations strategically distributed across the world. For more information, see About ExpressRoute Direct Connect.

Create the resource

  1. Sign in to Azure and select the subscription. The ExpressRoute Direct resource and ExpressRoute circuits must be in the same subscription.

    Connect-AzAccount 
    
    Select-AzSubscription -Subscription "<SubscriptionID or SubscriptionName>"
    
  2. List all locations where ExpressRoute Direct is supported.

    Get-AzExpressRoutePortsLocation
    

    Example output

    Name                : Equinix-Ashburn-DC2
    Id                  : /subscriptions/<subscriptionID>/providers/Microsoft.Network/expressRoutePortsLocations/Equinix-Ashburn-D
                         C2
    ProvisioningState   : Succeeded
    Address             : 21715 Filigree Court, DC2, Building F, Ashburn, VA 20147
    Contact             : support@equinix.com
    AvailableBandwidths : []
    
    Name                : Equinix-Dallas-DA3
    Id                  : /subscriptions/<subscriptionID>/providers/Microsoft.Network/expressRoutePortsLocations/Equinix-Dallas-DA
                         3
    ProvisioningState   : Succeeded
    Address             : 1950 N. Stemmons Freeway, Suite 1039A, DA3, Dallas, TX 75207
    Contact             : support@equinix.com
    AvailableBandwidths : []
    
    Name                : Equinix-San-Jose-SV1
    Id                  : /subscriptions/<subscriptionID>/providers/Microsoft.Network/expressRoutePortsLocations/Equinix-San-Jose-
                         SV1
    ProvisioningState   : Succeeded
    Address             : 11 Great Oaks Blvd, SV1, San Jose, CA 95119
    Contact             : support@equinix.com
    AvailableBandwidths : []
    
  3. Determine if a location listed above has available bandwidth

    Get-AzExpressRoutePortsLocation -LocationName "Equinix-San-Jose-SV1"
    

    Example output

    Name                : Equinix-San-Jose-SV1
    Id                  : /subscriptions/<subscriptionID>/providers/Microsoft.Network/expressRoutePortsLocations/Equinix-San-Jose-
                         SV1
    ProvisioningState   : Succeeded
    Address             : 11 Great Oaks Blvd, SV1, San Jose, CA 95119
    Contact             : support@equinix.com
    AvailableBandwidths : [
                           {
                             "OfferName": "100 Gbps",
                             "ValueInGbps": 100
                           }
                         ]
    
  4. Create an ExpressRoute Direct resource based on the location chosen above

    ExpressRoute Direct supports both QinQ and Dot1Q encapsulation. If QinQ is selected, each ExpressRoute circuit will be dynamically assigned an S-Tag and will be unique throughout the ExpressRoute Direct resource. Each C-Tag on the circuit must be unique on the circuit, but not across the ExpressRoute Direct.

    If Dot1Q encapsulation is selected, you must manage uniqueness of the C-Tag (VLAN) across the entire ExpressRoute Direct resource.

    Important

    ExpressRoute Direct can only be one encapsulation type. Encapsulation cannot be changed after ExpressRoute Direct creation.

    $ERDirect = New-AzExpressRoutePort -Name $Name -ResourceGroupName $ResourceGroupName -PeeringLocation $PeeringLocationName -BandwidthInGbps 100.0 -Encapsulation QinQ | Dot1Q -Location $AzureRegion
    

    Note

    The Encapsulation attribute could also be set to Dot1Q.

    Example output:

    Name                       : Contoso-Direct
    ResourceGroupName          : Contoso-Direct-rg
    Location                   : westcentralus
    Id                         : /subscriptions/<subscriptionID>/resourceGroups/Contoso-Direct-rg/providers/Microsoft.Network/exp
                                ressRoutePorts/Contoso-Direct
    Etag                       : W/"<etagnumber> "
    ResourceGuid               : <number>
    ProvisioningState          : Succeeded
    PeeringLocation            : Equinix-Seattle-SE2
    BandwidthInGbps            : 100
    ProvisionedBandwidthInGbps : 0
    Encapsulation              : QinQ
    Mtu                        : 1500
    EtherType                  : 0x8100
    AllocationDate             : Saturday, September 1, 2018
    Links                      : [
                                  {
                                    "Name": "link1",
                                    "Etag": "W/\"<etagnumber>\"",
                                    "Id": "/subscriptions/<subscriptionID>/resourceGroups/Contoso-Direct-rg/providers/Microsoft.
                                Network/expressRoutePorts/Contoso-Direct/links/link1",
                                    "RouterName": "tst-09xgmr-cis-1",
                                    "InterfaceName": "HundredGigE2/2/2",
                                    "PatchPanelId": "PPID",
                                    "RackId": "RackID",
                                    "ConnectorType": "SC",
                                    "AdminState": "Disabled",
                                    "ProvisioningState": "Succeeded"
                                  },
                                  {
                                    "Name": "link2",
                                    "Etag": "W/\"<etagnumber>\"",
                                    "Id": "/subscriptions/<subscriptionID>/resourceGroups/Contoso-Direct-rg/providers/Microsoft.
                                Network/expressRoutePorts/Contoso-Direct/links/link2",
                                    "RouterName": "tst-09xgmr-cis-2",
                                    "InterfaceName": "HundredGigE2/2/2",
                                    "PatchPanelId": "PPID",
                                    "RackId": "RackID",
                                    "ConnectorType": "SC",
                                    "AdminState": "Disabled",
                                    "ProvisioningState": "Succeeded"
                                  }
                                ]
    Circuits                   : []
    

Change Admin State of links

This process should be used to conduct a Layer 1 test, ensuring that each cross-connection is properly patched into each router for primary and secondary.

  1. Get ExpressRoute Direct details.

    $ERDirect = Get-AzExpressRoutePort -Name $Name -ResourceGroupName $ResourceGroupName
    
  2. Set Link to Enabled. Repeat this step to set each link to enabled.

    Links[0] is the primary port and Links[1] is the secondary port.

    $ERDirect.Links[0].AdminState = "Enabled"
    Set-AzExpressRoutePort -ExpressRoutePort $ERDirect
    $ERDirect = Get-AzExpressRoutePort -Name $Name -ResourceGroupName $ResourceGroupName
    $ERDirect.Links[1].AdminState = "Enabled"
    Set-AzExpressRoutePort -ExpressRoutePort $ERDirect
    

    Example output:

    Name                       : Contoso-Direct
    ResourceGroupName          : Contoso-Direct-rg
    Location                   : westcentralus
    Id                         : /subscriptions/<number>/resourceGroups/Contoso-Direct-rg/providers/Microsoft.Network/exp
                              ressRoutePorts/Contoso-Direct
    Etag                       : W/"<etagnumber> "
    ResourceGuid               : <number>
    ProvisioningState          : Succeeded
    PeeringLocation            : Equinix-Seattle-SE2
    BandwidthInGbps            : 100
    ProvisionedBandwidthInGbps : 0
    Encapsulation              : QinQ
    Mtu                        : 1500
    EtherType                  : 0x8100
    AllocationDate             : Saturday, September 1, 2018
    Links                      : [
                                {
                                  "Name": "link1",
                                  "Etag": "W/\"<etagnumber>\"",
                                  "Id": "/subscriptions/<subscriptionID>/resourceGroups/Contoso-Direct-rg/providers/Microsoft.
                              Network/expressRoutePorts/Contoso-Direct/links/link1",
                                  "RouterName": "tst-09xgmr-cis-1",
                                  "InterfaceName": "HundredGigE2/2/2",
                                  "PatchPanelId": "PPID",
                                  "RackId": "RackID",
                                  "ConnectorType": "SC",
                                  "AdminState": "Enabled",
                                  "ProvisioningState": "Succeeded"
                                },
                                {
                                  "Name": "link2",
                                  "Etag": "W/\"<etagnumber>\"",
                                  "Id": "/subscriptions/<subscriptionID>/resourceGroups/Contoso-Direct-rg/providers/Microsoft.
                              Network/expressRoutePorts/Contoso-Direct/links/link2",
                                  "RouterName": "tst-09xgmr-cis-2",
                                  "InterfaceName": "HundredGigE2/2/2",
                                  "PatchPanelId": "PPID",
                                  "RackId": "RackID",
                                  "ConnectorType": "SC",
                                  "AdminState": "Enabled",
                                  "ProvisioningState": "Succeeded"
                                }
                              ]
    Circuits                   : []
    

    Use the same procedure with AdminState = "Disabled" to turn down the ports.

Create a circuit

By default, you can create 10 circuits in the subscription where the ExpressRoute Direct resource is. This can be increased by support. You are responsible for tracking both Provisioned and Utilized Bandwidth. Provisioned bandwidth is the sum of bandwidth of all circuits on the ExpressRoute Direct resource and utilized bandwidth is the physical usage of the underlying physical interfaces.

There are additional circuit bandwidths that can be utilized on ExpressRoute Direct only to support the scenarios outlined above. These are: 40Gbps and 100Gbps.

SkuTier can be Local, Standard or Premium.

SkuFamily must be MeteredData only as unlimited is not supported on ExpressRoute Direct.

Create a circuit on the ExpressRoute Direct resource.

New-AzExpressRouteCircuit -Name $Name -ResourceGroupName $ResourceGroupName -ExpressRoutePort $ERDirect -BandwidthinGbps 100.0  -Location $AzureRegion -SkuTier Premium -SkuFamily MeteredData 

Other bandwidths include: 5.0, 10.0, and 40.0

Example output:

Name                             : ExpressRoute-Direct-ckt
ResourceGroupName                : Contoso-Direct-rg
Location                         : westcentralus
Id                               : /subscriptions/<subscriptionID>/resourceGroups/Contoso-Direct-rg/providers/Microsoft.Netwo
                                 rk/expressRouteCircuits/ExpressRoute-Direct-ckt
Etag                             : W/"<etagnumber>"
ProvisioningState                : Succeeded
Sku                              : {
                                   "Name": "Premium_MeteredData",
                                   "Tier": "Premium",
                                   "Family": "MeteredData"
                                 }
CircuitProvisioningState         : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes             : 
  ServiceProviderProperties        : null
ExpressRoutePort                 : {
                                   "Id": "/subscriptions/<subscriptionID>n/resourceGroups/Contoso-Direct-rg/providers/Micros
                                 oft.Network/expressRoutePorts/Contoso-Direct"
                                 }
BandwidthInGbps                  : 10
Stag                             : 2
ServiceKey                       : <number>
Peerings                         : []
Authorizations                   : []
AllowClassicOperations           : False
GatewayManagerEtag     

Next steps

For more information about ExpressRoute Direct, see the Overview.