آموزش راه اندازی سرویس dhcp لینوکس

آموزش راه اندازی سرویس dhcp لینوکس

سرویس (dynamic host configuration protocol) DHCP از جمله سرویس های پایه جهت مدیریت شبکه های توسعه یافته است که در استاندارد RFC 2131 تعریف شده است. در این مقاله آموزش راه اندازی سرویس dhcp لینوکس داده میشود.

وظیفه اصلی این سرویس مدیریت و تخصیص IP به ماشین های یک شبکه کامپیوتری است. این پروتکل با استفاده از یک مخزن IP به شکل پویا (Dynamic) در زمان و هزینه مربوط به مدیریت کاربران و سیستم های شبکه صرفه جویی می کند. با ایجاد هرگونه تغییر در ساختار شبکه های مبتنی بر این سرویس ( مانند تغییر آدرس default gateway یا DNS server) کافی است تغییرات ایجاد شده تنها در سرویس دهنده DHCP اعمال شود و نیازی به اعمال پیکربندی جدید در یکایک ماشین ها نیست.

 

نحوه عملکرد سرویس DHCP

1- در اولین مرحله هر یک از ماشین های موجود در شبکه و تحت سرویس دهنده DHCP در زمان راه اندازی سیستم، درخواست دریافت یک IP از این سرویس دهنده را می کنند.

2- سرویس دهنده DHCP با مراجعه به مخزن IP خود و از بین IP های موجود اقدام به انتخاب و تخصیص IP به درخواست ارسال شده از طرف ماشین Clinet می کند.

3- ماشین درخواست دهنده DHCP با اعلام ثبت شدن IP و MAC کامپیوتر درخواست کننده به فرایند تخصیص IP خاتمه می دهد. دیگر اطلاعات مورد نیاز ماشین درخواست کننده شامل آدرس default gateway و سرویس دهنده DNS شبکه نیز به وسیله سرویس دهنده DHCP در اختیار او قرار می گیرد. هر یک از IP های تخصیص داده شده برای زمان یعنی به ماشین مشخصی اجاره داده می شوند.

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

سرویس DHCP در سایر توزیع های لینوکسی به شکل پیش فرض نصب و قابل استفاده می شود. عموماً از این سرویس به شکل standalone استفاده شده و فایل پیکربندی آن در شاخه /etc قرار می گیرد.

 

تهیه و پیکربندی آموزش راه اندازی سرویس dhcp لینوکس

سرویس DHCP در بسته های مختلف deb,rpm و tar.gz قابل تهیه هستند که آخرین نسخه آن از طریق سایت رسمی آن قابل تهیه است. فایل پیکربندی سرویس عموماً در مسیر /etc و با نام dhcpd.conf قرار دارد. از آنجا که راه اندازی ناخودآگاه یک سرویس دهنده DHCP در شبکه جاری می تواند منجر به بروز مشکل و مختل کردن عملکرد شبکه شود.

در بیشتر موارد فایل پیکربندی یاد شده در شاخه /etc به شکل پیش فرض وجود نداشته و مدیر شبکه جهت ساخت آن باید اقدام کند. در برخی از توزیع ها مانند redhat و fedora core یک فایل پیکربندی نمونه از این سرویس در مسیر /usr/share/doc قرارداده شده است که با تغییر نام آن از dhcp.conf.sample به dhcpd.conf و قرار دادن آن در شاخه /etc می توان سرویس را راه اندازی کرد.
شکل زیر نمونه ای از یک فایل پیکربندی /etc/dhcpd.conf را یک شبکۀ (Small Office/Home Office)SOHO نشان می دهد.

