Privata IP-adressintervall för Azure Firewall SNAT

Azure Firewall tillhandahåller SNAT-funktioner för all utgående trafik till offentliga IP-adresser. Azure Firewall använder som standard inte SNAT med nätverksregler när mål-IP-adressen är i ett privat IP-adressintervall per IANA RFC 1918 eller delat adressutrymme per IANA RFC 6598. Programregler använder alltid SNAT via en transparent proxy oavsett målets IP-adress.

Det här standardbeteendet är lämpligt när du dirigerar trafik direkt till Internet. Det finns dock scenarier där du kan behöva åsidosätta standardbeteendet för SNAT:

  • Om du aktiverar tvingad tunneltrafik använder Azure Firewall SNAT internetbunden trafik till en av brandväggens privata IP-adresser i AzureFirewallSubnet och döljer källan från din lokala brandvägg.
  • Om din organisation använder registrerade IP-adressintervall utanför IANA RFC 1918 eller IANA RFC 6598 för privata nätverk, tar Azure Firewall SNAT trafiken till en av brandväggens privata IP-adresser i AzureFirewallSubnet. Du kan konfigurera Azure Firewall så att den inte SNAT:ar ditt offentliga IP-adressintervall. Ange till exempel en enskild IP-adress som x.x.x.x eller ett intervall med IP-adresser som x.x.x.x/24.

Du kan ändra SNAT-beteendet för Azure Firewall på följande sätt:

  • Använd 0.0.0.0/0 som ditt privata IP-adressintervall för att konfigurera Azure Firewall att aldrig SNAT-trafik som bearbetas av nätverksregler, oavsett destinationens IP-adress. Med den här konfigurationen kan Azure Firewall inte dirigera trafik direkt till Internet.
  • Använd 255.255.255.255.255.255.255/32 som ditt privata IP-adressintervall för att konfigurera brandväggen till alltid SNAT-trafik som bearbetas av nätverksregler oavsett måladress.
  • För att konfigurera Azure Firewall så att den automatiskt lär sig registrerade och privata IP-adressintervall med jämna mellanrum, aktivera auto-lärande SNAT-rutter. Inlärda adressområden behandlas som interna och trafik som är avsedd för dessa intervall är inte SNAT:ad.

Viktigt!

  • Konfigurationen av det privata adressintervallet gäller endast för nätverksregler. Programregler använder alltid SNAT.
  • Om du vill ange egna privata IP-adressintervall och behålla de förvalda IANA RFC 1918-adressintervallen, se till att din anpassade lista fortfarande inkluderar IANA RFC 1918-intervallen.

Följande tabell visar de stödda konfigurationsmetoderna. Brandväggar som är associerade med en brandväggsprincip måste ange intervallet i principen och inte använda AdditionalProperties.

Metod Klassiska regler Brandväggsprincip
Azure PowerShell Supported Stöds ej
Azure CLI Supported Stöds ej
ARM template Supported Supported
Azure Portal Supported Supported

Konfigurera privata IP-adressintervall för SNAT

Välj din konfigurationsmetod. Azure PowerShell och Azure CLI stöder endast klassiska regler. För att konfigurera SNAT-intervall med en brandväggspolicy, använd en ARM-mall eller Azure-portalen.

Använd Azure PowerShell för att ange privata IP-adressintervall för brandväggen.

Note

Brandväggsegenskapen PrivateRange ignoreras för brandväggar som är associerade med en brandväggsprincip. Du måste använda egenskapen SNAT i firewallPolicies enligt beskrivningen på fliken ARM-mallen .

Ny brandvägg

För en ny brandvägg som använder klassiska regler, skapa brandväggen genom att använda New-AzFirewall:

$azFw = @{
   Name               = '<fw-name>'
   ResourceGroupName  = '<resourcegroup-name>'
   Location           = '<location>'
   VirtualNetworkName = '<vnet-name>'
   PublicIpName       = '<public-ip-name>'
   PrivateRange       = @("IANAPrivateRanges", "192.168.1.0/24", "192.168.1.10")
}

New-AzFirewall @azFw

Note

  • För att distribuera Azure Firewall med hjälp New-AzFirewall av krävs ett befintligt virtuellt nätverk och en offentlig IP-adress. En fullständig distributionsguide finns i Distribuera och konfigurera Azure Firewall med Azure PowerShell.
  • IANAPrivateRanges expanderar till de aktuella standardvärdena i Azure Firewall medan de andra intervallen läggs till i den. Om du vill behålla IANAPrivateRanges standardvärdet i din privata intervallspecifikation måste den finnas kvar i din PrivateRange specifikation enligt exemplet.

Befintlig brandvägg

För att konfigurera en befintlig brandvägg som använder klassiska regler, hämta brandväggen genom att använda Get-AzFirewall och uppdatera den med Set-AzFirewall:

$azfw = Get-AzFirewall -Name '<fw-name>' -ResourceGroupName '<resourcegroup-name>'
$azfw.PrivateRange = @("IANAPrivateRanges", "192.168.1.0/24", "192.168.1.10")
Set-AzFirewall -AzureFirewall $azfw

Automatiskt lär dig SNAT-rutter

