تقودنا معرفتنا بالأعداد الثنائية إلى التعرف على بنية عناوين IP وأفضل الطرق لحجزها؛ إذ سنشرح في هذا الدرس العمليات على الشبكات ذات الفئات (classful) أو عديمة الفئات (classless)، بما في ذلك استعمال الشبكات الفرعية (subnets)؛ وسنشرح مستخدمين أمثلةً واقعيةً تصف عملية حساب عناوينIP للمضيفين؛ وسنشرح أيضًا استعمال قناع الشبكة الفرعية (subnet mask)، وكيف تُستعمَل من الموجِّهات. وستتاح لك الفرصة للتدرب على العمليات على قناع الشبكة الفرعية بعناوين IP ذات الفئات A، و B، و C.
مخطط الشبكات المسطحة
عندما نتحدث عن التوجيه، فنميل إلى التفكير بتمرير الرزم الشبكية إلى الوجهات البعيدة؛ وأول ما سيطرأ ببالنا هي شبكات WAN والإنترنت؛ لكن من المنطقي استعمال التوجيه في شبكة الحرم الجامعي مثلًا، أو حتى في شبكات محلية صغيرة لخدمة غرض تقسيم البيانات التراسليّة (traffic segmentation)؛ فإن لم يكن لديك موجه في شبكتك، فهذا يعني أننا نتحدث عن شبكة مسطحة (flat) حيث فيها كل الأجهزة متصلة إلى نفس «القطعة» (segment) المنطقية؛ تُمثِّل القطعة المنطقية مجالًا إذاعيًا، ولهذا السبب ستتشارك جميع الأجهزة في شبكةٍ مسطحةٍ مجالَ الإذاعة نفسه مما يعني أنَّها ستشاهد جميع الرسائل الإذاعية المُرسَلة من بقية الأجهزة، مما يؤثِّر على أداء الشبكة. المُكوِّن الوحيد الذكي في آلية ترشيح الرزم الشبكية هي المبدِّلات التي تعمل في الطبقة الثانية، التي تمرِّر الرزم الشبكيّة بناءً على عناوين MAC؛ وتلك العناوين ليست ذاتُ بنيةٍ هيكليةٍ مما يجعل الشبكة «مسطحة». وكلما أضفت أجهزةً إلى الشبكة، فسيقل مستوى الأداء؛ يمكن أن تُستعمَل الموجِّهات في مثل هذه الحالات لتقسيم الشبكة إلى عدِّة مجالاتٍ إذاعية أو شبكاتٍ فرعية.
الشبكات الفرعية
المزايا التي سنحصل عليها لا ترتبط بتحسين الأداء فحسب، بل عندما تُقطِّع الشبكة إلى شبكاتٍ فرعيّة مختلفة، فسيقل تراسل البيانات الإجمالي، وستمثِّل كل شبكة فرعية مجالًا إذاعيًا مختلفًا، ولهذا فلن تستطيع البيانات الإذاعية القادمة من قسم «الهندسة» -في هذا المثال- الوصول إلى قسم «التصنيع».
يمنع الموجِّه مرور الرسائل الإذاعية؛ لكن هنالك المزيد من الميزات التي تأتي من الشبكات الفرعية؛ إذ يُمكِّنك تُقسيم الشبكة إلى قطعٍ صغيرة من اتباع منهجية «فرِّق تسد» لتسهيل الإدارة؛ ويُمكِّنك أيضًا من تطبيق سياسات (polices) مختلفة خاصة بكل قطعة من قطع الشبكة؛ إذ يُطبِّق الموجِّه السياسة المُعتمَدة، لأنه يتحكم بمرور البيانات من شبكةٍ فرعيةٍ إلى أخرى، وهذا يؤدي أيضًا إلى عزل مشاكل الشبكات؛ فلو حدث عطبٌ ما في شبكةٍ فرعيةٍ، فلن يكون له تأثيرٌ يُذكر على بقيّة الشبكات.
تتعلق المزايا الأخرى بالأمان؛ فلن تستطيع هجمات الحرمان من الخدمة (denial of service) الوصول إلى الشبكات الفرعية الأخرى إن كان يعمل الموجِّه كجدارٍ ناريٍ بينهم. وبغض النظر عن سبب تقسيمك للشبكة إلى شبكاتٍ فرعية، فيجب أن نُسنِد لكل شبكةٍ فرعيةٍ مُعرِّفًا فريدًا (subnet ID) ثم سيكون للمضيفين في تلك الشبكة الفرعية «مُعرِّف مضيف» (host ID) فريد في عنوان IP.
ماذا يفعل قناع الشبكة الفرعية
كيف نستطيع معرفة أي قسم من عنوان IP خاصٌ بالشبكة أو خاصٌ بالمضيف؟ في الشبكات ذات الفئات (classful)، ستخبرنا الفئة أيّة بايتات مخصصة لمعرِّف الشبكة وأيّة بايتات مخصصة للمضيف؛ وعندما نُنشِئ شبكة فرعية لعنوان IP ذي فئةٍ معيّنة، فإننا «نسرق» بعض البتات من قسم المضيف من العنوان ونجعلها جزءًا من قسم الشبكة الفرعية في العنوان؛ وبهذا تصبح لدينا «طبقة» جديدة في الهيكلية، إذ لدينا شبكة مُعرَّفة عبر فئة (class) ثم شبكة فرعية ثم المضيف؛ حيث نُقسِّم الشبكات إلى شبكاتٍ فرعية ثم ستحتوي تلك الشبكات الفرعية المضيفين.
تلك الهيكلية شبيهة بنظام الترقيم الهاتفي؛ لدينا رمز الدولة ثم رمز المدينة ثم أرقام الهواتف؛ وهذه بيئة عديمة الفئات؛ أما في بيئة ذات فئات، فإن الفئة لا تخبرنا أيّ جزء من العنوان مخصص للشبكة أو للشبكة الفرعية أو للمضيفين؛ إذ أنَّ تلك المعلومات موجودة في قناع الشبكة الفرعية، الذي يخبرنا بآلية تقسيم العناوين. وفي هذا السياق، لا يشبه قناع الشبكة الفرعية الأقنعة التي يرتديها الأولاد الصغار؛ وإنما مَثَلُه كمَثَلِ نظارةٍ لتنظر إلى العناوين بشكلٍ مختلف. وهو أداة قياس تخبرك بطول قسم الشبكة من العنوان، ثم قسم الشبكة الفرعية، ثم ما بقي مُخصصٌ للمضيفين.
الشبكات الفرعية والمضيفون المحتملون في شبكة ذات الفئة C
سيُستعمَل قناع الشبكة الفرعية من المضيفين للتعرف على بيانات التراسل التي تخرج من شبكتهم الفرعية، وسيُستعمَل أيضًا من الموجِّهات للتعرف على الشبكات والشبكات الفرعية ليكون قادرًا على تمرير الرزم الشبكيّة بينها. وإذا ابتغينا الدقة، القناع ما هو إلا آليةٌ لاقتراض البتات، فالمثال هنا يتحدث عن شبكة ذات الفئة C؛ تخبرنا الفئة C أنَّ أول ثلاثة بايتات من العنوان تُمثِّل قسم الشبكة، بينما يمثِّل آخر بايت قسم المضيفين؛ وعندما نُنشِئ شبكةً فرعيةً فستبقى بايتات الشبكة ثابتةً، وسنحتاج إلى استخدام بعض البايتات المخصصة للمضيفين للشبكة الفرعية؛ القاعدة العامة هنا هي أننا «نقترض» البايتات، بكلامٍ آخر، كلما أخذنا بايتات أكثر من قسم المضيف، كلما قلّ عدد المضيفين الذي يمكن أن يتواجدوا في الشبكة الفرعية، لكن سيزداد بذلك عدد الشبكات الفرعية التي سنُنشِئها؛ حيث يعتمد عدد الشبكات الفرعية وعدد المضيفين على عدد البتات التي سنقترضها، الذي سيكون من قوى الأساس 2.
عدد البتات المُقتَرَضة |
عدد الشبكات الفرعية المحتملة |
عدد البتات الباقية في قسم مُعرِّف المضيف |
عدد المضيفين المحتملين في كل شبكة فرعية |
---|---|---|---|
1 |
2 |
7 |
128 |
2 |
4 |
6 |
64 |
3 |
8 |
5 |
32 |
4 |
16 |
4 |
16 |
5 |
32 |
3 |
8 |
6 |
64 |
2 |
4 |
7 |
128 |
1 |
2 |
في هذا المثال عن الفئة C، يمكننا أن نفرض عدد البتات التي سنقترضها (رمزنا لها بالرمز S)، ثم سيعطينا ذلك H الذي هو عدد المضيفين، إذ أنَّ H هو ناتج 8-S. تذكَّر أنَّه كلما اقترضنا بتات للشبكات الفرعية، كلما قلَّ عدد المضيفين الذي يمكن أن يصبحوا جزءًا منها، وأنَّ عدد البتات الكلي الذي يمكنك اقتراضه في شبكات ذات الفئة C هو 8.
إذا استعملنا بتًا وحيدًا، فيمكننا تمثيل «2 للأس 1» كعدد للشبكات الفرعية التي حاصلها هو شبكتان فرعيتان؛ مما يبقي لنا 7 بتات للمضيف، وهذا يعني 126 احتمالًا مختلفًا لعناوين المضيفين في كل شبكة فرعية؛ لاحظ أنَّ 2 للأس 7 تُعطي 128، لكن هنالك عنوانان محجوزان يُمثِّلان الشبكة نفسها وعنوان الإذاعة. ستحصل على نتائج مشابهة إذ اقترضت المزيد من البتات؛ لكن تذكر أنَّه كلما اقترضت بتاتٍ أكثر، كلما قل عدد المضيفين في شبكتك الفرعية.
الشبكات الفرعية والمضيفون المحتملون في شبكة ذات الفئة B
لدينا المزيد من البتات في قسم المضيف لنقترض منها في الفئة B؛ حيث أنَّ الطريقة مشابهة جدًا لما شرحناه أعلاه؛ ففي هذا المثال سنقترض -مثلًا- 4 بتات (إذ لدينا 16 شبكة فرعية في شبكةٍ ذات الفئة B) مما يُبقي لدينا 12 بت للمضيفين؛ وفي هذه المرة لدينا 16 بت ناقص 4 يساوي 12؛ و2 للقوة 12 تُنتِج 4096؛ ثم سنطرح عنوانين محجوزين مما يُبقي 4094 مضيفًا في كل شبكة فرعية.
عدد البتات المُقتَرَضة |
عدد الشبكات الفرعية المحتملة |
عدد البتات الباقية في قسم مُعرِّف المضيف |
عدد المضيفين المحتملين في كل شبكة فرعية |
---|---|---|---|
1 |
2 |
15 |
32766 |
2 |
4 |
14 |
16382 |
3 |
8 |
13 |
8190 |
4 |
16 |
12 |
4094 |
5 |
32 |
11 |
2046 |
6 |
64 |
10 |
1022 |
7 |
128 |
9 |
510 |
... |
... |
... |
... |
الشبكات الفرعية والمضيفون المحتملون في شبكة ذات الفئة A
والأمر سيانٌ للشبكات ذات الفئة A؛ لكننا نتملك هذه المرة عددًا أكبر من البتات لنقترضها، وهذه الفئة هي أكثر الفئات مرونةً فيما يتعلق بموضوع الشبكات الفرعية، وهذا هو سبب اشتهار الشبكة 10 (عنوان من الفئة A للشبكات الخاصة [private]) كأكثر عناوين الشبكات الخاصة استعمالًا. وبهذا يمكننا أن نقترض البايت الثاني بأكمله لتمثيل الشبكة الفرعية، وتبقى لدينا إمكانية وصل عدِّة آلاف من المضيفين في كل شبكة فرعية.
عدد البتات المُقتَرَضة |
عدد الشبكات الفرعية المحتملة |
عدد البتات الباقية في قسم مُعرِّف المضيف |
عدد المضيفين المحتملين في كل شبكة فرعية |
---|---|---|---|
1 |
2 |
23 |
8388606 |
2 |
4 |
22 |
4194302 |
3 |
8 |
21 |
2097150 |
4 |
16 |
20 |
1048574 |
5 |
32 |
19 |
524286 |
6 |
64 |
18 |
262142 |
7 |
128 |
17 |
131070 |
... |
... |
... |
... |
آلية عمل القناع في المضيفين
سيستخدم المضيفون قناع الشبكة الفرعية للتعرف على الشبكة التي يتواجدون فيها من ناحية هيكلية عنوان IP؛ ثم سيقارنون تلك الشبكة مع عنوان الوجهة للرزم الشبكية المُرسَلة منهم؛ فإن طابق عنوانُ الوجهة الشبكةَ التي يتواجدون فيها اعتمادًا على قيمة القناع، فسيحاولون إرسال طلبية ARP لمحاولة الحصول على عنوان MAC للوجهة، ثم سيمررون الرزم مباشرةً إلى الوجهة في الشبكة الفرعية المحلية.
أما لو لم تتطابق الشبكة في المصدر والوجهة، فهذا يعني أنَّ الوجهة في شبكةٍ أخرى وسنحتاج إلى عنوان IP للموجِّه لتمرير الرزم إلى الوجهة البعيدة؛ وعنوان الموجه ما هو إلا البوابة الافتراضية المضبوطة في كل جهاز من أجهزة الشبكة.
كيف تستعمل الموجهات قناع الشبكة الفرعية
آلية عمل قناع الشبكة الفرعية هي ذاتها في الموجِّهات، لكن الموجِّهات ستستعمل هذه المعلومات بطريقةٍ مختلفة، إذ أنها تستلم الرزم الشبكيّة لكي تمررها إلى الوجهة المطلوبة؛ وستستخدم القناع لمقارنة عنوان IP الوجهة بعناوين الشبكات الموجودة في جدول التوجيه. أعراف تسمية قناع الشبكة الفرعية هي / ثم رقم، الذي يخبر الموجِّه أيّة بايتات ستمثِّل قسم الشبكة من العنوان؛ الرمز /24 يعني أنَّ أول 3 بايتات أو أول 24 بت هي قسم الشبكة من العنوان.
يحاول المضيف A -في هذا المثال- إرسال رزم شبكيّة إلى الوجهة 10.3.1.23، ويستعمل ذاك المضيف القناع /24 لمقارنة مُعرِّف شبكته الفرعية التي هي 10.1.1، لكن وجد أنَّ أول 3 بايت من مُعرِّف الشبكة الفرعية للوجهة التي هي 10.3.1 لا تتطابق، لهذا سيُرسِل المضيف A الرزم إلى الموجِّه؛ ثم سيستعمل الموجِّه معلومات القناع لمطابقة الشبكة الفرعية الوجهة في جدول التوجيه الخاص به، وكما هو ظاهر في المخطط أعلاه، الشبكات الموجودة في جدول التوجيه هي شبكات /24 لذلك سيُقارِن الموجِّه أول 3 بايتات مع عنوان IP للوجهة كي يرى إن كانت هنالك مُدخَلة تُطابِق الوجهة. ثم سيكمل الموجِّه عمله بتمرير الرزم إلى المنفذ الموافق للوجهة الذي هو Fa0/0؛ ومن هنا تصل الرزمة إلى الموجِّه B، الذي يجري العملية ذاتها لتوصيل الرزمة إلى الشبكة الفرعية المتصلة به مباشرةً.
خطة تطبيق الشبكات الفرعية
علينا التأكد من عدِّة أشياء قبل أن نُقسِّم شبكاتنا إلى شبكاتٍ فرعية؛ فعلينا أولًا تخطيط لاستراتيجية التقسيم، ثم نقترض عدد البتات الملائم من قسم المضيف في العنوان لتمثيل الشبكات الفرعية؛ وبعد اكتمال مرحلة التصميم، سنحتاج إلى حجز وإسناد الشبكات الفرعية إلى مختلف القطع الشبكيّة. إذ أنَّ قناع الشبكة الفرعية هو أداةٌ تُخبِرُ الأجهزةَ والمضيفين والموجهات كيف ستقرأ وتُمرِّر الرزم الشبكيّة إلى الوجهة.
القيم الثمانية لقناع الشبكة الفرعية
أصبحنا الآن نعرف لماذا نحتاج إلى قناع الشبكة الفرعية، لكن كيف يبدو وكيف نصممه؟ حسنًا، القناع ما هو إلا سلسلة مكونة من 4 بايتات شبيهة بعنوان IP؛ أي بكلامٍ آخر، سلسلة من 32 بت، إما 1 أو 0. لذلك يشابه القناع عناوين IP لكنه ليس منهم؛ فهو يأتي مع عناوين IP للسماح لك بالتعرف على قسم المضيف وقسم الشبكة من العنوان؛ وفي هذا السياق، كل 1 في القناع يعني أنَّ البت الموافق له في عنوان IP هو جزء من قسم الشبكة من العنوان؛ وكل 0 في القناع يُشير إلى أنّ البت الموافق له في عنوان IP سيكون من قسم المضيف.
تذكر أننا قلنا أن قناع الشبكة الفرعية هو آلية «اقتراض»؛ فسننقل (shift) القناع الافتراضي إلى اليمين ونقترض البتات من قسم المضيفين من العنوان، وهذا سيُنتِج ميزةً محوريةً في قناع الشبكة، ألا وهي أنَّ الواحدات (1) متتالية ومتعاقبة دومًا، وكذلك الأصفار.
عندما ننتقل إلى الأسفل في الرسم التوضيحي السابق، نجد أنَّ تتالي الأرقام منطقي بعد تعلمنا للتحويل من النظام الثنائي إلى النظام العشري. وفي النهاية، سترى أنَّ وجود الرقم 1 في جميع البتات يساوي الرقم 255، الذي هو أكبر قناع للشبكة الفرعية، أو تمثيل للقناع كعدد عشري لأي بايت؛ وهذا هو سبب كون ناتج 24 بت متتالي يحتوي على 1 هو قناع الشبكة الفرعية 255.255.225.0؛ أصبح الأمر مربكًا الآن، لنلقِ نظرةً على بعض الأمثلة كي تتضح بعض الأمور.
الأقنعة الافتراضية للشبكات الفرعية
في حالة عناوين IP من الفئة A (10.0.0.0) يُعرِّف القناع الافتراضي -الذي يخبرنا ما هي فئة العنوان- قسم الشبكة من العنوان الذي سيكون البايت الأول كله واحدات (1) وبقية البايتات الثلاثة كلها أصفار (0)، الذي قيمته هي 255.0.0.0 في النظام العشري. لكن ما هي /8؟ نحن البشر كسالى! فبدلًا من كتابة 255.0.0.0 نود أن نختصر ونكتب /8 الذي يعني أنَّه في القناع 8 بتات متتالية قيمتها 1 والباقي أصفار.
عنوان من الفئة A (عشري) |
10.0.0.0 |
---|---|
عنوان من الفئة A (ثنائي) |
00001010.00000000.00000000.00000000 |
القناع الافتراضي للفئة A (ثنائي) |
11111111.00000000.00000000.00000000 |
القناع الافتراضي للفئة A (عشري) |
255.0.0.0 |
طول اللاحقة الافتراضي |
/8 |
عنوان من الفئة B (عشري) |
172.16.0.0 |
---|---|
عنوان من الفئة B (ثنائي) |
10101100.00010000.00000000.00000000 |
القناع الافتراضي للفئة B (ثنائي) |
11111111.11111111.00000000.00000000 |
القناع الافتراضي للفئة B (عشري) |
255.255.0.0 |
طول اللاحقة الافتراضي |
/16 |
عنوان من الفئة C (عشري) |
192.168.42.0 |
---|---|
عنوان من الفئة C (ثنائي) |
11000000.10101000.00101010.00000000 |
القناع الافتراضي للفئة C (ثنائي) |
11111111.11111111.11111111.00000000 |
القناع الافتراضي للفئة C (عشري) |
255.255.255.0 |
طول اللاحقة الافتراضي |
/24 |
عندما نُنشِئ الشبكات الفرعية، فإننا نبدأ من اليسار وننتقل إلى اليمين عند تعريف عدد البتات التي ستكون قيمتها 1 التي تحدد قيمة معرِّف الشبكة؛ وبمعرفتنا أنَّ قناع الشبكة الفرعية فيه 32 بت، فكل ما علينا معرفته هو عدد البتات التي قيمتها 1، لأننا نعلم أنَّ بقية البتات ستكون سلسلة متتالية من الأصفار؛ والمِثلُ أيضًا لفئات B و C؛ فالقناع الافتراضي للفئة B (172.16.0.0) -الذي يخبرنا أنَّ أول بايتين من الفئة يحتويان على واحدات- هو 255.255.0.0 أو /16؛ والأمر سيانٌ لعناوين الفئة C، التي يكون قناعها هو /24.
آلية استعمال الشبكات الفرعية
حان الوقت الآن لإلقاء نظرة على الحصول على عنوان IP من هيئة تسجيل العناوين مثل IANA (Internet Assigned Numbers Authority) ثم تقسيم ذاك العنوان إلى عدِّة شبكات فرعية. إذ نحصل بادئ الأمر على شبكةٍ واحدة، لكننا نحتاج إلى أكثر من شبكة، لأنه من غير المحتمل أن يكون لدينا مخطط مسطح (flat) للشبكة. عدد القطع في شبكتنا سيعطينا فكرة عن عدد الشبكات الفرعية التي سنحتاج لها. وقد تعلمنا في هذا الدرس أن قناع الشبكة هو أداة اقتراض، فلنمضي قدمًا ولنحسب عدد البتات التي سنحتاج لها لتمثيل عدد الشبكات الفرعية التي نحتاج.
تذكَّر أن كل بت نقترضه من قسم المضيف سيقلل من عدد المضيفين؛ فكلما ازداد عدد الشبكات الفرعية، كلما نقص عدد المضيفين في كل شبكة. وبعد أخذ ما سبق بعين الاعتبار، فسنُنشِئ قناعًا جديدًا الذي سيكون سلسلةً من الأصفار والواحدات المتتالية؛ ثم سيكون على عاتقنا تحويله إلى قيمة عشرية وتمثيله بصيغةٍ شبيهةٍ بعناوين IP بوضع نقطةٍ بين كل بايتين.
بعد إنشائنا للقناع الجديد، حان الآن الوقت لتعريف الشبكات الفرعية؛ أي بكلامٍ آخر، هذه العملية شبيهة بتوليد أرقام المناطق في أنظمة الهواتف؛ فلو قارنا الشبكة التي أعطتنا إياها هيئة تسجيل العناوين بالرمز الدولي للاتصال، فستكون الخطوة التالية هي إنشاء رموز للمناطق من رمز الدولة؛ وسنحجز لكل قطعة شبكية مُعرِّف شبكة فرعية مختلف في الشبكة، ثم سيحصل كل مضيف في تلك الشبكة على مُعرِّف خاص به... وبعد انتهاء التخطيط، فسيحين الوقت للذهاب إلى كل مضيف وجهاز وموجِّه ثم تطبيق مخططنا لعناوين IP مع القناع الملائم.
ترجمة -وبتصرّف- للمقال Constructing an IP Network Addressing Scheme.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.