FlowingDev

CIDR والشبكات الفرعية: تقطيع الإنترنت إلى أحياء

تعلّم كيف تقوم صيغة CIDR والشبكات الفرعية بتقسيم فضاء عناوين IPv4 الشاسع إلى شبكات يمكن إدارتها، وتحديد كيفية تحدث الأجهزة مع بعضها البعض على الإنترنت.

جرّب الأداة: حاسبة الشبكة الفرعية / CIDR

من الآخر

CIDR هي طريقة الإنترنت في رسم حدود الملكية، محوّلةً حقلاً هائلاً وفوضوياً من عناوين IP إلى أحياء منظمة وسهلة الإدارة يمكن لبياناتك أن تجد فيها موطنها.

المشكلة التي يحلها

ارجع بذاكرتك إلى بدايات الإنترنت في الثمانينيات. كانت الحياة بسيطة. إذا احتجت عناوين IP، كنت تطلب "فئة" (class) منها. كان لديك ثلاثة خيارات رئيسية:

  • Class A: 16,777,214 عنوان جهاز (host). للعمالقة.
  • Class B: 65,534 عنوان جهاز (host). للمنظمات الكبيرة.
  • Class C: 254 عنوان جهاز (host). للصغار.

كان هذا النظام "القائم على الفئات" (classful) جامداً ومُهدِراً للموارد بشكل لا يصدق. تخيل أنك تحتاج 300 عنوان IP. فئة C صغيرة جداً، لذا عليك أن تحصل على فئة B. تهانينا، لقد حصلت للتو على 65,534 عنواناً وأنت الآن تهدر 65,234 منها. كان الأمر أشبه بحاجتك إلى سكوتر وإجبارك على شراء شاحنة بـ 16 عجلة.

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

في عام 1993، قدمت مجموعة من المهندسين RFC 1518 و 1519، والتي عرّفت التوجيه غير الفئوي بين النطاقات، أو CIDR (تُنطق "سايدر"). ألغى CIDR فئات A/B/C الجامدة. وقدم طريقة جديدة ومرنة لتحديد كتلة من العناوين من أي حجم.

لقد غيّرت هذه التقنية قواعد اللعبة. فقد سمحت لمزودي خدمة الإنترنت (ISPs) بتخصيص كتل عناوين "مناسبة تماماً" لعملائهم، مما أبطأ بشكل كبير من استنفاد عناوين IPv4. كما سمحت أيضاً بـ "تجميع المسارات" (route aggregation)، حيث يمكن لإدخال واحد في جدول التوجيه أن يمثل آلاف المسارات الفردية، مما أنقذ العمود الفقري للإنترنت من الانهيار تحت وطأة وزنه.

كيف يعمل تحت الغطاء

لكي تفهم CIDR، عليك أولاً أن تتقبل حقيقة أساسية: عناوين IP هي للحواسيب، لا للبشر. الصيغة العشرية المنقطة (192.168.1.10) هي مجرد كذبة مريحة نقولها لأنفسنا. الحقيقة هي النظام الثنائي (binary).

أولاً، تذكير سريع بعناوين IP والنظام الثنائي

عنوان IPv4 هو رقم مكون من 32 بت. هذا كل شيء. اثنان وثلاثون من الآحاد والأصفار. نقوم بتقسيمه إلى أربع قطع من 8 بت (أوكتيت) ونحول كل قطعة إلى رقم عشري (0-255) لجعله قابلاً للقراءة.

لنأخذ العنوان 172.20.129.45:

   172   .    20   .    129   .    45
10101100 . 00010100 . 10000001 . 00101101

كل حسابات شبكات IP، بما في ذلك CIDR، تحدث على هذا المستوى الثنائي.

قناع الشبكة الفرعية (Subnet Mask): خاتم فك التشفير السحري

كل عنوان IP يعيش حياة مزدوجة. جزء منه يحدد الشبكة التي ينتمي إليها (اسم شارعه)، والجزء الآخر يحدد الجهاز (host) المحدد على تلك الشبكة (رقم منزله).

كيف يعرف الكمبيوتر أين ينتهي جزء ويبدأ الآخر؟ يستخدم قناع الشبكة الفرعية (subnet mask). قناع الشبكة الفرعية هو رقم آخر مكون من 32 بت يعمل كمرشح (filter). إليك كيف يعمل:

  1. قناع الشبكة الفرعية هو سلسلة من 1s متتالية تليها سلسلة من 0s.
  2. الـ 1s تقابل جزء الشبكة من العنوان.
  3. الـ 0s تقابل جزء الجهاز (host) من العنوان.

للعثور على عنوان الشبكة، يقوم الكمبيوتر بعملية AND ثنائية (bitwise) بين عنوان IP وقناع الشبكة الفرعية.

لنفترض أن عنوان IP الخاص بنا هو 172.20.129.45 وقناعنا هو 255.255.0.0.

IP Address:  10101100.00010100.10000001.00101101  (172.20.129.45)
Subnet Mask: 11111111.11111111.00000000.00000000  (255.255.0.0)
-----------------------------------------------------------------
Network ID:  10101100.00010100.00000000.00000000  (172.20.0.0)

النتيجة، 172.20.0.0، هي "اسم الشارع" لكل جهاز في هذه الشبكة.

وهنا يأتي دور CIDR: اختصار قناع الشبكة الفرعية

كتابة 255.255.255.0 أمر ممل. صيغة CIDR هي اختصار بسيط. إنها مجرد عنوان IP، وشرطة مائلة (/)، وعدد 1s البادئة في قناع الشبكة الفرعية. يسمى هذا الرقم طول البادئة (prefix length).

لاحقة CIDR قناع الشبكة الفرعية عدد 1s القناع الثنائي
/8 255.0.0.0 8 11111111.0000...
/16 255.255.0.0 16 11111111.11111111.0000...
/24 255.255.255.0 24 11111111.11111111.11111111.00000000
/29 255.255.255.248 29 ...11111111.11111000
/32 255.255.255.255 32 كلها 1s (جهاز واحد فقط)

لذا، 172.20.129.45 مع قناع 255.255.0.0 يُكتب ببساطة 172.20.129.45/16. سهلة جداً.

حساب الأشياء المفيدة

بمعرفة عنوان CIDR مثل 10.50.84.111/22، يمكننا معرفة كل شيء عن حيه في الشبكة.

  • البادئة (Prefix): /22. هذا يعني أن 22 بت مخصصة للشبكة، والباقي 32 - 22 = 10 بت مخصصة للأجهزة (hosts).

  • عنوان الشبكة (Network Address): هذا هو أول عنوان في النطاق، حيث تكون جميع بتات الأجهزة 0. نجده بعملية AND.

    • IP: 10.50.84.111 -> 00001010.00110010.01010100.01101111
    • Mask /22: 255.255.252.0 -> 11111111.11111111.11111100.00000000
    • نتيجة AND: 00001010.00110010.01010100.00000000 -> 10.50.84.0
    • إذاً، عنوان الشبكة هو 10.50.84.0.
  • عدد الأجهزة (Hosts): لدينا 10 بتات للأجهزة. عدد العناوين الممكنة هو 2^10 = 1024.

  • الأجهزة القابلة للاستخدام: يجب أن نطرح عنوانين. لماذا؟

    1. العنوان الأول (كل بتات الأجهزة 0) هو عنوان الشبكة نفسه. إنه اسم الشارع، وليس منزلاً.
    2. العنوان الأخير (كل بتات الأجهزة 1) هو عنوان البث (Broadcast Address). إرسال حزمة بيانات إلى هنا يشبه الصياح "يا جماعة!" لكل جهاز على الشبكة.
    • لذا، الأجهزة القابلة للاستخدام = (2^10) - 2 = 1024 - 2 = 1022.
  • عنوان البث (Broadcast Address): هو عنوان الشبكة مع قلب جميع بتات الأجهزة إلى 1.

    • الشبكة: 00001010.00110010.01010100.00000000
    • البث: 00001010.00110010.01010111.11111111 -> 10.50.87.255
  • نطاق الأجهزة (Host Range): العناوين القابلة للاستخدام هي كل شيء بين عنوان الشبكة وعنوان البث.

    • أول جهاز قابل للاستخدام: 10.50.84.1 (عنوان الشبكة + 1)
    • آخر جهاز قابل للاستخدام: 10.50.87.254 (عنوان البث - 1)

