استكشاف أخطاء التسجيل في الشبكة وإصلاحها

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

العلامات

يمكن أن تتضمن واحدة أو أكثر مما يلي:

  • غير قادر على دفع أو سحب الصور وتتلقى خطأ dial tcp: lookup myregistry.azurecr.io
  • غير قادر على دفع أو سحب الصور وتتلقى خطأ Client.Timeout exceeded while awaiting headers
  • غير قادر على دفع أو سحب الصور وتتلقى خطأ Azure CLI Could not connect to the registry login server
  • غير قادر على سحب الصور من التسجيل إلى خدمة Azure Kubernetes أو خدمة أخرى من خدمات Azure
  • غير قادر على الوصول إلى تسجيل خلف وكيل HTTPS وتتلقى خطأ Error response from daemon: login attempt failed with status: 403 Forbidden أو Error response from daemon: Get <registry>: proxyconnect tcp: EOF Login failed
  • غير قادر على تكوين إعدادات الشبكة الظاهرية وتتلقى خطأ Failed to save firewall and virtual network settings for container registry
  • غير قادر على الوصول إلى إعدادات السجل أو عرضها في مدخل Microsoft Azure أو إدارة السجل باستخدام Azure CLI
  • غير قادر على إضافة أو تعديل إعدادات الشبكة الظاهرية أو قواعد الوصول العامة
  • مهام ACR غير قادرة على دفع أو سحب الصور
  • لا يمكن لـMicrosoft Defender for Cloud مسح الصور ضوئيًا في السجل، أو لا تظهر نتائج الفحص في Microsoft Defender for Cloud
  • تتلقى خطأ host is not reachable عند محاولة الوصول إلى تسجيل تم تكوينه بنقطة نهاية خاصة.

أسباب

  • جدار حماية عميل أو وكيل يمنع الوصول - الحل
  • قواعد الوصول إلى الشبكة العامة على التسجيل تمنع الوصول - الحل
  • الشبكة الظاهرية أو تكوين نقطة النهاية الخاصة يمنع الوصول -الحل
  • تحاول دمج Microsoft Defender for Cloud أو بعض خدمات Azure الأخرى مع تسجيل يحتوي على نقطة نهاية خاصة أو نقطة نهاية خدمة أو قواعد وصول بروتوكول الإنترنت العامة - الحل

التشخيص الإضافي

تشغيل أمر az acr check-health للحصول على مزيد من المعلومات حول صحة بيئة التسجيل والوصول اختياريا إلى تسجيل مستهدف. على سبيل المثال، تشخيص بعض مشاكل الاتصال بالشبكة أو التكوين.

راجع التحقق من صحة Azure Container Registry للحصول على أمثلة الأوامر. في حالة الإبلاغ عن أخطاء، يرجى مراجعةمرجع الخطأ والأقسام التالية لمعرفة الحلول الموصى بها.

إذا كنت تواجه مشاكل أثناء استخدام خدمة Azure Kubernetes مع تسجيل متكامل، قم بتشغيل الأمر az aks check-acr للتحقق من أنه يُمكن لنظام مجموعة AKS الوصول إلى التسجيل.

إشعار

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

حلول محتملة

تكوين وصول جدار حماية العميل

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

  • نقطة النهاية REST: <registryname>.azurecr.io
  • نقاط نهاية البيانات: <registry-name>.<region>.data.azurecr.io

بالنسبة للتسجيل المنسوخ جغرافيا، قم بتكوين الوصول إلى نقطة نهاية البيانات لكل نسخة إقليمية متماثلة.

خلف وكيل HTTPS، تأكد من تكوين كل من عملاء Docker و Docker daemon لصالح سلوك الوكيل. إذا قمت بتغيير إعدادات وكيل Docker daemon الخاص بك، تأكد من إعادة تشغيل Daemon.

قد تساعد سجلات موارد التسجيل في جدول ContainerRegistryLoginEvents في تشخيص محاولة الاتصال المحظورة.

الروابط ذات الصلة:

تكوين وصول عام إلى التسجيل

في حالة الوصول إلى التسجيل عبر الإنترنت، تأكد أن السجل يسمح بالوصول إلى الشبكات العامة من عميلك. بشكل افتراضي، يسمح AZUR Container Registry بالوصول إلى نقاط النهاية الخاصة بالسجل العام من كافة الشبكات. يمكن أن يحد التسجيل من الوصول إلى شبكات أو عناوين IP محددة.

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

الروابط ذات الصلة:

تكوين وصول VNet

تأكد من تكوين الشبكة الظاهرية إما باستخدام نقطة نهاية خاصة لارتباط الخاص أو نقطة نهاية خدمة (معاينة). حاليا نقطة نهاية Azure Bastion غير مدعومة.

إذا تم تكوين نقطة نهاية خاصة، تأكد من أن DNS يحل FQDN العامة للتسجيل مثل myregistry.azurecr.io بالنسبة لعنوان IP الخاص بالتسجيل.

  • شغّل الأمر az acr check-health باستخدام المعلمة --vnet لتأكيد توجيه DNS إلى نقطة النهاية الخاصة في الشبكة الظاهرية.
  • استخدم أدوات مساعدة الشبكة مثل dig أو nslookup للبحث عن DNS.
  • تأكد من أن سجلات DNS قد تم تكوينها من أجل FQDN التسجيل ولكل من FQDNs الخاصة بنقاط نهاية البيانات.

راجع قواعد NSG وعلامات الخدمة المستخدمة للحد من نسبة استخدام الشبكة من قبل الموارد الأخرى في الشبكة إلى التسجيل.

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

إذا كنت تريد تقييد الوصول إلى التسجيل باستخدام شبكة ظاهرية في اشتراك Azure مختلف، تأكد من تسجيل Microsoft.ContainerRegistry موفر الموارد في هذا الاشتراك. تسجيل موفر الموارد Azure Container Registry باستخدام مدخل Microsoft Azure أو Azure CLI أو أدوات Azure الأخرى.

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

الروابط ذات الصلة:

تكوين الوصول إلى الخدمة

حاليًا، لا يُسمح بالوصول إلى سجل حاوية مع قيود الشبكة من العديد من خدمات Azure:

  • لا يمكن لـ Microsoft Defender for Cloud إجراء فحص للثغرات الأمنية للصور في سجل يقيد الوصول إلى نقاط النهاية الخاصة أو الشبكات الفرعية المحددة، أو عناوين IP.
  • موارد خدمات Azure معينة غير قادرة على الوصول إلى سجل حاوية مع قيود الشبكة، بما في ذلك Azure App Service ومثيلات Azure Container.

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

اعتبارًا من يناير 2021، يمكنك تكوين سجل مقيد بالشبكة للسماح بالوصول من خدمات موثوقة محددة.

الروابط ذات الصلة:

استكشاف الأخطاء وإصلاحها المتقدم

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

الروابط ذات الصلة:

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

راجع الخيارات التالية، إذا لم يتم حل مشكلتك هنا.