إنشاء جهاز ظاهري يعمل بنظام Windows يحتوي على بطاقات NIC متعددة وإدارتها

ينطبق على: ✔️ أجهزة ظاهرية تعمل بنظام التشغيل Windows ✔️ مجموعات تغيير السعة المرنة

يمكن أن تحتوي الأجهزة الظاهرية (VMs) في Azure على العديد من بطاقات واجهة الشبكة الظاهرية (NICs) المرفقة بها. السيناريو الشائع هو أن يكون لديك شبكات فرعية مختلفة للاتصال الأمامي والخلفي. يمكنك إقران العديد من بطاقات NIC على جهاز ظاهري بشبكات فرعية متعددة، ولكن يجب أن توجد جميع هذه الشبكات الفرعية في نفس الشبكة الظاهرية (vNet). توضح هذه المقالة كيفية إنشاء جهاز ظاهري يحتوي على العديد من بطاقات NIC المرفقة به. تعرف أيضًا على كيفية إضافة بطاقات NIC أو إزالتها من جهاز ظاهري موجود. تدعم أحجام الجهاز الظاهري المختلفة عددًا متفاوتًا من بطاقات NIC، لذا قم بتحجيم الجهاز الظاهري الخاص بك وفقًا لذلك.

ملاحظة

إذا لم تكن هناك حاجة إلى شبكات فرعية متعددة لسيناريو ما، فقد يكون من الأسهل استخدام تكوينات IP متعددة على بطاقة NIC واحدة. يمكن العثور على إرشادات هذا الإعداد هنا.

المتطلبات الأساسية

في الأمثلة التالية، استبدل أسماء المعلمات الأمثلة بقيمك الخاصة. تتضمن أسماء المعلمات الأمثلة myResourceGroup وmyVnet وmyVM.

إنشاء جهاز ظاهري مع العديد من بطاقات NIC

أولاً، أنشئ مجموعة موارد. ينشئ المثال التالي مجموعة موارد باسم myResourceGroup في موقع شرق الولايات المتحدة:

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

إنشاء الشبكة الظاهرية والشبكات الفرعية

السيناريو الشائع هو أن تحتوي الشبكة الظاهرية على شبكتين فرعيتين أو أكثر. قد تكون إحدى الشبكات الفرعية مخصصة لنسبة استخدام الشبكة الأمامية، والأخرى لنسبة استخدام الشبكة الخلفية. للاتصال بكلتا الشبكتين الفرعيتين، يمكنك بعد ذلك استخدام بطاقات NIC متعددة على الجهاز الظاهري.

  1. حدد شبكتين فرعيتين للشبكة الظاهرية باستخدام New-AzVirtualNetworkSubnetConfig. يعرف المثال التالي الشبكات الفرعية بـ mySubnetFrontEnd وmySubnetBackEnd:

    $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. ينشئ المثال التالي شبكة ظاهرية باسم myVnet:

    $myVnet = New-AzVirtualNetwork -ResourceGroupName "myResourceGroup" `
        -Location "EastUs" `
        -Name "myVnet" `
        -AddressPrefix "192.168.0.0/16" `
        -Subnet $mySubnetFrontEnd,$mySubnetBackEnd
    

استخدام بطاقات NIC متعددة

أنشئ بطاقتي NIC باستخدام New-AzNetworkInterface. أرفق NIC واحدة بالشبكة الفرعية الأمامية وNIC واحدة بالشبكة الفرعية الخلفية. يقوم المثال التالي بإنشاء بطاقات NIC المسماة myNic1 وmyNic2:

$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

عادة ما تقوم أيضًا بإنشاء مجموعة أمان شبكة لتصفية نسبة استخدام الشبكة إلى الجهاز الظاهريوموازن تحميل لتوزيع نسبة استخدام الشبكة عبر أجهزة ظاهرية متعددة.

إنشاء الجهاز الظاهري

ابدأ الآن في إنشاء تكوين الجهاز الظاهري الخاص بك. يحتوي كل حجم جهاز ظاهري على حد لإجمالي عدد بطاقات NIC التي يمكنك إضافتها إلى جهاز ظاهري. لمزيد من المعلومات، راجع أحجام الأجهزة الظاهرية التي تعمل بنظام Windows.

  1. عيّن بيانات اعتماد الجهاز الظاهري إلى المتغير $cred كما يلي:

    $cred = Get-Credential
    
  2. حدد الجهاز الظاهري الخاص بك باستخدام New-AzVMConfig. يعرف المثال التالي جهازًا ظاهريًا يسمى myVM ويستخدم حجم جهاز ظاهري يدعم أكثر من اثنين من بطاقات NIC (Standard_DS3_v2):

    $vmConfig = New-AzVMConfig -VMName "myVM" -VMSize "Standard_DS3_v2"
    
  3. أنشئ بقية تكوين الجهاز الظاهري باستخدام Set-AzVMOperatingSystem وSet-AzVMSourceImage. ينشئ المثال التالي جهاز ظاهري Windows Server 2016:

    $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. أرفق اثنين من بطاقات NIC التي قمت بإنشائها مسبقًا باستخدام Add-AzVMNetworkInterface:

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic1.Id -Primary
    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic2.Id
    
  5. أنشئ الجهاز الظاهري باستخدام New-AzVM:

    New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "EastUs"
    
  6. أضف مسارات لبطاقات NIC الثانوية إلى نظام التشغيل من خلال إكمال الخطوات الواردة في تكوين نظام التشغيل لبطاقات NIC المتعددة.

