Azure 防火牆 和 Azure 防火牆 policy 支援 IPv6。 你可以配置 IPv6 子網、位址空間、公共 IPv6 位址、使用者自訂路由(UDR)以及網路規則來管理 IPv6 流量。 你可以部署防火牆,採用僅 IPv4 模式或雙重堆疊模式(IPv4 和 IPv6)。 僅支援 IPv6 的防火牆則不被支援。
本文將向您展示如何將現有防火牆升級為雙棧模式,並部署新的雙堆疊防火牆。
支援的案例和限制
Azure 防火牆 的 IPv6 支援是針對特定使用情境設計,並有其限制。 部署前請先檢視以下支援的情境與限制。
支援劇本
-
網路規則:Azure 防火牆 完全支援網路規則中的 IPv6 流量。 你可以建立規則來允許或拒絕 IPv6 流量。
-
DNS 代理:Azure 防火牆 可以在 IPv6 網路中設定為 DNS 代理。
Note
對於所有來自虛擬網路的出站連線,Azure 防火牆 會透過防火牆實例的 IP 位址來執行來源網路位址轉換(SNAT)。 若目的地址位於 IANA 定義的唯一本地地址(ULA)範圍內(fc00::/7),則不適用 SNAT。 這種行為是設計出的,無法改變。
局限性
- 經典版 Azure 防火牆 不被支援。
- 虛擬集線器(vHub)防火牆不被支援。
- 應用程式規則和 DNAT 規則目前尚不支援。
- 不支援威脅情報、IDPS、Explicit Proxy,以及以 IP Groups 為基礎的案例。
- 將雙堆疊防火牆恢復為僅 IPv4 模式是不支援的。 當雙堆疊支援普及時,此臨時限制將被移除。
Note
現有與僅 IPv4 防火牆相容的功能,也持續支援雙堆疊防火牆中的 IPv4。 上述限制僅適用於 IPv6。
先決條件
如果您沒有 Azure 訂用帳戶,請建立 免費帳戶 以開始使用。
要將現有的 Azure 防火牆 從僅限 IPv4 升級為雙重堆疊模式(IPv4 與 IPv6):
- 在虛擬網路中新增一個 IPv6 位址空間。
- 在
AzureFirewallSubnet 中新增 IPv6 子網路前置詞。
- 建立一個公開的 IPv6 位址。
- 把公開的 IPv6 位址加入你的防火牆設定。
- 根據需要新增 IPv6 流量的網路規則。
Important
升級防火牆到雙堆疊模式後,就無法再回復到僅 IPv4 模式。 當雙堆疊支援普及時,此臨時限制將被移除。
請使用以下分頁,為已部署的防火牆新增 IPv6 支援。
在 Azure 入口網站開啟你的虛擬網路,選擇位址空間,並新增 IPv6 前綴(例如 79f7:d56c:e9bc:8000::/49)。 儲存您的變更。
打開你的虛擬網路,選擇 子網,選擇 AzureFirewallSubnet,並在現有的 IPv4 前綴旁邊加上 IPv6 位址前綴(例如 fd00:c1d0:3f1f:1::/64)。 儲存您的變更。
建立公開的 IPv6 位址資源,然後附加到防火牆設定中。
使用 Get-AzVirtualNetwork 和 Set-AzVirtualNetwork 更新虛擬網路(VNET)以新增 IPv6 位址空間。
檢索現有的 VNET:
$vnet = Get-AzVirtualNetwork -Name "test-vnet" -ResourceGroupName "test-rg"
加入 IPv6 位址空間:
$vnet.AddressSpace.AddressPrefixes.Add("fd00:c1d0:3f1f::/48")
$vnet | Set-AzVirtualNetwork
使用 Set-AzVirtualNetworkSubnetConfig 更新 AzureFirewallSubnet 以新增 IPv6 子網路前綴。
Set-AzVirtualNetworkSubnetConfig -Name "AzureFirewallSubnet" `
-VirtualNetwork $vnet `
-AddressPrefix @("10.0.0.0/24", "fd00:c1d0:3f1f:1::/64")
$vnet | Set-AzVirtualNetwork
使用 New-AzPublicIpAddress 和 Set-AzFirewall 建立並附加一個 IPv6 公共 IP。
$publicIpV6 = New-AzPublicIpAddress `
-ResourceGroupName "test-rg" `
-Location "southcentralus" `
-Name "test-v6pip" `
-AllocationMethod Static `
-Sku Standard `
-IpAddressVersion IPv6
$azFw = Get-AzFirewall -Name "test-fw" -ResourceGroupName "test-rg"
$azFw.AddPublicIpAddress($publicIpV6)
$azFw | Set-AzFirewall
使用 az network vnet 更新,為你現有的 VNET 新增 IPv6 位址空間:
az network vnet update --resource-group test-rg --name test-vnet \
--address-prefixes 10.0.0.0/16 fd00:c1d0:3f1f::/48
此指令會更新虛擬網路,同時包含原始 IPv4 位址空間與新的 IPv6 位址空間。
透過 az network vnet 子網更新,將 AzureFirewallSubnet 加入 IPv6 子網路:
az network vnet subnet update \
--resource-group test-rg \
--vnet-name test-vnet \
--name AzureFirewallSubnet \
--address-prefixes 10.0.0.0/24 fd00:c1d0:3f1f:1::/64
此指令會將 IPv6 子網路前綴(fd00:c1d0:3f1f:1::/64)與現有 Azure 防火牆 子網的 IPv4 前綴(10.0.0.0/24)並列。
使用 az network public-ip 建立 公共 IPv6 位址,並透過 az network firewall ip-config create 將其附加到防火牆:
az network public-ip create \
--resource-group test-rg \
--name test-v6pip \
--location southcentralus \
--sku Standard \
--version IPv6 \
--allocation-method Static \
--zone 1 2 3
az network firewall ip-config create \
--firewall-name test-fw \
--name fw-ip6-config \
--resource-group test-rg \
--public-ip-address test-v6pip
建立雙重堆疊 Azure 防火牆
在 Azure 防火牆 的部署流程中,輸入 IPv6 位址空間,輸入 IPv6 子網路前綴,並將新的或現有的 IPv6 公共 IP 位址加入新的 Azure 防火牆。
使用 PowerShell 建立雙堆疊防火牆:
使用 New-AzResourceGroup 指令碼建立資源群組。
New-AzResourceGroup -Name "test-rg" -Location "southcentralus"
請使用 New-AzVirtualNetworkSubnetConfig 與 New-AzVirtualNetwork 指令集建立防火牆子網與虛擬網路。
$FWsub = New-AzVirtualNetworkSubnetConfig `
-Name "AzureFirewallSubnet" `
-AddressPrefix @("10.0.1.0/26", "fd00:c1d0:3f1f:1::/64")
$vnet = New-AzVirtualNetwork `
-Name "test-vnet" `
-ResourceGroupName "test-rg" `
-Location "southcentralus" `
-AddressPrefix @("10.0.0.0/16", "fd00:c1d0:3f1f::/48") `
-Subnet $FWsub
使用 New-AzPublicIpAddress 指令檔建立公共 IPv4 和 IPv6 位址。
$publicIpV4 = New-AzPublicIpAddress `
-ResourceGroupName "test-rg" `
-Location "southcentralus" `
-Name "v4pip" `
-AllocationMethod Static `
-Sku Standard
$publicIpV6 = New-AzPublicIpAddress `
-ResourceGroupName "test-rg" `
-Location "southcentralus" `
-Name "v6pip" `
-AllocationMethod Static `
-Sku Standard `
-IpAddressVersion IPv6
使用 New-AzFirewallPolicy 指令檔建立防火牆政策。
$fwPolicy = New-AzFirewallPolicy -Name "fw-policy" -ResourceGroupName "test-rg" -Location "southcentralus" -SkuTier "Premium"
使用 New-AzFirewall 指令檔建立雙堆疊防火牆。
$Azfw = New-AzFirewall -Name "firewall-test" `
-ResourceGroupName "test-rg" `
-Location "southcentralus" `
-VirtualNetwork $vnet `
-PublicIpAddress @($publicIpV4, $publicIpV6) `
-Sku AZFW_VNet `
-SkuTier Premium `
-FirewallPolicyId $fwPolicy.Id
要使用 Azure CLI 來設定雙堆疊防火牆:
使用 az group create 建立資源群組。
az group create --name test-rg --location southcentralus
透過 az network vnet create 和 az network vnet 子網建立虛擬網路和防火牆子網。
az network vnet create --resource-group test-rg --name test-vnet --location southcentralus --address-prefixes 10.0.0.0/16 fd00:c1d0:3f1f::/48
az network vnet subnet create --resource-group test-rg --vnet-name test-vnet --name AzureFirewallSubnet --address-prefixes 10.0.0.0/24 fd00:c1d0:3f1f:1::/64
使用 az network public-ip create 建立 IPv4 和 IPv6 公共 IP 位址。
az network public-ip create --resource-group test-rg --name test-v4pip --location southcentralus --sku Standard --version IPv4 --allocation-method Static --zone 1 2 3
az network public-ip create --resource-group test-rg --name test-v6pip --location southcentralus --sku Standard --version IPv6 --allocation-method Static --zone 1 2 3
請使用 az network firewall policy create 來建立防火牆政策。
az network firewall policy create --name test-fw-policy --resource-group test-rg --location southcentralus --sku Premium
使用 az network firewall create 和 az network firewall ip-config create 建立防火牆,並附加 IPv4 和 IPv6 公用 IP 位址。
az network firewall create --name test-fw --resource-group test-rg --location southcentralus --sku AZFW_VNet --tier Premium --firewall-policy test-fw-policy
az network firewall ip-config create --firewall-name test-fw --name fw-ip-config --resource-group test-rg --public-ip-address test-v4pip --vnet-name test-vnet
az network firewall ip-config create --firewall-name test-fw --name fw-ip6-config --resource-group test-rg --public-ip-address test-v6pip
相關內容