ddns-update-style-none;
ignore client-updates;
lease-file-name “/var/lib/dhcpd/dhcpd.leases”
authoritative;
option domain-name “example.com”;
default-lease-time 86400;
max-lease-time 172800;
subnet 192.168.1.0 netmask 255.255.255.0 {
——–default gateway
Option routers 192.168.1.1;
Option subnet-mask 255.255.255.0;
Option beoadcast-address 192.168.1.255;
Option domain-name-servers 192.168.1.1;
Option ntp-servers 192.168.1.1;
Option netbios-name-servers 192.168.1.1;
Option netbios-node-type 8
Range 192.168.1.101.192.168.1.200;

 

همانطور که در شکل فوق مشاهده می کنید مخزن سرویس دهنده فوق شامل محدوده ip های 192.168.1.101 تا 192.168.1.200 است. می توان یک سرویس دهنده DHCP را به نحوی پیکربندی کرد که شامل بیش از یک مخزن IP (زیر شبکه) باشد. پارامترهایی که در شکل فوق قبل از عبارت

 

subnet

قرار گرفته اند، پارامترهای عمومی فایل پیکربندی را تعریف می کنند که می توان هر یک از آنها را در داخل بخش مربوط به هر زیر شبکه (subnet) بازنویسی کرد. عملکرد پارامترهای یاد شده در جدول زیر عنوان شده است. جهت کسب اطلاعات کاملتردر زمینه پارامترهای قابل تنظیم در فایل پیکربندی سرویس می توانید به صفحات manual مربوط به (man dhcpd.conf) dhcpd.conf و (man dhcpd-options) dhcpd-options مراجعه کنید.

 

پارامترها/ کاربرد

Ddns-update-style/ نوع به روز رسانی سرویس DNS پویا (Dynamic DNS) به کاررفته در سرویس دهنده محلی را مشخص می کند.

Ignore client-updates/ از درخواست همه کاربران جهت به روزرسانی رکوردهای DDNS صرفه نظر می کند.

Lease-file-name/ نام فایلی است که لیست IPهای واگذار شده و مشخصات سیستم های گیرنده IP در آن درج شده است.

authoritative/ جهت مشخص کردن یک DHCP Server اصلی به کار می رود. این امر عموماً به منظور جلوگیری از بروز تداخل در سمت کاربران و سرویس دهندگان است.

Option domain-name/ نام دامنه اینترنتی را مشخص می کند که به نام hostname ماشین های شبکه جاری اضافه می شود.

Option domain-name-server/ سرویس دهنده های DNS که کاربران جهت انحام عملیات تبدیل نام به IP از انها استفاده می کنند را مشخص می کند.

Default-lease-time/ مدت زمانی که یک IP به هر یک از ماشین های شبکه اجاره داده می شود( برحسب ثانیه)

Max-lease-time/ حداکثر زمانی که یک IP به یک ماشین تخصیص داده می شود را مشخص می کند(برحسب ثانیه)

Option-routers/ آدرس دروازه خروج کاربران(Default gatway) از شبکه جاری را مشخص می کند.

Option subnet-mask Subnet mask/ زیر شبکه ای که ip به آن تخصیص داده می شود را مشخص می کند.

Option broadcost-address/ آدرس braod cast زیر شبکه ای که ip به آن تخصیص داده می شود را مشخص می کند.

Option ntp-servers/ سرویس دهنده های موجود جهت همسان سازی
زمان ماشین های موجود در شبکه را مشخص می کند.

Option netbios-name-server/آدرس سرویس دهنده اسامی (WINS)netbios موجود در شبکه را مشخص می کند.

Option netbios-node-type/الگوی تبدیل نام های netbios به ip را مشخص می کند.

range/محدوده ip های مجاز موجود در جهت تخصیص به کاربران را مشخص می کند.

با استفاده از پارامتر ذکر شده به راحتی امکان پیکربندی و راه اندازی سرویس DHCP وجود دارد. تنها نکته ای که در زمان پیکربندی باید از نظر قالب فایل dhcpd conf به آن توجه داشته باشید، وجود ; در انتهای پارامترهاست.

در صورتی که شبکه تحت سرویس دهنده DHCP موجود فاقد WINS Server است، پارامترهای netbios-name-server و netbios-node-type را از این فایل حذف کنید.

در مواردی نیز لازم هست برخی از سیستم های موجود در شبکه دارای ip ثابتی باشند که آن را از سرویس دهنده دریافت نکرده اند و با راه اندازی مجدد آنها، این ip تغییر نخواهد کرد. برای انجام این کار پارامتر زیر را در فایل پیکربندی dhcpd.conf قرار دهید:

Host wkstn1 {
Hardware Ethernet 0 0: 0D:92:D7:A 0:12;
Fixed-address 192.168.1.5;
}

تخصیص ipهای ایستا بدینوسیله، زمان مدیران شبکه را از تخصیص این گونه ipهای به صورت دستی کاهش می دهد. IPهای ایستا را تنها در مواردی که مطمئن هستید مورد استفاده نیستند، از فایل dhcpd.conf حذف کنید، زیرا عموماً در شبکه های گسترده، تخصیص و مدیریت چنین IP هایی دارای اهمیت زیادی است.

 

آموزش راه اندازی سرویس dhcp لینوکس

جهت پیکربندی سرویس در زمان راه اندازی سیستم و تخصیص آن به یک کارت شبکه مشخص( جهت اراده سرویس به یک زیر شبکه خاص) می توان از فایل پیکربندی /etc/sysconfig/dhcpdاستفاده کرد. در مواردی که قصد استفاده از کارت شبکه را دارید می توانید از پارامتر DHCPDARGS استفاده کنید.

DHCPDARGS=eth1

با راه اندازی سرویس DHCP همه تبادلات صورت گرفته مربوط به این سرویس در فایل dhcpd.leases ذخیره می شود. در برخی از توزیع های لینوکسی فایل یاد شده به شکل پیش فرض موجود نیستند و در مواردی پیش از راه اندازی سرویس نیاز به ساخت آن در مسیر از پیش تعیین شده ای است. جهت ساخت این فایل فرمان زیر را اجرا کنید:

Touch/var/lib/dhcpd/dhcpd.leases

پس از انجام این کار سرویس آماده اجرا است. قبل از اجرای آن به وسیله ابزار chkconfig در توزیع های مبتنی بر redhat و update-rc.d در لینوکس های مبتنی بر Debian می توان سطوح اجرایی مورد نظر جهت اجرای آن را مشخص کرد. فرمان زیر این سرویس را در سطوح 4،3،2 و5 سیستم فعال کرده و سپس آن را راه اندازی می کند:

Chkconfig –level 1 2345 dhcpd on
/etc/init.d/dhcpd restart

جهت اطمینان از فعال شدن سرویس در سطوح موردنظر فرمان chkconfig را در قالب زیر اجرا کنید:

Dawood: ~ # chkconfig –list dhcpd
Dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Dawood: ~#

 

مشاهده سطوح اجرایی dhcp

پس از راه اندازی سرویس فایل /var/log/messages را جهت بررسی وضعیت سرویس با استفاده از فرمان tail مشاهده کنید. با اجرای فرمان زیر همۀ خطوط مرتبط با سرویس dhcp را در فایل /var/log/messages مشاهده خواهید کرد.

Grep dhcpd/var/log/messages
Galaxy dhcpd: lost listening an lpf/eth1/00:40:05:51:20: E7/192.168.1.0/24
Galaxy dhcpd: sendiny on socket/fallback- net
Galaxy dhcpd: dhcpd startup succeeded

حال پس از پیکربندی سرویس دهنده نوبت به تست آن و پاسخ به درخواست های ارسالی از طرف کاربران می رسد. پروتکل DHCP از پورت 67 پروتکل UDP برای پاسخ به درخواست های کاربران استفاده می کند. نکته ای که باید در نظر داشته باشید، باز بودن این پورت در دیوار آتش سمت کاربران است که در صورت مسدود بودن آن امکان دریافت IP از سرویس دهنده برای آنها وجود ندارد. ماشین هایی که دارای سیستم عامل های لینوکسی هستند با اجرای فرمان dhcclient قادر به اخذ IP از سرویس دهنده DHCPهستند. نحوۀ اجرا و خروجی این فرمان را در یک ماشین لینوکسی می توانید در زیر مشاهده کنید:

Dhclient eth0
Internet Systems Consortium DHCP client V3.0.1
Copyright 2004 Internet System Consrtium
All right reserved
For info please visit http://www.isc.org/products/DHCP
Listening on LPF/eth0/00:0D:62: D7: A0: 12
Sending on LPF/eth0/00:0D: 62: D7: A0:12
Sending on socket/ fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPOFFER from 192. 168.1.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
Bound to 192.168.1.5 – – renewal in 20509 seconds

پس از دریافت IP توسط سرویس گیرنده، مبادلات صورت گرفته بین سرویس دهنده و سرویس گیرنده را می توانید با هم در log سیستم مشاهده کنید. با توجه به خروجی فرمان dhclient در شکل فوق مشاهده می کنید که آدرس 192.168.1.5 به سیسستمی با آدرس MAC یاد شده تخصیص داده شده است.

اجرای فرمان grepبر روی فایل /var/log/messages خطوط مربوط به سرویس دهندۀ DHCP را در زیر نشان خواهد داد:

Grep dhcpd /var/log/messages
Galaxy dhcpd:DHCPDISCOVER from 00: 0D: 62: D7: A0: 12 via eth0
Galaxy dhcpd: DHCPFEER On 192.168.1.5 to 00: 0D: 62: D7: A0: 12 via eth0
Galaxy dhcpd: DHCPREQUEST for 192. 168: 1.5 (192. 168.1.1) from 00:
0D: 62: D7: A0: 12
Galaxy dhcpd:DHCPACK on 192: 168: 1. 5 to 00:0D: 62: D7:A0: 12 via eth0

در ماشین های ویندوزی موجود در شبکۀ جاری با استفاده از فرمان ipconfig در قالب زیر می توان اقدام به اخذ IP جدید کرد:

C:\> ipconfig/release
Windows IP configuretion
Ethernet adaptor local Area connection
Connection-specific DNS suffix:
IP Address :0.0.0.0
Subnet Mask :0.0.0.0
Default Gateway

C:\> ipconfig/renew
Windows IP configuretion
Ethernet adaptor local Area connection
Connection-specific DNS suffix: example.com
IP Address : 192.168.1.5
Subnet Mask : 255.255.255.0
Default Gateway : 192.168.1.1

نکته: هر گاه کاربران سیستم های ماکروسافتی موفق به اخذ IP از سرویس دهندۀ DHCP نشوند، به شکل پیش فرض یک IP از محدودۀ زیر شبکۀ 169.254.0.0 دریافت می کنند. این IP تا زمانی که ارتباط بین این ماشین با سرویس دهندۀ DHCP مجدداً برقرار شود مورد استفاده قرار می گیرد.

 

اشکال زدایی سرویس DHCP

در مواردی که کاربران قادر به اتصال به سرویس دهنده و دریافت IP نیستند می توان با انجام مراحل زیر آن را اشکال زدایی کرد:

1. از صحت پیکربندی سرویس دهندهۀ DHCP اطمینان لازم را حاصل کرده و با استفاده از فرمان pgrep یا ps از در حال اجرا بودن فرایند آن مطمئن شوید. همچنین از وجود مسیر 255.255.255.255 در جدول مسیر یابی سرویس دهنده مطمئن شوید. جهت قرار گرفتن این مسیر به شکل پیش فرض در زمان راه اندازی ماشین، آن را در فایل static- routes به صورت زیر قرار دهید:

/etc/sysconfig/static-routes
Eth0 host 255.255.255.255

2. از این روش های تست عملکرد سرویس دهنده DHCP، تخصیص یک IP ایستا به ماشین هایی که موفق به اخذ IP نشده اند است. این IP از محدودۀ IPهای مخزن سرویس دهنده DHCP انتخاب می شود که در صورت عدم برقراری ارتباط پس از تخصیص IP به احتمال بسیارزیادی مشکل در اتصالات فیزیکی شبکه جاری است.

3. از جمله دیگر مواردی که پیشتر نیز به آن اشاره شد اطمینان از باز بودن پورت پروتکل (67UDP)BOOTP که مورد استفادۀ سرویس DHCP است، می باشد.

آموزش راه اندازی سرویس dhcp لینوکس

So, what do you think ?

بالا
نماد الکترونیک دوستاره شرکت هاستینگ ابر سرور