Du kan konfigurera Azure Firewall så att den automatiskt lär sig både registrerade och privata intervall var 30:e minut. Dessa inlärda adressintervall är interna för nätverket, så trafik till mål i inlärda intervall är inte SNATed. Både virtuella nätverksutplaceringar (VNet) och säkra virtuella hubvar (vHub) stödjer automatiskt lärande SNAT-rutter.

Note

  • Auto-learn SNAT kräver att Azure Firewall är kopplat till Azure Route Server.
  • För VNet-distributioner måste du distribuera Azure Route Server i samma virtuella nätverk som Azure Firewall.
  • För vHub-distributioner är Azure Route Server redan distribuerad och associerad som standard.
  • För båda distributionsmodellerna måste du aktivera auto-learn SNAT i Azure Firewall Policy efter att kopplingen är klar.
  • Mer information om arkitekturalternativ för Azure Firewall finns i Vad är arkitekturalternativen för Azure Firewall Manager?

VNet-brandvägg

För VNet-distributioner behöver du distribuera och associera Azure Route Server innan du aktiverar auto-lärande SNAT-rutter.

Förutsättningar:

I följande exempel, ersätt variabelnamnen ($azureFirewallName, $rgname, $location, osv.) med dina egna värden.

  1. Skapa en ny brandvägg med ett Route Server-ID genom att använda New-AzFirewall.

    # Specify the Route Server resource ID
    $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Create the firewall
    $azureFirewall = New-AzFirewall -Name $azureFirewallName `
        -ResourceGroupName $rgname `
        -Location $location `
        -RouteServerId $routeServerId
    
    # Verify the Route Server ID is set
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
  2. Koppla en Route Server till en befintlig brandvägg genom att använda Get-AzFirewall och Set-AzFirewall.

    # Specify the Route Server resource ID
    $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Get the firewall
    $azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
    # Associate the Route Server and update the firewall
    $azFirewall.RouteServerId = $routeServerId
    Set-AzFirewall -AzureFirewall $azFirewall
    
    # Verify the Route Server ID is updated
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
  3. Skapa en ny brandväggspolicy med auto-learn aktiverad genom att använda New-AzFirewallPolicySnat och New-AzFirewallPolicy.

    # Include AutoLearnPrivateRange to enable auto-learn
    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange
    
    # Create the firewall policy with SNAT configuration
    $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName `
        -ResourceGroupName $rgname `
        -Location $location `
        -Snat $snat
    
    # Verify the firewall policy
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  4. Uppdatera en befintlig brandväggspolicy med SNAT genom att använda New-AzFirewallPolicySnat och Set-AzFirewallPolicy.

    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2 -AutoLearnPrivateRange
    
    # Update the firewall policy
    $azureFirewallPolicy.Snat = $snat
    Set-AzFirewallPolicy -InputObject $azureFirewallPolicy
    
    # Verify the update
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  5. Verifiera de inlärda prefixen genom att använda Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

vHub-brandväggen

För vHub-distributioner är Azure Route Server redan distribuerad och associerad som standard. Du behöver bara aktivera auto-learn i din brandväggspolicy.

I följande exempel, ersätt variabelnamnen ($azureFirewallName, $rgname, $location, osv.) med dina egna värden.

  1. Skapa en ny brandväggspolicy med auto-learn aktiverad genom att använda New-AzFirewallPolicySnat och New-AzFirewallPolicy.

    # Include AutoLearnPrivateRange to enable auto-learn
    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange
    
    # Create the firewall policy with SNAT configuration
    $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName `
        -ResourceGroupName $rgname `
        -Location $location `
        -Snat $snat
    
    # Verify the firewall policy
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  2. Uppdatera en befintlig brandväggspolicy med SNAT genom att använda New-AzFirewallPolicySnat och Set-AzFirewallPolicy.

    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2 -AutoLearnPrivateRange
    
    # Update the firewall policy
    $azureFirewallPolicy.Snat = $snat
    Set-AzFirewallPolicy -InputObject $azureFirewallPolicy
    
    # Verify the update
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  3. Hämta den virtuella hubben genom att använda Get-AzVirtualHub och brandväggspolicyn genom att använda Get-AzFirewallPolicy.

    $Hub = Get-AzVirtualHub -ResourceGroupName $rgname -Name $virtualHubName
    $azureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  4. Skapa en publik IP-konfiguration genom att använda New-AzFirewallHubPublicIpAddress och New-AzFirewallHubHubIpAddress.

    $azureFirewallPIPs = New-AzFirewallHubPublicIpAddress -Count 1
    $azureFirewallHubIPs = New-AzFirewallHubIpAddress -PublicIP $azureFirewallPIPs
    
  5. Skapa vHub-brandväggen med auto-learn-policyn genom att använda New-AzFirewall.

    $azureFirewall = New-AzFirewall -Name $azureFirewallName `
        -ResourceGroupName $rgname `
        -Location $location `
        -VirtualHubId $Hub.Id `
        -FirewallPolicyId $azureFirewallPolicy.Id `
        -SkuName "AZFW_Hub" `
        -HubIPAddress $azureFirewallHubIPs `
        -SkuTier $FirewallTier
    
  6. Verifiera de inlärda prefixen genom att använda Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Nästa steg