ping6.net
الأساسيات

شرح ICMPv6: البروتوكول الذي يجعل IPv6 يعمل

افهم ICMPv6، البروتوكول الأساسي لشبكات IPv6. تعرف على اكتشاف الجيران، إعلانات الموجه، ولماذا حجب ICMPv6 يعطل شبكتك.

ping6.net14 ديسمبر 202417 min read
IPv6ICMPv6NDPاكتشاف الجيرانإعلان الموجهالشبكات

ICMPv6 ليس اختيارياً#

في IPv4، يتعامل ICMP مع التشخيص. يمكنك حجبه ومعظم الأشياء لا تزال تعمل. IPv6 لا يعمل بهذه الطريقة.

ICMPv6 هو الجهاز العصبي لـ IPv6. يتعامل مع الإبلاغ عن الأخطاء والتشخيص واكتشاف الجيران واكتشاف الموجه وحل العناوين. احجب أنواع رسائل ICMPv6 الخاطئة وستعطل الاتصال الأساسي، وتمنع المضيفين من إيجاد بوابتهم الافتراضية، وتسبب توقفات اتصال غامضة تستغرق ساعات للتشخيص.

لا تعامل مواصفات IPv6 ICMPv6 كإضافة. إنه مكون إلزامي ومتكامل. فهم ICMPv6 هو فهم كيفية عمل IPv6 فعلياً.

TL;DR - ملخص سريع

النقاط الرئيسية:

  • ICMPv6 إلزامي (وليس اختيارياً مثل IPv4 ICMP)؛ يتعامل مع NDP واكتشاف الموجه وPMTUD
  • يستبدل بروتوكول اكتشاف الجيران (الأنواع 133-137) ARP ويمكّن SLAAC
  • النوع 2 (الحزمة كبيرة جداً) حرج لاكتشاف MTU للمسار—حجبه يعطل الاتصالات
  • الأنواع الأساسية للسماح: 1 (غير قابل للوصول)، 2 (كبير جداً)، 128-129 (Ping)، 133-137 (NDP)

انتقل إلى: بروتوكول اكتشاف الجيران | اكتشاف MTU للمسار | قواعد جدار الحماية

ICMPv6 مقابل ICMP (IPv4)#

تطور ICMPv6 من ICMP في IPv4 لكنه تحمل مسؤولية أكبر بكثير.

الميزةICMPv4ICMPv6التأثير
رقم البروتوكول158قيمة رأس IP التالي مختلفة
رسائل الخطأالوجهة غير قابلة للوصول، تجاوز الوقت، إلخ.نفس الأخطاء، محسّنةوظيفة مماثلة
التشخيصطلب/رد Echo (ping)طلب/رد Echo (ping)غرض متطابق
حل العنوانARP (بروتوكول منفصل)اكتشاف الجيران (ICMPv6)ICMPv6 يستبدل ARP تماماً
اكتشاف الموجهاكتشاف موجه ICMP (اختياري)إعلان الموجه (إلزامي)حرج للتكوين التلقائي
التجزئةيتم التعامل معها بصمت بواسطة الموجهاترسائل Packet Too Bigاكتشاف MTU للمسار مطلوب
إدارة MulticastIGMP (بروتوكول منفصل)رسائل MLD (ICMPv6)ICMPv6 يستبدل IGMP

الفرق الرئيسي: امتص ICMPv6 وظائف استخدمت بروتوكولات منفصلة في IPv4. يعمل ARP على الطبقة 2 في IPv4. IPv6 ليس لديه ARP - اكتشاف الجيران يستخدم ICMPv6 بدلاً من ذلك. IGMP أدار مجموعات multicast في IPv4. IPv6 يستخدم رسائل Multicast Listener Discovery (MLD) ضمن ICMPv6.

هذا الدمج بسّط مكدس البروتوكول لكنه جعل ICMPv6 ضرورياً تماماً. لا يمكنك حجبه دون كسر الوظيفة الأساسية.

بنية نوع الرسالة#

رسائل ICMPv6 لها بنية بسيطة: النوع، الكود، مجموع اختباري، وبيانات خاصة بالرسالة. حقل النوع يحدد فئة الرسالة.

نطاقات رقم النوع:

  • 0-127: رسائل خطأ
  • 128-255: رسائل معلومات

هذا الانقسام يجعل الفلترة أسهل. رسائل الخطأ تبلغ عن مشاكل في تسليم الحزم. الرسائل المعلوماتية تتعامل مع الاستعلامات والردود واكتشاف الجيران/الموجه.

أنواع الرسائل الشائعة#

النوعالكودالاسمالفئةالغرض
10-6الوجهة غير قابلة للوصولخطأالمنفذ مغلق، المسار غير متاح، إلخ.
20الحزمة كبيرة جداًخطأتجاوز MTU على المسار
30-1تجاوز الوقتخطأالوصول إلى حد القفزة أو مهلة الجزء
40-2مشكلة المعاملخطأرأس الحزمة مشوه
1280طلب Echoمعلوماتطلب Ping
1290رد Echoمعلوماتاستجابة Ping
1330طلب الموجهمعلوماتطلب معلومات الموجه
1340إعلان الموجهمعلوماتالموجه يعلن عن وجوده والإعداد
1350طلب الجارمعلوماتحل العنوان وقابلية الوصول
1360إعلان الجارمعلوماتاستجابة للطلب
1370إعادة توجيهمعلوماتيوجد موجه قفزة أولى أفضل

أرقام الأنواع مهمة

على عكس IPv4 حيث تستخدم أنواع ICMP أرقاماً متناثرة، فإن مساحة نوع ICMPv6 المنظمة تجعل قواعد الجدار الناري أوضح. الأنواع 133-137 تتعامل مع بروتوكول اكتشاف الجيران، مما يسهل السماح بـ NDP أو حجبه كمجموعة.

بروتوكول اكتشاف الجيران (NDP)#

يستبدل بروتوكول اكتشاف الجيران ARP في IPv4 ويضيف قدرات تعاملت معها IPv4 من خلال بروتوكولات متعددة. يعمل NDP بالكامل عبر ICMPv6 ويتعامل مع خمس وظائف حرجة:

  1. حل العنوان - ربط عناوين IPv6 بعناوين MAC (يستبدل ARP)
  2. اكتشاف الموجه - إيجاد الموجهات المحلية دون تكوين
  3. اكتشاف البادئة - تعلم بوادئ الشبكة للتكوين التلقائي
  4. اكتشاف المعامل - الحصول على MTU وحد القفزة ومعاملات أخرى
  5. تحديد القفزة التالية - تحديد أفضل موجه لوجهة

أنواع رسائل NDP الخمسة#

طلب الموجه (النوع 133)#

يُرسل بواسطة المضيفين لطلب من الموجهات أن تعلن عن نفسها فوراً بدلاً من انتظار إعلان الموجه المجدول التالي.

عندما يُرسل:

  • بدء تشغيل المضيف
  • تشغيل الواجهة
  • المضيف يريد التكوين بسرعة

التنسيق:

Source: Link-local address or ::
Destination: ff02::2 (all-routers multicast)
Hop Limit: 255

طلبات الموجه تتيح للمضيفين الحصول على تكوين الشبكة في ثوانٍ بدلاً من انتظار الإعلانات الدورية.

إعلان الموجه (النوع 134)#

يُرسل بواسطة الموجهات لإعلان وجودها، الإعلان عن البوادئ لـ SLAAC، وتوفير معاملات التكوين.

عندما يُرسل:

  • دورياً (كل بضع دقائق)
  • استجابة لطلب الموجه
  • عندما يتغير تكوين الموجه

ما يحتويه:

  • عمر الموجه (كم من الوقت لاستخدام هذا الموجه)
  • بادئة (بوادئ) الشبكة وصلاحيتها
  • توصية MTU
  • اقتراح حد القفزة
  • أعلام لـ SLAAC و DHCPv6

التنسيق:

Source: Router's link-local address
Destination: ff02::1 (all-nodes multicast) or soliciting host
Hop Limit: 255

إعلانات الموجه هي كيف يتعلم المضيفون تكوين شبكتهم تلقائياً. لا حاجة لـ DHCP - تبث الموجهات كل ما يحتاجه المضيفون لتكوين أنفسهم.

SLAAC يعتمد على إعلانات الموجه

