ShirazOnline
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: Dhcp سرور در لینوکس

  1. #1
    RezaBehroozi admin آواتار ها
    تاریخ عضویت
    Jan 1970
    محل سکونت
    Iran/Shiraz
    نوشته ها
    11,188
    تشکرها / پسندها

    پیش فرض Dhcp سرور در لینوکس

    سرویس DHCP(Dynamic Host Configuration Protocol) بصورت خودکار تمامی اطلاعات مربوط به TCP/IP از قبیل IP آدرس , DNS سرور , Gateway و بسیار گزینه های دیگر را در اختیار کلاینت ها قرار می دهد که پرکاربردترین آنها مورد اشاره واقع شد.

    عملیات مربوط به تخصیص آدرس IP به کلاینت ها در چندین مرحله صورت می پذیرد که در اینجا به آن می پردازیم :
    1 - کلاینت ها در زمان بوت شدن سیستم یا شروع مجدد سرویس یا با استفاده از دستور ipconfig /renew در ویندوز شروع به پخش پیغام هایی به نام DHCP Discover بصورت همگانی (broadcast) می کنند و در این پیغام ها درخواست IP خود را برای DHCP سرور های در محل اعلام می کنند.
    2 - سروهای DHCP که این پیغام را دریافت می کنند در جوب پیغامی بنام DHCP Offer برای کلاینت ارسال می کنند و IP مورد نظر خود را به کلاینت پیشنهاد می دهند.
    3 - کلاینت که ممکن است از چندین سرور پیشنهاد IP داشته باشد معمولا به سریعترین پیشنهاد با پیغامی بنام DHCP Request درخواست IP می کند.کلاینت این پیغام را بصورت همگانی ارسال می کند که برای سرور مورد نظر نشان دهنده قبول پیشنهاد و برای بقیه نشان دهنده عدم قبول می باشد.
    4-سرور DHCP هم با یک پیغام DHCP ACK با این درخواست موافقت می کند.
    شکل زیر مراحل بالا را بخوبی نشان می دهد:

    برای جلوگیری از اینکه دو سیستم همزمان از یک آدرس استفاده کنند میتوان DHCP سرور را تنظیم کرد تا قبل از اختصاص IP به کلاینت آن را ping کند تا مشکلی بوجود نیاید.همچنین کلاینت با استفاده از ARP این عمل را انجام می دهد.

    سرور DHCP این تنظیمات را برای دوره زمانی مشخصی در اختیار کلاینت قرار می دهد که اصطلاحا lease time گفته می شود.کلاینت وقتی به 50% از زمان باقی مانده رسید از سرور تقاضای تمدید زمان اجاره را می کند که در این مرحله پیغام ها بصورت Unicast رد و بدل می شود.
    اگر سرور تا 87.5% از زمان باقی مانده به کلاینت پاسخ ندهد , کلاینت شروع به فرستادن پیغام های DHCP Request بصورت همگانی می کند تا سرورهای دیگر هم بتوانند به او پاسخ دهند.



    گاها در بعضی شبکه ها DHCP سرورهای قلابی یا Rogue DHCP سرورها به کلاینت ها آدرس اختصاص می دهند که در آموزش زیر کاملا به آن می پردازیم.
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]



    اگر DHCP سرور و کلاینت ها در دو شبکه مجزا از هم قرار داشته باشند میبایست از یک Relay Agent استفاده کرد تا درخواست ها را از طرف کلاینت ها برای DHCP سرور بازپخش کند و سپس جواب را از طرف DHCP به کلاینت ها منتقل کند.
    DHCP Relay Agent (dhcrelay) درخواست هایی که از سابنت بدون DHCP سرور میآید را به DHCP سرور های سابنتهای دیگر که ما مشخص کرده ایم بازپخش میکند.
    دلیل استفاده از DHCP Relay Agent اینست که روتر Broadcast را از خود عبور نمیدهد و DHCP clientها برای گرفتن IP از Broadcast استفاده میکنند پس برای حل این مشکل ما از یک DHCP Relay Agent استفاده میکنیم که بدین ترتیب عمل میکند :
    DHCP Relay Agent پیغام هایی که به صورت Broadcast ارسال میشود و تقاضای IP میکنند را جمع آوری میکند و سپس خود بصورت Unicast با DHCP سرور درخواست مورد نظر را مطرح میکند و جواب گرفته شده را برای client ارسال میکند.در واقع DHCP Relay Agent نقش میانجی را ایفا میکند.

    در آموزش های زیر DHCP relay agnet کاملا توضیح داده شده است :
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]


    برای اینکه کلاینت های لینوکسی را برای استفاده از DHCP تنظیم کرد میتوانید از آموزش های زیر بهره ببرید:
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    بعد از فهمیدن اینکه DHCP چیست و چه انتظاری از آن داریم به سراغ نصب و تنظیم آن در لینوکس می رویم.

    نصب در لینوکس های بر پایه دبین :
    apt-get install dhcp3-server
    نصب در لینوکس های بر پایه ردهت :
    yum install dhcp

    محل قرار گیری فایل کانفیگ :
    در دبین :
    etc/dhcp3/dhcpd.conf/
    در ردهت :
    etc/dhcpd.conf/
    برای آغاز بکار کردن سرویس یا شروع مجدد در هر دو نمونه توزیع بدین شکل عمل می کنیم :
    etc/init.d/dhcpd start/restart/

    تنظیم سرویس برای اینکه هنگام بوت شدن سیستم اجرا شود :
    در ردهت :
    chkconfig dhcpd on
    در دبین بصورت خودکار تنظیم می شود.

    تنظیم اینکه DHCP سرور به کدام اینترفیس برای دریافت درخواست ها گوش دهد :
    در دبین :
    nano /etc/default/dhcp3-server
    INTERFACES="eth1"
    در ردهت :
    nano /etc/sysconfig/dhcpd
    DHCPDARGS=eth0
    در دبین فایل کانفیگ بصورت پیش فرض دربردارنده یک سری از تنظیمات می باشد که با تغییر آنها با نیازهای خودتان می توانید سرویس را راه اندازی کنید.
    در ردهت برای استفاده از فایل کانفیگ پیش فرض بدین ترتیب عمل می کنیم :
    cp /usr/share/doc/dhcp-<version>/dhcpd.conf.sample /etc/dhcpd.conf
    یک نمونه فایل کانفیگ ساده و بهمراه Optionهای پر کاربرد و مهم بهمراه توضیحات :
    ddns-update-style none;1
    option domain-name "persianadmins.com";2
    option domain-name-servers 192.168.0.100, 1992.168.0.101;3
    default-lease-time 86400;4
    max-lease-time 604800;5
    authoritative;6

    subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.200 192.168.0.250;7
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;8
    option time-offset +12600; # Iran 9
    option ntp-servers 192.168.0.2;10
    }
    host reza {11
    hardware ethernet 00:A0:78:8E:9E:AA; 12
    fixed-address 192.168.1.4;13
    }
    1-این گزینه به DHCP می گوید که آیا IP های کلاینت ها را در DNS سرور بروز رسانی کند یا خیر.
    2-این گزینه دامنه اختصاص یافته به کلاینت ها را مشخص می کند.
    3-با استفاده از این گزینه DNS سرور ها را برای کلاینت تنظیم می کنیم.
    4-مقدار زمان پیش فرض اجاره تنظیمات
    5-حداکثر زمان اجاره
    6-اگر این گزینه رو بکار نبریم بدین معناست که اگر کلاینت برای آدرسی درخواست کرد که سرور هیچ چیز در مورد آن نمی داند و همچنین برای آن شبکه اشتباه شمرده می شود , پیغامی از نوع DHCPNAK برای کلاینت نمی فرستد که استفاده از این IP را متوقف کند.
    7-محدوده IP هایی که می خواهیم به کلاینت ها اختصاص دهیم را مشخص می کنیم.
    8-تنظیم gateway
    9-این گزینه time zone را مشخص می کند و برحسب ثانیه و بر مبنای ساعت مرجع GMT محاسبه می شود.
    10-مشخص کردن یک ntp سرور برای هماهنگ سازی ساعت کامپیوتر های موجود در شبکه.
    11-با استفاده از host می توانیم یک آدرس را برای کلاینت خاص رزرو کنیم.
    12-MAC آدرس کلاینتی که آدرس برای آن رزرو شده است.
    13-آدرس IP که برای کلاینت رزرو شده و نیابد در رنج IP هایی که تنظیم کرده ایم وجود داشته باشد.



    Option هایی که باید به کلاینت ها اعمال شوند را می توان در چند سطح تنظیم کرد.وجود سطح های مختلف برای تنظیم Optionها باعث می شود تا قدرت مدیریتی راحت تر و بهتری برای تنظیم DHCP سرور در اختیار مدیر شبکه قرار گیرد.
    این سطوح عبارت اند از :
    1-Host
    در DHCP میتوان برای کلاینت ها بر اساس آدرس سخت افزاری (MAC) آدرس IP رزرو کرد تا اگر درخواست آدرس از طرف این کلاینت ها ارسال شد حتما این IP خاص به آن اختصاص داده شود.
    تنظیمات مربوط به این کلاینت ها توسط Host انجام می شود.
    2-Group
    تشکیل شده از چندین Host .این سطح سبب سهل شدن تنظیمات Option ها برای چندین Host می شود بطوریکه تمام تنظیمات یکبار نوشته می شود و اگر لازم شد می توان بواسطه سطح Host این تنظیمات را غیر فعال کرد.
    3-Subnet
    تنظیمات این سطح به رنج IP که در آن مشخص شده اعمال می گردد.
    4- Shared-network
    در برگیرنده چندین Subnet بطوریکه اگر Subnet ها دارای تنظیمات مشابهی هستند از این سطح می توان بهره برد و در صورت لزوم بعضی optionها را توسط سطح Subnet غیرفعال کرد.
    5-Global
    همانطور که از اسم آن آشکار است , Optionهایی که در این سطح تنظیم شود به تمام سطوح گفته شده در بالا اعمال خواهد شد.


    این سطح ها را در 2 بخش باید مورد بررسی قرار داد :

    سطوح اعمال تنظیمات برای زمانی که کلاینت از رنچ آدرس تعیین شده IP می گیرد :
    1-Global Declaration
    2-Shared-network Declaration
    3-Subnet Declaration
    Subnet----override----->Shared-network----override----->Global

    سطوح اعمال تنظیمات برای زمانی که آدرس IP برای کلاینت از قبل رزرو شده است :
    1-Global Declaration
    2-Group Declaration
    3-Host Declaration
    Host----override----->Group----override----->Global

    Optionهایی که در سطوح پایین تر تنظیم شده اند بر دیگر تنظیمات اولویت پیدا خواهند کرد.


    Global Declaration :
    default-lease-time 600;
    max-lease-time 7200;
    option routers 192.168.0.254;
    option domain-name-servers 192.168.0.1, 192.168.0.2;
    option domain-name "persianadmins.com";

    Shared-network Declaration :
    shared-network name {
    option domain-name "persianadmins.ir";
    option domain-name-servers ns1.persianadmins.ir, ns2.persianadmins.ir;
    option routers 192.168.1.254;

    subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.1 192.168.10.31;
    }

    subnet 192.168.1.0 netmask 255.255.255.0 {
    option domain-name "admins.ir";
    range 192.168.1.33 192.168.1.63;
    }
    }

    Subnet Declaration :
    subnet 192.168.2.0 netmask 255.255.255.0 {
    option routers 192.168.2.254;
    option subnet-mask 255.255.255.0;
    option domain-name "persianadmins.com";
    option domain-name-servers 192.168.2.1;
    option time-offset +12600; # Iran

    range 192.168.2.10 192.168.2.100;
    }


    Group Declaration :
    group {
    option routers 192.168.3.254;
    option subnet-mask 255.255.255.0;
    option domain-name "behroozi.info";
    option domain-name-servers 192.168.3.1;
    option time-offset +12600; # Iran

    host reza {
    option host-name "reza.behroozi.info";
    hardware ethernet 00:A0:78:8E:9E:AA;
    fixed-address 192.168.1.4;
    }

    host behroozi {
    option domain-name "4so.ir";
    option host-name "behroozi.4so.ir";
    hardware ethernet 00:A1:DD:74:C3:F2;
    fixed-address 192.168.1.6;
    }
    }

    Host Declaration :
    host shiraz {
    option domain-name "charso.ir";
    option host-name "shiraz.charso.ir";
    hardware ethernet 00:C0:78:9E:9F:BB;
    fixed-address 192.168.1.5;
    }


    تمامی IP ها و تنظیماتی که به کلاینت ها اختصاص داده می شود در فایلی به نام dhcpd.leases واقع شده در دایرکتوری var/lib/dhcp/ ذخیره می شود.نمونه این فایل :

    cat /var/lib/dhcp3/dhcpd.leases

    # All times in this file are in UTC (GMT), not your local timezone. This is
    # not a bug, so please don't ask about it. There is no portable way to
    # store leases in the local timezone, so please don't request this as a
    # feature. If this is inconvenient or confusing to you, we sincerely
    # apologize. Seriously, though - don't ask.
    # The format of this file is documented in the dhcpd.leases(5) manual page.
    # This lease file was written by isc-dhcp-V3.0.4

    lease 192.168.0.131 {
    starts 1 2007/07/16 00:57:43;
    ends 1 2007/07/16 12:57:43;
    tstp 1 2007/07/16 12:57:43;
    binding state free;
    hardware ethernet 00:0c:29:49:b9:30;
    }
    lease 192.168.0.130 {
    starts 2 2007/07/24 02:13:14;
    ends 2 2007/07/24 14:13:14;
    binding state active;
    next binding state free;
    hardware ethernet 00:50:56:c0:00:01;
    uid "\001\000PV\300\000\001";
    client-hostname "reza1";
    }


    تمامی مراحلی که dhcp سرور به کلاینت IP می دهد در syslog ثبت می شود :
    Jul 15 20:57:42 debian dhcpd: DHCPDISCOVER from 00:0c:29:49:b9:30 via eth1
    Jul 15 20:57:43 debian dhcpd: DHCPOFFER on 192.168.0.131 to 00:0c:29:49:b9:30 via eth1
    Jul 15 20:57:43 debian dhcpd: DHCPREQUEST for 192.168.0.131 (192.168.0.21) from 00:0c:29:49:b9:30 via eth1
    Jul 15 20:57:43 debian dhcpd: DHCPACK on 192.168.0.131 to 00:0c:29:49:b9:30 via eth1
    از این ویژگی می توانید برای پیدا کردن مشکلات احتمالی استفاده کنید , همچنین تمامی خطاهایی که در طول شروع سرویس روی می دهد در syslog ثبت می شود.

    مرجع کامل کانفیگ برای DHCP سرور در لینوکس :
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    محل سکونت
    Advertising world
    نوشته ها
    Many
     

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •