@@ -456,6 +456,153 @@ function Test-ExpressRouteCircuitMicrosoftPeeringCRUD
456
456
}
457
457
}
458
458
459
+ <#
460
+ . SYNOPSIS
461
+ Tests express route microsoft peering prefix validation
462
+ #>
463
+ function Test-ExpressRouteCircuitMicrosoftPeeringPrefixValidationCRUD
464
+ {
465
+ # Setup
466
+ $rgname = Get-ResourceGroupName
467
+ $circuitName = Get-ResourceName
468
+ $rglocation = Get-ProviderLocation ResourceManagement
469
+ $location = " centraluseuap"
470
+
471
+ try
472
+ {
473
+ # Create the resource group
474
+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation
475
+ # Create the ExpressRouteCircuit with peering
476
+ $advertisedPublicPrefixesV4 = " 11.2.3.4/30" ;
477
+ $peering = New-AzExpressRouteCircuitPeeringConfig - Name MicrosoftPeering - PeeringType MicrosoftPeering - PeerASN 33 - PrimaryPeerAddressPrefix " 192.171.1.0/30" - SecondaryPeerAddressPrefix " 192.171.2.0/30" - VlanId 224 - MicrosoftConfigAdvertisedPublicPrefixes @ ($advertisedPublicPrefixesV4 ) - MicrosoftConfigCustomerAsn 1000 - MicrosoftConfigRoutingRegistryName AFRINIC - LegacyMode $true
478
+ $circuit = New-AzExpressRouteCircuit - Name $circuitName - Location $location - ResourceGroupName $rgname - SkuTier Premium - SkuFamily MeteredData - ServiceProviderName " bvtcustomerixp01" - PeeringLocation " boydton 1 dc" - BandwidthInMbps 200 - Peering $peering
479
+
480
+ # Verify the peering
481
+ Assert-AreEqual " MicrosoftPeering" $circuit.Peerings [0 ].Name
482
+ Assert-AreEqual " MicrosoftPeering" $circuit.Peerings [0 ].PeeringType
483
+ Assert-AreEqual " 192.171.1.0/30" $circuit.Peerings [0 ].PrimaryPeerAddressPrefix
484
+ Assert-AreEqual " 192.171.2.0/30" $circuit.Peerings [0 ].SecondaryPeerAddressPrefix
485
+ Assert-AreEqual " 224" $circuit.Peerings [0 ].VlanId
486
+ Assert-NotNull $circuit.Peerings [0 ].MicrosoftPeeringConfig
487
+ Assert-AreEqual " 1000" $circuit.Peerings [0 ].MicrosoftPeeringConfig.CustomerASN
488
+ Assert-AreEqual " AFRINIC" $circuit.Peerings [0 ].MicrosoftPeeringConfig.RoutingRegistryName
489
+ Assert-AreEqual 1 @ ($circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixes).Count
490
+ Assert-NotNull $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixesState
491
+ Assert-NotNull $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
492
+ Assert-AreEqual $advertisedPublicPrefixesV4 $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo[0 ].Prefix
493
+
494
+ # Get prefix info from circuit
495
+ $circuit = Get-AzExpressRouteCircuit - Name $circuitName - ResourceGroupName $rgname
496
+ $prefixInfo = Get-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv4 - Prefix $advertisedPublicPrefixesV4
497
+
498
+ # Verify prefix Info
499
+ Assert-NotNull $prefixInfo
500
+ Assert-AreEqual $advertisedPublicPrefixesV4 $prefixInfo.Prefix
501
+
502
+ # Update prefix validation Info
503
+ $circuit = Get-AzExpressRouteCircuit - Name $circuitName - ResourceGroupName $rgname
504
+ Set-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv4 - Prefix $advertisedPublicPrefixesV4 - Signature " Signature1"
505
+ Set-AzExpressRouteCircuit - ExpressRouteCircuit $circuit
506
+
507
+ # Verify prefix Info
508
+ Assert-NotNull $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
509
+ Assert-AreEqual $advertisedPublicPrefixesV4 $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo[0 ].Prefix
510
+ Assert-AreEqual " Signature1" $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo[0 ].Signature
511
+
512
+ # Remove prefix validation Info
513
+ $circuit = Get-AzExpressRouteCircuit - Name $circuitName - ResourceGroupName $rgname
514
+ Remove-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv4 - Prefix $advertisedPublicPrefixesV4
515
+ Set-AzExpressRouteCircuit - ExpressRouteCircuit $circuit
516
+
517
+ # Verify prefix Info
518
+ Assert-NotNull $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
519
+
520
+ # Add new prefix validation Info
521
+ Add-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv4 - Prefix $advertisedPublicPrefixesV4 - Signature " Signature2"
522
+ Set-AzExpressRouteCircuit - ExpressRouteCircuit $circuit
523
+
524
+ # Verify prefix Info
525
+ Assert-NotNull $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
526
+ Assert-AreEqual $advertisedPublicPrefixesV4 $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo[0 ].Prefix
527
+ Assert-AreEqual " Signature2" $circuit.Peerings [0 ].MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo[0 ].Signature
528
+
529
+ # Set a new IPv6 peering
530
+ $primaryPeerAddressPrefixV6 = " fc00::/126" ;
531
+ $secondaryPeerAddressPrefixV6 = " fc00::/126" ;
532
+ $customerAsnV6 = 2000 ;
533
+ $routingRegistryNameV6 = " RADB" ;
534
+ $advertisedPublicPrefixesV6 = " fc02::1/128" ;
535
+ $circuit = Get-AzExpressRouteCircuit - Name $circuitName - ResourceGroupName $rgname | Set-AzExpressRouteCircuitPeeringConfig - Name MicrosoftPeering - PeeringType MicrosoftPeering - PeerASN 44 - PrimaryPeerAddressPrefix $primaryPeerAddressPrefixV6 - SecondaryPeerAddressPrefix $secondaryPeerAddressPrefixV6 - VlanId 555 - MicrosoftConfigAdvertisedPublicPrefixes @ ($advertisedPublicPrefixesV6 ) - MicrosoftConfigCustomerAsn $customerAsnV6 - MicrosoftConfigRoutingRegistryName $routingRegistryNameV6 - PeerAddressType IPv6 | Set-AzExpressRouteCircuit
536
+ $p = $circuit | Get-AzExpressRouteCircuitPeeringConfig - Name MicrosoftPeering
537
+
538
+ Assert-AreEqual " MicrosoftPeering" $p.Name
539
+ Assert-AreEqual " MicrosoftPeering" $p.PeeringType
540
+ Assert-AreEqual " 44" $p.PeerASN
541
+ Assert-AreEqual $primaryPeerAddressPrefixV6 $p.Ipv6PeeringConfig.PrimaryPeerAddressPrefix
542
+ Assert-AreEqual $secondaryPeerAddressPrefixV6 $p.Ipv6PeeringConfig.SecondaryPeerAddressPrefix
543
+ Assert-AreEqual " 555" $p.VlanId
544
+ Assert-NotNull $p.Ipv6PeeringConfig.MicrosoftPeeringConfig
545
+ Assert-AreEqual $customerAsnV6 $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.CustomerASN
546
+ Assert-AreEqual $routingRegistryNameV6 $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.RoutingRegistryName
547
+ Assert-AreEqual 1 @ ($p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixes ).Count
548
+ Assert-NotNull $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixesState
549
+ Assert-NotNull $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
550
+ Assert-AreEqual $advertisedPublicPrefixesV6 $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo [0 ].Prefix
551
+
552
+ # Get prefix info from circuit
553
+ $circuit = Get-AzExpressRouteCircuit - Name $circuitName - ResourceGroupName $rgname
554
+ $prefixInfo = Get-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv6 - Prefix $advertisedPublicPrefixesV6
555
+
556
+ # Verify prefix Info
557
+ Assert-NotNull $prefixInfo
558
+ Assert-AreEqual $advertisedPublicPrefixesV6 $prefixInfo.Prefix
559
+
560
+ # Update prefix validation Info
561
+ $circuit = Get-AzExpressRouteCircuit - Name $circuitName - ResourceGroupName $rgname
562
+ Set-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv6 - Prefix $advertisedPublicPrefixesV6 - Signature " Signature1"
563
+ Set-AzExpressRouteCircuit - ExpressRouteCircuit $circuit
564
+ $p = $circuit | Get-AzExpressRouteCircuitPeeringConfig - Name MicrosoftPeering
565
+
566
+ # Verify prefix Info
567
+ Assert-NotNull $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
568
+ Assert-AreEqual $advertisedPublicPrefixesV6 $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo [0 ].Prefix
569
+ Assert-AreEqual " Signature1" $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo [0 ].Signature
570
+
571
+ # Remove prefix validation Info
572
+ $circuit = Get-AzExpressRouteCircuit - Name $circuitName - ResourceGroupName $rgname
573
+ Remove-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv6 - Prefix $advertisedPublicPrefixesV6
574
+ Set-AzExpressRouteCircuit - ExpressRouteCircuit $circuit
575
+ $p = $circuit | Get-AzExpressRouteCircuitPeeringConfig - Name MicrosoftPeering
576
+
577
+ # Verify prefix Info
578
+ Assert-NotNull $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
579
+
580
+ # Add new prefix validation Info
581
+ Add-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig - ExpressRouteCircuit $circuit - PeerAddressType IPv6 - Prefix $advertisedPublicPrefixesV6 - Signature " Signature2"
582
+ Set-AzExpressRouteCircuit - ExpressRouteCircuit $circuit
583
+ $p = $circuit | Get-AzExpressRouteCircuitPeeringConfig - Name MicrosoftPeering
584
+
585
+ # Verify prefix Info
586
+ Assert-NotNull $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo
587
+ Assert-AreEqual $advertisedPublicPrefixesV6 $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo [0 ].Prefix
588
+ Assert-AreEqual " Signature2" $p.Ipv6PeeringConfig.MicrosoftPeeringConfig.AdvertisedPublicPrefixInfo [0 ].Signature
589
+
590
+ # Delete Peering and Circuit
591
+ Remove-AzExpressRouteCircuitPeeringConfig - Name MicrosoftPeering - ExpressRouteCircuit $circuit - PeerAddressType All | Set-AzExpressRouteCircuit
592
+ $delete = Remove-AzExpressRouteCircuit - ResourceGroupName $rgname - name $circuitName - PassThru - Force
593
+ Assert-AreEqual true $delete
594
+
595
+ $list = Get-AzExpressRouteCircuit - ResourceGroupName $rgname
596
+ Assert-AreEqual 0 @ ($list ).Count
597
+
598
+ }
599
+ finally
600
+ {
601
+ # Cleanup
602
+ Clean - ResourceGroup $rgname
603
+ }
604
+ }
605
+
459
606
<#
460
607
. SYNOPSIS
461
608
Tests ExpressRouteCircuitAuthorizationCRUD.
0 commit comments