موقف من الحياة اليومية#

دخلت كافيه، وطلبت كلمة سر الواي فاي، وكتبتها في موبايلك. وفي ثانية النت اشتغل. ماكتبتش عنوان IP، ولا البوابة، ولا أي إعدادات.

مع إن أي جهاز على الشبكة لازم يبقى ليه عنوان IP، ولازم يعرف الراوتر فين علشان يطلع على النت. طب مين اللي اداله كل ده في ثانية؟

خلاصة سريعة#

  • DHCP (Dynamic Host Configuration Protocol) · بروتوكول الإعداد الديناميكي للأجهزةبروتوكول يمرر إعدادات الشبكة إلى الأجهزة تلقائيًا، ومنها توزيع عناوين IP عليها.عرض في القاموس خدمة على الشبكة (غالبًا جوه الراوتر في البيت) بتوزّع عناوين IP والإعدادات على الأجهزة تلقائيًا أول ما تتصل.
  • الجهاز بياخد عنوانه في 4 رسايل اسمها DORA (Discover, Offer, Request, Acknowledge) · خطوات الحصول على عنوان من DHCPالرسائل الأربع التي يحصل بها الجهاز على عنوانه، وهي البحث عن خادم، ثم عرض عنوان، ثم طلبه، ثم تأكيده.عرض في القاموس: يدوّر على سيرفر، والسيرفر يعرض عنوان، والجهاز يطلبه، والسيرفر يأكد.
  • العنوان مش ملك الجهاز، ده متأجّر لمدة محددة (DHCP Lease · إيجار العنوانالمدة التي يحق فيها للجهاز استخدام عنوان IP حصل عليه من خادم DHCP، ويجب أن يجددها قبل انتهائها وإلا يتوقف عن استخدام العنوان.عرض في القاموس)، والجهاز بيجدد الإيجار قبل ما يخلص.

ببساطة#

فكّر في فندق:

  • أول ما توصل، بتروح للاستقبال وتقول: «عايز أوضة». ده Discover.
  • الموظف يقولك: «أوضة 50 فاضية». ده Offer.
  • تقول: «تمام، هاخد أوضة 50». ده Request.
  • يدّيك المفتاح ويقولك: «ليك لمدة يوم». ده Ack.

والأوضة مش ملكك. لو عايز تقعد أكتر، تجدد قبل ما المدة تخلص. ولو مشيت، الأوضة ترجع للفندق وتتدّي لحد تاني.

خطوات DORA: جهازك بيدوّر على سيرفر، والسيرفر يعرض عنوان، وجهازك يطلبه، والسيرفر يأكد. والسهم المتقطع معناه رسالة للكل (Broadcast).

بالتفصيل#

DHCP بيدّي الجهاز إيه؟#

مش عنوان IP بس. الجهاز علشان يشتغل على الشبكة محتاج كذا حاجة، وDHCP بيدّيهاله كلها مرة واحدة:

الإعدادمعناه
عنوان IPعنوان الجهاز على الشبكة، مثلًا 192.168.1.50
قناع الشبكة (Subnet Mask)بيحدد الشبكة المحلية بتبدأ وتخلص فين
Default Gateway · البوابة الافتراضيةعنوان الراوتر الذي يرسل إليه الجهاز كل بيانات موجهة إلى خارج شبكته المحلية.عرض في القاموس (Default Gateway)عنوان Router · الموجّه (الراوتر)جهاز يربط الشبكات ببعضها ويوجّه حركة البيانات بينها، مثل الراوتر المنزلي الذي يربط شبكة البيت بالإنترنت.عرض في القاموس اللي الجهاز يبعت له أي حاجة رايحة برا الشبكة
سيرفرات DNSاللي بتحوّل أسماء المواقع لعناوين IP
مدة الإيجارالجهاز يقدر يستخدم العنوان ده قد إيه

والإعدادات الزيادة دي (البوابة وDNS وغيرهم) اسمها الخيارات (DHCP Options).

ولو محتاج تراجع عنوان IP نفسه والعناوين الخاصة زي 192.168.x.x، شوف مقال عنوان IPv4.

الرسايل الأربعة: DORA#

  1. DISCOVER: الجهاز لسه معندوش عنوان، فبيبعت رسالة للكل على الشبكة (Broadcast · البث العامإرسال رسالة إلى كل الأجهزة في الشبكة المحلية مرة واحدة، وعنوان MAC الخاص به FF-FF-FF-FF-FF-FF.عرض في القاموس)، كأنه بيزعق: «فيه سيرفر DHCP هنا؟». ولأنه معندوش عنوان، بيبعتها من العنوان 0.0.0.0، ولـ 255.255.255.255 اللي معناه «كل الأجهزة».
  2. OFFER: السيرفر بيرد بعرض: عنوان فاضي، ومعاه الإعدادات ومدة الإيجار.
  3. REQUEST: الجهاز بيطلب العنوان اللي اتعرض عليه. ولو كان فيه أكتر من سيرفر وكلهم عرضوا، الرسالة دي بتعرّفهم هو اختار مين.
  4. ACK: السيرفر بيأكد: «العنوان بقى بتاعك للمدة دي». ومن هنا الجهاز يبدأ يستخدمه.

ولو السيرفر رفض الطلب (مثلًا العنوان اللي الجهاز طالبه مش مناسب للشبكة دي)، بيبعت NAK بدل ACK، والجهاز يبدأ من الأول.

المنافذ: UDP 67 و68#

رسايل DHCP بتتبعت بـ UDP، مش TCP. والرسايل اللي رايحة للسيرفر بتروح على Port · المنفذرقم طوله 16 بت يحدد به بروتوكول النقل البرنامج أو الخدمة المقصودة على الجهاز.عرض في القاموس 67، واللي رايحة للجهاز بتروح على المنفذ 68.

الإيجار والتجديد#

العنوان متأجّر، مش ملك الجهاز. وده بيخلّي العناوين اللي محدش بيستخدمها ترجع للسيرفر لوحدها لما إيجارها يخلص، وتتدّي لأجهزة تانية.

والجهاز ما بيستناش لحد ما الإيجار يخلص:

  • لما نص المدة تعدّي، بيحاول يجدد مع نفس السيرفر.
  • لو ما ردّش، بيحاول تاني لما يعدّي 87.5% من المدة، مع أي سيرفر.
  • لو المدة خلصت من غير تجديد، لازم يبطّل يستخدم العنوان.

يعني لو الإيجار 24 ساعة، الجهاز بيبدأ يجدد بعد 12 ساعة.

إعدادات السيرفر: النطاق والاستثناءات والحجوزات#

اللي بيدير الشبكة بيظبط في سيرفر DHCP كام حاجة:

  • DHCP Scope · نطاق DHCPمجموعة عناوين IP المتتالية التي يوزعها خادم DHCP على أجهزة شبكة معينة، مع إعداداتها.عرض في القاموس (Scope): العناوين اللي السيرفر يوزعها، مثلًا من 192.168.1.100 لـ 192.168.1.200.
  • الاستثناءات (Exclusions): عناوين جوه النطاق السيرفر ما يدّيهاش لحد، علشان أجهزة متظبط عليها عنوان بإيدك.
  • DHCP Reservation · حجز عنوانربط عنوان IP ثابت بجهاز معين في خادم DHCP، فيحصل الجهاز على العنوان نفسه في كل مرة.عرض في القاموس (Reservations): جهاز معين ياخد نفس العنوان دايمًا، زي الطابعة أو الكاميرا، علشان الأجهزة التانية تلاقيها في نفس المكان. والسيرفر بيعرف الجهاز غالبًا من عنوان MAC بتاعه.

الوكيل: لو السيرفر في شبكة تانية#

رسالة DISCOVER رسالة للكل، والراوتر ما بيعدّيش الرسايل اللي للكل من شبكة لشبكة. طب لو الشركة فيها شبكات كتير وسيرفر DHCP واحد في شبكة منهم؟

هنا الراوتر بيشتغل DHCP Relay Agent (IP Helper) · وكيل DHCPجهاز، غالبًا الراوتر، ينقل رسائل DHCP بين الأجهزة وخادم موجود في شبكة أخرى، لأن رسائل البث لا تعبر الراوتر.عرض في القاموس (DHCP Relay، وبيتسمّى كمان IP Helper): بيستلم رسالة الجهاز، ويبعتها للسيرفر مباشرة، ويكتب جواها عنوانه هو علشان السيرفر يعرف الجهاز ده من أنهي شبكة ويدّيله عنوان منها.

لو DHCP فشل#

لو الجهاز ما لقاش سيرفر DHCP، أو العناوين اللي في النطاق خلصت كلها (وده اسمه نفاد عناوين النطاق)، الجهاز بيدّي نفسه عنوان بيبدأ بـ 169.254، وده اسمه APIPA (IPv4 Link-Local) · العنوان التلقائي المحليعنوان من النطاق 169.254.0.0/16 يعطيه الجهاز لنفسه تلقائيًا عند عدم توفر طريقة إعداد أخرى مثل DHCP، ولا يصلح إلا للتواصل مع الأجهزة على نفس الوصلة.عرض في القاموس. والعنوان ده بيشتغل مع الأجهزة القريبة بس، من غير إنترنت.

