salar 2 دیدگاه

سلام.
پرتکل یا بهتر بگیم سرویس DHCP که مخفّف Dynamic Host Configuration Protocol است یک روش برای تخصیص آدرس های ای پی به هاست ها است.

فرض کنید شما یک مدیر شبکه هستید و برای یک پروژه ی کاری قرار است شبکه ی یک شرکت با حدود 100 کامپیوتر را راه اندازی کنید،در این صورت می توانیم روی تک تک سیستم ها به صورت دستی آدرس های ای پی را سِت کنیم،البته در این روش Option های مورد نیاز برای آدرس ای پی مانند Gateway و … هم باید به صورت دستی ست کنیم.تصور کنید چقدر زمان و حوصله آدم صرف این کار تلف می شود و منطقاً این روش اصلاً کار عقلانی نیست!راه حل درست و منطقی اینه ما یه سرویس را در شبکه پیکربندی کنیم که هر هاست که در شبکه خواست آدرس ای پی داشته باشد،روال ای پی گرفتن و سِت کردن Option های مورد نیاز را با آن سرویس در میان بگذارد.

+نکته: در شبکه و در بحث ای پی ورژن 4 به سِت کردن دستی  ای پی آدرس ها در Host ها و تعیین Option های مورد نیاز(Gateway-Subnet Mask-DNS Servers) برای آن ها روش Static می گویند.

+نکته: در شبکه و در بحث ای پی ورژن 4 به روش تخصیص آدرس های ای پی با استفاده از سرویس DHCP به هاست ها Dynamic می گویند.در این روش تمام Option های مورد نیاز برای یک آدرس ای پی از طریق DHCP به کلاینت ها اختصاص داده می شود.

+نکته: هنگام پیکربندی یک DHCP سرور باید پارامتر های مختلف مثل DNS Server – Lease Time -Exclude Addresses-Gateway-Scope Addresses و کلی پارامتر دیگر را برای آن تعیین کنیم.

+نکته: سرویس DHCP با پرتکل UDP کار می کند، در واقع یک پرتکل بدون اتصال است.اما چرا UDP؟ به این خاطر که در این سرویس در مراحل گرفتن آدرس ای پی بسته هایی رد و بدل می شود که از نوع Broadcast هستند و اساساً بسته هایی که در شبکه Multicast و Broadcast می شوند از نوع UDP هستند.

+نکته: DHCP  سرور از شماره ی پورت 67 استفاده می کند و DHCP کلاینت از شماره ی پورت 68 استفاده می کند.

مکانیزم DHCP  به صورت کلی در 4 مرحله که به اختصار به آنها DORA می گویند انجام می پذیرد.

 

 

خوب فرض کنیم  3 شبکه داریم که به یک روتر وصل هستند و DHCP سرور هم آدرس ای پی 223.1.2.5 را دارد و یکی از سیستم ها که با DHCP سرور در یک شبکه قرار دارد می خواهد از آن آدرس ای پی دریافت کند،در این صورت مراحل DORA به صورت زیر خواهد بود:

مرحله ی Discovery = در این مرحله سیستمی که می خواهد آدرس ای پی دریافت کند(فرضاً A) یک بسته ی DHCP Discovery  را در شبکه با مشخصات زیر ارسال می کند و از  DHCP سرور تقاضای آدرس ای پی را دارد:

  1. نوع بسته = Broadcast
  2. فیلد Src IP = آدرس 0.0.0.0
  3. فیلد Dst IP = آدرس 255.255.255.255(Broadcast)
  4. فیلد Src Mac = مک آدرس سیستم A
  5. فیلد Dst Mac = دوازده F یا FF:FF:FF:FF:FF:FF
  6. فیلد Src Port = پورت شماره 68
  7. فیلد Dst Port = پورت شماره 67

+نکته: دقت کنید در صورتیکه در شبکه های بزرگ بیشتر از یک DHCP سرور داشته باشیم،تمام  آنها بسته ی  Discovery را دریافت می کنند و بسته ی Offer را در شبکه به سمت سیستم می فرستند،اما فقط بسته ای که زودتر به دست مبدأ رسیده است انتخاب می شود و بقیه مراحل با آن طی می شود.به صورت کلی اگه در یک شبکه چندین DHCP سرور داشته باشیم هنگام ارسال بسته ی Discovery،برای دریافت بسته ی Offer به صورت Anycast اقدام می شود.