التكوين التلقائي للعنوان بدون حالة (SLAAC) يعتمد تماماً على إعلانات الموجه. احجب النوع 134 ولن يتمكن المضيفون من التكوين التلقائي. سيكون لديهم عناوين محلية للوصلة فقط، بدون مسار افتراضي وبدون عناوين قابلة للتوجيه عالمياً.

طلب الجار (النوع 135)#

معادل IPv6 لطلبات ARP. يُرسل لاكتشاف عنوان MAC لجار أو التحقق من أن الجار لا يزال قابلاً للوصول.

عندما يُرسل:

  • حل عنوان IPv6 إلى عنوان MAC
  • التحقق من أن الجار لا يزال قابلاً للوصول
  • كشف العنوان المكرر (التحقق مما إذا كان العنوان قيد الاستخدام بالفعل)

التنسيق:

Source: Sender's address (or :: for DAD)
Destination: Solicited-node multicast address or target address
Hop Limit: 255

رسائل طلب الجار تستخدم عناوين multicast للعقدة المطلوبة بدلاً من البث. هذا يقلل المعالجة غير الضرورية - فقط المضيف المستهدف والمضيفين بعناوين مماثلة يتلقون الحزمة.

إعلان الجار (النوع 136)#

استجابة لطلب الجار. يوفر عنوان MAC للمُرسل أو يؤكد قابلية الوصول.

عندما يُرسل:

  • استجابة لطلب الجار
  • إعلان غير مطلوب عن تغيير العنوان

التنسيق:

Source: Sender's link-local or global address
Destination: Solicitor's address or all-nodes multicast
Hop Limit: 255

إعادة التوجيه (النوع 137)#

يُرسل بواسطة الموجهات لإبلاغ المضيفين بأن موجه قفزة أولى أفضل موجود لوجهة محددة.

عندما يُرسل:

  • المضيف يرسل حزمة إلى موجه
  • الموجه يعرف قفزة تالية أفضل على نفس الوصلة
  • الموجه يعيد توجيه الحزمة ويرسل إعادة توجيه

التنسيق:

Source: Router's link-local address
Destination: Original sender
Hop Limit: 255

إعادة التوجيه تحسّن التوجيه دون مطالبة المضيفين بالاحتفاظ بجداول توجيه معقدة.

كيف يعمل حل العنوان#

عندما يحتاج مضيف إلى إرسال حزمة إلى عنوان IPv6 آخر على الوصلة المحلية:

  1. تحقق من ذاكرة الجيران - هل عنوان MAC معروف بالفعل؟
  2. أرسل طلب الجار - إذا لم يكن كذلك، أرسل NS إلى عنوان multicast للعقدة المطلوبة
  3. استقبل إعلان الجار - الهدف يستجيب مع عنوان MAC
  4. تحديث الذاكرة المؤقتة - تخزين الربط للاستخدام المستقبلي
  5. إرسال الحزمة - تسليم الحزمة الأصلية

يتم حساب عنوان multicast للعقدة المطلوبة من عنوان IPv6 للهدف:

ff02::1:ff + last 24 bits of IPv6 address
 
Example:
IPv6: 2001:db8::a4b2:c3d4:e5f6:7890
Solicited-node: ff02::1:ff:f6:7890

هذا نهج multicast يقلل حركة مرور الشبكة مقارنة بـ ARP القائم على البث في IPv4.

كشف العنوان المكرر

قبل استخدام عنوان، ترسل المضيفون طلب جار مع المصدر :: والهدف مضبوط على العنوان الذي يريدون استخدامه. إذا استجاب مضيف آخر، فإن العنوان قيد الاستخدام بالفعل. هذا يمنع تعارضات العناوين في SLAAC.

اكتشاف الموجه بالتفصيل#

تعلن الموجهات عن نفسها وتكوين الشبكة من خلال رسائل إعلان الموجه. تستمع المضيفون وتُكوّن نفسها تلقائياً بناءً على هذه الإعلانات.

محتويات إعلان الموجه#

يحتوي RA النموذجي على:

معلومات الموجه:

  • عمر الموجه (0-9000 ثانية، 0 يعني "ليس موجه افتراضي")
  • وقت قابلية الوصول (كم من الوقت لاعتبار الجار قابلاً للوصول)
  • مؤقت إعادة الإرسال (التأخير بين طلبات الجار)