يعني لو لقيت عنوان جهازك بيبدأ بـ 169.254، فده غالبًا معناه إن DHCP ما اشتغلش.

جرّب بنفسك: شوف إعدادات DHCP عندك#

على Linux (مع NetworkManager):

  1. افتح الطرفية، واكتب:
نافذة الطرفية
nmcli -f DHCP4 device show | grep -E "ip_address|dhcp_lease_time|dhcp_server_identifier|routers|domain_name_servers"
  1. النتيجة المتوقعة: المعلومات اللي جهازك أخدها من DHCP، زي كده (بعناوين أمثلة):
الناتج المتوقع
DHCP4.OPTION[2]:   dhcp_lease_time = 86400
DHCP4.OPTION[3]:   dhcp_server_identifier = 192.168.1.1
DHCP4.OPTION[4]:   domain_name_servers = 192.168.1.1
DHCP4.OPTION[6]:   ip_address = 192.168.1.50
DHCP4.OPTION[26]:  routers = 192.168.1.1
  • ip_address: العنوان اللي جهازك أخده.
  • dhcp_lease_time: مدة الإيجار بالثواني. و86400 ثانية = 24 ساعة.
  • dhcp_server_identifier: عنوان سيرفر DHCP. وفي البيت غالبًا هو نفسه الراوتر.
  • routers: البوابة الافتراضية.
  • domain_name_servers: سيرفرات DNS.

والأرقام اللي بين القوسين عندك ممكن تختلف، وده عادي.

على Windows:

  1. افتح موجّه الأوامر (Command Prompt)، واكتب:
نافذة الطرفية
ipconfig /all
  1. النتيجة المتوقعة: الإعدادات الكاملة لكل كارت شبكة، ومعاها معلومات DHCP.
نافذة الطرفية
ipconfig /release
ipconfig /renew

النتيجة المتوقعة: بعد /release الجهاز بيبقى من غير عنوان، وبعد /renew بيعمل DORA من جديد وياخد عنوان، وغالبًا نفس العنوان اللي كان معاه.

لو حصلت مشكلة:

  • العنوان بيبدأ بـ 169.254: الجهاز ما وصلش لسيرفر DHCP. اتأكد إن الكابل أو الواي فاي متوصل، وجرّب تعيد تشغيل الراوتر.
  • ipconfig /renew بياخد وقت طويل وبعدين يطلع خطأ: نفس السبب، الجهاز مش لاقي سيرفر DHCP.
للمتعمقين

الرسايل التمانية

الرسالةمن مين لمينمعناها
DHCPDISCOVERالجهاز ← الكلفيه سيرفر هنا؟
DHCPOFFERالسيرفر ← الجهازعرض عنوان وإعدادات
DHCPREQUESTالجهاز ← السيرفرعايز العرض ده، أو عايز أجدد
DHCPACKالسيرفر ← الجهازتأكيد، ومعاه الإعدادات
DHCPNAKالسيرفر ← الجهازرفض
DHCPDECLINEالجهاز ← السيرفرالعنوان ده فيه جهاز تاني مستخدمه
DHCPRELEASEالجهاز ← السيرفرخلصت، خد العنوان
DHCPINFORMالجهاز ← السيرفرمعايا عنوان، عايز الإعدادات التانية بس

أرقام الخيارات

كل خيار في رسايل DHCP ليه رقم: 1 قناع الشبكة، و3 الراوتر (البوابة)، و6 سيرفرات DNS، و51 مدة الإيجار، و53 نوع الرسالة (وقيمته من 1 لـ 8 بنفس ترتيب الجدول: DISCOVER = 1، وOFFER = 2، وREQUEST = 3، وDECLINE = 4، وACK = 5، وNAK = 6، وRELEASE = 7، وINFORM = 8).

الوكيل وحقل giaddr

في رسالة DHCP حقل اسمه giaddr، والوكيل بيكتب فيه عنوانه. والسيرفر بيعرف منه الجهاز في أنهي شبكة، وبيبعت الرد للوكيل، والوكيل يوصّله للجهاز.

إيجار من غير نهاية

مدة الإيجار رقم بالثواني، والقيمة 0xffffffff (أكبر رقم ممكن في 32 بت) معناها إيجار من غير نهاية.

المعيار الرسمي

DHCP متعرّف في RFC 2131، وخياراته في RFC 2132، والاتنين صدروا في مارس 1997.

