Birden çok NIC'ye sahip bir Windows sanal makinesi oluşturma ve yönetme
Şunlar için geçerlidir: ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri
Azure'daki sanal makinelere (VM) birden çok sanal ağ arabirim kartı (NIC) eklenebilir. Yaygın bir senaryo, ön uç ve arka uç bağlantısı için farklı alt ağlara sahip olmaktır. Bir sanal makinedeki birden çok NIC'yi birden çok alt ağ ile ilişkilendirebilirsiniz, ancak bu alt ağların tümünün aynı sanal ağda (vNet) bulunması gerekir. Bu makalede, birden çok NIC'nin eklendiği bir VM'nin nasıl oluşturulacağı ayrıntılı olarak anlatılmıştır. Ayrıca var olan bir VM'ye NIC eklemeyi veya kaldırmayı da öğrenirsiniz. Farklı VM boyutları farklı sayıda NIC'yi desteklediğinden VM'nizi uygun şekilde boyutlandırın.
Not
Bir senaryo için birden çok alt ağ gerekli değilse, tek bir NIC'de birden çok IP yapılandırması kullanmak daha kolay olabilir. Bu kurulumla ilgili yönergeleri burada bulabilirsiniz.
Önkoşullar
Aşağıdaki örneklerde, örnek parametre adlarını kendi değerlerinizle değiştirin. Örnek parametre adları myResourceGroup, myVnet ve myVM'dir.
Birden çok NIC ile VM oluşturma
İlk olarak bir kaynak grubu oluşturun. Aşağıdaki örnek, EastUs konumunda myResourceGroup adlı bir kaynak grubu oluşturur:
New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"
Sanal ağ ve alt ağlar oluşturma
Yaygın bir senaryo, bir sanal ağın iki veya daha fazla alt ağa sahip olmasıdır. Alt ağlardan biri ön uç trafiği, diğeri arka uç trafiği için olabilir. Her iki alt ağa da bağlanmak için VM'nizde birden çok NIC kullanırsınız.
New-AzVirtualNetworkSubnetConfig ile iki sanal ağ alt ağı tanımlayın. Aşağıdaki örnek, mySubnetFrontEnd ve mySubnetBackEnd için alt ağları tanımlar:
$mySubnetFrontEnd = New-AzVirtualNetworkSubnetConfig -Name "mySubnetFrontEnd" ` -AddressPrefix "192.168.1.0/24" $mySubnetBackEnd = New-AzVirtualNetworkSubnetConfig -Name "mySubnetBackEnd" ` -AddressPrefix "192.168.2.0/24"
New-AzVirtualNetwork ile sanal ağınızı ve alt ağlarınızı oluşturun. Aşağıdaki örnek myVnet adlı bir sanal ağ oluşturur:
$myVnet = New-AzVirtualNetwork -ResourceGroupName "myResourceGroup" ` -Location "EastUs" ` -Name "myVnet" ` -AddressPrefix "192.168.0.0/16" ` -Subnet $mySubnetFrontEnd,$mySubnetBackEnd
Birden çok NIC oluşturma
New-AzNetworkInterface ile iki NIC oluşturun. Ön uç alt asına bir NIC ve arka uç alt asına bir NIC ekleyin. Aşağıdaki örnek, myNic1 ve myNic2 adlı NIC'ler oluşturur:
$frontEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetFrontEnd'}
$myNic1 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
-Name "myNic1" `
-Location "EastUs" `
-SubnetId $frontEnd.Id
$backEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetBackEnd'}
$myNic2 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
-Name "myNic2" `
-Location "EastUs" `
-SubnetId $backEnd.Id
Genellikle vm'ye yönelik ağ trafiğini filtrelemek için bir ağ güvenlik grubu ve trafiği birden çok VM arasında dağıtmak için bir yük dengeleyici de oluşturursunuz.
Sanal makineyi oluşturma
Şimdi VM yapılandırmanızı oluşturmaya başlayın. Her VM boyutu, vm'ye ekleyebileceğiniz toplam NIC sayısı için bir sınıra sahiptir. Daha fazla bilgi için bkz . Windows VM boyutları.
VM kimlik bilgilerinizi değişkenine
$cred
aşağıdaki gibi ayarlayın:$cred = Get-Credential
New-AzVMConfig ile VM'nizi tanımlayın. Aşağıdaki örnek, myVM adlı bir VM tanımlar ve ikiden fazla NIC'yi (Standard_DS3_v2) destekleyen bir VM boyutu kullanır:
$vmConfig = New-AzVMConfig -VMName "myVM" -VMSize "Standard_DS3_v2"
Set-AzVMOperatingSystem ve Set-AzVMSourceImage ile VM yapılandırmanızın geri kalanını oluşturun. Aşağıdaki örnek bir Windows Server 2016 VM oluşturur:
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig ` -Windows ` -ComputerName "myVM" ` -Credential $cred ` -ProvisionVMAgent ` -EnableAutoUpdate $vmConfig = Set-AzVMSourceImage -VM $vmConfig ` -PublisherName "MicrosoftWindowsServer" ` -Offer "WindowsServer" ` -Skus "2016-Datacenter" ` -Version "latest"
Add-AzVMNetworkInterface ile daha önce oluşturduğunuz iki NIC'yi ekleyin:
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic1.Id -Primary $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic2.Id
New-AzVM ile VM'nizi oluşturun:
New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "EastUs"
birden çok NIC için işletim sistemini yapılandırma başlığı altında verilen adımları tamamlayarak ikincil NIC'lerin yollarını işletim sistemine ekleyin.
Mevcut vm'ye NIC ekleme
Mevcut bir VM'ye sanal NIC eklemek için VM'yi serbest bırakmanız, sanal NIC'yi eklemeniz ve ardından VM'yi başlatmanız gerekir. Farklı VM boyutları farklı sayıda NIC'yi desteklediğinden VM'nizi uygun şekilde boyutlandırın. Gerekirse vm'yi yeniden boyutlandırabilirsiniz.
Vm'yi Stop-AzVM ile serbest bırakın. Aşağıdaki örnek, myResourceGroup'ta myVM adlı VM'yi serbest bırakmektedir:
Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
Get-AzVm ile vm'nin mevcut yapılandırmasını alın. Aşağıdaki örnek, myResourceGroup'ta myVM adlı vm için bilgi alır:
$vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
Aşağıdaki örnek, mySubnetBackEnd öğesine eklenmiş myNic3 adlı New-AzNetworkInterface ile bir sanal NIC oluşturur. Ardından sanal NIC, Add-AzVMNetworkInterface ile myResourceGroup'ta myVM adlı VM'ye eklenir:
# Get info for the back end subnet $myVnet = Get-AzVirtualNetwork -Name "myVnet" -ResourceGroupName "myResourceGroup" $backEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetBackEnd'} # Create a virtual NIC $myNic3 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" ` -Name "myNic3" ` -Location "EastUs" ` -SubnetId $backEnd.Id # Get the ID of the new virtual NIC and add to VM $nicId = (Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" -Name "MyNic3").Id Add-AzVMNetworkInterface -VM $vm -Id $nicId | Update-AzVm -ResourceGroupName "myResourceGroup"
Birincil sanal NIC'ler
Çoklu NIC vm'leri üzerindeki NIC'lerden birinin birincil olması gerekir. VM'de mevcut sanal NIC'lerden biri zaten birincil olarak ayarlanmışsa, bu adımı atlayabilirsiniz. Aşağıdaki örnekte, bir VM'de iki sanal NIC'nin mevcut olduğu ve ilk NIC'yi (
[0]
) birincil olarak eklemek istediğiniz varsayılır:# List existing NICs on the VM and find which one is primary $vm.NetworkProfile.NetworkInterfaces # Set NIC 0 to be primary $vm.NetworkProfile.NetworkInterfaces[0].Primary = $true $vm.NetworkProfile.NetworkInterfaces[1].Primary = $false # Update the VM state in Azure Update-AzVM -VM $vm -ResourceGroupName "myResourceGroup"
Start-AzVm ile VM'yi başlatın:
Start-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
birden çok NIC için işletim sistemini yapılandırma başlığı altında verilen adımları tamamlayarak ikincil NIC'lerin yollarını işletim sistemine ekleyin.
Mevcut bir VM'den NIC kaldırma
Sanal NIC'yi mevcut bir VM'den kaldırmak için VM'yi serbest bırakmanız, sanal NIC'yi kaldırmanız ve ardından VM'yi başlatmanız gerekir.
Vm'yi Stop-AzVM ile serbest bırakın. Aşağıdaki örnek, myResourceGroup'ta myVM adlı VM'yi serbest bırakmektedir:
Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
Get-AzVm ile vm'nin mevcut yapılandırmasını alın. Aşağıdaki örnek, myResourceGroup'ta myVM adlı vm için bilgi alır:
$vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
Get-AzNetworkInterface ile NIC kaldırma hakkında bilgi edinin. Aşağıdaki örnek myNic3 hakkında bilgi alır:
# List existing NICs on the VM if you need to determine NIC name $vm.NetworkProfile.NetworkInterfaces $nicId = (Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" -Name "myNic3").Id
Remove-AzVMNetworkInterface ile NIC'yi kaldırın ve ardından Vm'yi Update-AzVm ile güncelleştirin. Aşağıdaki örnek, önceki adımda tarafından elde edilen
$nicId
myNic3 öğesini kaldırır:Remove-AzVMNetworkInterface -VM $vm -NetworkInterfaceIDs $nicId | ` Update-AzVm -ResourceGroupName "myResourceGroup"
Start-AzVm ile VM'yi başlatın:
Start-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
Şablonlarla birden çok NIC oluşturma
Azure Resource Manager şablonları, dağıtım sırasında birden çok NIC oluşturma gibi bir kaynağın birden çok örneğini oluşturmanın bir yolunu sağlar. Resource Manager şablonları, ortamınızı tanımlamak için bildirim temelli JSON dosyalarını kullanır. Daha fazla bilgi için bkz . Azure Resource Manager'a genel bakış. Oluşturulacak örnek sayısını belirtmek için kopyalamayı kullanabilirsiniz:
"copy": {
"name": "multiplenics",
"count": "[parameters('count')]"
}
Daha fazla bilgi için bkz. kopyalama kullanarak birden çok örnek oluşturma.
Bir kaynak adına sayı eklemek için de kullanabilirsiniz copyIndex()
. Ardından myNic1, MyNic2 vb. oluşturabilirsiniz. Aşağıdaki kodda dizin değerini ekleme örneği gösterilmektedir:
"name": "[concat('myNic', copyIndex())]",
Resource Manager şablonlarını kullanarak birden çok NIC oluşturmanın tam bir örneğini okuyabilirsiniz.
birden çok NIC için işletim sistemini yapılandırma başlığı altında verilen adımları tamamlayarak ikincil NIC'lerin yollarını işletim sistemine ekleyin.
Birden çok NIC için konuk işletim sistemini yapılandırma
Azure, sanal makineye bağlı ilk (birincil) ağ arabirimine varsayılan bir ağ geçidi atar. Azure, bir sanal makineye bağlı ek (ikincil) ağ arabirimlerine varsayılan ağ geçidi atamaz. Bu nedenle varsayılan olarak, alt ağın dışında kalan ve ikincil bir ağ arabirimi içeren kaynaklarla iletişim kurulamaz. Ancak ikincil ağ arabirimleri alt ağ dışındaki kaynaklarla iletişim kurabilir, ancak iletişimi etkinleştirme adımları farklı işletim sistemleri için farklıdır.
Windows komut isteminden
route print
komutunu çalıştırın ve iki bağlı ağ arabirimine sahip bir sanal makine için aşağıdaki çıkışa benzer bir çıktı döndürür:=========================================================================== Interface List 3...00 0d 3a 10 92 ce ......Microsoft Hyper-V Network Adapter #3 7...00 0d 3a 10 9b 2a ......Microsoft Hyper-V Network Adapter #4 ===========================================================================
Bu örnekte, Microsoft Hyper-V Ağ Bağdaştırıcısı #4 (arabirim 7), kendisine atanmış varsayılan ağ geçidi olmayan ikincil ağ arabirimidir.
İkincil ağ arabirimine hangi IP adresinin
ipconfig
atandığı görmek için komut isteminden komutunu çalıştırın. Bu örnekte 7. arabirime 192.168.2.4 atanmıştır. İkincil ağ arabirimi için varsayılan ağ geçidi adresi döndürülmedi.İkincil ağ arabiriminin alt ağı dışındaki adresleri hedefleyen tüm trafiği alt ağın ağ geçidine yönlendirmek için aşağıdaki komutu çalıştırın:
route add -p 0.0.0.0 MASK 0.0.0.0 192.168.2.1 METRIC 5015 IF 7
Alt ağın ağ geçidi adresi, alt ağ için tanımlanan adres aralığındaki ilk IP adresidir (.1 ile biten). Tüm trafiği alt ağın dışına yönlendirmek istemiyorsanız, bunun yerine belirli hedeflere tek tek yollar ekleyebilirsiniz. Örneğin, trafiği yalnızca ikincil ağ arabiriminden 192.168.3.0 ağına yönlendirmek istiyorsanız komutunu girin:
route add -p 192.168.3.0 MASK 255.255.255.0 192.168.2.1 METRIC 5015 IF 7
Örneğin, 192.168.3.0 ağındaki bir kaynakla başarılı iletişimi onaylamak için, arabirim 7 (192.168.2.4) kullanarak 192.168.3.4'e ping göndermek için aşağıdaki komutu girin:
ping 192.168.3.4 -S 192.168.2.4
Aşağıdaki komutla ping işlemi yaptığınız cihazın Windows güvenlik duvarı üzerinden ICMP'yi açmanız gerekebilir:
netsh advfirewall firewall add rule name=Allow-ping protocol=icmpv4 dir=in action=allow
Eklenen yolun yol tablosunda olduğunu onaylamak için aşağıdaki metne
route print
benzer bir çıktı döndüren komutunu girin:=========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.4 15 0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.4 5015
Ağ Geçidi altında 192.168.1.1 ile listelenen yol, birincil ağ arabirimi için varsayılan olarak orada olan yoldur. Ağ Geçidi altında 192.168.2.1 bulunan yol, eklediğiniz yoldur.
Sonraki adımlar
Birden çok NIC'ye sahip bir VM oluşturmaya çalışırken Windows VM boyutlarını gözden geçirin. Her VM boyutunun desteklediği maksimum NIC sayısına dikkat edin.