في احيان كثيرة يكون لدينا عنوان (IP) بقناع شبكة (Subnet Mask) معين و نرغب في الحصول على معرفات لشبكات فرعية (Sub Network IDs) تتفرع من هذا العنوان الرئيسي (Main Network ID).
و لإجراء ذلك سنأخذ جزء من الخانات (Bits) المخصصة للمضيف (Host Portion) و نستخدمه للحصول على الشبكات الفرعية (Sub Networks) التي نريد.
و تسمى هذه العملية بالتفريع الشبكي (Subnetting)
مثال
إذا كان لدينا العنوان التالي:-
192.163.24.5
255.255.255.0
في هذا العنوان نجد ان حجم القسم الخاص بالمضيف (Host Portion)هو 8 خانات (8Bits) .
و حجم القسم الخاص بالشبكة (Network Portion) هو 24 خانة (24Bits).
اذا اردنا الحصول على عناوين لشبكات فرعية (Sub Network IDs) تتفرع من هذا العنوان سنقوم باخذ عدد من الخانات (Bits) المخصصة لقسم المضيف (Host Portion) ونضيفه للقسم الخاص بالشبكة (Network Portion) , و نستخدم هذه الخانات (Bits) للحصول على عناوين الشبكات الفرعية (Sub Network IDs).
ففي هذا المثال القسم الخاص بالمضيف (Host Portion) يتكون من 8 خانات (8Bits).
فيمكننا مثلا اخذ خانتين (2Bits) من هذه الخانات الثمانية و استخدامهما للحصول على الشبكة الفرعية (Subnets) , و نترك الخانات (6Bits) للمضيف (Host Portion).
و بهذا سيتغير حجم القسم الخاص بالشبكة (Network Portion) و يصبح 24+2=26
فنكتب قناع شبكة (Subnet Mask) جديد يناسب التغيير الذي اجريناه:-
255.255.255.192
حيث N خانات (Bits) المخصصة لعنوان الشبكة الرئيسي (Network).
و S خانات (Bits) المخصصة لعناوين الشبكات الفرعية (Sub Networks).
و H خانات (Bits) المخصصة للمضيف (Host Portion) .
و نلاحظ اننا يمكننا تحديد عدد الخانات التي سنستخدمها للحصول على الشبكات الفرعية (Subnets) المطلوبة باستخدام القانون التالي:-
Subnets=2S
حيث S عدد الخانات (Bits) التي تستخدم لتمثيل الشبكات الفرعية (Sub Networks).
و في مثالنا هذا باستخدام خانتين لتمثيل الشبكات الفرعية (Sub Networks) سنحصل على عدد شبكات يساوي:-
Subnets=2S
Subnets=22 =4
و تكون هذه الشبكات كالتالي:-
NNNNNNNN. NNNNNNNN. NNNNNNNN.00HHHHHH
NNNNNNNN. NNNNNNNN. NNNNNNNN.01HHHHHH
NNNNNNNN. NNNNNNNN. NNNNNNNN.10HHHHHH
NNNNNNNN. NNNNNNNN. NNNNNNNN.11HHHHHH
حيث N هنا تمثل أي قيم لقسم الشبكة (Network Portion).
و H أي قيمة لقسم المضيف (Host Portion).
و باستخدام 6 خانات لتمثيل عناوين المضيف (Host Portion) سنحصل على عدد عناوين في كل شبكة فرعية (Subnet) من هذه الشبكات الاربعة يساوي:-
IPs=2H
IPs=26=64
و تكون العناوين في الشبكة الاولى كالتالي:-
NNNNNNNN. NNNNNNNN. NNNNNNNN.00000000
NNNNNNNN. NNNNNNNN. NNNNNNNN.00000001
NNNNNNNN. NNNNNNNN. NNNNNNNN.00000010
.
.
NNNNNNNN. NNNNNNNN. NNNNNNNN.00111110
NNNNNNNN. NNNNNNNN. NNNNNNNN.00111111
و في الشبكة الثانية كالتالي:-
NNNNNNNN. NNNNNNNN. NNNNNNNN.01000000
NNNNNNNN. NNNNNNNN. NNNNNNNN.01000001
NNNNNNNN. NNNNNNNN. NNNNNNNN.01000010
.
.
NNNNNNNN. NNNNNNNN. NNNNNNNN.01111110
NNNNNNNN. NNNNNNNN. NNNNNNNN.01111111
و في الشبكة الثالثة كالتالي:-
NNNNNNNN. NNNNNNNN. NNNNNNNN.10000000
NNNNNNNN. NNNNNNNN. NNNNNNNN.10000001
NNNNNNNN. NNNNNNNN. NNNNNNNN.10000010
.
.
NNNNNNNN. NNNNNNNN. NNNNNNNN.10111110
NNNNNNNN. NNNNNNNN. NNNNNNNN.10111111
و في الشبكة الرابعة كالتالي:-
NNNNNNNN. NNNNNNNN. NNNNNNNN.11000000
NNNNNNNN. NNNNNNNN. NNNNNNNN.11000001
.
.
NNNNNNNN. NNNNNNNN. NNNNNNNN.11111110
NNNNNNNN. NNNNNNNN. NNNNNNNN.11111111
حيث نلاحظ ان في هذا المثال حصلنا على 4 شبكات فرعية (Subnets) , و حصلنا على 64 عنوان (IP) في كل شبكة فرعية (Subnet), و ذلك باستخدام خانتين (2Bits) للشبكات الفرعية , و (6Bits) للمضيف (Host).
في بعض الحالات يطلب منا الحصول على عدد شبكات فرعية (Subents) معين , او الحصول على عدد عناوين (IPs) معين في كل شبكة فرعية (Subnet) , بالتالي سنقوم بتخصيص عدد خانات (Bits) مناسب للشبكات الفرعية (Subnets) و ترك الخانات الاخرى المتبقية لقسم المضيف(Host Portion) , او نقوم بتخصيص عدد خانات (Bits) مناسب لقسم المضيف (Host Portion)و ترك الخانات المتبقية للشبكات الفرعية (Subnets) .
فمثلا إذا كان حجم القسم الخاص بالمضيف(Host Portion) في العنوان الرئيسي (Main IP) هو (8Bits) , و طلب منا الحصول على 8 شبكات فرعية (Subnets).
في هذه الحالة سنخصص ثلاث خانات (3Bits) للشبكات الفرعية (Subnets) لان 23=8 , و نترك الخانات الخمس (5Bits) المتبقية للمضيف (Host Portion), و هكذا سنحصل على 25=32 عنوان IP .
اما إذا طلب منا الحصول على 14 عنوان يصلح لاجهزة المضيف (Usable IPs) في كل شبكة , في هذه الحالة سنخصص اربع خانات (4Bits) للقسم الخاص بالمضيف (Host Portion) لان 24=16 , و نترك الخانات الأربع (4Bits) المتبقية لمعرف الشبكات الفرعية (Subnets).
مثال
اذا كان لدينا معرف الشبكة (Network ID) التالي:-
192.168.3.64/26
و اردنا تقسيم الشبكة لدينا لنحصل على الاقل على ثلاث شبكات فرعية (Subents) تتفرع من هذا العنوان, اكتب قناع شبكة (Subnet Mask) مناسب, و اكتب معرفات (Network IDs) هذه الشبكات الفرعية التي يمكن الحصول عليها.
الحل
للحصول على شبكات فرعية (Subnets) تتفرع من عنوان رئيسي نأخذ جزء من القسم المخصص للمضيف (Host Portion) نضيفه الى القسم الخاص بالشبكة (Network Portion) و نستخدم هذا الجزء لتحديد الشبكات الفرعية (Subnets).
في هذا المثال بالنظر الى قناع الشبكة (Subnet Mask) في صيغة CIDR نلاحظ ان حجم الجزء المخصص لقسم المضيف (Host Portion)هو (6Bits) (لان 32-26=6).
و عدد الشبكات الفرعية (Subnets) التي نريد الحصول عليه هو ثلاث شبكات كحد ادنى, بالتالي يجب استخدام خانتين (2Bits) لنحصل على هذه الشبكات , لان 22=4.
أي اننا سنأخذ خانتين (2Bits) من الخانات المخصصة للمضيف (Host Portion) و نستخدمهما للحصول على الشبكات الفرعية (Subnets) فيصبح حجم القسم الخاص بالشبكة 26+2=28 , و يصبح حجم القسم الخاص بالمضيف 6-2=4.
و بهذا نكتب قناع الشبكة (Subnet Mask) بالشكل التالي:-
/28
و لتبسيط فهم كيفية تنفيذ عملية الحصول على معرفات (Network IDs) هذه الشبكات الفرعية نقوم اولا بكتابة العنوان في النظام الثنائي (Binary) ليسهل التعامل معه:-
192.168.3.64
11000000.10101000.00000011.01000000
ثم نأخذ خانتين (2Bits) من خانات القسم الخاص بالمضيف (Host Portion)و نخصصهما لمعرف الشبكات الفرعية بالشكل التالي:-
و للحصول على معرفات الشبكات الفرعية (Subnets) نبدأ العد من الصفر في هاتين الخانتين , و نضيف واحد كل مرة فنحصل على اربع شبكات فرعية بالشكل التالي:-
01000000
01010000
01100000
01110000
و عند تحويل هذه المعرفات للنظام العشري (Decimal) تصبح كالتالي:-
192.168.3.64/28
192.168.3.80/28
192.168.3.96/28
192.168.3.112/28
او يمكننا الحصول على هذه المعرفات الاربع بدون استخدام النظام الثانئي (Binary) بالبدأ باول عنوان و هو العنوان الرئيسي (Main IP) و إضافة حجم كتلة العناوين (Block Size) إليه مع ملاحظة استخدام القناع الجديد (Subnet Mask) بالشكل التالي:-
192.168.3.64/28
+ 16
192.168.3.80/28
+ 16
192.168.3.96/28
+ 16
192.168.3.112/28
مثال
اذا كان لدينا معرف الشبكة (Network ID) التالي:-
201.54.33.128/27
و اردنا تقسيم الشبكة لدينا لنحصل على مجموعة شبكات فرعية (Subnets) على ان تحتوي كل شبكة فرعية (Subnet) كحد اقصى على 6 اجهزة مضيف (Usable IPs) .
اكتب قناع شبكة مناسب (Subnet Mask), و اكتب معرفات (Network IDs) هذه الشبكات الفرعية التي يمكن الحصول عليها.
الحل
بالنظر الى قناع الشبكة (Subnet Mask) في صيغة CIDR نلاحظ ان حجم قسم المضيف (Host Portion) هو 5Bits (لان 32-27=5).
و عدد الاجهزة التي نريد وضعها في كل شبكة فرعية(Subnet) كحد اقصى هو 6 , بالتالي يجب استخدام (3Bits) للقسم الخاص بالمضيف (Host Portion) لنحصل على عناوين IP لهذه الاجهزة , لان 23=8.
أي اننا سنترك ثلاث خانات (3Bits) لمعرف المضيف و نأخذ الخانات المتبقية و هم خانتين (5-3=2) من القسم الخاص بالمضيف (Host Portion) و نستخدمهما للحصول على الشبكات الفرعية (Subnets) فيصبح حجم القسم الخاص بالشبكة (Network Portion) 27+2=29 , و يصبح حجم القسم الخاص بالمضيف (Host Portion) 5-2=4.
و بهذا نكتب قناع الشبكة (Subnet Mask) بالشكل التالي:-
/29
و لتبسيط فهم كيفية تنفيذ عملية الحصول على معرفات (Network IDs) هذه الشبكات الفرعية نقوم اولا بكتابة العنوان في النظام الثنائي (Binary) ليسهل التعامل معه,و يكفينا كتابة المجموعة الثمانية (Octet) التي سنتعامل معها بالشكل التالي:-
201.54.33.128/27
10000000
ثم نترك ثلاث خانات (3Bits) لقسم المضيف (Host Portion)و نأخذ الخانتين المتبقيتين (2Bits) و نخصصهما لمعرف الشبكات الفرعية (Subnets) بالشكل التالي:-
و نكتب قناع الشبكة (Subnet Mask) الجديد بالشكل التالي:-
/29
و للحصول على معرفات الشبكات الفرعية (Subnet Network IDs) نبدأ العد من الصفر في هاتين الخانتين , و نضيف واحد كل مرة فنحصل على اربع شبكات فرعية بالشكل التالي:-
10000000
10001000
10010000
10011000
و عند تحويل هذه المعرفات (Network IDs) للنظام العشري (Decimal)تصبح كالتالي:-
201.54.33.128/29
201.54.33.136/29
201.54.33.144/29
201.54.33.152/29
و يكون اول عنوان IP و اخر عنوان IP يصلح لجهاز المضيف و عنوان Broadcast في كل شبكة بالشكل التالي:-
Network ID 201.54.33.128/29
First Host IP 201.54.33.129/29
Last Host IP 201.54.33.134/29
Broadcast IP 201.54.33.135/29
Network ID 201.54.33.136/29
First Host IP 201.54.33.137/29
Last Host IP 201.54.33.142/29
Broadcast IP 201.54.33.143/29
Network ID 201.54.33.144/29
First Host IP 201.54.33.145/29
Last Host IP 201.54.33.150/29
Broadcast IP 201.54.33.151/29
Network ID 201.54.33.152/29
First Host IP 201.54.33.152/29
Last Host IP 201.54.33.158/29
Broadcast IP 201.54.33.159/29
لاحظ اننا حصلنا على معرفات الشبكات الفرعية (Subnet Network IDs) باستخدام الخانتين المخصصتين لمعرف الشبكة الفرعية ,و بدأنا بالعد من الصفر حتى امتلأت هاتين الخانتين باكبر قيمة يمكن كتابتها في النظام الثنائي و هي 1 , ثم قمنا بتحويل العنوان الى النظام العشري (Decimal).
11001001.00110110.00100001.10000000
11001001.00110110.00100001.10001000
11001001.00110110.00100001.10010000
11001001.00110110.00100001.10011000
201.54.33.128/29
201.54.33.136/29
201.54.33.144/29
201.54.33.152/29
يمكننا الحصول على معرفات الشبكات الفرعية (Subnet Network IDs) بطريقة اخرى اكثر سرعة و هي باضافة حجم كتلة العناوين (Block Size) كما تعلمنا سابقاً.
ففي مثالنا هذا نجد ان حجم القسم المضيف (Host Portion) هو (3Bits) , و باستخدام هذه الخانات الثلاث نحصل على حجم كتلة العناوين (Block Size) يساوي 23=8 كما ذكرنا سابقا.
و بالبداية مع اول عنوان معرف شبكة فرعية (Subnet) و هو العنوان الرئيسي (Main Network ID :-
201.54.33.128/29
للحصول على معرف الشبكة الفرعية (Subnet network ID) التالية نضيف حجم كتلة العناوين (Block Size) و هو 8 الى هذا العنوان :-
201.54.33.136/29
للحصول على معرف الشبكة الفرعية (Subnet network ID) التالية نضيف حجم كتلة العناوين (Block Size) و هو 8 الى هذا العنوان :-
201.54.33.144/29
للحصول على معرف الشبكة الفرعية (Subnet network ID) التالية نضيف حجم كتلة العناوين (Block Size) و هو 8 الى هذا العنوان :-
201.54.33.152/29
لاحظ ان قناع الشبكة (Subnet Mask) في هذا المثال ثابت في جميع العناوين, بالتالي حجم كتلة العناوين (Block Size) ثابت لذلك قمنا بإضافة حجم كتلة العناوين (Block Size) و هو 8 الى جميع العناوين في كل مرة .
تسمى الشبكة التي تكون عناوين الشبكات الفرعية (Subnets) فيها لها نفس قناع الشبكة الشبكة (Subnet Mask), بالشبكة ذات قناع الشبكة الفرعية ذو الطول الثابت (Fixed Length Subnet Mask FLSM) , لان طول او حجم قناع الشبكة (Subnet Mask) ثابت في جميع العناوين.
201.54.33.128/29
201.54.33.136/29
201.54.33.144/29
201.54.33.152/29