أخطاء شائعة#

  • «الراوتر هو DHCP»: مش بالظبط. DHCP خدمة، وفي البيت غالبًا شغالة جوه الراوتر. لكن في الشركات ممكن تبقى على سيرفر لوحده.
  • «الجهاز بياخد نفس العنوان دايمًا»: مش شرط. العنوان متأجّر، وممكن يتغير لو الإيجار خلص. ولو عايز عنوان ثابت لجهاز، استخدم الحجز.
  • «عنوان 169.254 معناه إن النت شغال»: لأ. ده عنوان الجهاز بيدّيه لنفسه لما DHCP يفشل، ومن غيره مفيش إنترنت.
  • «رسالة DISCOVER بتعدّي من شبكة لشبكة»: لأ. الرسايل اللي للكل بتقف عند الراوتر، وعلشان كده محتاجين الوكيل لو السيرفر في شبكة تانية.

المصطلحات#

  • بروتوكول الإعداد الديناميكي (DHCP (Dynamic Host Configuration Protocol) · بروتوكول الإعداد الديناميكي للأجهزةبروتوكول يمرر إعدادات الشبكة إلى الأجهزة تلقائيًا، ومنها توزيع عناوين IP عليها.عرض في القاموس): بروتوكول يوزع عناوين IP وإعدادات الشبكة على الأجهزة تلقائيًا.
  • خطوات DORA (DORA (Discover, Offer, Request, Acknowledge) · خطوات الحصول على عنوان من DHCPالرسائل الأربع التي يحصل بها الجهاز على عنوانه، وهي البحث عن خادم، ثم عرض عنوان، ثم طلبه، ثم تأكيده.عرض في القاموس): الرسائل الأربع للحصول على عنوان: البحث والعرض والطلب والتأكيد.
  • إيجار العنوان (DHCP Lease · إيجار العنوانالمدة التي يحق فيها للجهاز استخدام عنوان IP حصل عليه من خادم DHCP، ويجب أن يجددها قبل انتهائها وإلا يتوقف عن استخدام العنوان.عرض في القاموس): المدة التي يحق للجهاز فيها استخدام العنوان.
  • النطاق (DHCP Scope · نطاق DHCPمجموعة عناوين IP المتتالية التي يوزعها خادم DHCP على أجهزة شبكة معينة، مع إعداداتها.عرض في القاموس): مجموعة العناوين التي يوزعها الخادم.
  • حجز العنوان (DHCP Reservation · حجز عنوانربط عنوان IP ثابت بجهاز معين في خادم DHCP، فيحصل الجهاز على العنوان نفسه في كل مرة.عرض في القاموس): ربط عنوان ثابت بجهاز معين.
  • وكيل DHCP (DHCP Relay Agent (IP Helper) · وكيل DHCPجهاز، غالبًا الراوتر، ينقل رسائل DHCP بين الأجهزة وخادم موجود في شبكة أخرى، لأن رسائل البث لا تعبر الراوتر.عرض في القاموس): جهاز ينقل رسائل DHCP إلى خادم في شبكة أخرى.
  • البوابة الافتراضية (Default Gateway · البوابة الافتراضيةعنوان الراوتر الذي يرسل إليه الجهاز كل بيانات موجهة إلى خارج شبكته المحلية.عرض في القاموس): عنوان الراوتر الذي يرسل إليه الجهاز ما هو موجه خارج شبكته.

اختبر نفسك#

ليه رسالة DISCOVER بتتبعت من العنوان 0.0.0.0 للعنوان 255.255.255.255؟

إظهار الإجابة

لأن الجهاز لسه معندوش عنوان، فبيستخدم 0.0.0.0. ولأنه مش عارف السيرفر فين، بيبعتها للكل (255.255.255.255).

مدة الإيجار 8 ساعات. الجهاز هيبدأ يحاول يجدد بعد قد إيه؟

إظهار الإجابة

بعد 4 ساعات، يعني لما نص المدة تعدّي. ولو ما نجحش، بيحاول تاني بعد 7 ساعات (87.5% من المدة).

لاب توب في شركة عنوانه بقى 169.254.12.7، وزمايله في نفس الدور شغالين عادي. إيه السبب المحتمل؟

إظهار الإجابة

اللاب توب ما وصلش لسيرفر DHCP، فادّى نفسه عنوان APIPA. ولأن زمايله شغالين، فالغالب إن المشكلة في اللاب توب نفسه أو توصيلته (كابل أو واي فاي)، مش في السيرفر. وممكن كمان تكون عناوين النطاق خلصت واللاب توب كان آخر واحد اتصل.