معلومات البادئة:

  • بادئة الشبكة (مثل 2001:db8:1234::/64)
  • عمر صالح (كم من الوقت العناوين صالحة)
  • العمر المفضل (كم من الوقت للاستخدام للاتصالات الجديدة)
  • الأعلام:
    • L (On-link): البادئة على الوصلة المحلية
    • A (Autonomous): استخدم لـ SLAAC

خيارات أخرى:

  • توصية MTU
  • خوادم DNS (خيار RDNSS)
  • نطاقات بحث DNS (خيار DNSSL)

تكوين عنوان SLAAC#

عندما يتلقى مضيف RA مع علم A مضبوط:

  1. خذ البادئة - مثل 2001:db8:1234::/64
  2. ولّد معرف الواجهة - 64 بت مشتقة من MAC أو عشوائية
  3. اجمعهما - 2001:db8:1234::a4b2:c3d4:e5f6:7890
  4. قم بتشغيل كشف العنوان المكرر - تأكد من أنه لا أحد آخر يستخدمه
  5. قم بتكوين العنوان - أضف إلى الواجهة
  6. حدد المسار الافتراضي - استخدم الموجه كقفزة تالية

هذا يحدث تلقائياً دون تدخل المستخدم أو خوادم DHCP.

الأعلام التي تتحكم في التكوين#

تتضمن إعلانات الموجه أعلاماً تخبر المضيفين بكيفية تكوين أنفسهم:

  • M (Managed): استخدم DHCPv6 للعناوين (وليس SLAAC)
  • O (Other): استخدم DHCPv6 للتكوين الآخر (DNS، NTP، إلخ.)

المجموعات الشائعة:

MOالسلوك
00SLAAC فقط، لا DHCPv6
01SLAAC للعناوين، DHCPv6 لـ DNS/إلخ.
10DHCPv6 للعناوين (غير معتاد)
11DHCPv6 لكل شيء

معظم الشبكات تستخدم M=0، O=0 (SLAAC نقي) أو M=0، O=1 (SLAAC + DHCPv6 لـ DNS).

اكتشاف MTU للمسار#

موجهات IPv6 لا تجزئ الحزم. يجب على المصدر إرسال حزم صغيرة بما يكفي لتناسب المسار بالكامل. هنا يصبح نوع ICMPv6 2 حرجاً.

كيف يعمل PMTUD#

  1. المضيف يرسل حزمة - يستخدم MTU للواجهة (عادةً 1500 بايت)
  2. الموجه يواجه MTU أصغر - لا يمكن التجزئة في IPv6
  3. الموجه يسقط الحزمة - يرسل رسالة ICMPv6 Packet Too Big إلى الوراء
  4. الرسالة تتضمن MTU - تخبر المُرسل بالحجم الأقصى المسموح
  5. المضيف يقلل حجم الحزمة - يعيد الإرسال بـ MTU أصغر
  6. الاتصال يستمر - باستخدام حجم الحزمة المناسب

تنسيق رسالة Packet Too Big:

Type: 2
Code: 0
MTU: 1280 (or whatever the next hop supports)
Original packet: First portion of dropped packet

الحد الأدنى لـ IPv6 MTU هو 1280 بايت. يجب أن تدعم جميع الوصلات على الأقل هذا الحجم. الحزم الأكبر تتطلب PMTUD للعمل.

ما يحدث عندما تحجب النوع 2#

أعراض الاتصال عند حجب رسائل Packet Too Big:

  • الاتصال الأولي يعمل - حزم SYN، SYN-ACK، ACK صغيرة
  • نقل البيانات يتوقف - الحزم الكبيرة تُسقط بصمت
  • لا رسائل خطأ - الاتصال يتوقف فقط
  • مهلة زمنية بعد دقائق - TCP في النهاية يستسلم

هذه واحدة من أكثر المشاكل إحباطاً للتشخيص لأن الاتصال يُنشأ بنجاح قبل الفشل.

سيناريو من العالم الحقيقي:

$ curl -6 https://example.com/
# Connection hangs after TLS handshake
# Browser shows "Loading..." forever
# SSH connects but hangs during banner exchange

كل ذلك لأن جهازاً وسيطاً ما حجب نوع ICMPv6 2.

لا تحجب أبداً Packet Too Big