إضافة NIC إلى جهاز ظاهري موجود

لإضافة NIC ظاهري إلى جهاز ظاهري موجود، يمكنك إلغاء تخصيص الجهاز الظاهري، أضف NIC الظاهري، ثم ابدأ تشغيل الجهاز الظاهري. تدعم أحجام الجهاز الظاهري المختلفة عددًا متفاوتًا من بطاقات NIC، لذا قم بتحجيم الجهاز الظاهري الخاص بك وفقًا لذلك. إذا لزم الأمر، يُمكنك تغيير حجم جهاز ظاهري.

  1. الغ تخصيص الجهاز الظاهري باستخدام Stop-AzVM. يقوم المثال التالي بإلغاء تخصيص الجهاز الظاهري المسمى myVM في myResourceGroup:

    Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  2. احصل على التكوين الحالي للجهاز الظاهري باستخدام Get-AzVm. يحصل المثال التالي على معلومات للجهاز الظاهري المسمى myVM في myResourceGroup:

    $vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  3. يقوم المثال التالي بإنشاء NIC ظاهري باستخدام New-AzNetworkInterface المسماة myNic3 المرفقة بـ mySubnetBackEnd. ثم يتم إرفاق NIC الظاهرية بالجهاز الظاهري المسمى myVM في myResourceGroup مع Add-AzVMNetworkInterface:

    # 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"
    

    بطاقات NIC الظاهرية الأساسية

    يجب أن تكون إحدى بطاقات NIC على جهاز ظاهري متعدد بطاقات NIC أساسية. إذا تم بالفعل تعيين أحد بطاقات NIC الظاهرية الموجودة على الجهاز الظاهري كأساسي، فيمكنك تخطي هذه الخطوة. يفترض المثال التالي أن اثنين من بطاقات NIC الظاهرية موجودة الآن على جهاز ظاهري وترغب في إضافة NIC الأول ([0]) كأساسي:

    # 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:

    Start-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
    
  5. أضف مسارات لبطاقات NIC الثانوية إلى نظام التشغيل من خلال إكمال الخطوات الواردة في تكوين نظام التشغيل لبطاقات NIC المتعددة.

إزالة NIC من جهاز ظاهري موجود

