@@ -533,4 +533,156 @@ function Test-LoadBalancerBackendAddressConfig
533
533
# Cleanup
534
534
Clean - ResourceGroup $rgname
535
535
}
536
+ }
537
+
538
+ <#
539
+ . SYNOPSIS
540
+ Tests
541
+ #>
542
+ function Test-IPBasedBackendPoolQueryInboundNatRulePortMapping
543
+ {
544
+
545
+ # Setup
546
+ $rgname = Get-ResourceGroupName
547
+ $rglocation = " eastus2euap"
548
+
549
+ $subnetName = Get-ResourceName
550
+ $vnetName = Get-ResourceName
551
+ $location = " eastus2euap"
552
+
553
+ $publicIpName = Get-ResourceName
554
+ $domainNameLabel = Get-ResourceName
555
+
556
+ $frontendName = Get-ResourceName
557
+ $backendAddressPoolName = Get-ResourceName
558
+ $inboundNatRuleV2Name = Get-ResourceName
559
+ $lbName = Get-ResourceName
560
+
561
+ $testIpAddress1 = " 10.0.0.5"
562
+ $testIpAddress2 = " 10.0.0.6"
563
+
564
+ $backendAddressConfigName1 = Get-ResourceName
565
+ $backendAddressConfigName2 = Get-ResourceName
566
+
567
+ try
568
+ {
569
+ # Create the regional resource group
570
+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
571
+
572
+ # Create the Virtual Network
573
+ $subnet = New-AzVirtualNetworkSubnetConfig - Name $subnetName - AddressPrefix 10.0 .1.0 / 24
574
+ $vnet = New-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
575
+
576
+ # Create the publicip
577
+ $publicip = New-AzPublicIpAddress - ResourceGroupName $rgname - name $publicIpName - location $location - AllocationMethod Static - DomainNameLabel $domainNameLabel - SKU Standard
578
+
579
+ # Create regional loadbalancer
580
+ $frontend = New-AzLoadBalancerFrontendIpConfig - Name $frontendName - PublicIpAddress $publicip
581
+ $backendAddressPool = New-AzLoadBalancerBackendAddressPoolConfig - Name $backendAddressPoolName
582
+ $lb = New-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname - Location $location - FrontendIpConfiguration $frontend - SKU Standard - BackendAddressPool $backendAddressPool
583
+ $lb = Get-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname
584
+
585
+ $ip1 = New-AzLoadBalancerBackendAddressConfig - IpAddress $testIpAddress1 - Name $backendAddressConfigName1 - VirtualNetworkId $vnet.Id
586
+ $ip2 = New-AzLoadBalancerBackendAddressConfig - IpAddress $testIpAddress2 - Name $backendAddressConfigName2 - VirtualNetworkId $vnet.Id
587
+ $ips = @ ($ip1 , $ip2 )
588
+ $lb | Set-AzLoadBalancerBackendAddressPool - LoadBalancerBackendAddress $ips - Name $backendAddressPoolName
589
+ $lb = Get-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname
590
+ $lb | Add-AzLoadBalancerInboundNatRuleConfig - Name $inboundNatRuleV2Name - FrontendIPConfiguration $frontend - Protocol Tcp - BackendPort 3390 - IdleTimeoutInMinutes 15 - EnableFloatingIP - FrontendPortRangeStart 3390 - FrontendPortRangeEnd 4001 - BackendAddressPool $lb.BackendAddressPools [0 ]
591
+ $lb | Set-AzLoadBalancer
592
+
593
+ # Query port mapping
594
+ $portMapping1 = Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping - ResourceGroupName $rgname - LoadBalancerName $lbName - Name $backendAddressPoolName - IpAddress $testIpAddress1
595
+ Assert-AreEqual $portMapping1.inboundNatRuleName $lb.InboundNatRules [0 ].Name
596
+ Assert-AreEqual $portMapping1.protocol " Tcp"
597
+ Assert-AreEqual $portMapping1.frontendPort 3390
598
+ Assert-AreEqual $portMapping1.BackendPort 3390
599
+
600
+ $portMapping2 = Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping - ResourceGroupName $rgname - LoadBalancerName $lbName - Name $backendAddressPoolName - IpAddress $testIpAddress2
601
+ Assert-AreEqual $portMapping2.inboundNatRuleName $lb.InboundNatRules [0 ].Name
602
+ Assert-AreEqual $portMapping2.protocol " Tcp"
603
+ Assert-AreEqual $portMapping2.frontendPort 3391
604
+ Assert-AreEqual $portMapping2.BackendPort 3390
605
+ }
606
+ finally {
607
+ # Cleanup
608
+ Clean - ResourceGroup $rgname
609
+ }
610
+ }
611
+
612
+ <#
613
+ . SYNOPSIS
614
+ Tests
615
+ #>
616
+ function Test-NICBasedBackendPoolQueryInboundNatRulePortMapping
617
+ {
618
+
619
+ # Setup
620
+ $rgname = Get-ResourceGroupName
621
+ $rglocation = " eastus2euap"
622
+
623
+ $vnetName = Get-ResourceName
624
+ $subnetName = Get-ResourceName
625
+ $location = " eastus2euap"
626
+
627
+ $publicIpName = Get-ResourceName
628
+ $domainNameLabel = Get-ResourceName
629
+
630
+ $frontendName = Get-ResourceName
631
+ $backendAddressPoolName = Get-ResourceName
632
+ $inboundNatRuleV2Name = Get-ResourceName
633
+ $lbName = Get-ResourceName
634
+
635
+ $nicname1 = Get-ResourceName
636
+ $nicname2 = Get-ResourceName
637
+ $ipconfigname1 = Get-ResourceName
638
+ $ipconfigname2 = Get-ResourceName
639
+
640
+ try
641
+ {
642
+ # Create the regional resource group
643
+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
644
+
645
+ # Create the Virtual Network
646
+ $subnet = New-AzVirtualNetworkSubnetConfig - Name $subnetName - AddressPrefix 10.0 .1.0 / 24
647
+ $vnet = New-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
648
+
649
+ # Create the publicip
650
+ $publicip = New-AzPublicIpAddress - ResourceGroupName $rgname - name $publicIpName - location $location - AllocationMethod Static - DomainNameLabel $domainNameLabel - SKU Standard
651
+
652
+ # Create regional loadbalancer
653
+ $frontend = New-AzLoadBalancerFrontendIpConfig - Name $frontendName - PublicIpAddress $publicip
654
+ $backendAddressPool = New-AzLoadBalancerBackendAddressPoolConfig - Name $backendAddressPoolName
655
+ $lb = New-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname - Location $location - FrontendIpConfiguration $frontend - SKU Standard - BackendAddressPool $backendAddressPool
656
+ $lb = Get-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname
657
+
658
+ # Create 2 network interfaces and accociate to loadbalancer
659
+ $nic1 = New-AzNetworkInterface - Name $nicname1 - ResourceGroupName $rgname - Location $location - Subnet $vnet.Subnets [0 ] - IpConfigurationName $ipconfigname1
660
+ $nic2 = New-AzNetworkInterface - Name $nicname2 - ResourceGroupName $rgname - Location $location - Subnet $vnet.Subnets [0 ] - IpConfigurationName $ipconfigname2
661
+ $nic1.IpConfigurations [0 ].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools [0 ]);
662
+ $nic2.IpConfigurations [0 ].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools [0 ]);
663
+ $nic1 = $nic1 | Set-AzNetworkInterface
664
+ $nic2 = $nic2 | Set-AzNetworkInterface
665
+
666
+ # Create InboundNatRuleV2
667
+ $lb = Get-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname
668
+ $lb | Add-AzLoadBalancerInboundNatRuleConfig - Name $inboundNatRuleV2Name - FrontendIPConfiguration $frontend - Protocol Tcp - BackendPort 3390 - IdleTimeoutInMinutes 15 - EnableFloatingIP - FrontendPortRangeStart 3390 - FrontendPortRangeEnd 4001 - BackendAddressPool $lb.BackendAddressPools [0 ]
669
+ $lb | Set-AzLoadBalancer
670
+
671
+ # Query port mapping
672
+ $portMapping1 = Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping - ResourceGroupName $rgname - LoadBalancerName $lbName - Name $backendAddressPoolName - NetworkInterfaceIpConfigurationId $nic1.IpConfigurations [0 ].Id
673
+ Assert-AreEqual $portMapping1.inboundNatRuleName $inboundNatRuleV2Name
674
+ Assert-AreEqual $portMapping1.protocol " Tcp"
675
+ Assert-AreEqual $portMapping1.frontendPort 3390
676
+ Assert-AreEqual $portMapping1.BackendPort 3390
677
+
678
+ $portMapping2 = Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping - ResourceGroupName $rgname - LoadBalancerName $lbName - Name $backendAddressPoolName - NetworkInterfaceIpConfigurationId $nic2.IpConfigurations [0 ].Id
679
+ Assert-AreEqual $portMapping2.inboundNatRuleName $inboundNatRuleV2Name
680
+ Assert-AreEqual $portMapping2.protocol " Tcp"
681
+ Assert-AreEqual $portMapping2.frontendPort 3391
682
+ Assert-AreEqual $portMapping2.BackendPort 3390
683
+ }
684
+ finally {
685
+ # Cleanup
686
+ Clean - ResourceGroup $rgname
687
+ }
536
688
}
0 commit comments