建立具有雙重堆疊網路的 Azure 虛擬機器
在本文中,您會透過 Azure 入口網站在 Azure 中建立虛擬機器。 虛擬機器及雙重堆疊網路會在過程中共同建立完成。 請從 Azure 入口網站、Azure CLI 或 Azure PowerShell 中進行選擇,以完成本文中的步驟。 建立完成後,虛擬機器便能支援 IPv4 和 IPv6 通訊。
必要條件
- 本教學課程需要 2.0.28 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已在本地安裝 Azure PowerShell 或 Azure Cloud Shell。
- 登入 Azure PowerShell,然後選取您要使用的訂用帳戶。 如需詳細資訊,請參閱使用 Azure PowerShell 登入 \(英文\)。
- 確定您的 Az。 網路模組為 4.3.0 或更新版本。 若要確認已安裝的模組,請使用 Get-InstalledModule -Name "Az.Network" 命令。 如果模組需要更新,請使用 Update-Module -Name "Az. 網路」。
如果您選擇在本機安裝和使用 PowerShell,本文會要求使用 Azure PowerShell 模組版本 5.4.1 或更新版本。 執行 Get-Module -ListAvailable Az
以尋找安裝的版本。 如果您需要升級,請參閱安裝 Azure PowerShell 模組。 如果正在本機執行 PowerShell,也需要執行 Connect-AzAccount
,以建立與 Azure 的連線。
建立資源群組和虛擬網路
在本節中,您會在 Azure 入口網站中為虛擬機器建立資源群組和雙重堆疊虛擬網路。
登入 Azure 入口網站。
在入口網站頂端的搜尋方塊中,輸入虛擬網路。 選取搜尋結果中的 [虛擬網路]。
選取 + 建立。
在 [建立虛擬網路] 的 [基本] 索引標籤中,輸入或選取下列資訊。
設定 |
值 |
專案詳細資料 |
|
訂用帳戶 |
選取您的訂用帳戶。 |
資源群組 |
選取 [新建] 在 [名稱] 輸入 myResourceGroup。 選取 [確定]。 |
[執行個體詳細資料] |
|
名稱 |
輸入 [myVNet]。 |
區域 |
選取 [美國東部 2]。 |
選取 [IP 位址] 索引標籤,或依序選取 [下一步] > [下一步]。
保留 10.0.0.0/16 預設 IPv4 位址空間。 如果預設值不存在或不同,請輸入 10.0.0.0/16 IPv4 位址空間。
選取 [預設] 子網路。
在 [編輯子網路] 頁面上,在 [子網路名稱] 中輸入 myBackendSubnet,然後選取 [儲存]。
從下拉式功能表中選取 [新增 IPv6 位址空間]。
在 [IPv6 位址空間] 中,編輯預設位址空間,並將其值變更為 2404:f800:8000:122::/63。
若要新增 IPv6 子網路,請選取 [+ 新增子網路],然後輸入或選取下列資訊:
設定 |
值 |
子網路 |
|
子網路名稱 |
輸入 myBackendSubnet。 |
位址範圍 |
保留 2404:f800:8000:122:: 預設值。 |
大小 |
保留 /64 預設值。 |
選取 [新增]。
選取 [檢閱 + 建立]。
選取 建立。
在本節中,您會使用 Azure CLI 為虛擬機器建立資源群組和雙重堆疊虛擬網路。
使用 az group create 在 eastus2 位置中建立名為 myResourceGroup 的資源群組。
az group create \
--name myResourceGroup \
--location eastus2
使用 az network vnet create 建立虛擬網路。
az network vnet create \
--resource-group myResourceGroup \
--location eastus2 \
--name myVNet \
--address-prefixes 10.0.0.0/16 2404:f800:8000:122::/63 \
--subnet-name myBackendSubnet \
--subnet-prefixes 10.0.0.0/24 2404:f800:8000:122::/64
在本節中,您會使用 Azure PowerShell 為虛擬機器建立雙重堆疊虛擬網路。
使用 New-AzResourceGroup 在 eastus2 位置中建立名為 myResourceGroup 的資源群組。
$rg =@{
Name = 'myResourceGroup'
Location = 'eastus2'
}
New-AzResourceGroup @rg
使用 New-AzVirtualNetwork d New-AzVirtualNetworkSubnetConfig來建立虛擬網路。
## Create backend subnet config ##
$subnet = @{
Name = 'myBackendSubnet'
AddressPrefix = '10.0.0.0/24','2404:f800:8000:122::/64'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16','2404:f800:8000:122::/63'
Subnet = $subnetConfig
}
New-AzVirtualNetwork @net
建立公用 IP 位址
在本節中,您會在 Azure 入口網站中建立兩個公用 IP 位址,分別為 IPv4 和 IPv6。
建立 IPv4 公用 IP 位址
在入口網站頂端的搜尋方塊中,輸入公用 IP 位址。 在搜尋結果中,選取 [公用 IP 位址]。
選取 + 建立。
在 [建立公用 IP 位址] 中,輸入或選取下列資訊。
設定 |
值 |
專案詳細資料 |
|
訂用帳戶 |
選取您的訂用帳戶。 |
資源群組 |
選取 myResourceGroup。 |
Location |
選取 [美國東部 2]。 |
可用性區域 |
選取 [區域備援]。 |
[執行個體詳細資料] |
|
名稱 |
輸入 myPublicIP-IPv4。 |
IP 版本 |
選取 [IPv4]。 |
SKU |
保留預設值 [標準]。 |
層 |
保留預設值區域。 |
IP 位址指派 |
|
路由喜好設定 |
保留預設值 [Microsoft 網路]。 |
閒置逾時 (分鐘) |
保留預設值 [4]。 |
DNS 名稱標籤 |
輸入 myPublicIP-IPv4。 |
選取 [檢閱 + 建立],然後選取 [建立]。
建立 IPv6 公用 IP 位址
在入口網站頂端的搜尋方塊中,輸入公用 IP 位址。 在搜尋結果中,選取 [公用 IP 位址]。
選取 + 建立。
在 [建立公用 IP 位址] 中,輸入或選取下列資訊。
設定 |
值 |
專案詳細資料 |
|
訂用帳戶 |
選取您的訂用帳戶。 |
資源群組 |
選取 myResourceGroup。 |
Location |
選取 [美國東部 2]。 |
可用性區域 |
選取 [區域備援]。 |
[執行個體詳細資料] |
|
名稱 |
輸入 myPublicIP-IPv6。 |
IP 版本 |
選取 [IPv6]。 |
SKU |
保留預設值 [標準]。 |
層 |
保留預設值區域。 |
IP 位址指派 |
|
DNS 名稱標籤 |
輸入 myPublicIP-IPv6。 |
選取 [檢閱 + 建立],然後選取 [建立]。
在本節中,您會使用 Azure CLI 建立兩個公用 IP 位址,分別為 IPv4 和 IPv6。
使用 az network public-ip create 來建立公用 IP 位址。
az network public-ip create \
--resource-group myResourceGroup \
--name myPublicIP-Ipv4 \
--sku Standard \
--version IPv4 \
--zone 1 2 3
az network public-ip create \
--resource-group myResourceGroup \
--name myPublicIP-Ipv6 \
--sku Standard \
--version IPv6 \
--zone 1 2 3
您會在本節中建立兩個公用 IP 位址,分別為 IPv4 和 IPv6。
使用 New-AzPublicIpAddress 建立公用 IP 位址。
$ip4 = @{
Name = 'myPublicIP-IPv4'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
IpAddressVersion = 'IPv4'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip4
$ip6 = @{
Name = 'myPublicIP-IPv6'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
IpAddressVersion = 'IPv6'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip6
建立虛擬機器
在本節中,您會建立虛擬機器及其支援資源。
建立虛擬機器
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 [+ 建立],然後選取 [Azure 虛擬機器]。
在 [基本] 索引標籤中,輸入或選取以下資訊。
設定 |
值 |
專案詳細資料 |
|
訂用帳戶 |
選取您的訂用帳戶。 |
資源群組 |
選取 myResourceGroup。 |
[執行個體詳細資料] |
|
虛擬機器名稱 |
輸入 myVM。 |
區域 |
選取 [美國東部 2]。 |
可用性選項 |
選取 [不需要基礎結構備援]。 |
安全性類型 |
選取 [標準]。 |
映像 |
選取 [Ubuntu Server 20.04 LTS - Gen2]。 |
大小 |
選取預設大小。 |
系統管理員帳戶 |
|
驗證類型 |
選取 [SSH 公開金鑰]。 |
使用者名稱 |
輸入使用者名稱。 |
SSH 公開金鑰來源 |
選取 [產生新的金鑰組]。 |
金鑰組名稱 |
輸入 mySSHKey。 |
輸入連接埠規則 |
|
公用輸入連接埠 |
選取 [無]。 |
選取 [網路] 索引標籤或 [下一步:磁碟],然後選取 [下一步: 網路]。
在 [網路] 索引標籤中,輸入或選取以下資訊。
設定 |
值 |
網路介面 |
|
虛擬網路 |
選取 [myVNet]。 |
子網路 |
選取 [myBackendSubnet (10.1.0.0/24,2404:f800:8000:122:/64)]。 |
公用 IP |
選取 [myPublicIP-IPv4]。 |
NIC 網路安全性群組 |
選取進階。 |
設定網路安全性群組 |
選取 [新建] 在 [名稱] 中輸入 myNSG。 選取 [確定]。 |
選取 [檢閱 + 建立]。
選取 建立。
[產生新的金鑰組] 隨即顯示。 選取 [下載私密金鑰並建立資源]。
私密金鑰會下載到本機電腦。 將私密金鑰複製到電腦上的目錄。 在下列範例中為 ~/.ssh。
網路介面會在建立期間自動建立並連結至所選擇的虛擬網路。 在本節中,您會將 IPv6 設定新增至現有的網路介面。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 myVM 或現有的虛擬機器名稱。
在 [設定] 中,選取 [網路]。
預設網路介面的名稱將會是 myvmxx,而 xx 為亂數。 在此範例中為 myvm281。 選取 [網路介面:] 旁的 [myvm281]。
在網路介面屬性的 [設定] 中,選取 [IP 設定]。
在 [IP 設定] 下方,選取 [+ 新增]。
在 [新增 IP 設定] 中,輸入或選取下列資訊。
設定 |
值 |
名稱 |
輸入 Ipv6config。 |
IP 版本 |
選取 [IPv6]。 |
私人 IP 位址設定 |
|
配置 |
保留預設值 [動態]。 |
公用 IP 位址 |
選取 [+ 建立關聯]。 |
公用 IP 位址 |
選取 [myPublicIP-IPv6]。 |
選取 [確定]。
在本節中,您會建立虛擬機器及其支援資源。
建立網路介面
您將使用 az network nic create 來建立虛擬機器的網路介面。 先前建立的公用 IP 位址和 NSG 會與 NIC 相關聯。 網路介面會附加至您先前建立的虛擬網路。
az network nic create \
--resource-group myResourceGroup \
--name myNIC1 \
--vnet-name myVNet \
--subnet myBackEndSubnet \
--network-security-group myNSG \
--public-ip-address myPublicIP-IPv4
建立 IPv6 IP 設定
使用 az network nic ip-config create 來建立 NIC 的 IPv6 設定。
az network nic ip-config create \
--resource-group myResourceGroup \
--name myIPv6config \
--nic-name myNIC1 \
--private-ip-address-version IPv6 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--public-ip-address myPublicIP-IPv6
建立虛擬機器
使用 az vm create 建立虛擬機器。
az vm create \
--resource-group myResourceGroup \
--name myVM \
--nics myNIC1 \
--image Ubuntu2204 \
--admin-username azureuser \
--authentication-type ssh \
--generate-ssh-keys
在本節中,您會建立虛擬機器及其支援資源。
建立網路介面
請使用 New-AzNetworkInterface (部分機器翻譯) 和 New-AzNetworkInterfaceIpConfig (部分機器翻譯) 來建立虛擬機器的網路介面。 先前建立的公用 IP 位址和 NSG 會與 NIC 相關聯。 網路介面會附加至您先前建立的虛擬網路。
## Place the virtual network into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
}
$vnet = Get-AzVirtualNetwork @net
## Place the network security group into a variable. ##
$ns = @{
Name = 'myNSG'
ResourceGroupName = 'myResourceGroup'
}
$nsg = Get-AzNetworkSecurityGroup @ns
## Place the IPv4 public IP address into a variable. ##
$pub4 = @{
Name = 'myPublicIP-IPv4'
ResourceGroupName = 'myResourceGroup'
}
$pubIPv4 = Get-AzPublicIPAddress @pub4
## Place the IPv6 public IP address into a variable. ##
$pub6 = @{
Name = 'myPublicIP-IPv6'
ResourceGroupName = 'myResourceGroup'
}
$pubIPv6 = Get-AzPublicIPAddress @pub6
## Create IPv4 configuration for NIC. ##
$IP4c = @{
Name = 'ipconfig-ipv4'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv4'
PublicIPAddress = $pubIPv4
}
$IPv4Config = New-AzNetworkInterfaceIpConfig @IP4c
## Create IPv6 configuration for NIC. ##
$IP6c = @{
Name = 'ipconfig-ipv6'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv6'
PublicIPAddress = $pubIPv6
}
$IPv6Config = New-AzNetworkInterfaceIpConfig @IP6c
## Command to create network interface for VM ##
$nic = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
NetworkSecurityGroup = $nsg
IpConfiguration = $IPv4Config,$IPv6Config
}
New-AzNetworkInterface @nic
建立虛擬機器
使用下列命令來建立虛擬機器:
$cred = Get-Credential
## Place network interface into a variable. ##
$nic = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
}
$nicVM = Get-AzNetworkInterface @nic
## Create a virtual machine configuration for VMs ##
$vmsz = @{
VMName = 'myVM'
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = 'myVM'
Credential = $cred
}
$vmimage = @{
PublisherName = 'Debian'
Offer = 'debian-11'
Skus = '11'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @vmsz `
| Set-AzVMOperatingSystem @vmos -Linux `
| Set-AzVMSourceImage @vmimage `
| Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine for VMs ##
$vm = @{
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
VM = $vmConfig
SshKeyName = 'mySSHKey'
}
New-AzVM @vm -GenerateSshKey
測試 SSH 連線
您會使用 SSH 連線到虛擬機器,以測試 IPv4 公用 IP 位址。
在入口網站頂端的搜尋方塊中,輸入公用 IP 位址。 在搜尋結果中,選取 [公用 IP 位址]。
選取 [myPublicIP-IPv4]。
公用 IPv4 位址位於 [IP 位址] 的 [概觀] 中。 在此範例中為 20.22.46.19。
使用下列命令開啟與虛擬機器之間的 SSH 連線。 以虛擬機器的 IP 位址取代 IP 位址。 將 azureuser
取代為您在虛擬機器建立期間所選擇的使用者名稱。 -i
是您稍早所下載私密金鑰的路徑。 在此範例中為 ~/.ssh/mySSHKey.pem。
ssh -i ~/.ssh/mySSHkey.pem azureuser@20.22.46.19
使用 az network public-ip show 來顯示虛擬機器的 IP 位址。
az network public-ip show \
--resource-group myResourceGroup \
--name myPublicIP-IPv4 \
--query ipAddress \
--output tsv
user@Azure:~$ az network public-ip show \
> --resource-group myResourceGroup \
> --name myPublicIP-IPv4 \
> --query ipAddress \
> --output tsv
20.119.201.208
az network public-ip show \
--resource-group myResourceGroup \
--name myPublicIP-IPv6 \
--query ipAddress \
--output tsv
user@Azure:~$ az network public-ip show \
> --resource-group myResourceGroup \
> --name myPublicIP-IPv6 \
> --query ipAddress \
> --output tsv
2603:1030:408:6::9d
使用下列命令開啟與虛擬機器之間的 SSH 連線。 以虛擬機器的 IP 位址取代 IP 位址。
ssh azureuser@20.119.201.208
使用 Get-AzPublicIpAddress 來顯示虛擬機器的 IP 位址。
$ip4 = @{
ResourceGroupName = 'myResourceGroup'
Name = 'myPublicIP-IPv4'
}
Get-AzPublicIPAddress @ip4 | select IpAddress
PS /home/user> Get-AzPublicIPAddress @ip4 | select IpAddress
IpAddress
---------
20.72.115.187
$ip6 = @{
ResourceGroupName = 'myResourceGroup'
Name = 'myPublicIP-IPv6'
}
Get-AzPublicIPAddress @ip6 | select IpAddress
PS /home/user> Get-AzPublicIPAddress @ip6 | select IpAddress
IpAddress
---------
2603:1030:403:3::1ca
使用下列命令開啟與虛擬機器之間的 SSH 連線。 以虛擬機器的 IP 位址取代 IP 位址。
ssh azureuser@20.72.115.187
清除資源
當您完成使用本文中建立的資源時,請刪除資源群組及其包含的所有資源:
在入口網站頂端的搜尋方塊中,輸入 myResourceGroup。 在 [資源群組] 的搜尋結果中選取 [myResourceGroup]。
選取 [刪除資源群組]。
針對 [輸入資源群組名稱] 輸入 myResourceGroup,然後選取 [刪除]。
若不再需要,請使用 az group delete 命令來移除資源群組、虛擬機器和所有相關資源。
az group delete \
--name myResourceGroup
下一步
在本文中,您會了解如何建立具有雙重堆疊網路的 Azure 虛擬機器。
如需有關 Azure 中 IPv6 和 IP 位址的詳細資訊,請參閱: