[42 Project] NetPractice

visible
visible
date
Aug 16, 2022
thumbnail
https://images.idgesg.net/images/article/2017/10/wireless_network_internet_of_things_iot_thinkstock_853701554_3x2-100740688-large.jpg?auto=webp&quality=85,70
slug
42_project_netpractice
author
status
Public
tags
42Project
المدونة
summary
NetPractice تمرين عملي عام يتيح لك اكتشاف الشبكات.
type
Post
updatedAt
Dec 2, 2023 02:20 AM
Status
Done
Person
💡
تم نقل النسخة القديمة من المقالة من الموقع القديم وعذاراً على اي خطاء في طرح الموضوع , سوف اعمل على ترتيب المقالة في الايام القادمة ان شاء الله

المقدمة:

يعد IP جزءًا من مجموعة بروتوكولات الإنترنت، والتي تتضمن أيضًا بروتوكول التحكم في الإرسال. يُعرف هذان معًا باسم TCP / IP. تحكم مجموعة بروتوكولات الإنترنت قواعد حزم البيانات، والعنونة، والإرسال، والتوجيه، واستقبال البيانات عبر الشبكات. عنونة IP هي وسيلة منطقية لتعيين عناوين للأجهزة الموجودة على الشبكة. يتطلب كل جهاز متصل بالإنترنت عنوان IP فريدًا.

الفرق بين ipv4 و ipv6.

notion image
تأتي عناوين IP في نسختين - IPv4 وIPv6:
يعرّف الإصدار 4 من بروتوكول الإنترنت (IPv4) عنوان IP كرقم 32 بت. ومع ذلك، نظرًا لنمو الإنترنت واستنفاد عناوين IPv4 المتاحة، تم توحيد إصدار جديد من IP (IPv6) ، باستخدام 128 بت لعنوان IP ، في عام 1998.
  • يتم استخدام عناوين ipv4 في المشروع الحالي.

الفرق بين Public Address vs. Private Address

عنوان IP العام (Public Address) هو عنوان IP يمكن الوصول إليه مباشرة عبر الإنترنت، ويتم تخصيصه لجهاز توجيه الشبكة الخاص بك بواسطة مزود خدمة الإنترنت (ISP). يساعدك عنوان IP العام (أو الخارجي) على الاتصال بالإنترنت من داخل شبكتك إلى خارجها.
عنوان IP الخاص (Private Address) هو العنوان الذي يُعيَّنه موجِّه الشبكة لجهازك. يتم تعيين عنوان IP خاص فريد لكل جهاز داخل نفس الشبكة (يسمى أحيانًا عنوان شبكة خاصة) - هذه هي الطريقة التي تتحدث بها الأجهزة الموجودة على نفس الشبكة الداخلية مع بعضها البعض.
قناع الشبكة الفرعية (Subnet Mask) هو عنوان 32 بت (4 بايت) يستخدم للتمييز بين عنوان الشبكة وعنوان المضيف في عنوان IP. ويحدد نطاق عناوين IP التي يمكن استخدامها داخل شبكة أو شبكة فرعية.
لتحديد عنوان الشبكة، يتم تطبيق القناع على عنوان IP، ويمكن تمثيل القناع باستخدام التوجيه غير المصنّف بين المجالات (CIDR). المجموعة المحتملة من عناوين المضيف تحدد من خلال البتات الصفرية في القناع. بالإضافة إلى ذلك، يتم تحديد نطاق عناوين المضيف من خلال البتات الواحدة في القناع والتي تمثل العدد الأقصى للعنوان الذي يمكن استخدامه.
يمكن استخدام المحول (Switch) لتوصيل عدة أجهزة على شبكة واحدة، في حين يقوم جهاز التوجيه (Router) بربط شبكات متعددة معًا. جدول التوجيه (Routing Table) هو جدول بيانات مخزن في جهاز توجيه أو مضيف الشبكة، ويحتوي على قائمة بالمسارات الشبكية الممكنة للوصول إلى وجهات الشبكة.

البحث عن عنوان الشبكة Finding the network address

لنفترض أن لدينا شبكة تحتوي على 5 أجهزة، وعناوين IP هذه الأجهزة هي:
  • 192.168.1.1
  • 192.168.1.2
  • 192.168.1.3
  • 192.168.1.4
  • 192.168.1.5
لتحديد عنوان الشبكة، نستخدم القناع 255.255.255.0 ونقوم بتحويله إلى الشكل الثنائي:
Mask: 11111111.11111111.11111111.00000000
ونقوم بتحويل عناوين الأجهزة إلى الشكل الثنائي:
  • 192.168.1.1: 11000000.10101000.00000001.00000001
  • 192.168.1.2: 11000000.10101000.00000001.00000010
  • 192.168.1.3: 11000000.10101000.00000001.00000011
  • 192.168.1.4: 11000000.10101000.00000001.00000100
  • 192.168.1.5: 11000000.10101000.00000001.00000101
