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

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

السيناريو

تحاول الاتصال بجهاز ظاهري ولكن الاتصال يفشل. لتحديد سبب عدم تمكنك من الاتصال بالجهاز الظاهري، يمكنك عرض المسارات الفعالة لواجهة الشبكة باستخدام مدخل Microsoft Azure أو PowerShell أو Azure CLI.

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

التشخيص باستخدام مدخل Microsoft Azure

  1. سجل الدخول في مدخل Microsoft Azure باستخدام حساب Azure يحتوي على الأذونات اللازمة.

  2. في الجزء العلوي من مدخل Microsoft Azure، أدخل اسم الجهاز الظاهري قيد التشغيل، في مربع البحث. عندما يظهر اسم الجهاز الظاهري في نتائج البحث، حدده.

  3. ضمن "Settings" على اليسار، حدد "Networking" وانتقل إلى مورد واجهة الشبكة بتحديد اسمه. عرض واجهات الشبكة

  4. على اليسار، حدد Effective routes. تظهر المسارات الفعالة لواجهة شبكة تسمى myVMNic1، في الصورة التالية: عرض المسارات الفعالة

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

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

على الرغم من عرض المسارات الفعالة من خلال الجهاز الظاهري في الخطوات السابقة، يمكنك أيضاً عرض المسارات الفعالة من خلال:

التشخيص باستخدام PowerShell

ملاحظة

نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

يمكنك تشغيل الأوامر التي تتبع في Azure Cloud Shell، أو عن طريق تشغيل PowerShell من الكمبيوتر. Azure Cloud Shell هو واجهة تفاعلية مجانية. يحتوي على أدوات Azure الشائعة والمثبتة مسبقًا والتي تم تكوينها للاستخدام مع حسابك. إذا قمت بتشغيل PowerShell من جهاز الكمبيوتر الخاص بك، فأنت بحاجة إلى الوحدة النمطية Azure PowerShell، الإصدار 1.0.0 أو إصدار أحدث. شغّل Get-Module -ListAvailable Az على جهاز الكمبيوتر الخاص بك، للعثور على الإصدار المُثبت. إذا كنت بحاجة إلى الترقية، فراجع تثبيت الوحدة النمطية Azure PowerShell. إذا كنت تقوم بتشغيل PowerShell محلياً، فستحتاج أيضاً إلى تشغيل Connect-AzAccount لتسجيل الدخول إلى Azure بحساب لديه الأذونات اللازمة.

احصل على المسارات الفعالة لواجهة الشبكة باستخدام Get-AzEffectiveRouteTable. يحصل المثال التالي على المسارات الفعالة لواجهة شبكة تسمى myVMNic1، الموجودة في مجموعة موارد تسمى myResourceGroup:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVMNic1 `
  -ResourceGroupName myResourceGroup `
  | Format-Table

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

إذا كنت لا تعرف اسم واجهة الشبكة، ولكنك تعرف اسم الجهاز الظاهري الذي تم توصيل واجهة الشبكة به، فإن الأوامر التالية ترجع معرّفات جميع واجهات الشبكة المتصلة بالجهاز الظاهري:

