DHCP هي اختصار
لـ "Dynamic Host Configuration
Protocol"
وهو بروتوكول يستخدم في شبكات الحاسب لتوزيع عناوين الـ IP وإعدادات الشبكة الأخرى بطريقة آلية.
الجدير بالذكر ان جهاز الحاسب يحتاج إلى عنوان IP فريد وغير مكرر حتى يستطيع التواصل
مع الأجهزة الأخرى في الشبكة.
ومع تزايد عدد الأجهزة في الشبكة يصبح من الصعب
جداً تخصيص عناوين IP بشكل
يدوي لكل جهاز. وهنا يأتي دور الـ DHCP حيث يقوم بتعيين عناوين الـ IP وإعدادات الشبكة الأخرى بشكل آلي لكل
جهاز ينضم إلى الشبكة وهذا بلا شك يسهل عملية إدارة الشبكة وتخصيص عناوين IP بشكل أسرع وأكثر فعالية.
وحتى يعمل الـ DHCP بشكل تلقائي يجب تعيين خادم ليقوم
بهذا الدور والذي قد يكون جهاز الموجه وقد يكون خادم مخصص ضمن بنية الشبكة.
يتم ذلك باختصار في اربع
خطوات:
١-
الاكتشاف والبحث (من طرف العميل) وفيها يبحث العميل الذي يمثل جهازي وجهازك عن الخادم
الذي يقدم هذه الخدمة رغبةً في الحصول على عنوان IP.
٢-
العرض (من طرف الخادم) وهو الرد المبني على رسائل الاكتشاف والبحث السابقة وفيها
بيانات العنوان المعطى.
٣-
الطلب للعنوان المقترح من الخادم (من طرف العميل) وفيه الموافقة على العرض المقدم
وطلب تأجير هذا العنوان (طبعاً يسمى تأجير عرفاً والا ليس هناك دفع دراهم)
٤-
الاقرار والتسليم (من طرف الخادم) وفيه يتم اسناد العنوان للجهاز
وهنا قد يتبادر الى الذهن سؤال منطقي وهو نحن نعلم
انه لا يمكن إرسال الرسائل واستقبالها داخل الشبكة مالم يكن للجهازين عناوين IP .. فكيف استطاع جهاز العميل إرسال رسائل الاستكشاف
والطلب وهو لايزال يؤسس لنفسه مشروع امتلاك IP
الاجابة .. بشكل
مختصر ..
عندما يتصل العميل لأول مرة بشبكة وهو لم يحصل
بعد على عنوان IP من خادم DHCP فيتم اسناد عنوان IP الخاص به ليكون 0.0.0.0 والذي يعرف
باسم "null
address"
أو "unspecified
address".
وهذا العنوان 0.0.0.0 ليس عنوان IP صالح ويمكن استخدامه للتواصل على الشبكة ولكن يستخدمه العميل فقط للإشارة إلى أنه لم يتم تعيين
عنوان IP له بعد.
وبمجرد أن يقوم خادم DHCP بتعيين عنوان IP للعميل ويتلقى العميل رسالة إقرار DHCP فإنه يقوم بتحديث عنوان IP الخاص به إلى العنوان المخصص له
ويبدأ في استخدامه للاتصال بالشبكة.
الإجابة ..
بقليل من العمق ..
عندما يتصل العميل لأول مرة بشبكة فإنه لا يملك
بعد عنوان IP مخصص له ومن أجل الحصول
على عنوان IP ومعلومات الشبكة الأخرى
يستخدم العميل عملية تسمى اكتشاف (discovery) DHCP.
أثناء عملية الاكتشاف هذه يرسل العميل رسالة
تحوي العديد من المعلومات ويهمنا هنا عناوين الاطارات والحزم كالتالي:
Ethernet src: (عنوان العميل MAC) , dst: (ff:ff:ff:ff:ff:ff)
IP src: (0.0.0.0) , dst:
(255.255.255.255)
وهذه الرسالة موجهة إلى الشبكة المحلية ويطلب
فيها من خادم DHCP تزويده بعنوان IP وبعض معلومات الشبكة الأخرى
الاساسية.
عندما يتم إرسال هذه الرسالة فإن الشيء الوحيد
الذي يمكن ان يشير بوضوح للعميل هو عنوان الـ MAC الخاص به. ولذلك يتم استخدام هذا
العنوان لايصال رسالة العرض (offer) المقدمة من الخادم والتي تحوي
العديد من العلومات وفيها:
Ethernet src:(عنوان الخادمMAC) , dst: (عنوان العميل MAC)
IP src: (عنوان الخادم IP) , dst: (عنوان العميل المقترحIP)
ثم بعد ذلك يرسل العميل رسالة الطلب والتي فيها
موافقته على العرض ولكنه لا يستطيع استخدام العنوان
المقترح بعد فيرمز لنفسه بالعنوان 0.0.0.0 الى ان تصله الرسالة الأخيرة من الخادم
والمتضمنة الإقرار والاسناد بالعنوان الجديد وحينها يستلمه رسمياً
طبعاً في شبكة شركة كبيرة قد يوجد هناك العديد من الشبكات الفرعية ، وبالتالي لدى مهندس الشركة خيارين :
١- ايجاد خادم DHCP في كل شبكة فرعية يقوم بمهمة توزيع
عناوين الـ IP على أجهزة الشبكة.
٢- ايجاد خادم DHCP مركزي يغذي ويخدم جميع الشبكات
الفرعية.
بعض وثائق Cisco تقترح وتؤيد الذهاب مع الخيار الثاني
بسبب ميزة التحكم المركزي وسهولة الاعدادات. وعند الرغبة في الذهاب مع هذا الرأي
يبرز لنا بوضوح الأمر :
ip helper-address server-ip
فما هو هذا الأمر وما فائدته؟
يستخدم هذا الأمر في الشبكات لإعادة توجيه
رسائل البث (broadcast) إلى وجهة محددة وعادة
ما تكون هي خادم DHCP الموجود في جزء مختلف من
الشبكة. وذلك بسبب ان الموجه لا يقوم أبداً بتمرير أي رسالة بث وقد مر معنا سابقاً
ان جهاز العميل عند الاستكشاف والطلب لا يرسل الا رسائل بث لشبكته المحلية وهي غير
قادرة -اي الرسالة- لتجاوز الموجه (router) فمن هنا جاءت فكرة هذا الأمر لمعالجة هذه المشكلة.
يسمح هذا الأمر لجهاز التوجيه بإعادة توجيه
رسائل البث هذه إلى خادم DHCP المحدد الموجود في جزء آخر من الشبكة مما يسمح لجهاز العميل بالحصول
على عنوان IP ومعلومات الشبكة الأخرى.
وبمزيد من التفصيل يقوم الأمر :
ip helper-address server-ip
بجعل الموجه يقوم بأربعة إجراءات:
١– متابعة ومراقبة رسائل DHCP الواردة والتي يستطيع تمييزها من
خلال عنوان IP للوجهة والذي سيكون
255.255.255.255
٢– اذا
وصلت اليه حزمة كهذه يقوم بتغيير عنوان IP للمصدر والذي كان 0.0.0.0 الى نفس
عنوان المنفذ الذي وصلت اليه.
٣– يقوم أيضاً بتغيير عنوان IP للوجهة والذي كان 255.255.255.255
الى عنوان خادم DHCP والذي ادرج في نفس الأمر
ip helper-address server-ip
٤–
يوجه الحزمة الى خادم DHCP