بروتوكول التهيئة الآلية للمضيفين

نبذة تاريخية

جاء تطوّير بروتوكول التهيئة الآليّة للمضيفين ليكون نتيجة لمجموعة من الأعمال التي طوّرت بشكل منفصل، وكانت في جوهرها تهدف إلى إنجاز أجزاء مُختلفة من عملية التهيئة الذاتية  للمُضيفين بأقل تدخّل ممكن يدوي ممكن، دون أن وجود إطار جامع يوحد كل هذه الجهود، فوصفت وثيقة طلب التعليقات (RFC 951) لبروتوكول التمهيد  في العام 1985م، وكان هدفه الأساسي تمكين المُضيف الذي لا يملك قرصاً صلباً من اكتشاف عنوان بروتوكول الإنترنت الخاص به، وعنوان مُخدّم تخزين الملفّات واسم الملف الذي يحتوي على نظام التشغيل لنقله إلى الذاكرة والإقلاع منه، على أن يتم كل ذلك بشكل آليّ.
بالتوازي مع ذلك، تمّ تطوير بروتوكولات أخرى تنجز بعض أجزاء عملية التهيئة الآلية أثناء قيامها بعملها، مثل بروتوكول نقل الملفات البسيط، الموصُوف قي الوثيقة (RFC 1350)، الذي يقدم آليّة لنقل الملفات، وأيضاً بروتوكول دقة العناوين الذي يسمح للمضيف باكتشاف العناوين الفيزيائية لمضيفين آخرين في الشبكة، وأيضاً بروتوكول رسائل التحكم في الإنترنت، الموصوف بالوثيقة (RFC 792) والذي يسمح للمضيف عبر أحد خياراته باكتشاف عنوان المُوجّه المُتصل مع الشبكة المحلية.
أخيراً، وضعت وثيقتا طلب التعليقات (RFC 1122) و(RFC 1123) قائمة بمُتطلبات المضيف، شملت محددات التهيئة التي يحتاج إليها كل مضيف ليتمكن من الاتصال بشكل سليم مع الشبكة، كما اقترحتا آليّة لإقلاع المُضيف الذي لا يملك قرصاً صلباً. كانت الوثيقة (RFC 1531) التي صدرت في شهر أكتوبر من العام 1993م، أول وثيقة مُخصصة لبروتوكول التهيئة الآليّة للمضيفين، ثُم أجريت عليها بعض التعديلات لتنتج الوثيقة (RFC 1541) التي صدرت في نفس الشهر تحت عنوان "بروتوكول التهئية الآلية للمضيفين". لاحقاً في العام 1997م، صدرت الوثيقة (RFC 2131) التي حملت نفس الاسم، وتضمّنت مجموعة من التحديثات والإضافات، وهي المعيار الرسمي المُعتمد للبروتوكول اليوم، وقد قام رالف دورمز (بالإنجليزية: Ralph Droms) من جامعة بوكنل بكتابة الوثائق المعيارية الثلاث السابقة، أمّا الوثيقة (RFC 2132) فتضم قائمة بالخيارات التي يمكن للبروتوكول أن يُستعملها.
لاحقاً في العام 2003م، أُصدر المعيار الخاص ببروتوكول التهيئة الآلية لمُضيفي الإصدار السادس من بروتوكول الإنترنت في وثيقة طلب التعلقيات (RFC 3315) وهو يُعرف اليوم بالاختصار DHCPv6.

خدمات البروتوكول

يقدم البروتوكول خدمة التهيئة الذاتية  لمُضيفي الإصدار الرابع من بروتوكول الإنترنت، ولتحقيق ذلك يقوم البروتوكول بدعم خدمتين إضافيتين أيضاً، الأولى هي مستودع تخزين لمُحددات التهيئة الخاصّة بالمضيفين، والثانية هي قيامه بالتحصيص الآلي لفضاء عناوين  بروتوكول الإنترنت.

