Skip to content

Commit eec4df5

Browse files
authored
NAT Port Range for VPN (#16133)
* inital commits * fix resx * VNG cmdlet * md files * rename * UT update * UTfix * UTupdate * UT fix * examples
1 parent aa9d801 commit eec4df5

File tree

16 files changed

+4136
-4240
lines changed

16 files changed

+4136
-4240
lines changed

src/Network/Network.Test/ScenarioTests/CortexTests.ps1

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,24 +189,28 @@ function Test-CortexCRUD
189189
#Assert-AreEqual $false $createdVpnGateway.EnableBgpRouteTranslationForNat
190190

191191
# Create one more NATRule using New-AzVpnGatewayNatRule
192-
New-AzVpnGatewayNatRule -ResourceGroupName $rgName -ParentResourceName $vpnGatewayName -Name "NatRule3" -Type "Dynamic" -Mode "IngressSnat" -InternalMapping "192.168.1.0/26" -ExternalMapping "10.0.1.0/26"
192+
New-AzVpnGatewayNatRule -ResourceGroupName $rgName -ParentResourceName $vpnGatewayName -Name "NatRule3" -Type "Static" -Mode "IngressSnat" -InternalMapping "192.168.1.0/26" -ExternalMapping "10.0.1.0/26" -InternalPortRange @("100-100") -ExternalPortRange @("200-200")
193193
$natRule = Get-AzVpnGatewayNatRule -ResourceGroupName $rgName -ParentResourceName $vpnGatewayName -Name "NatRule3"
194194
Assert-AreEqual "NatRule3" $natRule.Name
195-
Assert-AreEqual "Dynamic" $natRule.VpnGatewayNatRulePropertiesType
195+
Assert-AreEqual "Static" $natRule.VpnGatewayNatRulePropertiesType
196196
Assert-AreEqual "IngressSnat" $natRule.Mode
197197
Assert-AreEqual 1 $natRule.InternalMappings.Count
198198
Assert-AreEqual "192.168.1.0/26" $natRule.InternalMappings[0].AddressSpace
199199
Assert-AreEqual 1 $natRule.ExternalMappings.Count
200200
Assert-AreEqual "10.0.1.0/26" $natRule.ExternalMappings[0].AddressSpace
201+
Assert-AreEqual "100-100" $natRule.InternalMappings[0].PortRange
202+
Assert-AreEqual "200-200" $natRule.ExternalMappings[0].PortRange
201203
Assert-AreEqual 0 $natRule.IngressVpnSiteLinkConnections.Count
202204
Assert-AreEqual 0 $natRule.EgressVpnSiteLinkConnections.Count
203205
Assert-AreEqual "Succeeded" $natRule.ProvisioningState
204206

205-
Update-AzVpnGatewayNatRule -ResourceGroupName $rgName -ParentResourceName $vpnGatewayName -Name "NatRule3" -InternalMapping "192.168.2.0/26" -ExternalMapping "10.0.2.0/26"
207+
Update-AzVpnGatewayNatRule -ResourceGroupName $rgName -ParentResourceName $vpnGatewayName -Name "NatRule3" -InternalMapping "192.168.2.0/26" -ExternalMapping "10.0.2.0/26" -InternalPortRange @("300-300") -ExternalPortRange @("400-400")
206208
$natRule = Get-AzVpnGatewayNatRule -ResourceGroupName $rgName -ParentResourceName $vpnGatewayName -Name "NatRule3"
207209
Assert-AreEqual "NatRule3" $natRule.Name
208210
Assert-AreEqual "192.168.2.0/26" $natRule.InternalMappings[0].AddressSpace
209211
Assert-AreEqual "10.0.2.0/26" $natRule.ExternalMappings[0].AddressSpace
212+
Assert-AreEqual "300-300" $natRule.InternalMappings[0].PortRange
213+
Assert-AreEqual "400-400" $natRule.ExternalMappings[0].PortRange
210214
Assert-AreEqual "Succeeded" $natRule.ProvisioningState
211215
#Assert-AreEqual $True $vpnGateway.IsRoutingPreferenceInternet
212216

src/Network/Network.Test/ScenarioTests/VirtualNetworkGatewayTests.ps1

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,7 +1276,7 @@ function Test-VirtualNetworkGatewayNatRuleCRUD
12761276
# Create & Get virtualnetworkgateway with NatRules
12771277
$vnetIpConfig = New-AzVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName -PublicIpAddress $publicip -Subnet $subnet
12781278
$ipconfigurationId = $vnetIpConfig.id
1279-
$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -Type "Static" -Mode "IngressSnat" -InternalMapping @("25.0.0.0/16") -ExternalMapping @("30.0.0.0/16")
1279+
$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -Type "Static" -Mode "IngressSnat" -InternalMapping @("25.0.0.0/16") -ExternalMapping @("30.0.0.0/16") -InternalPortRange @("100-100") -ExternalPortRange @("200-200")
12801280
$job = New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw2 -NatRule $natRule -EnableBgpRouteTranslationForNat -AsJob
12811281
$job | Wait-Job
12821282
$actual = $job | Receive-Job
@@ -1290,19 +1290,32 @@ function Test-VirtualNetworkGatewayNatRuleCRUD
12901290
# Updates & Get virtualnetworkgateway with NatRules
12911291
$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname
12921292
$vngNatRules = $gateway.NatRules
1293-
$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule2" -Type "Static" -Mode "EgressSnat" -InternalMapping @("20.0.0.0/16") -ExternalMapping @("50.0.0.0/16")
1293+
$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule2" -Type "Static" -Mode "EgressSnat" -InternalMapping @("20.0.0.0/16") -ExternalMapping @("50.0.0.0/16") -InternalPortRange @("300-300") -ExternalPortRange @("400-400")
12941294
$vngNatRules.Add($natrule)
12951295
$updatedGateway = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -NatRule $vngNatRules
12961296
Assert-AreEqual 2 @($updatedGateway.NatRules).Count
1297+
Assert-AreEqual "20.0.0.0/16" $updatedGateway.NatRules[1].InternalMappings[0].AddressSpace
1298+
Assert-AreEqual "50.0.0.0/16" $updatedGateway.NatRules[1].ExternalMappings[0].AddressSpace
1299+
Assert-AreEqual "300-300" $updatedGateway.NatRules[1].InternalMappings[0].PortRange
1300+
Assert-AreEqual "400-400" $updatedGateway.NatRules[1].ExternalMappings[0].PortRange
12971301

12981302
# List virtualNetworkGateways NatRules
12991303
$list = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName $rgname -ParentResourceName $rname
13001304
Assert-AreEqual 2 @($list).Count
13011305

13021306
# update virtualNetworkGateways NatRule
13031307
$natrule = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName $rgname -ParentResourceName $rname -Name "natRule2"
1304-
$updatedNatRule = Update-AzVirtualNetworkGatewayNatRule -InputObject $natrule -ExternalMapping @("40.0.0.0/16")
1308+
Assert-AreEqual "20.0.0.0/16" $natrule.InternalMappings[0].AddressSpace
1309+
Assert-AreEqual "50.0.0.0/16" $natrule.ExternalMappings[0].AddressSpace
1310+
Assert-AreEqual "300-300" $natrule.InternalMappings[0].PortRange
1311+
Assert-AreEqual "400-400" $natrule.ExternalMappings[0].PortRange
1312+
1313+
$updatedNatRule = Update-AzVirtualNetworkGatewayNatRule -InputObject $natrule -ExternalMapping @("40.0.0.0/16") -ExternalPortRange @("500-500")
13051314
Assert-AreEqual "Succeeded" $updatedNatRule.ProvisioningState
1315+
Assert-AreEqual "20.0.0.0/16" $updatedNatRule.InternalMappings[0].AddressSpace
1316+
Assert-AreEqual "40.0.0.0/16" $updatedNatRule.ExternalMappings[0].AddressSpace
1317+
Assert-AreEqual "300-300" $updatedNatRule.InternalMappings[0].PortRange
1318+
Assert-AreEqual "500-500" $updatedNatRule.ExternalMappings[0].PortRange
13061319

13071320
# Delete virtualNetworkGatewayNatRules
13081321
$delete = Remove-AzVirtualNetworkGatewayNatRule -ResourceGroupName $rgname -ParentResourceName $rname -Name natRule1 -PassThru -Force

0 commit comments

Comments
 (0)