إذاً، 10.50.84.111/22 هو جهاز على شبكة 10.50.84.0، والتي تدعم 1022 جهازاً من 10.50.84.1 إلى 10.50.87.254.

قصص من الواقع

### كارثة التكلفة السحابية

قامت شركة ناشئة واعدة ببناء بنيتها التحتية على سحابة عامة. وبسبب حماسهم لبدء البرمجة، قبلوا إعدادات الشبكة الافتراضية لشبكتهم السحابية الخاصة (VPC)، والتي حجزت كتلة ضخمة من نوع /16 (65,534 عنوان IP). بعد بضعة أشهر، حصلوا على عميل ضخم يحتاج إلى اتصال مباشر وآمن بين بيئاتهم السحابية. المشكلة؟ العميل أيضاً استخدم نفس الكتلة الافتراضية /16. كانت مساحات العناوين الخاصة بهم، 10.10.0.0/16 و 10.10.0.0/16، متطابقة. لا يمكنك التوجيه بين مكانين يدعي كلاهما أنهما نفس العنوان. اضطرت الشركة الناشئة إلى قضاء أسبوع محموم في إعادة بناء شبكتها بالكامل من الصفر على نطاق CIDR جديد وغير متداخل.

الدرس: خطط لمساحة عناوين شبكتك كما لو كنت تخطط لمدينة. حتى لو كنت تحتاج فقط إلى قرية صغيرة الآن، اترك مساحة للطرق السريعة للاتصال بمدن أخرى لاحقاً. لا تقبل الإعدادات الافتراضية فقط.

### الجهاز الغامض غير المتصل

كُلّف مسؤول شبكات مبتدئ بإعداد خادم مراقبة جديد. أُعطي نطاق IP 192.168.100.0/24. قام بتهيئة الخادم بعنوان IP 192.168.100.255. واجهة الشبكة للخادم عملت، لكنه كان شبحاً. لم يتمكن من عمل ping للبوابة (gateway)، ولم يتمكن أي شيء على الشبكة من عمل ping له. بعد ساعة من فحص الكابلات وإعادة تثبيت التعريفات، مر مهندس أقدم، ألقى نظرة على الشاشة لمدة ثانيتين، وقال: "هذا هو عنوان البث الخاص بك." قاموا بتغيير الـ IP إلى 192.168.100.254، واتصل بالإنترنت على الفور.

الدرس: العنوانان الأول والأخير في أي شبكة فرعية هما عنوانان خاصان ولا يمكن تخصيصهما لجهاز. إنهما هوية الشبكة ومكبر الصوت الخاص بها، على التوالي.

### ساحر الواي فاي المنزلي

كانت شبكة منزل مطورة في حالة من الفوضى. مع أجهزة الكمبيوتر المحمولة، والهواتف، والتلفزيونات الذكية، ومكبرات الصوت، والمصابيح الكهربائية، ومحمصة خبز "ذكية"، كانت الأجهزة تفقد الاتصال بالواي فاي باستمرار. بالنظر إلى صفحة إدارة الراوتر الخاص بها، رأت أن خادم DHCP تم تكوينه للنطاق 192.168.1.0/28. عملية حسابية سريعة أظهرت أن /28 يوفر فقط (2^(32-28)) - 2 = 14 عنوان IP قابل للاستخدام. عائلتها لديها أكثر من 30 جهازاً! قامت بتغيير قناع الشبكة الفرعية لشبكتها المحلية (LAN) من 255.255.255.240 (/28) إلى 255.255.255.0 (/24)، مما زاد عدد عناوين IP المتاحة إلى 254. اختفى عدم استقرار الواي فاي على الفور.

الدرس: الشبكات الفرعية ليست فقط لمراكز البيانات. إنها تحدد عدد الأجهزة التي يمكن أن تنضم إلى شبكتك المحلية، والشبكة الفرعية ذات التكوين السيء هي سبب شائع لـ "ضعف الواي فاي".

أخطاء وفخاخ شائعة

  • نسيان العنوانين المحجوزين. خطأ "الفرق باثنين" الكلاسيكي. تحسب 2^h وتخبر شخصاً ما أن لديه هذا العدد من العناوين، لكنك تنسى طرح عنوان الشبكة وعنوان البث. يؤدي هذا إلى أخطاء في التكوين وشبكات أصغر قليلاً مما هو مطلوب.
  • الشبكات الفرعية المتداخلة. كما رأينا في قصة السحابة، إذا كانت هناك شبكتان تحتاجان إلى التواصل ولديهما نطاقات IP متداخلة، فأنت في عالم من المعاناة. يصبح التوجيه غامضاً وغالباً مستحيلاً بدون اختراقات معقدة وقبيحة لترجمة عناوين الشبكة (NAT). خطط مسبقاً!
  • التفكير بالنظام العشري. لا يمكنك فهم الشبكات الفرعية بشكل صحيح من خلال النظر إلى الأرقام العشرية. 192.168.0.255 و 192.168.1.0 يبدوان وكأنهما متجاوران. إذا كنت في شبكة /24، فهما في شبكتين مختلفتين. إذا كنت في شبكة /23، فهما في نفس الشبكة. كل هذا يتوقف على مكان وجود الحد الثنائي.
  • إساءة استخدام /31. شبكة /31 لديها 2^(32-31) = 2 عنوانين. القواعد القديمة كانت تقول إنه بعد حجز عنوان الشبكة والبث، يتبقى صفر من الأجهزة القابلة للاستخدام. ومع ذلك، قام RFC 3021 بتحديث هذا للروابط الخاصة من نقطة إلى نقطة (point-to-point) (على سبيل المثال، ربط جهازي توجيه)، حيث لا حاجة للبث. لشبكة عادية مع عملاء، فهي عديمة الفائدة.
  • الخطأ في كتابة البادئة. من السهل كتابة /23 عندما تقصد /24. فرق رقم واحد يمكن أن يكون الفرق بين شبكة من 254 جهازاً وشبكة بها 510 أجهزة، مما يغير حدود الشبكة تماماً وقد يسبب تعارضات. تحقق جيداً من البادئة.

لماذا يجب أن تهتم به

قد تعتقد أن هذا الأمر مخصص فقط لمهندسي الشبكات المحترفين. أنت مخطئ.

  • مهندسو السحابة وDevOps: هذه هي حياتكم. تصميم VPCs/VNETs في AWS أو Azure أو GCP هو تمرين في تخطيط CIDR. ارتكاب خطأ في البداية يؤدي إلى عمليات ترحيل مكلفة ومعقدة لاحقاً.
  • مطور الواجهة الخلفية (Backend): لا يمكنك الاتصال بقاعدة بياناتك؟ ربما يكون خادم التطبيق على 10.0.1.0/24 وقاعدة البيانات على 10.0.2.0/24. إذا لم يكن هناك جهاز توجيه مهيأ بينهما، فقد يكونان على كوكبين مختلفين. فهم الشبكات الفرعية هو خطوة أساسية في تصحيح الأخطاء.
  • محترفو الأمن: قواعد جدار الحماية (Firewall) غالباً ما تعتمد على كتل CIDR. للسماح بالوصول من مكتب بأكمله، لا تضيف 200 عنوان IP فردي؛ بل تضيف قاعدة واحدة لـ 10.5.0.0/22. لحظر جهة فاعلة سيئة معروفة، تقوم بحظر نطاق CIDR الخاص بها.
  • أي شخص يشغل كودًا: حتى لو كنت تعمل فقط على localhost، فأنت تستخدم شبكة. معرفة أن 127.0.0.1 هو مجرد جهاز واحد في كتلة 127.0.0.0/8 العملاقة للاتصال بالذات (loopback) يساعد في إزالة الغموض عن جزء أساسي من التطوير المحلي.

في عالم من الخدمات المترابطة، والحاويات (containers)، والبنية التحتية السحابية، لم تعد الشبكة مشكلة شخص آخر. فهم دفتر عناوينها هو قوة خارقة للمطور العصري.

تعمق أكثر

انتهينا من النظرية. حان وقت التطبيق — 100% في متصفحك.

جرّب الأداة: حاسبة الشبكة الفرعية / CIDR