$VM = Get-AzVM -Name myVM `
  -ResourceGroupName myResourceGroup
$VM.NetworkProfile

تتلقى إخراجاً مشابهاً للمثال التالي:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic1

في الإخراج السابق، اسم واجهة الشبكة هو myVMNic1.

التشخيص باستخدام Azure CLI

يمكنك تشغيل الأوامر التالية في Azure Cloud Shell، أو عن طريق تشغيل CLI من جهاز الكمبيوتر الخاص بك. تتطلب هذه المقالة إصدار 2.0.32 أو أحدث من Azure CLI. بادر بتشغيل az --version للعثور على الإصدار المثبت. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI. إذا كنت تقوم بتشغيل Azure CLI محلياً، فستحتاج أيضاً إلى تشغيل az login لتسجيل الدخول إلى Azure بحساب لديه الأذونات اللازمة.

احصل على المسارات الفعالة لواجهة الشبكة باستخدام az network nic show-effective-route-table. يحصل المثال التالي على المسارات الفعالة لواجهة شبكة تسمى myVMNic1، الموجودة في مجموعة موارد تسمى myResourceGroup:

az network nic show-effective-route-table \
  --name myVMNic1 \
  --resource-group myResourceGroup

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

إذا كنت لا تعرف اسم واجهة الشبكة، ولكنك تعرف اسم الجهاز الظاهري الذي تم توصيل واجهة الشبكة به، فإن الأوامر التالية ترجع معرّفات جميع واجهات الشبكة المتصلة بالجهاز الظاهري:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

حل المشكلة

يتكون حل مشكلات التوجيه عادة من:

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

إذا كنت لا تزال تواجه مشكلات في الاتصال، فراجع الاعتبارات والتشخيص الإضافي.

الاعتبارات

خذ بعين الاعتبار النقاط التالية عند استكشاف مشكلات الاتصال وإصلاحها:

  • يعتمد التوجيه على أطول بادئة مطابقة (LPM) بين المسارات التي حددتها، وبروتوكول بوابة الحدود (BGP)، ومسارات النظام. إذا كان هناك أكثر من مسار واحد له نفس تطابق LPM، فسيتم تحديد المسار استناداً إلى أصله بالترتيب المدرج في نظرة عامة على التوجيه. باستخدام المسارات الفعالة، يمكنك فقط رؤية المسارات الفعالة التي تطابق LPM، استناداً إلى جميع المسارات المتاحة. إن معرفة كيفية تقييم المسارات لواجهة الشبكة تجعل استكشاف أخطاء مسارات معينة قد تؤثر على الاتصال من الجهاز الظاهري وإصلاحها أسهل بكثير.
  • إذا كنت قد حددت مسارات مخصصة لجهاز ظاهري للشبكة (NVA)، باستخدام جهاز ظاهري كنوع الوثبة التالية، فتأكد من تمكين إعادة توجيه IP على NVA الذي يتلقى نسبة استخدام الشبكة، أو إسقاط حزم البيانات. تعرف على المزيد حول تمكين إعادة توجيه IP لواجهة الشبكة. بالإضافة إلى ذلك، يجب أن يكون نظام التشغيل أو التطبيق داخل NVA قادراً أيضاً على إعادة توجيه نسبة استخدام الشبكة ويجب تكوينه للقيام بذلك.
  • إذا قمت بإنشاء مسار إلى 0.0.0.0/0، فسيتم توجيه كل نسبة استخدام الإنترنت الصادرة إلى الوثبة التالية التي حددتها، مثل NVA أو بوابة VPN. غالباً ما يشار إلى إنشاء مثل هذا المسار باسم النفق القسري. قد لا تعمل الاتصالات البعيدة باستخدام بروتوكولات RDP أو SSH من الإنترنت إلى الجهاز الظاهري الخاص بك مع هذا المسار، اعتماداً على كيفية تعامل الوثبة التالية مع نسبة استخدام الشبكة. يمكن تمكين النفق القسري:
    • عند استخدام VPN من موقع إلى موقع، عن طريق إنشاء مسار مع نوع الوثبة التالية من بوابة VPN. تعرف على المزيد حول تكوين النفق القسري.
    • إذا تم الإعلان عن 0.0.0.0/0 (المسار الافتراضي) عبر BGP من خلال بوابة شبكة ظاهرية عند استخدام VPN من موقع إلى موقع، أو دائرة ExpressRoute. تعرف على المزيد حول استخدام BGP مع VPN من موقع إلى موقع أو ExpressRoute.
  • كي تعمل نسبة استخدام نظير الشبكة الظاهرية بشكل صحيح، يجب أن يوجد مسار نظام بنوع الوثبة التالية من نظير الشبكة الظاهرية لنطاق بادئة الشبكة الظاهرية النظيرة. إذا لم يكن هذا المسار موجوداً، وكان ارتباط نظير الشبكة الظاهرية متصلاً:
  • على الرغم من أن Azure يعيّن المسارات الافتراضية لكل واجهة شبكة في Azure، إذا كانت لديك عدة واجهات شبكة متصلة بالجهاز الظاهري، يتم تعيين مسار افتراضي (0.0.0.0/0) فقط لواجهة الشبكة الأساسية، أو بوابة، داخل نظام تشغيل الجهاز الظاهري. تعرف على كيفية إنشاء مسار افتراضي لواجهات الشبكة الثانوية المرتبطة بجهاز ظاهري يعمل بنظام التشغيل Windows أو Linux. تعرف على المزيد حول واجهات الشبكة الأساسية والثانوية.

تشخيص إضافي

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

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