مرحله ی Offer = در این مرحله DHCP سرور یک بسته که حاوی Option های مورد نیاز( …,Subnet Mask,Dns Servers,Defautl Gw,Lease time) برای آدرس ای پی است را با مشخصات زیر در شبکه ارسال می کند:

  1. نوع بسته = Broadcast
  2. فیلد Src IP = آدرس 223.1.2.5
  3. فیلد Dst IP = آدرس 255.255.255.255(Broadcast)
  4. فیلد Src Mac = مک آدرس DHCP Server
  5. فیلد Dst Mac = دوازده F یا FF:FF:FF:FF:FF:FF
  6. فیلد Src Port = پورت شماره 67
  7. فیلد Dst Port = پورت شماره 68

+نکته: در سرآیند بسته ی Discovery یک فیلد به اسم Client Hardware Address وجود دارد که مبدأ مقدار Mac Address خود را در آن ذکر می کند و DHCP سرور از روی این مک آدرس یک ای پی آدرس را برای آن در نظر می گیرد،بسیار دقت کنید در این مرحله نیز مک آدرس مقصد Broadcast است.

مرحله ی Request  = در این مرحله سیستم A یک بسته به عنوان تاییدیه اینکه ای پی آدرس را دریافت کرده مشکلی با استفاده از ان ندارد با مشخصات زیر در شبکه می فرستد:

  1. نوع بسته = Broadcast
  2. فیلد Src IP = آدرس 0.0.0.0
  3. فیلد Dst IP = آدرس 255.255.255.255(Broadcast)
  4. فیلد Src Mac = مک آدرس سیستم A
  5. فیلد Dst Mac = دوازده F یا FF:FF:FF:FF:FF:FF
  6. فیلد Src Port = پورت شماره 68
  7. فیلد Dst Port = پورت شماره 67

+نکته: در این مرحله هاست A به تمام DHCP سرور های دیگر داخل شبکه که بسته ی Offer پیشنهادی آن ها را نپذیرفته اعلام می کند که با  DHCP سروری که آدرس آن در فیلد DHCP Identifier بسته ی DHCP Request است بقیه مراحل را طّی می کند.

مرحله ی Ack = در این مرحله DHCP سرور با ارسال یک بسته با مشخصات زیر تعیین می کند که ای پی مورد نظر با موفقیت به سیستم A اختصاص داده شده است و در سرور ثبت شده است و میتواند از ان استفاده کند:

  1. نوع بسته = Broadcast
  2. فیلد Src IP = آدرس 223.1.2.5
  3. فیلد Dst IP = آدرس 255.255.255.255(Broadcast)
  4. فیلد Src Mac = مک آدرس DHCP  سرور
  5. فیلد Dst Mac = دوازده F یا FF:FF:FF:FF:FF:FF
  6. فیلد Src Port = پورت شماره 67
  7. فیلد Dst Port = پورت شماره 68

دوستان این نکته رو بگم که در بسیاری از سایت ها و آموزش ها حتی سطح های بالا هم در تعیین مقادیر فیلد های بسته های DHCP در مراحل DORA اشتباهاتی وجود دارد و اونطور که خودم دیدیم هر جا یه چیز به دل خودشون نوشتن! اما واقعیت خودم هم در محیط واقعی و هم در GNS3 هنگامی که بسته ها را Capture کردم دقیقاً وضعیت آنها شبیه شکلی که در بالا توضیح دادم است.

+نکته ی مهم: بعد از پشت سر گذاشتن این مراحل و دریافت بسته ی Ack توسط مبدأ، هاست A دارای یک آدرس ای پی Unicast می شود.

+نکته: هنگامی که شما در خانه یا دانشگاه می خواهید به یک شبکه ی WiFi وصل شوید حتماً باید ابتدا در شبکه احراز هویت کنید سپس می توانید آدرس ای پی بگیرید(طّی شدن مراحل DORA)

Lease Time چیست؟

مدت زمانی که یک هاست می تواند یک ای پی آدرس را در شبکه داشته باشد و از آن استفاده کند.این Option هم مانند بقیه در مرحله ی Offer به هاست ها داده می شود.(به صورت پیشفرض مقدار آن برابر 8 روز است،هر چند ممکن است مقدار آن متفاوت باشد.)

امّا Renewal Timer (T1) و Renewal Timer (T2) چیست؟