مستودع المُحددات

إنّ الخدمة الأولى التي يقدمها بروتوكول التهيئة الآلية للمضيفين هي توفير مخزن دائم لمُحددات الشبكة الخاصة بالعملاء، لتحقيق ذلك، يقوم البروتوكول ببناء قاعدة بيانات تضم المحددات الخاصة بكل عميل، ويكون مفتاح قاعدة البيانات الفريد هو مُعرّف مُميز لكل عميل، ويقابل هذا المفتاح المُحددات الخاصّة به، وقد يكون المفتاح الخاص بالعميل مزيجاً من المُعرّف الخاص به ومن عنوان الشبكة التي تضم عنوان بروتوكول الإنترنت الممنوح له، أو قد يضمّ عنوان العميل الفيزيائي، أو مزيجاً من عنوان بروتوكول الإنترنت واسم العميل، أو أي قيمة أخرى تُعرّف العميل بشكل فريد.
بشكل افتراضي، يقوم البروتوكول في العميل ببناء مُعرّف فريد اعتماداً على مُعرّف الشبكة المأخوذ من عنوان بروتوكول الإنترنت الذي يستضيفه العميل، أو من عنوان العميل الفيزيائي، بعد ذلك، يقوم العميل بإرسال المُعرّف الذي ولّده إلى المُخدّم عبر خيار خاص هو خيار مُعرّف العميل الذي يحمل الخيار رقم الرمز (61)، وذلك ليعتمده كمعرّف مُميز للعميل، يُمكن للعميل الذي يملك بنداً في قاعدة البيانات أن يطلب الحصول على معلومات التهيئة الخاصة به من المستودع باستخدام بروتوكول التهيئة الآلية للمضيفين، أو أن يستجوب المُخدم من أجل الحصول على قيمة أحد المحددات، لتحقيق ذلك، يقوم العميل ببناء رسالة طلب مناسبة، ويردّ المُخدّم على العميل برسالة ردّ تحتوي المحددات المطلوبة.

التحصيص الآلي لفضاء عناوين بروتوكول الإنترنت

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

تمثيل الزمن

عند استخدام البروتوكول، يمكن للعميل أن يطلب استخدام أحد عناوين الشبكة لفترة زمنية، قد تكون مُحددة أو مفتوحة، لذلك فإنّ هناك حاجة لتمثيل الزمن ضمن رسائل البروتوكول، وتزداد المشكلة صعوبة في حالة كون المخدم والعميل غير متزامنين، حيث تصبح الأزمنة المستخدمة نسبية.  على كل الأحوال، يتمّ تمثيل الزمن في رسائل البروتوكول بواحدة الثانية، وفي حالة عدم التزامن يُنسب التوقيت إلى ساعة العميل الداخلية.
يتم تمثيل الزمن باستخدام خانات بطول (32) بدون إشارة، ما يعني مجال واسع يمكن تمثيل زمن يصل حتى مئة عام فيه، وهي مدة أكبر بكثير من أي قيمة قد يطلبها العميل، أمّا القيمة الواحديّة، والتي تُقابل بنظام العد الست عشري القيمة: FFFFFFFF)₁₆) فهي تُمثّل اللانهاية، وتُستخدم لطلب مدة استخدام مفتوحة.
في حال عدم وجود تزامن بين ساعة المخدّم وساعة العميل، تفترض آليّة العمل السابقة أن الساعتين الداخليّتين للعميل والمخدم مستقرتان بالنسبة لبعضهما البعض، أي أنهما يقيسان مرور الزمن بنفس الطريقة وبدون أي إزاحة، وإذا لم يتحقق ذلك، فإن المُخدّم الذي من عميلاً ما عنوان بروتوكول إنترنت، قد يُعيد استخدامه  بسبب انتهاء مدة الاستخدام ويمنحه لعميل آخر، في الوقت الذي ما يزال العميل العنوان قيد الاستخدام من قبل العميل الأول، ما قد يُسبب تعارضاً في العناوين في الشبكة، لحل هذه المشكلة، يُمكن للمُخدّم أن يُخبر العميل بمدة استخدام أقصر من المدة الفعليّة التي يُخزّنها قي قاعدة بياناته.

