قم بتوجيه نسبة استخدام الشبكة باستخدام جدول توجيه باستخدام Azure CLI
يقوم Azure تلقائياً بتوجيه نسبة استخدام الشبكة بين جميع الشبكات الفرعية داخل شبكة ظاهرية، افتراضياً. يُمكن إنشاء اتجاهات لتجاوز التوجيه الافتراضي لـ Azure. تعد القدرة على إنشاء مسارات مخصصة مفيدة إذا كنت تريد، على سبيل المثال، توجيه نسبة استخدام الشبكة بين الشبكات الفرعية من خلال جهاز ظاهري للشبكة (NVA). ستتعلم في هذا المقال طريقة إجراء ما يلي:
- إنشاء جدول توجيه
- إنشاء مسار
- إنشاء شبكة اتصال ظاهرية مع شبكات فرعية متعددة
- توصيل جدول المسار بالشبكة الفرعية
- إنشاء الجهاز الظاهري للشبكة الذي يُوجه نسبة استخدام الشبكة
- نشر الأجهزة الظاهرية في الشبكات الفرعية المختلفة
- توجيه نسبة استخدام الشبكة من شبكة فرعية إلى أخرى عبر الجهاز الظاهري للشبكة
إذا لم يكن لديك اشتراك Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع تشغيل سريع لـ Azure Cloud Shell - Bash.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدماً أمر az login. لإنهاء عملية المصادقة، التزم بالخطوات المعروضة في وحدتك الطرفية. للحصول على خيارات إضافية لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عند مطالبتك، يوصى بتثبيت ملحقات Azure CLI عند الاستخدام الأول. لمزيد من المعلومات بشأن الملحقات، راجع استخدام ملحقات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
- تتطلب هذه المقالة الإصدار 2.0.28 أو إصداراً أحدث من واجهة سطر الأوامر من Azure. في حالة استخدام Azure Cloud Shell، يكون الإصدار الأخير مثبتاً بالفعل.
إنشاء جدول توجيه
قبل أن تتمكن من إنشاء جدول توجيه، قم بإنشاء مجموعة موارد باستخدام az group create لجميع الموارد التي تم إنشاؤها في هذه المقالة.
# Create a resource group.
az group create \
--name myResourceGroup \
--location eastus
قم بإنشاء جدول توجيه باستخدام الأمر az network route-table create. يقوم المثال التالي بإنشاء جدول توجيه يسمى myRouteTablePublic.
# Create a route table
az network route-table create \
--resource-group myResourceGroup \
--name myRouteTablePublic
إنشاء مسار
قم بإنشاء مسار في جدول التوجيه باستخدام الأمر az network route-table route create.
az network route-table route create \
--name ToPrivateSubnet \
--resource-group myResourceGroup \
--route-table-name myRouteTablePublic \
--address-prefix 10.0.1.0/24 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address 10.0.2.4
توصيل جدول المسار بالشبكة الفرعية
قبل أن تتمكن من إقران جدول توجيه بشبكة فرعية، يجب عليك إنشاء شبكة ظاهرية وشبكة فرعية قم بإنشاء شبكة ظاهرية بشبكة فرعية واحدة باستخدام الأمر az network vnet create.
az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--address-prefix 10.0.0.0/16 \
--subnet-name Public \
--subnet-prefix 10.0.0.0/24
قم بإنشاء شبكتين فرعيتين إضافيتين باستخدام الأمر az network vnet subnet create.
# Create a private subnet.
az network vnet subnet create \
--vnet-name myVirtualNetwork \
--resource-group myResourceGroup \
--name Private \
--address-prefix 10.0.1.0/24
# Create a DMZ subnet.
az network vnet subnet create \
--vnet-name myVirtualNetwork \
--resource-group myResourceGroup \
--name DMZ \
--address-prefix 10.0.2.0/24
قم بإقران جدول توجيه myRouteTablePublic بالشبكة الفرعية Public باستخدام الأمرaz network vnet subnet update.
az network vnet subnet update \
--vnet-name myVirtualNetwork \
--name Public \
--resource-group myResourceGroup \
--route-table myRouteTablePublic
إنشاء الجهاز الظاهري للشبكة
NVA هو جهاز ظاهري يقوم بوظيفة شبكة، مثل التوجيه أو جدار الحماية أو تحسين WAN.
قم بإنشاء NVA في الشبكة الفرعية DMZ باستخدام الأمر az vm create. عند إنشاء جهاز ظاهري، يقوم Azure بإنشاء وتعيين واجهة شبكة myVmNvaVMNic وعنوان IP عام للجهاز الظاهري، بشكل افتراضي. ترشد المعلمة --public-ip-address "" Azure إلى عدم إنشاء عنوان IP عام وتعيينه إلى الجهاز الظاهري، نظراً لأن الجهاز الظاهري لا يحتاج إلى الاتصال من الإنترنت وإذا لم تكن مفاتيح SSH موجودة بالفعل في موقع المفتاح الافتراضي، ينشئها الأمر. ولاستخدام مجموعة محددة من المفاتيح، استخدم الخيار --ssh-key-value.
az vm create \
--resource-group myResourceGroup \
--name myVmNva \
--image UbuntuLTS \
--public-ip-address "" \
--subnet DMZ \
--vnet-name myVirtualNetwork \
--generate-ssh-keys
يستغرق إنشاء جهاز ظاهري بضع دقائق. لا تنتقل إلى الخطوة التالية حتى ينتهي Azure من إنشاء الجهاز الظاهري وإرجاع الإخراج حول الجهاز الظاهري.
لكي تتمكن واجهة الشبكة myVmNvaVMNic من إعادة توجيه نسبة استخدام الشبكة المرسلة إليها، والتي لم يتم توجيهها لعنوان IP الخاص بها، يجب تمكين إعادة توجيه IP لواجهة الشبكة. قم بتمكين إعادة توجيه IP لواجهة الشبكة باستخدام الأمر az network nic update.
az network nic update \
--name myVmNvaVMNic \
--resource-group myResourceGroup \
--ip-forwarding true
داخل الجهاز الظاهري، يجب أن يكون نظام التشغيل أو أي تطبيق يعمل داخل الجهاز الظاهري قادراً أيضاً على إعادة توجيه نسبة استخدام الشبكة. تمكين إعادة توجيه IP داخل نظام تشغيل الجهاز الظاهري باستخدام الأمر az vm extension set:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVmNva \
--name customScript \
--publisher Microsoft.Azure.Extensions \
--settings '{"commandToExecute":"sudo sysctl -w net.ipv4.ip_forward=1"}'
قد يستغرق تنفيذ الأمر دقيقة واحدة.
أنشئ الأجهزة الظاهرية
قم بإنشاء جهازين ظاهريين في الشبكة الظاهرية حتى تتمكن من التحقق من أن نسبة استخدام الشبكة من الشبكة الفرعية Public يتم توجيهها إلى الشبكة الفرعية Private من خلال NVA في خطوة لاحقة.
قم بإنشاء VM في الشبكة الفرعية Public باستخدام الأمر az vm create. تمكّن المعلمة --no-wait Azure من تنفيذ الأمر في الخلفية حتى تتمكن من المتابعة إلى الأمر التالي. لتبسيط هذه المقالة، يتم استخدام كلمة مرور. تُستخدم المفاتيح عادةً في عمليات توزيع الإنتاج. إذا كنت تستخدم مفاتيح، يجب عليك أيضاً تكوين إعادة توجيه عامل SSH. لمزيد من المعلومات، راجع الوثائق الخاصة بعميل SSH الخاص بك. استبدل <replace-with-your-password> في الأمر التالي بكلمة مرور من اختيارك.
adminPassword="<replace-with-your-password>"
az vm create \
--resource-group myResourceGroup \
--name myVmPublic \
--image UbuntuLTS \
--vnet-name myVirtualNetwork \
--subnet Public \
--admin-username azureuser \
--admin-password $adminPassword \
--no-wait
قم بإنشاء جهاز ظاهري في الشبكة الفرعية Private
az vm create \
--resource-group myResourceGroup \
--name myVmPrivate \
--image UbuntuLTS \
--vnet-name myVirtualNetwork \
--subnet Private \
--admin-username azureuser \
--admin-password $adminPassword
يستغرق إنشاء جهاز ظاهري بضع دقائق. بعد إنشاء الجهاز الظاهري، يعرض Azure CLI معلومات مشابهة للمثال التالي:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVmPrivate",
"location": "eastus",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.1.4",
"publicIpAddress": "13.90.242.231",
"resourceGroup": "myResourceGroup"
}
لاحظ publicIpAddress. يُستخدم هذا العنوان للوصول إلى الجهاز الظاهري من الإنترنت في خطوة لاحقة.
توجيه نسبة استخدام الشبكة عن طريق الأجهزة الظاهرية للشبكة
استخدم الأمر التالي لإنشاء جلسة SSH باستخدام الجهاز الظاهري myVmPrivate. استبدل <publicIpAddress> بعنوان IP العام لجهاز VM الخاص بك. في المثال أعلاه، عنوان IP هو 13.90.242.231.
ssh azureuser@<publicIpAddress>
عندما يُطلب منك كلمة مرور، أدخل كلمة المرور التي حددتها في إنشاء أجهزة ظاهرية.
استخدم الأمر التالي لتثبيت مسار التتبع على الجهاز الظاهري myVmPrivate:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install traceroute
استخدم الأمر التالي لاختبار التوجيه لنسبة استخدام الشبكة إلى الجهاز الظاهري myVmPublic من الجهاز الظاهري myVmPrivate.
traceroute myVmPublic
الاستجابة مشابهة للمثال التالي:
traceroute to myVmPublic (10.0.0.4), 30 hops max, 60 byte packets
1 10.0.0.4 (10.0.0.4) 1.404 ms 1.403 ms 1.398 ms
يمكنك أن ترى أن نسبة استخدام الشبكة يتم توجيهها مباشرة من الجهاز الظاهري myVmPrivate إلى الجهاز الظاهري myVmPublic. مسارات Azure الافتراضية، توجه نسبة استخدام الشبكة مباشرة بين الشبكات الفرعية.
استخدم الأمر التالي لـ SSH إلى الجهاز الظاهري myVmPublic من الجهاز الظاهري myVmPrivate:
ssh azureuser@myVmPublic
استخدم الأمر التالي لتثبيت مسار التتبع على الجهاز الظاهري myVmPublic:
sudo apt-get install traceroute
استخدم الأمر التالي لاختبار التوجيه لنسبة استخدام الشبكة إلى الجهاز الظاهري myVmPrivate من الجهاز الظاهري myVmPublic.
traceroute myVmPrivate
الاستجابة مشابهة للمثال التالي:
traceroute to myVmPrivate (10.0.1.4), 30 hops max, 60 byte packets
1 10.0.2.4 (10.0.2.4) 0.781 ms 0.780 ms 0.775 ms
2 10.0.1.4 (10.0.0.4) 1.404 ms 1.403 ms 1.398 ms
يمكنك أن ترى أن الخطوة الأولى هي 10.0.2.4، وهو عنوان IP الخاص بـ NVA. المرحلة الثانية هي 10.0.1.4، عنوان IP الخاص لـ myVmPrivate VM. أدى المسار المضاف إلى جدول التوجيه myRouteTablePublic والمرتبط بالشبكة الفرعية Public إلى قيام Azure بتوجيه نسبة استخدام الشبكة عبر NVA، بدلاً من توجيهها مباشرةً إلى الشبكة الفرعية Private
أغلق جلسات SSH لكل من الأجهزة الظاهرية myVmPublic وmyVmPrivate.
تنظيف الموارد
عندما لم تعد هناك حاجة، استخدم حذف المجموعة من الألف إلى الياء لإزالة مجموعة الموارد وجميع الموارد التي تحتوي عليها.
az group delete --name myResourceGroup --yes
الخطوات التالية
في هذه المقالة، قمت بإنشاء جدول توجيه وربطته بشبكة فرعية لقد أنشأت NVA بسيطاً يوجه نسبة استخدام الشبكة من شبكة فرعية عامة إلى شبكة فرعية خاصة توزيع مجموعة متنوعة من NVAs المهيأة مسبقاً والتي تؤدي وظائف الشبكة مثل جدار الحماية وتحسين WAN من Azure Marketplace. لمعرفة المزيد حول التوجيه، يُرجى الرجوع إلى نظرة عامة حول التوجيه وإدارة جدول المسار.
بينما يمكنك توزيع العديد من موارد Azure داخل شبكة ظاهرية، لا يمكن توزيع موارد بعض خدمات Azure PaaS في شبكة ظاهرية. لا يزال بإمكانك تقييد الوصول إلى موارد بعض خدمات Azure PaaS لنسبة استخدام الشبكة فقط من الشبكة الفرعية للشبكة الافتراضية. لمعرفة الكيفية، راجع تقييد وصول الشبكة إلى موارد PaaS.