حجب نوع ICMPv6 2 يعطل الاتصالات بطرق دقيقة خاصة بالتطبيق. اسمح دائماً بهذا نوع الرسالة في كلا الاتجاهين عبر الجدران النارية والموجهات.

طلب Echo ورد Echo (Ping)#

النوع 128 (طلب Echo) والنوع 129 (رد Echo) يعملان تماماً مثل IPv4 ping.

التنسيق:

Type: 128 (request) or 129 (reply)
Code: 0
Identifier: Arbitrary (matches request/reply)
Sequence: Increments with each ping
Data: Arbitrary payload

الاستخدامات التشخيصية#

Ping هو أبسط اختبار اتصال:

# Basic ping
ping6 2001:4860:4860::8888
 
# Specify source address
ping6 -I 2001:db8::10 2001:4860:4860::8888
 
# Large packets to test PMTUD
ping6 -s 1400 google.com
 
# Flood ping (requires root)
sudo ping6 -f 2001:4860:4860::8888

اعتبارات تحديد المعدل#

يحدد العديد من المسؤولين معدل ping لمنع الاستطلاع وهجمات DoS. هذا معقول لخوادم الإنتاج، لكن الحجب الكامل يجعل استكشاف الأخطاء وإصلاحها أصعب.

النهج الموصى به:

  • اسمح بطلب/رد echo
  • حدد المعدل لمنع إساءة الاستخدام
  • سجّل المحاولات المفرطة

مثال Linux:

# Allow ping but rate limit
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 128 \
  -m limit --limit 10/sec --limit-burst 20 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 128 -j DROP

هذا يسمح بـ 10 pings في الثانية مع دفقات تصل إلى 20، مع إسقاط حركة المرور الزائدة.

اعتبارات الجدار الناري#

تتطلب فلترة ICMPv6 فهماً لأي أنواع ضرورية وأيها اختيارية.

يجب السماح (يعطل الاتصال)#

النوع 2: Packet Too Big

  • الاتجاه: كلا الوارد والصادر
  • السبب: اكتشاف MTU للمسار يتعطل بدونه
  • النطاق: جميع الاتصالات

الأنواع 133-136: اكتشاف الجيران

  • الاتجاه: محلي للوصلة فقط (حد قفزة 255)
  • السبب: يفشل حل العنوان واكتشاف الموجه
  • النطاق: الشبكة المحلية فقط

النوع 1: الوجهة غير قابلة للوصول

  • الاتجاه: وارد (استجابات لحركة المرور الخاصة بك)
  • السبب: TCP يحتاج إلى معرفة متى لا توجد منافذ/مسارات
  • النطاق: جميع الاتصالات

يجب السماح (يعطل التشخيص)#

النوع 3: تجاوز الوقت

  • الاتجاه: وارد
  • السبب: Traceroute يفشل بدونه
  • التأثير: لا يمكن تشخيص مشاكل التوجيه

الأنواع 128-129: طلب/رد Echo

  • الاتجاه: كلاهما
  • السبب: Ping هو اختبار الاتصال الأساسي
  • التأثير: لا يمكن التحقق من قابلية الوصول الأساسية

يمكن الحجب (معلوماتي فقط)#

الأنواع 130-132: Multicast Listener Discovery

  • النطاق: الشبكة المحلية فقط
  • التأثير: قد لا يعمل Multicast بشكل مثالي

النوع 137: إعادة التوجيه

  • التأثير: توجيه غير مثالي على الشبكة المحلية
  • الأمان: بعض المسؤولين يحجبون لمنع التلاعب بالمسار

مثال قواعد iptables#

جدار ناري الحد الأدنى للمضيف:

# Essential ICMPv6
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 1 -j ACCEPT   # Destination Unreachable
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 2 -j ACCEPT   # Packet Too Big
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 3 -j ACCEPT   # Time Exceeded
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 128 -j ACCEPT # Echo Request
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 129 -j ACCEPT # Echo Reply
 
# Neighbor discovery (link-local only, hop limit 255)
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 133 -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 134 -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 135 -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 136 -m hl --hl-eq 255 -j ACCEPT

فحص حد القفزة (--hl-eq 255) يضمن أن حزم اكتشاف الجيران تنشأ من الوصلة المحلية. NDP الشرعي دائماً يستخدم حد قفزة 255. الحزم من الموجهات ستكون لها قيم منخفضة.

