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 VM'deki 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 bağlı olduğu 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ğ gerekmiyorsa, 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ğine, diğeri arka uç trafiğine yönelik 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 ağina bir NIC ve arka uç alt ağina bir NIC ekleyin. Aşağıdaki örnekte myNic1 ve myNic2 adlı NIC'ler oluşturulur:
$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 gelen 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, bir 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"
Daha önce Add-AzVMNetworkInterface ile 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 bölümündeki adımları tamamlayarak ikincil NIC'ler için yolları işletim sistemine ekleyin.
Var olan bir VM'ye NIC ekleme
Var olan 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'tamyVM adlı VM'yi serbest bırakıyor:
Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
Get-AzVm ile VM'nin mevcut yapılandırmasını alın. Aşağıdaki örnek, myResourceGroup'tamyVM adlı VM'nin bilgilerini alır:
$vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
Aşağıdaki örnek, mySubnetBackEnd öğesine bağlı myNic3 adlı New-AzNetworkInterface ile bir sanal NIC oluşturur. Ardından sanal NIC, Add-AzVMNetworkInterface ile myResourceGroup içinde 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 sanal makinesindeki 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 bölümündeki adımları tamamlayarak ikincil NIC'ler için yolları işletim sistemine ekleyin.
Var olan bir VM'den NIC kaldırma
Var olan bir VM'den bir sanal NIC'yi 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'tamyVM adlı VM'yi serbest bırakıyor:
Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
Get-AzVm ile VM'nin mevcut yapılandırmasını alın. Aşağıdaki örnek, myResourceGroup'tamyVM adlı VM'nin bilgilerini 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ı, birden çok NIC oluşturma gibi dağıtım sırasında 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 genel bakış. Oluşturulacak örnek sayısını belirtmek için copy 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ı kullanarak birden çok NIC oluşturmanın tam bir örneğini okuyabilirsiniz.
birden çok NIC için işletim sistemini yapılandırma bölümündeki adımları tamamlayarak ikincil NIC'ler için yolları 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, iletişimi etkinleştirme adımları farklı işletim sistemleri için farklı olsa da ikincil ağ arabirimleri alt ağlarının dışındaki kaynaklarla iletişim kurabilir.
Windows komut isteminden
route print
komutunu çalıştırın. Bu komut, bağlı iki ağ arabirimine sahip bir sanal makine için aşağıdakine 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 arabirimine 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 şu komutu girersiniz:
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 benzer bir çıktı döndüren komutu girin
route print
:=========================================================================== 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 bulunan 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.