ثم نقوم بتطبيق "bitwise AND" على القناع وعنوان أي من الأجهزة للعثور على عنوان الشبكة:
  • 192.168.1.1: 11000000.10101000.00000001.00000000 (192.168.1.0)
  • 192.168.1.2: 11000000.10101000.00000001.00000000 (192.168.1.0)
  • 192.168.1.3: 11000000.10101000.00000001.00000000 (192.168.1.0)
  • 192.168.1.4: 11000000.10101000.00000001.00000000 (192.168.1.0)
  • 192.168.1.5: 11000000.10101000.00000001.00000000 (192.168.1.0)
وبالتالي، يكون عنوان الشبكة في هذه الحالة هو 192.168.1.0.
ثم يمكن استخدام القناع لتحديد نطاق العناوين الممكن استخدامها للتواصل في الشبكة، والذي يكون في هذه الحالة هو 192.168.1.1 إلى 192.168.1.254.
وباستخدام جدول التوجيه وأجهزة التوجيه، يمكن تحديد المسارات المناسبة للاتصال بين الأجهزة في الشبكة، مما يسهل عملية التواصل والعمل على الشبكة بشكل أكثر فعالية.
#include <stdio.h>


int main()
{
    // a = 5(00000101), b = 9(00001001)
    unsigned char a = 5, b = 9;
  
    // The result is 00000001
    printf("a = %d, b = %d\n", a, b);
    printf("a&b = %d\n", a & b);
  
    // The result is 00001101
    printf("a|b = %d\n", a | b);
  
    // The result is 00001100
    printf("a^b = %d\n", a ^ b);
  
    // The result is 11111010
    printf("~a = %d\n", a = ~a);
  
    // The result is 00010010
    printf("b<<1 = %d\n", b << 1);
  
    // The result is 00000100
    printf("b>>1 = %d\n", b >> 1);
  
    return 0;
}

البحث عن نطاق عناوين المضيف Finding the range of host addresses

لتحديد عناوين المضيف التي يمكن استخدامها على شبكتنا، يجب علينا استخدام أجزاء من عنوان IP المخصصة لعنوان المضيف. وباستخدام العنوان IP التالي والقناع:
IP address | 01101000.11000110.11110001.01111101 Mask | 11111111.11111111.11111111.10000000
يتم تمثيل النطاق المحتمل لعناوين مضيفنا بآخر 7 بتات من القناع وهي كلها 0. وبالتالي، يكون نطاق عناوين المضيف هو:
BINARY | 0000000 - 1111111 DECIMAL | 0 – 127
ولتحديد مجموعة عناوين IP الممكنة على شبكتنا، نقوم بإضافة نطاق عنوان المضيف إلى عنوان الشبكة. وبذلك، يصبح نطاق عناوين IP المحتملة لدينا هو 104.198.241.0 - 104.198.241.127. ومع ذلك، فإن أطراف النطاق محجوزة لاستخدامات محددة ولا يمكن تخصيصها للواجهة:
104.198.241.0 | محجوز لتمثيل عنوان الشبكة. 104.198.241.127 | محجوز كعنوان البث؛ يستخدم لإرسال الحزم إلى جميع مضيفي الشبكة.
لذلك، يصبح النطاق الحقيقي لعناوين IP لدينا هو 104.198.241.1 - 104.198.241.126، والذي يمكن العثور عليه باستخدام حاسبة IP.
علامة CIDR (/24)
تُستخدم علامة CIDR (/24) لتحديد الشبكة والقناع المستخدمين بها، حيث يُرمز الرقم 24 إلى القناع 255.255.255.0. ويتم تحديد هذا الرقم بعد عنوان IP، مثل 104.198.241.0/24، والتي تشير إلى أن الشبكة تستخدم القناع 255.255.255.0.
علاوة على ذلك، يمكن استخدام مفهوم CIDR لتمثيل القناع بشكل أكثر إحكامًا وعالي الكفاءة. في هذا النموذج، يتم تمثيل القناع باستخدام الشرطة المائلة "/" والتي تليها عدد البتات التي تعمل كعنوان الشبكة. ولذلك، يعادل القناع في المثال السابق 255.255.255.128 القناع /25 باستخدام تدوين CIDR، حيث يمثل الرقم 25 عدد البتات التي تعمل كعنوان الشبكة من إجمالي 32 بتًا لعنوان IP.
بالنسبة لأجهزة التوجيه، فهي تستخدم جدول التوجيه لتحديد المسارات المناسبة للاتصال بين الأجهزة في الشبكة، مما يسهل عملية التواصل والعمل على الشبكة بشكل أكثر فعالية. يتكون جدول التوجيه من عنصرين: الوجهة والقفزة التالية. تُحدد الوجهة عنوان الشبكة التي يكون فيها المضيف هو الهدف النهائي للحزم. يشير القفزة التالية إلى أقرب جهاز توجيه يمكن أن تمر الحزمة من خلاله. ويحتفظ كل جهاز توجيه بجدول التوجيه الخاص به بعنوان قفزة تعدية.
أخيرًا، يمكن استخدام المحول لتوصيل أجهزة متعددة على شبكة واحدة. وعلى النقيض من جهاز التوجيه، فإن المحول لا يحتوي على أي واجهات، حيث يقوم فقط بتشويه الحزم إلى شبكته المحلية، ولا يمكنه التحدث مباشرة إلى شبكة خارج الشبكة الخاصة به.
notion image
يمكن أيضًا تمثيل القناع باستخدام التوجيه غير المصنف بين المجالات (CIDR). يمثل هذا النموذج القناع كشرطة مائلة "/" ، متبوعة بعدد البتات التي تعمل كعنوان الشبكة. لذلك، القناع في المثال أعلاه 255.255.255.128 ، يعادل قناع / 25 باستخدام تدوين CIDR ، لأن 25 بت من 32 بت تمثل عنوان الشبكة.