معادل nftables:

# Essential ICMPv6
nft add rule ip6 filter input icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, echo-request, echo-reply } accept
 
# Neighbor discovery with hop limit check
nft add rule ip6 filter input icmpv6 type { nd-router-solicit, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert } ip6 hoplimit 255 accept

خطأ شائع: حجب جميع ICMPv6

الخطأ الأكثر شيوعاً في جدار IPv6 الناري هو حجب جميع ICMPv6. ينقل المسؤولون قواعد IPv4 التي تحجب جميع ICMP ويتساءلون لماذا يتعطل IPv6. ICMPv6 ليس اختيارياً - اسمح بالأنواع الأساسية أو توقع فشل الاتصال.

استكشاف الأخطاء وإصلاحها مع ICMPv6#

قراءة رسائل الخطأ#

عندما تفشل الاتصالات، تحقق من رسائل خطأ ICMPv6 مع tcpdump:

# Capture all ICMPv6
sudo tcpdump -i eth0 -n ip6 and icmp6
 
# Specific types
sudo tcpdump -i eth0 -n 'ip6 and icmp6 and ip6[40] == 1'  # Type 1 (Destination Unreachable)
sudo tcpdump -i eth0 -n 'ip6 and icmp6 and ip6[40] == 2'  # Type 2 (Packet Too Big)

سيناريوهات الخطأ الشائعة:

النوع 1، الكود 1: الاتصال محظور إدارياً

# Firewall blocking traffic
18:23:45.123456 IP6 2001:db8::1 > 2001:db8::10: ICMP6, destination unreachable,
  administratively prohibited, length 68

جدار ناري أو قائمة التحكم في الوصول تحجب الاتصال.

النوع 1، الكود 4: المنفذ غير قابل للوصول

# Service not running
18:23:45.234567 IP6 2001:db8::10 > 2001:db8::1: ICMP6, destination unreachable,
  port unreachable, length 68

لا شيء يستمع على المنفذ المستهدف.

النوع 2: الحزمة كبيرة جداً

# MTU issue
18:23:45.345678 IP6 2001:db8:1234::1 > 2001:db8::10: ICMP6, packet too big,
  mtu 1280, length 1240

MTU للمسار أصغر مما افترضه المرسل. يجب على المرسل تقليل حجم الحزمة إلى 1280 بايت.

استخدام Wireshark لـ NDP#

يجعل Wireshark تحليل NDP أسهل مع مرشحات العرض:

# All ICMPv6
icmpv6
 
# Neighbor Discovery only
icmpv6.type >= 133 && icmpv6.type <= 137
 
# Router Advertisements
icmpv6.type == 134
 
# Neighbor Solicitations for a specific address
icmpv6.type == 135 && icmpv6.nd.ns.target_address == 2001:db8::10

راقب إعلانات الموجه لترى ما يوفره تكوين شبكتك:

# Filter RAs, expand ICMPv6 layer in packet details
# Check:
# - Flags (M, O)
# - Prefix information
# - DNS servers (RDNSS option)
# - MTU option

المشاكل الشائعة والحلول#

*المشكلة: المضيف ليس لديه عنوان IPv6 عالمي، فقط fe80::

التشخيص:

# Check for Router Advertisements
sudo tcpdump -i eth0 -n 'icmp6 && ip6[40] == 134'

الأسباب:

  • لا يوجد موجه على الشبكة
  • الموجه لا يرسل RAs
  • الجدار الناري يحجب النوع 134

الحل: مكّن IPv6 على الموجه، تحقق من تكوين RA، تحقق من قواعد الجدار الناري.


المشكلة: Ping يعمل لكن النقل الكبير يتوقف

التشخيص:

# Test with large ping packets
ping6 -s 1400 target.example.com

الأسباب:

  • نوع ICMPv6 2 محجوب في مكان ما
  • عدم تطابق MTU في المسار
  • الجدار الناري يفلتر Packet Too Big

الحل: اسمح بالنوع 2 عبر جميع الجدران النارية، تحقق من تكوين MTU.


المشكلة: لا يمكن الوصول إلى الجيران على نفس الشبكة الفرعية

التشخيص:

# Check neighbor cache
ip -6 neigh show
 
# Watch for Neighbor Solicitations
sudo tcpdump -i eth0 -n 'icmp6 && ip6[40] == 135'

