اقرأ باللغة الإنجليزية

مشاركة عبر


تشخيص مشكلة توجيه شبكة الجهاز الظاهري باستخدام PowerShell

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

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

  • حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.

  • Azure Cloud Shell أو Azure PowerShell.

    تعمل الخطوات الواردة في هذه المقالة على تشغيل أوامر Cmdlets Azure PowerShell بشكل تفاعلي في Azure Cloud Shell. لتشغيل cmdlets في Cloud Shell، حدد Open Cloud Shell في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. حدد نسخ لنسخ التعليمات البرمجية ثم لصقها في Cloud Shell لتشغيلها. يمكنك أيضا تشغيل Cloud Shell من داخل مدخل Microsoft Azure.

    يمكنك أيضا تثبيت Azure PowerShell محليا لتشغيل cmdlets. قم بتشغيل Get-Module -ListAvailable Az للعثور على الإصدار المثبت. إذا قمت بتشغيل PowerShell محليا، فقم بتسجيل الدخول إلى Azure باستخدام Connect-AzAccount cmdlet.

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

قبل أن تتمكن من إنشاء جهاز ظاهري، ينبغي عليك إنشاء مجموعة موارد لاحتواء الجهاز الظاهري. قم بإنشاء مجموعة موارد باستخدام New-AzResourceGroup. في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

يُمكنك الآن إنشاء الجهاز الظاهري باستخدام New-AzVM. عند تشغيل هذه الخطوة، ستكون مطالَبًا ببيانات الاعتماد. تكوين القيم المُدخَلة كاسم المستخدم وكلمة المرور للجهاز الظاهري.

$vM = New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVm" `
    -Location "East US"

ويستغرق إنشاء جهاز ظاهري بضع دقائق. لا تتابع استكمال الخطوات ما لم تنشئ الجهاز الظاهري، ويستعيد PowerShell الإخراج.

اختبار اتصال شبكة ما

لاختبار اتصال الشبكة مع Network Watcher، ينبغي عليك أولاً تمكين Network Watcher في المنطقة التي يوجد فيها الجهاز الظاهري الذي تريد اختباره، ثم استخدام إمكانية الوثب التالية لـ Network Watcher لاختبار الاتصال.

تمكين مراقب الشبكة

إذا كان مراقب شبكة الاتصال مُفعَّلاً في منطقة شرق الولايات المتحدة، استخدم Get-AzNetworkWatcher لاسترداد Network Watcher. يقوم المثال التالي باسترداد مراقب شبكة موجود باسم NetworkWatcher_eastus الموجود في مجموعة الموارد NetworkWatcherRG:

$networkWatcher = Get-AzNetworkWatcher `
  -Name NetworkWatcher_eastus `
  -ResourceGroupName NetworkWatcherRG

إذا كان مراقب شبكة الاتصال مُفعلاً في منطقة شرق الولايات المتحدة، فاستخدم Get-AzNetworkWatcher لإنشاء مراقب شبكة في منطقة شرق الولايات المتحدة:

$networkWatcher = New-AzNetworkWatcher `
  -Name "NetworkWatcher_eastus" `
  -ResourceGroupName "NetworkWatcherRG" `
  -Location "East US"

استخدم القفزة التالية

ينشئ Azure تلقائيًا مسارات إلى الوجهات الافتراضية. يُمكنك إنشاء اتجاهات مخصصة تتجاوز التوجيهات الافتراضية. في بعض الأحيان، يمكن أن تتسبب التوجيهات المخصصة في فشل اتصال ما. ولاختبار التوجيه من جهاز ظاهري، استخدم Get-AzNetworkWatcherNextHop لتحديد وثب التوجيه التالي عندما يتم توجيه نسبة استخدام الشبكة إلى عنوان معين.

قم باختبار الاتصال الصادر من الجهاز الظاهري إلى أحد عناوين IP لموقع www.bing.com:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 13.107.21.200

وبعد بضع ثوانٍ، يعلمك الناتج بأن NextHopTypeهوالإنترنت، وأن routeTableIdهوSystem Route. ويتيح لك هذا الناتج معرفة أن هناك مسار نظام صالح إلى الوجهة.

اختبر الاتصال الصادر من الجهاز الظاهري إلى 172.31.0.100:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 172.31.0.100

فيعلمك الناتج الذي تم إرجاعه بأنNone هو NextHopType، وبأنRouteTableId هو أيضًاSystem Route. تتيح لك هذه النتيجة معرفة أنه، في حين يوجد مسار نظام صالح إلى الوجهة، لا توجد قفزة تالية لتوجيه حركة نقل البيانات إلى الوجهة.

عرض تفاصيل مسار ما

لتحليل التوجيه بشكل أكبر، راجع المسارات الفعالة لواجهة الشبكة مع الأمر «Get-AzEffectiveRouteTable»:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVm `
  -ResourceGroupName myResourceGroup |
  Format-table

يتم إرجاع الإخراج الذي يتضمن النص التالي:

Name State  Source  AddressPrefix           NextHopType NextHopIpAddress
---- -----  ------  -------------           ----------- ----------------
     Active Default {192.168.0.0/16}        VnetLocal   {}              
     Active Default {0.0.0.0/0}             Internet    {}              
     Active Default {10.0.0.0/8}            None        {}              
     Active Default {100.64.0.0/10}         None        {}              
     Active Default {172.16.0.0/12}         None        {}              

كما ترون في الإخراج السابق، مسارAddressPrefix من 0.0.0.0/0 يوجه كافة نسب استخدام الشبكة غير الموجهة للعناوين ضمن بادئات عنوان المسار الأخرى مع القفزة التالية من الإنترنت. كما ترى أيضًا في الإخراج، على الرغم من وجود مسار افتراضي إلى السابقة 172.16.0.0/12 التي تتضمن عنوان 172.31.0.100،nextHopTypeهوNone. وينشئ Azure مسارًا افتراضيًا إلى 172.16.0.0/12، إلا أنه لا يحدد نوع الوثب التالي إلى أن يوجد سبب لذلك. فإذا، على سبيل المثال، أضفت نطاق العنوان 172.16.0.0/12 إلى مساحة عنوان الشبكة الظاهرية، يغير AzurenextHopType إلى الشبكة الظاهريةللمسار. ثم، قد يظهر الفحصالشبكة الظاهريةكنوعnextHopType.

تنظيف الموارد

عند عدم الحاجة إليها، يمكنك استخدام Remove-AzResourceGroup لإزالة مجموعة الموارد وجميع الموارد ذات الصلة:

Remove-AzResourceGroup -Name myResourceGroup -Force

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

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

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