Switch

notion image
يعد المحول جهازًا مهمًا في شبكات الحاسوب، حيث يقوم بتوصيل العديد من الأجهزة في شبكة واحدة. يختلف المحول عن جهاز التوجيه في أنه لا يحتوي على أي واجهات، بل يعمل فقط على تشويه الحزم إلى شبكته المحلية. وبالتالي، لا يمكن للمحول التحدث مباشرة إلى شبكة خارج الشبكة الخاصة به.
ومن المهم ملاحظة أن المحول يقوم فقط بتوصيل الأجهزة الموجودة في شبكته المحلية، ولا يتمتع بالقدرة على تحديد المسارات المناسبة للاتصال بين الشبكات المختلفة. ولهذا السبب يتم استخدام أجهزة التوجيه في هذه الحالة، حيث يحتوي جهاز التوجيه على واجهة لكل شبكة يتصل بها، ويستخدم جدول التوجيه لتحديد المسارات المناسبة للاتصال بين الأجهزة في الشبكة بشكل أكثر فعالية.
ويجب ملاحظة أن هناك اختلافًا بين مفهوم المحول ومفهوم أجهزة التوجيه، حيث يستخدم المحول لتوصيل أجهزة متعددة على شبكة واحدة، بينما يستخدم جهاز التوجيه لتوصيل شبكات متعددة معًا. وبالتالي، يتم استخدام المحول في المنازل والمكاتب الصغيرة التي تحتوي على شبكة واحدة، بينما يستخدم جهاز التوجيه في الشركات والمؤسسات الكبيرة التي تحتوي على عدة شبكات.
في النهاية، يعتبر المحول جهازًا مهمًا في شبكات الحاسوب، حيث يساعد على توصيل الأجهزة المختلفة في شبكة واحدة، ويعمل على تحسين كفاءة الاتصال وتسهيل عملية التواصل بين الأجهزة في الشبكة.

Router

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

Routing Table

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

Destination :

يتم تحديد عنوان الشبكة المضيفة التي يجب أن تصل إليها الحزم باعتبارها الوجهة النهائية. وتعد هذه العملية من الخطوات الأساسية في عملية التوجيه داخل الشبكات. وتعد خطوة حاسمة لتحديد مسار الحزمة المناسب في الشبكة.
ويتم استخدام المسار الافتراضي أو 0.0.0.0/0 في حالة عدم توفر مسارات بديلة لعنوان وجهة IP. وسيقوم في هذه الحالة المسار الافتراضي بإرسال الحزم إلى عنوان الخطوة التالية بدون تحديد وجهة محددة. وهذا يعني أن المسار الافتراضي يعتبر خيارًا سهلًا ومرنًا لتحديد مسار الحزمة داخل الشبكة.
وسيتوافق المسار الافتراضي مع أي شبكة في الشبكة الواسعة. ويمكن استخدامه في العديد من الأحيان، خاصة في حالة عدم توفر معلومات عن عناوين وجهات محددة. ويمكن للمسار الافتراضي أن يوفر حلاً بديلًا للحزمة في حالة فشل تحديد مسار الحزمة باستخدام المسارات البديلة.
وبشكل عام، يمكن القول أن المسار الافتراضي يعتبر خيارًا مرنًا وبديلًا وسهلًا في تحديد مسار الحزم داخل الشبكة، ويمكن استخدامه في العديد من الحالات المختلفة في الشبكات الحاسوبية.

Next hop

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