قم بتوجيه نسبة استخدام الشبكة باستخدام جدول توجيه باستخدام PowerShell
يقوم Azure تلقائياً بتوجيه نسبة استخدام الشبكة بين جميع الشبكات الفرعية داخل شبكة ظاهرية، افتراضياً. يُمكن إنشاء اتجاهات لتجاوز التوجيه الافتراضي لـ Azure. تعد القدرة على إنشاء مسارات مخصصة مفيدة إذا كنت تريد، على سبيل المثال، توجيه نسبة استخدام الشبكة بين الشبكات الفرعية من خلال جهاز ظاهري للشبكة (NVA). ستتعلم في هذا المقال طريقة إجراء ما يلي:
- إنشاء جدول توجيه
- إنشاء مسار
- إنشاء شبكة اتصال ظاهرية مع شبكات فرعية متعددة
- توصيل جدول المسار بالشبكة الفرعية
- إنشاء الجهاز الظاهري للشبكة الذي يُوجه نسبة استخدام الشبكة
- نشر الأجهزة الظاهرية في الشبكات الفرعية المختلفة
- توجيه نسبة استخدام الشبكة من شبكة فرعية إلى أخرى عبر الجهاز الظاهري للشبكة
إذا لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
استخدام Azure Cloud Shell
Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.
لبدء Azure Cloud Shell:
| خيار | مثال/ رابط |
|---|---|
| انقر فوق جربه في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. تحديد جربه لا يقوم بنسخ التعليمات البرمجية تلقائيًا إلى Cloud Shell. | ![]() |
| انتقل إلى https://shell.azure.com، أو حدد زر تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. | ![]() |
| حدد زر Cloud Shell في شريط القوائم في أعلى اليمين في مدخل Azure. | ![]() |
لتشغيل التعليمة البرمجية في هذا المقال في Azure Cloud Shell:
ابدأ تشغيل Cloud Shell.
حدد الزر نسخ على كتلة التعليمات البرمجية لنسخ التعليمات البرمجية.
ألصق تعليمة البرمجية في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.
اكتب "Enter" لتشغيل الأمر.
إذا اخترت تثبيت PowerShell واستخدامه محليًا، فهذه المقالة تتطلب إصدار الوحدة النمطية 1.0.0 من Azure PowerShell، أو إصدارًا أحدث. بادر بتشغيل Get-Module -ListAvailable Az للعثور على الإصدار المثبت. إذا كنت بحاجة إلى الترقية، فراجع تثبيت الوحدة النمطية Azure PowerShell. إذا كنت تقوم بتشغيل PowerShell محلياً، تحتاج أيضاً إلى تشغيل Connect-AzAccount لإنشاء اتصال مع Azure.
إنشاء جدول توجيه
قبل أن تتمكن من إنشاء جدول توجيه، قم بإنشاء مجموعة موارد باستخدام New-AzResourceGroup. ينشئ المثال التالي مجموعة موارد باسم myResourceGroup لكل الموارد التي تم إنشاؤها في هذه المقالة.
New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS
قم بإنشاء جدول توجيه باستخدام New-AzRouteTable. يقوم المثال التالي بإنشاء جدول توجيه يسمى myRouteTablePublic.
$routeTablePublic = New-AzRouteTable `
-Name 'myRouteTablePublic' `
-ResourceGroupName myResourceGroup `
-location EastUS
إنشاء مسار
قم بإنشاء مسار عن طريق استرداد كائن جدول توجيه باستخدام Get-AzRouteTable، وإنشاء مسار باستخدام Add-AzRouteConfig، ثم كتابة تكوين المسار إلى جدول التوجيه باستخدام Set-AzRouteTable.
Get-AzRouteTable `
-ResourceGroupName "myResourceGroup" `
-Name "myRouteTablePublic" `
| Add-AzRouteConfig `
-Name "ToPrivateSubnet" `
-AddressPrefix 10.0.1.0/24 `
-NextHopType "VirtualAppliance" `
-NextHopIpAddress 10.0.2.4 `
| Set-AzRouteTable
توصيل جدول المسار بالشبكة الفرعية
قبل أن تتمكن من إقران جدول توجيه بشبكة فرعية، يجب عليك إنشاء شبكة ظاهرية وشبكة فرعية. قم بإنشاء شبكة ظاهرية باستخدام New-AzVirtualNetwork. في المثال التالي، يتم إنشاء شبكة ظاهرية باسم myVirtualNetwork باستخدام بادئة العنوان 10.0.0.0/16.
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name myVirtualNetwork `
-AddressPrefix 10.0.0.0/16
قم بإنشاء ثلاث شبكات فرعية عن طريق إنشاء ثلاثة تكوينات للشبكات الفرعية باستخدام New-AzVirtualNetworkSubnetConfig. ينشئ المثال التالي ثلاثة تكوينات شبكات فرعية للشبكات الفرعية العامة، والخاصة، وDMZ:
$subnetConfigPublic = Add-AzVirtualNetworkSubnetConfig `
-Name Public `
-AddressPrefix 10.0.0.0/24 `
-VirtualNetwork $virtualNetwork
$subnetConfigPrivate = Add-AzVirtualNetworkSubnetConfig `
-Name Private `
-AddressPrefix 10.0.1.0/24 `
-VirtualNetwork $virtualNetwork
$subnetConfigDmz = Add-AzVirtualNetworkSubnetConfig `
-Name DMZ `
-AddressPrefix 10.0.2.0/24 `
-VirtualNetwork $virtualNetwork
اكتب تكوينات الشبكة الفرعية إلى الشبكة الظاهرية باستخدام Set-AzVirtualNetwork، الذي ينشئ الشبكات الفرعية في الشبكة الظاهرية:
$virtualNetwork | Set-AzVirtualNetwork
قم بإقران جدول التوجيه myRouteTablePublic بالشبكة الفرعية العامة مع Set-AzVirtualNetworkSubnetConfig ثم اكتب تكوين الشبكة الفرعية إلى الشبكة الظاهرية باستخدام Set-AzVirtualNetwork.
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $virtualNetwork `
-Name 'Public' `
-AddressPrefix 10.0.0.0/24 `
-RouteTable $myRouteTablePublic | `
Set-AzVirtualNetwork
إنشاء الجهاز الظاهري للشبكة
NVA هو جهاز ظاهري يقوم بوظيفة شبكة، مثل التوجيه أو جدار الحماية أو تحسين WAN.
قبل إنشاء جهاز ظاهري، قم بإنشاء واجهة شبكة.
إنشاء واجهة شبكة
قبل إنشاء واجهة شبكة، يجب عليك استرداد معرّف الشبكة الظاهرية باستخدام Get-AzVirtualNetwork، ثم معرّف الشبكة الفرعية باستخدام Get-AzVirtualNetworkSubnetConfig. إنشاء واجهة شبكة باستخدام New-AzNetworkInterface في الشبكة الفرعية DMZ مع تمكين إعادة توجيه بروتوكول الإنترنت:
# Retrieve the virtual network object into a variable.
$virtualNetwork=Get-AzVirtualNetwork `
-Name myVirtualNetwork `
-ResourceGroupName myResourceGroup
# Retrieve the subnet configuration into a variable.
$subnetConfigDmz = Get-AzVirtualNetworkSubnetConfig `
-Name DMZ `
-VirtualNetwork $virtualNetwork
# Create the network interface.
$nic = New-AzNetworkInterface `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name 'myVmNva' `
-SubnetId $subnetConfigDmz.Id `
-EnableIPForwarding
إنشاء الجهاز الظاهري
لإنشاء جهاز ظاهري وإرفاق واجهة شبكة موجودة، يجب عليك أولا إنشاء تكوين جهاز ظاهري باستخدام New-AzVMConfig. يتضمن التكوين واجهة الشبكة التي تم إنشاؤها في الخطوة السابقة. عند مطالبتك باسم مستخدم وكلمة مرور، حدد اسم المستخدم وكلمة المرور اللذين تريد تسجيل الدخول بهما إلى الجهاز الظاهري.
# Create a credential object.
$cred = Get-Credential -Message "Enter a username and password for the VM."
# Create a VM configuration.
$vmConfig = New-AzVMConfig `
-VMName 'myVmNva' `
-VMSize Standard_DS2 | `
Set-AzVMOperatingSystem -Windows `
-ComputerName 'myVmNva' `
-Credential $cred | `
Set-AzVMSourceImage `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest | `
Add-AzVMNetworkInterface -Id $nic.Id
قم بإنشاء الجهاز الظاهري باستخدام تكوين الجهاز الظاهري بالأمر New-AzVM. ينشئ المثال التالي جهازاً افتراضياً المسمى myVmNva.
$vmNva = New-AzVM `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-VM $vmConfig `
-AsJob
ينشئ الخيار -AsJob الجهاز الظاهري في الخلفية، حتى تتمكن من المتابعة إلى الخطوة التالية.
أنشئ الأجهزة الظاهرية
قم بإنشاء جهازين ظاهريين في الشبكة الظاهرية حتى تتمكن من التحقق من أن نسبة استخدام الشبكة من الشبكة الفرعية العامة يتم توجيهها إلى الشبكة الفرعية خاصة من خلال الجهاز الافتراضي للشبكة في خطوة لاحقة.
قم بإنشاء جهاز ظاهري في الشبكة الفرعية العامة باستخدام New-AzVM. يقوم المثال التالي بإنشاء جهاز ظاهري باسم myVmPublic في الشبكة الفرعية العامة للشبكة الظاهرية myVirtualNetwork.
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Location "East US" `
-VirtualNetworkName "myVirtualNetwork" `
-SubnetName "Public" `
-ImageName "Win2016Datacenter" `
-Name "myVmPublic" `
-AsJob
قم بإنشاء جهاز ظاهري في الشبكة الفرعية خاصة.
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Location "East US" `
-VirtualNetworkName "myVirtualNetwork" `
-SubnetName "Private" `
-ImageName "Win2016Datacenter" `
-Name "myVmPrivate"
يستغرق إنشاء جهاز ظاهري بضع دقائق. لا تستمر في الخطوة التالية حتى يتم إنشاء الجهاز الظاهري ويقوم Azure بإرجاع النتيجة إلى PowerShell.
توجيه حركة المرور عن طريق الأجهزة الظاهرية للشبكة
استخدم Get-AzPublicIpAddress لعرض عنوان IP العام الخاص بالجهاز الظاهري myVmPrivate. يعرض المثال التالي عنوان IP العام لجهاز myVmPrivate الظاهري:
Get-AzPublicIpAddress `
-Name myVmPrivate `
-ResourceGroupName myResourceGroup `
| Select IpAddress
استخدم الأمر التالي لإنشاء جلسة عمل سطح مكتب بعيدة باستخدام الجهاز الظاهري myVmPrivate من جهاز الكمبيوتر المحلي الخاص بك. استبدل <publicIpAddress> بعنوان IP الذي تم إرجاعه من الأمر السابق.
mstsc /v:<publicIpAddress>
افتح الملف ".rdp" الذي تم تنزيله. إذا تمت المطالبة، فحدد Connect.
أدخل اسم المستخدم وكلمة المرور التي حددتها عند إنشاء الجهاز الظاهري (قد تحتاج إلى تحديد المزيد من الخيارات، ثم استخدم حسابًا مختلفًا، لتحديد بيانات الاعتماد التي أدخلتها عند إنشاء الجهاز الافتراضي)، ثم حدد OK. قد تتلقى تحذير مصادقة أثناء عملية تسجيل الدخول. حدد نعم لمتابعة الاتصال.
في خطوة لاحقة، يتم استخدام الأمر tracert.exe لاختبار التوجيه. يستخدم Tracert بشكل افتراضي بروتوكول رسائل التحكم في الإنترنت (ICMP)، والذي يتم رفضه من خلال جدار حماية Windows. تمكين ICMP من خلال جدار حماية Windows عن طريق إدخال الأمر التالي من PowerShell على الجهاز الظاهري myVmPrivate:
New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Protocol ICMPv4
على الرغم من استخدام مسار التتبع لاختبار التوجيه في هذا المقال، إلا إنه لا يوصى بالسماح لـ ICMP من خلال جدار حماية Windows لعمليات نشر الإنتاج.
قمت بتمكين إعادة توجيه بروتوكول الإنترنت داخل Azure لواجهة شبكة الجهاز الظاهري في تمكين إعادة توجيه بروتوكول الإنترنت. داخل الجهاز الظاهري، يجب أن يكون نظام التشغيل أو أي تطبيق يعمل داخل الجهاز الظاهري قادراً أيضاً على إعادة توجيه نسبة استخدام الشبكة. قم بتمكين إعادة توجيه بروتوكول الإنترنت داخل نظام تشغيل myVmNva.
من موجه الأوامر على الجهاز الظاهري myVmPrivate، سطح المكتب البعيد إلى myVmNva:
mstsc /v:myvmnva
لتمكين إعادة توجيه بروتوكول الإنترنت داخل نظام التشغيل، أدخل الأمر التالي في PowerShell من الجهاز الظاهري myVmNva:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IpEnableRouter -Value 1
أعد تشغيل الجهاز الظاهري myVmNva، الذي يقطع أيضاً اتصال جلسة سطح المكتب البعيد.
أثناء الاستمرار في الاتصال بالجهاز الظاهري myVmPrivate، قم بإنشاء جلسة سطح مكتب بعيد إلى الجهاز الظاهري myVmPublic، بعد إعادة تشغيل الجهاز الظاهري myVmNva:
mstsc /v:myVmPublic
تمكين ICMP من خلال جدار حماية Windows عن طريق إدخال الأمر التالي من PowerShell على الجهاز الظاهري myVmPublic:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
لاختبار توجيه نسبة استخدام الشبكة إلى الجهاز الظاهري myVmPrivate من الجهاز الظاهري myVmPublic، أدخل الأمر التالي من PowerShell على الجهاز الظاهري myVmPublic:
tracert myVmPrivate
الاستجابة مشابهة للمثال التالي:
Tracing route to myVmPrivate.vpgub4nqnocezhjgurw44dnxrc.bx.internal.cloudapp.net [10.0.1.4]
over a maximum of 30 hops:
1 <1 ms * 1 ms 10.0.2.4
2 1 ms 1 ms 1 ms 10.0.1.4
Trace complete.
يمكنك أن ترى أن الخطوة الأولى هي 10.0.2.4، وهو عنوان IP الخاص بـ NVA. المرحلة الثانية هي 10.0.1.4، عنوان IP الخاص لـ myVmPrivate VM. أدى المسار المضاف إلى جدول التوجيه myRouteTablePublic والمرتبط بالشبكة الفرعية العامة إلى قيام Azure بتوجيه نسبة استخدام الشبكة عبر NVA، بدلاً من توجيهها مباشرةً إلى الشبكة الفرعية الخاصة.
إغلاق جلسة سطح المكتب البعيد للجهاز الظاهري myVmPublic، ما يجعلك لا تزال متصلاً بالجهاز الظاهري myVmPrivate.
لاختبار توجيه نسبة استخدام الشبكة إلى الجهاز الظاهري myVmPublic من الجهاز الظاهري myVmPrivate، أدخل الأمر التالي من PowerShell على الجهاز الظاهري myVmPrivate:
tracert myVmPublic
الاستجابة مشابهة للمثال التالي:
Tracing route to myVmPublic.vpgub4nqnocezhjgurw44dnxrc.bx.internal.cloudapp.net [10.0.0.4]
over a maximum of 30 hops:
1 1 ms 1 ms 1 ms 10.0.0.4
Trace complete.
يمكنك أن ترى أن نسبة استخدام الشبكة يتم توجيهها مباشرة من الجهاز الظاهري myVmPrivate إلى الجهاز الظاهري myVmPublic. بشكل افتراضي، تقوم Azure بتوجيه حركة المرور بشكل مباشر بين الشبكات الفرعية.
إغلاق جلسة عمل سطح المكتب البعيد إلى الجهاز الظاهري myVmPrivate.
تنظيف الموارد
عند عدم الحاجة إليها، استخدم Remove-AzResourceGroup لإزالة مجموعة الموارد وجميع الموارد ذات الصلة.
Remove-AzResourceGroup -Name myResourceGroup -Force
الخطوات التالية
في هذه المقالة، قمت بإنشاء جدول توجيه وربطته بشبكة فرعية. لقد أنشأت جهازاً افتراضياً بسيطاً على الشبكة يوجه نسبة استخدام الشبكة من شبكة فرعية عامة إلى شبكة فرعية خاصة. انشر مجموعة متنوعة من الأجهزة الافتراضية على الشبكة المهيأة مسبقاً والتي تؤدي وظائف الشبكة مثل جدار الحماية وتحسين WAN من Azure Marketplace. لمعرفة المزيد حول التوجيه، يُرجى الرجوع إلى نظرة عامة حول التوجيه وإدارة جدول المسار.
بينما يمكنك نشر العديد من موارد Azure داخل شبكة ظاهرية، لا يمكن نشر موارد بعض خدمات Azure PaaS في شبكة ظاهرية. لا يزال بإمكانك تقييد الوصول إلى موارد بعض خدمات Azure PaaS لنسبة استخدام الشبكة فقط من الشبكة الفرعية للشبكة الافتراضية. لمعرفة الكيفية، راجع تقييد وصول الشبكة إلى موارد PaaS.