الأسباب:

  • الجدار الناري يحجب الأنواع 135/136
  • المحول يفلتر multicast
  • IPv6 معطل على الهدف

الحل: اسمح بـ NDP عبر الجدران النارية، تحقق من تكوين multicast للمحول.


المشكلة: المضيفون يتجاهلون إعلانات الموجه

التشخيص:

# Verify RAs are arriving
sudo tcpdump -i eth0 -n 'icmp6 && ip6[40] == 134'
 
# Check accept_ra setting (Linux)
sysctl net.ipv6.conf.eth0.accept_ra

الأسباب:

  • accept_ra معطل (Linux)
  • إعادة توجيه IPv6 ممكنة على المضيف (تعطل معالجة RA)
  • RA لديه حد قفزة غير صالح (!= 255)

الحل: مكّن accept_ra، عطّل إعادة التوجيه على المضيفين النهائيين، تحقق من تكوين الموجه.

مقالات ذات صلة#

اختبر شبكتك

استخدم أداة Ping لاختبار اتصال ICMPv6 وأداة Traceroute لرؤية رسائل ICMPv6 Time Exceeded في العمل.

الأسئلة المتكررة#

هل يمكنني حجب ICMPv6 ping كما أفعل مع ICMP في IPv4؟

يمكنك تحديد المعدل أو حجب طلب/رد Echo (الأنواع 128-129) دون كسر الاتصال، لكنه يجعل استكشاف الأخطاء وإصلاحها أصعب بكثير. على عكس IPv4 حيث ICMP في الغالب تشخيصي، يتضمن ICMPv6 وظائف أساسية مثل اكتشاف الجيران واكتشاف MTU للمسار التي يجب ألا تحجبها أبداً. احجب ping إذا أردت، لكن لا تحجب أبداً الأنواع 1، 2، أو 133-136.

لماذا يستخدم NDP multicast بدلاً من البث مثل ARP؟

Multicast أكثر كفاءة. ARP في IPv4 يرسل بثاً يجب أن يعالجه كل مضيف على الشبكة، حتى لو لم يكونوا الهدف. NDP في IPv6 يستخدم عناوين multicast للعقدة المطلوبة محسوبة من عنوان IPv6 للهدف. فقط المضيفون الذين لديهم عناوين مطابقة يعالجون الحزمة - الجميع الآخر يفلترها في الأجهزة. هذا يقلل حمل CPU وضجيج الشبكة، خاصة على الشبكات الكبيرة.

ما الفرق بين طلب الموجه وإعلان الموجه؟

طلب الموجه (النوع 133) هو طلب يُرسل بواسطة المضيفين يطلب من الموجهات الإعلان عن أنفسها فوراً. إعلان الموجه (النوع 134) هو الاستجابة المُرسلة بواسطة الموجهات، تحتوي على بوادئ الشبكة ومعاملات التكوين ومعلومات الموجه. تُرسل الموجهات أيضاً RAs دورياً دون طلب. RS يتيح للمضيفين الحصول على التكوين بسرعة عند التشغيل بدلاً من انتظار RA الدورية التالية.

كم مرة يجب أن ترسل الموجهات إعلانات الموجه؟

توصي RFC 4861 بـ RAs بين 200-600 ثانية (3.3-10 دقائق) منفصلة. تفترض معظم التنفيذات 200 ثانية. تستجيب الموجهات أيضاً فوراً لطلبات الموجه. الفاصل يوازن بين التكوين السريع للمضيفين الجدد والحمل الأدنى للشبكة. متكرر جداً يهدر النطاق الترددي؛ نادر جداً يؤخر التكوين التلقائي.

لماذا تتطلب بعض رسائل ICMPv6 حد قفزة 255؟

متطلب حد القفزة 255 يمنع المهاجمين خارج الوصلة من إرسال رسائل اكتشاف جيران مزيفة. حزم NDP الشرعية تنشأ على الوصلة المحلية ودائماً تستخدم حد قفزة 255. الحزم من المهاجمين البعيدين ستمر عبر الموجهات، مما يخفض حد القفزة. برفض الحزم بحد قفزة < 255، تحمي المضيفون ضد إعلانات الموجه وإعلانات الجيران الخبيثة من خارج الشبكة المحلية.