لإزالة NIC ظاهرية من جهاز ظاهري موجود، يمكنك إلغاء تخصيص الجهاز الظاهري، أزل NIC الظاهرية، ثم ابدأ تشغيل الجهاز الظاهري.

  1. الغ تخصيص الجهاز الظاهري باستخدام Stop-AzVM. يقوم المثال التالي بإلغاء تخصيص الجهاز الظاهري المسمى myVM في myResourceGroup:

    Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  2. احصل على التكوين الحالي للجهاز الظاهري باستخدام Get-AzVm. يحصل المثال التالي على معلومات للجهاز الظاهري المسمى myVM في myResourceGroup:

    $vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  3. احصل على معلومات حول إزالة NIC باستخدام Get-AzNetworkInterface. يحصل المثال التالي على معلومات حول myNic3:

    # 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. إزالة NIC باستخدام Remove-AzVMNetworkInterface ثم قم بتحديث الجهاز الظاهري باستخدام Update-AzVm. يزيل المثال التالي myNic3 كما تم الحصول عليه $nicId في الخطوة السابقة:

    Remove-AzVMNetworkInterface -VM $vm -NetworkInterfaceIDs $nicId | `
        Update-AzVm -ResourceGroupName "myResourceGroup"
    
  5. ابدأ تشغيل الجهاز الظاهري مع Start-AzVm:

    Start-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    

إنشاء بطاقات NIC متعددة باستخدام قوالب

توفر قوالب Azure Resource Manager طريقة لإنشاء مثيلات متعددة لمورد أثناء التوزيع، مثل إنشاء بطاقات NIC متعددة. تستخدم قوالب Resource Manager ملفات JSON التعريفية لتحديد بيئتك. لمزيد من المعلومات، راجع نظرة عامة على Azure Resource Manager. يمكنك استخدام النسخ لتحديد عدد المثيلات المراد إنشاؤها:

"copy": {
    "name": "multiplenics",
    "count": "[parameters('count')]"
}

لمزيد من المعلومات، راجع إنشاء مثيلات متعددة باستخدام النسخ.

يمكنك أيضًا استخدام copyIndex() لإلحاق رقم باسم مورد. يمكنك بعد ذلك إنشاء myNic1 وMyNic2 وما إلى ذلك. توضح التعليمة البرمجية التالية مثالاً على إلحاق قيمة الفهرس:

"name": "[concat('myNic', copyIndex())]", 

يمكنك قراءة مثال كامل لإنشاء بطاقات NIC متعددة باستخدام قوالب Resource Manager.

أضف مسارات لبطاقات NIC الثانوية إلى نظام التشغيل من خلال إكمال الخطوات الواردة في تكوين نظام التشغيل لبطاقات NIC المتعددة.

تكوين نظام التشغيل الضيف لبطاقات NIC المتعددة

يعين Azure بوابة افتراضية لواجهة الشبكة الأولى (الأساسية) المتصلة بالجهاز الظاهري. لا يقوم Azure بتعيين بوابة افتراضية لواجهات شبكة إضافية (ثانوية) متصلة بجهاز ظاهري. لذلك، لا يمكنك الاتصال بالموارد خارج الشبكة الفرعية التي توجد بها واجهة شبكة ثانوية، بشكل افتراضي. ومع ذلك، يمكن لواجهات الشبكة الثانوية التواصل مع الموارد خارج شبكتها الفرعية، على الرغم من أن خطوات تمكين الاتصال تختلف باختلاف أنظمة التشغيل.

  1. من موجه أوامر Windows، نفذ الأمر route print، الذي ينتج مخرجات مشابهة للمخرجات التالية لجهاز ظاهري له واجهتا شبكة مرفقتان:

    ===========================================================================
    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
    ===========================================================================
    

    في هذا المثال، Microsoft Hyper-V Network Adapter #4 (واجهة 7) يمثل واجهة الشبكة الثانوية التي لا تمتلك بوابة افتراضية معينة لها.

  2. من موجه أوامر Windows، نفذ الأمر ipconfig لمعرفة عنوان IP الذي تم تعيينه لواجهة الشبكة الثانوية. في هذا المثال، يتم تعيين 192.168.2.4 إلى الواجهة 7. لم يتم إرجاع أي عنوان بوابة افتراضي إلى واجهة الشبكة الثانوية.

  3. لتوجيه كل نسبة استخدام الشبكة الموجهة للعناوين خارج الشبكة الفرعية لواجهة الشبكة الثانوية إلى بوابة الشبكة الفرعية، قم بتشغيل الأمر التالي:

    route add -p 0.0.0.0 MASK 0.0.0.0 192.168.2.1 METRIC 5015 IF 7
    

    عنوان البوابة للشبكة الفرعية هو عنوان IP الأول (ينتهي بـ .1) في نطاق العناوين المحدد للشبكة الفرعية. إذا كنت لا ترغب في توجيه جميع نسب استخدام الشبكة خارج الشبكة الفرعية، يمكنك إضافة مسارات فردية إلى وجهات محددة بدلاً من ذلك. على سبيل المثال، إذا كنت تريد فقط توجيه نسبة استخدام الشبكة من واجهة الشبكة الثانوية إلى شبكة 192.168.3.0، يمكنك إدخال الأمر:

    route add -p 192.168.3.0 MASK 255.255.255.0 192.168.2.1 METRIC 5015 IF 7
    
  4. لتأكيد الاتصال الناجح بمورد على شبكة 192.168.3.0، على سبيل المثال، أدخل الأمر التالي لاختبار اتصال 192.168.3.4 باستخدام الواجهة 7 (192.168.2.4):

    ping 192.168.3.4 -S 192.168.2.4
    

    قد تحتاج إلى فتح ICMP من خلال جدار الحماية Windows للجهاز الذي تقوم باختباره اتصاله باستخدام الأمر التالي:

    netsh advfirewall firewall add rule name=Allow-ping protocol=icmpv4 dir=in action=allow
    
  5. للتأكد من وجود المسار المضاف في جدول المسارات، أدخل الأمر 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
    

    المسار المدرج مع 192.168.1.1 ضمن البوابة، هو المسار الموجود بشكل افتراضي لواجهة الشبكة الأساسية. المسار الذي يحتوي على 192.168.2.1 ضمن البوابة، هو المسار الذي أضفته.

الخطوات التالية

راجع أحجام الأجهزة الظاهرية التي تعمل بنظام Windows عند محاولة إنشاء جهاز ظاهري يحتوي على بطاقات NIC متعددة. انتبه إلى الحد الأقصى لعدد بطاقات NIC التي يدعمها كل حجم جهاز ظاهري.