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.

  1. 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"
    
  2. 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ı.

  1. VM kimlik bilgilerinizi değişkenine $cred aşağıdaki gibi ayarlayın:

    $cred = Get-Credential
    
  2. 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"
    
  3. 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"
    
  4. 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
    
  5. New-AzVM ile VM'nizi oluşturun:

    New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "EastUs"
    
  6. 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.

  1. 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"
    
  2. 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"
    
  3. 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"
    
  4. Start-AzVm ile VM'yi başlatın:

    Start-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
    
  5. 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.

  1. 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"
    
  2. 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"
    
  3. 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   
    
  4. 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 $nicIdmyNic3 öğesini kaldırır:

    Remove-AzVMNetworkInterface -VM $vm -NetworkInterfaceIDs $nicId | `
        Update-AzVm -ResourceGroupName "myResourceGroup"
    
  5. 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.

  1. 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.

  2. İ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.

  3. İ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
    
  4. Ö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
    
  5. 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.