إعادة الإرسال وشرط الانتظار

إعادة الإرسال هي قيام العميل بإرسال رسالة من رسائل البروتوكول مرة أخرى إلى المُخدّم بسبب عدم وصول الرسالة السابقة إليه أو عدم وصول الرد عليها. لا يقوم المُخدّم بإعادة الإرسال أبداً فهي وظيفة من وظائف العميل، وهي محكومة دائماً بشرط الانتظار، وهو آليّة يُحدد من خلالها العميل متى يتوجب عليه إعادة إرسال الرسالة مرة أخرى. لا يوجد شرط انتظار صارم محدد، ويترك للعميل اختياره، لكنه يجب أن يأخذ بعين الاعتبار الزمن اللازم  لانتقال الرسالة من العميل إلى المُخدّم وبالعكس، كما يستحسن أن تكون فترات الانتظار متزايدة بشكل أسيّ مع قيمة محددة لا يتم تجاوزها، على أن لا يتجاوز عدد مرات إعادة الإرسال (4) مرات ضمن إطار زمني في هو في حدود الدقيقة واحدة. إذا لم يتحقق شرط الانتظار، قد يقوم العميل بضبط المُحددات إلى القيم الافتراضية، أو استخدام آلية أخرى مدعومة في نظام التشغيل مثل العنونة الآلية الخاصة لبروتوكول الإنترنت (APIPA).
على سبيل المثال، إذا كان الإيثرنت بمُعدّل نقل هو (10) ميغابت في الثانية هو بروتوكول الربط المُستعمل، فإنّ شرط انتظار مناسب قبل إعادة الإرسال لأول مرة يمكن أن يكون انتظار وصول الرد لفترة تزيد عن (4) ثواني بعد الإرسال، وتتضاعف هذه القيمة لتصبح (8) ثواني ينتظرها العميل لوصول الرد على إعادة الإرسال الأولى، فإن لم يصل الرد أيضاً، يُرسل العميل رسالة إعادة الإرسال الثانية، وتصبح مدة الانتظار (16) ثانية، ثُمّ (32) وأخيراً (64)، فإذا لم يصل الردّ لا يقوم العميل بإعادة المحاولة بعدها، ويضبط قيم المحددات إلى القيم الافتراضية.

خوارزمية العمل

يعمل بروتوكول التهيئة الآلية للمضيفين بحسب نموذج طلب الخدمة، أي أن عمل البروتوكول يكون مقسوماً بين المُخدّمات التي تقدّم الخدمة، والعملاء الذين يحصلون عليها، إذا كان العميل والمخدّم في نفس الشبكة المحليّة، فإن ّالتواصل بينهما يكون مُباشراً، أمّا إذا كانا في شبكتين مُختلفتين، فلابد من استعمال الوكيل، وهو مُضيف في شبكة العميل المحليّة، يلعب دور صلة الوصل بين العميل المحلي والمُخدّم البعيد.
يحصل التواصل بين الأطراف التي تشغل البروتوكول من خلال تبادل رسائل البروتوكول، تُرسل هذه الرسائل بين المُخدّم والوكيل بشكل رسائل فريدة الوجهة دوماً، وذلك لأنّ الطرفين يستضيفان عناوين بروتوكول إنترنت معروفة بشكلٍ صريح، أمّا الرسائل المُتبادلة بين المُخدّم والعميل أو بين الوكيل والعميل فقد تكون رسائل فريدة الوجهة أو قد تكون رسائل بث عام، بحسب المعلومات المُتوفرة للعميل وطبيعة الرسالة.

في العميل

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

في الوكيل

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

عمل البروتوكول بحسب نموذج طلب الخدمة

يعمل بروتوكول التهيئة الآليّة للمضيفين بحسب نموذج طلب الخدمة، ويتبادل العملاء رسائل البروتوكول مع المُخدّمات للحصول على التهيئة الابتدائية للمحددات، والتي تشمل بشكل أساسي عنوان بروتوكول إنترنت، وأيضاً لتجديد مدة استخدام عنوان ممنوح مسبقاً. يعتمد بروتوكول التهيئة الآلية للمضيفين على بروتوكول حزم بيانات المستخدم كبروتوكول نقل، وقد تمّ حجز المنفذ (67) كمنفذ وجهة في الرسائل المُرسلة من العميل أو الوكيل إلى المُخدّم، والمنفذ (68) كمنفذ وجهة في الرسائل المُرسلة من المُخدّم أو الوكيل نحو العميل، وهذان المنفذان محجوزان بالأصل لبروتوكول التمهيد .
إذا كان العميل لم يستضيف عنوان بروتوكول إنترنت بعد، فإنّ جميع الرسائل التي يُرسلها يجب أن تكون رسائل بث عام، ويكون عنوان المصدر في ترويسة بروتوكول الإنترنت هو العنوان الصفري أي (0.0.0.0).

التوسيعات والإضافات

منذ إنجاز الشكل الحالي  من البروتوكول في العام 1997م، لم تتوقف عملية التطوير، ولكنها كانت بالمجمل العام إضافات توسيعية، فقد تمّ توسيع قائمة المُحددات التي يمكن تزويد المُضيفين بها بإضافة عشرات المُحددات الجديدة، وشمل ذلك تعريف الخيارات الخاصّة بها ليتضاعف حجم قائمة الخيارات ثلاث مرات تقريباً  عن ما كان عليه في المعيار الأصلي.
بالإضافة لذلك فقد تمّ تحسين آلية عمل البروتوكول نفسها، فتمت إضافة إمكانية المصادقة على العملاء قبل منحهم خدمة التهيئة الآلية، كما تمّ تعديل آلية تحصيص فضاء العناوين لتشمل التحصيص الآليّ للعناوين المشتركة من الإصدار الرابع من بروتوكول الإنترنت، وأصبح بالإمكان منح  نفس عنوان بروتوكول الإنترنت إلى عدد من المُضيفين على أن يتم التمييز فيما بينهم على أساس أرقام منافذ المصدر الخاصة بطبقة النقل. بالإضافة لذلك طوّرت توسيعة الاستعلام عن معلومات بروتوكول الإنترنت (Leasequery)، التي تتيح لجهات مغايرة للعميل أو المُخدّم الحصول على معلومات ترتبط ببروتوكول الإنترنت المستعمل في الشبكة. أمّا التعديل الأهم فكان تطوير بروتوكول التهيئة الآلية لمضيفي الإصدار السادس من بروتوكول الإنترنت (DHCPv6)، الذي أصبح بروتوكول تهيئة آليّة مُستقلاً بحد ذاته.
لإنجاح هذه التوسيعات كان لابد من زيادة عدد رسائل البروتوكول فعرفت وثائق طلب التعليقات 10 أنواع أخرى منها البروتوكول، ليصبح العدد الإجمالي لأنواع الرسائل هو (18) رسالة.

هوامش

1. يقابل التحصيص الذاتي (بالإنجليزية: Automatic Allocation)، والتحصيص الآلي (بالإنجليزية: Dynamic Allocation)، والتحصيص اليدوي (بالإنجليزية: Manual Allocation).
2. يقابل التهيئة الذاتية (بالإنجليزية: Auto-Configuration)، والتهيئة الآلية (بالإنجليزية: Dynamic Configuration)، والتهيئة الثابتة (بالإنجليزية: Static Configuration).