كيفية إنشاء جهاز Linux الظاهري في Azure باستخدام بطاقات واجهة شبكة متعددة

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

توضح هذه المقالة بالتفصيل كيفية إنشاء جهاز افتراضي باستخدام بطاقات NIC متعددة باستخدام Azure CLI.

إنشاء موارد داعمة

ثبّت أحدث Azure CLI وسجل الدخول إلى حساب Azure باستخدام تسجيل الدخول إلى az.

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

إنشاء مجموعة موارد باستخدام ⁧⁩az group create⁧⁩. في المثال التالي سيتم إنشاء مجموعة موارد تسمى⁧⁩myResourceGroup⁧⁩ في موقع⁧⁩eastus⁧⁩:

az group create --name myResourceGroup --location eastus

إنشاء شبكة ظاهرية باستخدام az networkvnet create. ينشئ المثال التالي شبكة ظاهرية باسم myVnet وشبكة فرعية باسم mySubnet:

az network vnet create \
    --resource-group myResourceGroup \
    --name myVnet \
    --address-prefix 10.0.0.0/16 \
    --subnet-name mySubnetFrontEnd \
    --subnet-prefix 10.0.1.0/24

إنشاء شبكة فرعية لحركة المرور الخلفية باستخدام az network vnet subnet create. ينشئ المثال التالي شبكة فرعية باسم mySubnetBackEnd:

az network vnet subnet create \
    --resource-group myResourceGroup \
    --vnet-name myVnet \
    --name mySubnetBackEnd \
    --address-prefix 10.0.2.0/24

إنشاء مجموعة أمان الشبكة باستخدام az network nsg create. يُنشئ المثال التالي مجموعة أمان شبكة باسم myNetworkSecurityGroup:

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

إنشاء بطاقات NIC المتعددة وتكوينها

قم بإنشاء اثنتين من بطاقات NIC باستخدام az network nic create. يقوم المثال التالي بإنشاء اثنتين من بطاقات NIC، المسماة myNic1وmyNic2، وتوصيلهما بمجموعة أمان الشبكة، مع اتصال بطاقة NIC واحد بكل شبكة فرعية:

az network nic create \
    --resource-group myResourceGroup \
    --name myNic1 \
    --vnet-name myVnet \
    --subnet mySubnetFrontEnd \
    --network-security-group myNetworkSecurityGroup
az network nic create \
    --resource-group myResourceGroup \
    --name myNic2 \
    --vnet-name myVnet \
    --subnet mySubnetBackEnd \
    --network-security-group myNetworkSecurityGroup

إنشاء جهاز ظاهري وإرفاق بطاقات NIC

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

أنشئ جهازاً ظاهرياً باستخدام إنشاء vm az. ينشئ المثال التالي الجهاز الظاهري باسمmyVM:

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --size Standard_DS3_v2 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --nics myNic1 myNic2

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

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

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

قم بإنشاء بطاقة NIC أخرى باستخدام az network nic create. ينشئ المثال التالي بطاقة NIC باسم myNic3 متصلة بالشبكة الفرعية للجهة الخلفية ومجموعة أمان الشبكة التي تم إنشاؤها في الخطوات السابقة:

az network nic create \
    --resource-group myResourceGroup \
    --name myNic3 \
    --vnet-name myVnet \
    --subnet mySubnetBackEnd \
    --network-security-group myNetworkSecurityGroup

لإضافة NIC إلى جهاز ظاهري موجود، قم أولاً بإلغاء تخصيص الجهاز الظاهري باستخدام az vm deallocate. يقوم المثال التالي بإلغاء تخصيص الجهاز الظاهري المسمى myVM:

az vm deallocate --resource-group myResourceGroup --name myVM

أضف NIC باستخدام az vm nic add. يضيف المثال التالي myNic3 إلى myVM:

az vm nic add \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --nics myNic3

بدء تشغيل الجهاز الظاهري باستخدام az vm start:

az vm start --resource-group myResourceGroup --name myVM

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

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

لإزالة NIC من جهاز ظاهري موجود، قم أولاً بإلغاء تخصيص الجهاز الظاهري باستخدام az vm deallocate. يقوم المثال التالي بإلغاء تخصيص الجهاز الظاهري المسمى myVM:

az vm deallocate --resource-group myResourceGroup --name myVM

قم بإزالة NIC باستخدام az vm nic remove. يزيل المثال التالي myNic3 من myVM:

az vm nic remove \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --nics myNic3

بدء تشغيل الجهاز الظاهري باستخدام az vm start:

az vm start --resource-group myResourceGroup --name myVM

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

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

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

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

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

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

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

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

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

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

للسماح بحركة مرور SSH، قم بإنشاء قاعدة مجموعة أمان الشبكة باستخدام az network nsg rule create على النحو التالي:

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name allow_ssh \
    --priority 101 \
    --destination-port-ranges 22

أنشئ عنوان IP عاماً باستخدام az network public-ip create وقم بتعيينه لأول بطاقة NIC باستخدام تحديث az network nic ip-config:

az network public-ip create --resource-group myResourceGroup --name myPublicIP

az network nic ip-config update \
    --resource-group myResourceGroup \
    --nic-name myNic1 \
    --name ipconfig1 \
    --public-ip myPublicIP

لعرض عنوان IP العام للجهاز الظاهري، استخدم az vm show على النحو التالي::

az vm show --resource-group myResourceGroup --name myVM -d --query publicIps -o tsv

الآن قم بإرسال SSH إلى عنوان IP العام لجهازك الظاهري. اسم المستخدم الظاهري المقدم في الخطوة السابقة هو azureuser. أدخل اسم المستخدم وعنوان IP العام الخاصين بك:

ssh azureuser@137.117.58.232

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

عند إضافة المسار إلى نظام التشغيل، يكون عنوان البوابة هو العنوان الأول للشبكة الفرعية التي توجد بها واجهة الشبكة. على سبيل المثال، إذا تم تعيين النطاق 10.0.2.0/24 للشبكة الفرعية، فإن البوابة التي تحددها للمسار هي 10.0.2.1 أو إذا تم تعيين النطاق للشبكة الفرعية 10.0.2.128/25، تكون البوابة التي تحددها للمسار هي 10.0.2.129. يمكنك تحديد شبكة معينة لوجهة المسار، أو تحديد وجهة 0.0.0.0، إذا كنت تريد أن تمر جميع حركات المرور للواجهة عبر البوابة المحددة. تتم إدارة بوابة كل شبكة فرعية بواسطة الشبكة الظاهرية.

بمجرد إضافة المسار لواجهة ثانوية، تحقق من أن المسار موجود في جدول المسارات باستخدام route -n. ناتج المثال التالي مخصص لجدول المسار الذي يحتوي على واجهتي الشبكة المضافة إلى الجهاز الظاهري في هذه المقالة:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.1.1        0.0.0.0         UG    0      0        0 eth0
0.0.0.0         10.0.2.1        0.0.0.0         UG    0      0        0 eth1
10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
168.63.129.16   10.0.1.1        255.255.255.255 UGH   0      0        0 eth0
169.254.169.254 10.0.1.1        255.255.255.255 UGH   0      0        0 eth0

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

ping bing.com -c 4 -I eth1

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

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

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