در طّی مرحله ی Offer دو Option که اصطلاحاً به آن Renewal Timer (T1) و Renewal Timer (T2) می گویند از سمت DHCP سرور به سمت کلاینت ارسال می شوند.به صورت پیشفرض Renewal Timer برابر نصف زمان Lease Time است.در صورتیکه مقدار زمان سنج T1 منقضی شود(یعنی کلاینت 50% از زمان Lease Time خودرا سپری کرده باشد) کلاینت از حالت BOUND به RENEWING تغییر حالت می دهد.کلاینت یک بسته ی DHCP Request را به صورت Unicast به سمت DHCP سرور خود می فرستد و از آن درخواست تمدید Lease Time و IP Address را می کند.در اکثر مواقع DHCP سرور با ارسال یک بسته ی DHCP Ack به کلاینت پاسخ می دهد و مقدار T1 و T2 و Lease Time را برای آن مجدداً تنظیم می کند،ولی سرور می تواند در شرایط خاص با ارسال یک بسته ی DHCP Nack به سمت کلاینت از اجاره دادن مجدد آدرس ای پی به آن جلوگیری کند.(در صورتیکه DHCP سرور هیچ پیامی را در جواب بسته ی DHCP Request ارسال نکند،در حّد فاصل بین T1 و T2 کلاینت به صورت دوره ای و Unicast برای DHCP سرور بسته های DHCP Request را ارسال می کند تا شاید جواب بدهد.)

در صورتیکه زمان سنج T2 منقضی شود(یعنی کلاینت حدود 87.5% از زمان Lease Time خود را سپری کرده باشد) و DHCP سرور به کلاینت پاسخ ندهد،در این حالت کلاینت از حالت RENEWING به REBINDING تغییر حالت می دهد.حال کلاینت یک بسته ی DHCP Request را در شبکه Broadcast می کند و آدرس ای پی فعلی خود را در فیلد CIAddr بسته ی DHCP Request قرار می دهد تا به DHCP سرور های دیگر اعلام کند صاحب این آدرس ای پی است و از هر DHCP سروری که در شبکه در دسترس باشد تقاضای Renew کردن اجاره ی خود را دارد.در صورتیکه Lease Time کلاینت به اتمام برسد،کلاینت قادر نخواهد بود از آن آدرس ای پی استفاده کند و مجدداً باید برای بدست آوردن آدرس ای پی مراحل DORA را پشت سر بگذراند.

+نکته: معمولاً در سرور ها مانند DNS سرور و …  ای پی آدرس ها را به صورت استاتیک سِت می کنند و برای اینکه در شبکه  IP Conflict رخ ندهد،یعنی DHCP سرور  ای پی هایی را به کلاینت ها اختصاص ندهد که قبلاً در شبکه استفاده شده اند باید آدرس هایی که به صورت استاتیک در هاست ها و سرور ها سِت شده اند را در DHCP سرور اصطلاحاً Exclude کنیم.

مکانیزم DHCP Relay Agent در مایکروسافت و حالت کلی یا IP Helper در سیسکو:

این قابلیت را باید در روتر ها یا سویچ های لایه ی سوم فعال کرد، و حالتی است که DHCP سرور در داخل شبکه نباشد و بخواهیم از خارج از شبکه با DHCP سرور ارتباط داشته باشیم و ای پی آدرس از آن بگیریم. ضمناً به این نکته هم  باید توجه کرد که روترها یا سویچ های لایه ی سوم بسته های برادکست DHCP رو از خودشون عبور نمی دهند.

فرض کنید کلاینت A  از شبکه ی A می خواهد میخواهد از یک DHCP سرور که در داخل شبکه ی آن نیست و در شبکه ی B قرار دارد ای پی آدرس دریافت کند و روتر Router1 که روی آن IP Helper راه اندازی شده است بین دو شبکه است.بررسی کنیم ببینیم در این حالت وضعیت بسته هایی که در مراحل DORA تبادل می شوند به چه شکل است:

بسته ی Discovery دقیقاً مثل قبل بین کلاینت A و روتر Router1 تبادل می شوند و روتر که به عنوان Relay عمل می کند بسته را دریافت می کند و تغییرات زیر را در آن اعمال می کند و به سمت DHCP سرور می فرستد:

  1. نوع بسته را از Broadcast به Unicast تغییر می دهد.
  2. فیلد Src Mac آن را از مک آدرس کلاینت A  به مک آدرس خود تغییر می دهد.
  3. فیلد Dst Mac آن را از FF:FF:FF:FF:FF:FF به مک آدرس DHCP سرور تغییر می دهد.
  4. فیلد Src IP آن را از 0.0.0.0 به ای پی آدرس خود تغییر می دهد.
  5. فیلد Dst IP آن را از 255.255.255.255 به ای پی آدرس DHCP سرور تغییر می دهد.
  6. فیلد Src Port که 68 است و فیلد Dst Port که 67 است را تغییر نمی دهد.

