شرح ICMPv6: البروتوكول الذي يجعل IPv6 يعمل
افهم ICMPv6، البروتوكول الأساسي لشبكات IPv6. تعرف على اكتشاف الجيران، إعلانات الموجه، ولماذا حجب ICMPv6 يعطل شبكتك.
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 لكنه تحمل مسؤولية أكبر بكثير.
| الميزة | ICMPv4 | ICMPv6 | التأثير |
|---|---|---|---|
| رقم البروتوكول | 1 | 58 | قيمة رأس IP التالي مختلفة |
| رسائل الخطأ | الوجهة غير قابلة للوصول، تجاوز الوقت، إلخ. | نفس الأخطاء، محسّنة | وظيفة مماثلة |
| التشخيص | طلب/رد Echo (ping) | طلب/رد Echo (ping) | غرض متطابق |
| حل العنوان | ARP (بروتوكول منفصل) | اكتشاف الجيران (ICMPv6) | ICMPv6 يستبدل ARP تماماً |
| اكتشاف الموجه | اكتشاف موجه ICMP (اختياري) | إعلان الموجه (إلزامي) | حرج للتكوين التلقائي |
| التجزئة | يتم التعامل معها بصمت بواسطة الموجهات | رسائل Packet Too Big | اكتشاف MTU للمسار مطلوب |
| إدارة Multicast | IGMP (بروتوكول منفصل) | رسائل 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: رسائل معلومات
هذا الانقسام يجعل الفلترة أسهل. رسائل الخطأ تبلغ عن مشاكل في تسليم الحزم. الرسائل المعلوماتية تتعامل مع الاستعلامات والردود واكتشاف الجيران/الموجه.
أنواع الرسائل الشائعة#
| النوع | الكود | الاسم | الفئة | الغرض |
|---|---|---|---|---|
| 1 | 0-6 | الوجهة غير قابلة للوصول | خطأ | المنفذ مغلق، المسار غير متاح، إلخ. |
| 2 | 0 | الحزمة كبيرة جداً | خطأ | تجاوز MTU على المسار |
| 3 | 0-1 | تجاوز الوقت | خطأ | الوصول إلى حد القفزة أو مهلة الجزء |
| 4 | 0-2 | مشكلة المعامل | خطأ | رأس الحزمة مشوه |
| 128 | 0 | طلب Echo | معلومات | طلب Ping |
| 129 | 0 | رد Echo | معلومات | استجابة Ping |
| 133 | 0 | طلب الموجه | معلومات | طلب معلومات الموجه |
| 134 | 0 | إعلان الموجه | معلومات | الموجه يعلن عن وجوده والإعداد |
| 135 | 0 | طلب الجار | معلومات | حل العنوان وقابلية الوصول |
| 136 | 0 | إعلان الجار | معلومات | استجابة للطلب |
| 137 | 0 | إعادة توجيه | معلومات | يوجد موجه قفزة أولى أفضل |
أرقام الأنواع مهمة
على عكس IPv4 حيث تستخدم أنواع ICMP أرقاماً متناثرة، فإن مساحة نوع ICMPv6 المنظمة تجعل قواعد الجدار الناري أوضح. الأنواع 133-137 تتعامل مع بروتوكول اكتشاف الجيران، مما يسهل السماح بـ NDP أو حجبه كمجموعة.
بروتوكول اكتشاف الجيران (NDP)#
يستبدل بروتوكول اكتشاف الجيران ARP في IPv4 ويضيف قدرات تعاملت معها IPv4 من خلال بروتوكولات متعددة. يعمل NDP بالكامل عبر ICMPv6 ويتعامل مع خمس وظائف حرجة:
- حل العنوان - ربط عناوين IPv6 بعناوين MAC (يستبدل ARP)
- اكتشاف الموجه - إيجاد الموجهات المحلية دون تكوين
- اكتشاف البادئة - تعلم بوادئ الشبكة للتكوين التلقائي
- اكتشاف المعامل - الحصول على MTU وحد القفزة ومعاملات أخرى
- تحديد القفزة التالية - تحديد أفضل موجه لوجهة
أنواع رسائل 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 آخر على الوصلة المحلية:
- تحقق من ذاكرة الجيران - هل عنوان MAC معروف بالفعل؟
- أرسل طلب الجار - إذا لم يكن كذلك، أرسل NS إلى عنوان multicast للعقدة المطلوبة
- استقبل إعلان الجار - الهدف يستجيب مع عنوان MAC
- تحديث الذاكرة المؤقتة - تخزين الربط للاستخدام المستقبلي
- إرسال الحزمة - تسليم الحزمة الأصلية
يتم حساب عنوان 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 مضبوط:
- خذ البادئة - مثل
2001:db8:1234::/64 - ولّد معرف الواجهة - 64 بت مشتقة من MAC أو عشوائية
- اجمعهما -
2001:db8:1234::a4b2:c3d4:e5f6:7890 - قم بتشغيل كشف العنوان المكرر - تأكد من أنه لا أحد آخر يستخدمه
- قم بتكوين العنوان - أضف إلى الواجهة
- حدد المسار الافتراضي - استخدم الموجه كقفزة تالية
هذا يحدث تلقائياً دون تدخل المستخدم أو خوادم DHCP.
الأعلام التي تتحكم في التكوين#
تتضمن إعلانات الموجه أعلاماً تخبر المضيفين بكيفية تكوين أنفسهم:
- M (Managed): استخدم DHCPv6 للعناوين (وليس SLAAC)
- O (Other): استخدم DHCPv6 للتكوين الآخر (DNS، NTP، إلخ.)
المجموعات الشائعة:
| M | O | السلوك |
|---|---|---|
| 0 | 0 | SLAAC فقط، لا DHCPv6 |
| 0 | 1 | SLAAC للعناوين، DHCPv6 لـ DNS/إلخ. |
| 1 | 0 | DHCPv6 للعناوين (غير معتاد) |
| 1 | 1 | DHCPv6 لكل شيء |
معظم الشبكات تستخدم M=0، O=0 (SLAAC نقي) أو M=0، O=1 (SLAAC + DHCPv6 لـ DNS).
اكتشاف MTU للمسار#
موجهات IPv6 لا تجزئ الحزم. يجب على المصدر إرسال حزم صغيرة بما يكفي لتناسب المسار بالكامل. هنا يصبح نوع ICMPv6 2 حرجاً.
كيف يعمل PMTUD#
- المضيف يرسل حزمة - يستخدم MTU للواجهة (عادةً 1500 بايت)
- الموجه يواجه MTU أصغر - لا يمكن التجزئة في IPv6
- الموجه يسقط الحزمة - يرسل رسالة ICMPv6 Packet Too Big إلى الوراء
- الرسالة تتضمن MTU - تخبر المُرسل بالحجم الأقصى المسموح
- المضيف يقلل حجم الحزمة - يعيد الإرسال بـ MTU أصغر
- الاتصال يستمر - باستخدام حجم الحزمة المناسب
تنسيق رسالة 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 1240MTU للمسار أصغر مما افترضه المرسل. يجب على المرسل تقليل حجم الحزمة إلى 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، عطّل إعادة التوجيه على المضيفين النهائيين، تحقق من تكوين الموجه.
مقالات ذات صلة#
- أساسيات IPv6 - تعلم أساسيات عناوين IPv6 ولماذا يوجد IPv6.
- تكوين جدار IPv6 الناري - قم بتكوين جدارك الناري للسماح بـ ICMPv6 الأساسي مع الحفاظ على الأمان.
- استكشاف أخطاء IPv6 وإصلاحها - شخّص وأصلح مشاكل اتصال IPv6 الشائعة باستخدام ICMPv6.
اختبر شبكتك
استخدم أداة 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، تحمي المضيفون ضد إعلانات الموجه وإعلانات الجيران الخبيثة من خارج الشبكة المحلية.