بسته ی DHCP Discovery که به صورت Unicast به سمت DHCP سرور حرکت می کند و DHCP سرور نیز در جواب بسته ی Offer را به سمت روتر Router1 با مشخصات زیر ارسال می کند:

  1. نوع بسته = Unicast
  2. فیلد Src IP = ای پی آدرس DHCP سرور
  3. فیلد Dst IP = ای پی آدرس روتر Router1
  4. فیلد Src Mac = مک آدرس DHCP سرور
  5. فیلد Dst Mac = مک آدرس روتر Router1
  6. فیلد Src Port = پورت شماره 67
  7. فیلد Dst Port = پورت شماره 68

+نکته: در این مرحله تمام Option های مورد نیاز برای ای پی آدرس برای کلاینت A ارسال می شود و آدرس روتر Router1 به عنوان گیت وی در بسته ی Offer به کلاینت A ارسال می شود.

روتر نیز بسته Offer را دریافت می کند و با مشخصات زیر به سمت کلاینت A ارسال می کند:

  1. نوع بسته از Unicast به Broadcast تغییر می کند.
  2. فیلد Src IP را از ای پی DHCP سرور به ای پی خود تغییر می دهد.
  3. فیلد Dst IP را از ای پی خود(روتر Router1) به ای پی آدرس 255.255.255.255 تغییر می دهد.
  4. فیلد Src Mac را از مک آدرس DHCP سرور به مک آدرس خود تغییر می دهد.
  5. فیلد Dst  Mac را از مک آدرس خود به مک آدرس FF:FF:FF:FF:FF:FF تغییر می دهد.

بسته ی Request دقیقاً مثل قبل بین کلاینت A و روتر Router1 تبادل می شوند و روتر که به عنوان Relay عمل می کند بسته را دریافت می کند و تغییرات زیر را در آن اعمال می کند و به سمت DHCP سرور می فرستد:

  1. نوع بسته را از Broadcast به Unicast تغییر می دهد.
  2. فیلد Src Mac آن را از مک آدرس کلاینت A  به مک آدرس خود تغییر می دهد.
  3. فیلد Dst Mac آن را از FF:FF:FF:FF:FF:FF به مک آدرس DHCP سرور تغییر می دهد.
  4. فیلد Src IP آن را از 0.0.0.0 به ای پی آدرس خود تغییر می دهد.
  5. فیلد Dst IP آن را از 255.255.255.255 به ای پی آدرس DHCP سرور تغییر می دهد.
  6. فیلد Src Port که 68 است و فیلد Dst Port که 67 است را تغییر نمی دهد.

بسته ی DHCP Request که به صورت Unicast به سمت DHCP سرور حرکت می کند و DHCP سرور نیز در جواب بسته ی  Ack را به سمت روتر Router1 با مشخصات زیر ارسال می کند:

  1. نوع بسته = Unicast
  2. فیلد Src IP = ای پی آدرس DHCP سرور
  3. فیلد Dst IP = ای پی آدرس روتر Router1
  4. فیلد Src Mac = مک آدرس DHCP سرور
  5. فیلد Dst Mac = مک آدرس روتر Router1
  6. فیلد Src Port = پورت شماره 67
  7. فیلد Dst Port = پورت شماره 68

روتر نیز بسته Ack را دریافت می کند و با مشخصات زیر به سمت کلاینت A ارسال می کند:

  1. نوع بسته از Unicast به Broadcast تغییر می کند.
  2. فیلد Src IP را از ای پی DHCP سرور به ای پی خود تغییر می دهد.
  3. فیلد Dst IP را از ای پی خود(روتر Router1) به ای پی آدرس 255.255.255.255 تغییر می دهد.
  4. فیلد Src Mac را از مک آدرس DHCP سرور به مک آدرس خود تغییر می دهد.
  5. فیلد Dst  Mac را از مک آدرس خود به مک آدرس FF:FF:FF:FF:FF:FF تغییر می دهد.

بعد از طّی شدن این مراحل کلاینت A ای پی آدرس Unicast خود را دریافت کرده است و می تواند از آن استفاده کند.

 

 

امیدوارم این مقاله برای شما مفید واقع شده باشد.

خوش و خرّم باشید.

سالار بهنیا

www.reversecode.ir

telegram.me/efengton

 

 

 

 

 

 

 

 

 

 

— 2 Comments —

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *