سرویس DHCP برای اختصاص IP ها بصورت خودکار به سیستم های درون یک شبکه استفاده می شود. یک سیستم کامپیوتری ابتدا با یک پیغام DHCPDISCOVER به سیستم های شبکه اعلان در خواست IP می کند و یک سرور DHCP با پیغام DHCPOFFER یک پیشنهاد برای اختصاص IP می دهد و دوباره سیستم کلاینت با پیغام DHCPREQUEST که حاوی ادرس IP سرور DHCP است پیشنهاد DHCP سرور قبول می کند و دیگر سرور های DHCP با دیدن این پیغام OFFER به کلاینت نمی دهند و در نهایت سرور DHCP با یک DHCPACK ادرس IP را به کلاینت می دهد.
در لینوکس سرویس dhcpd برای این منظور استفاده می شود و پیکر بندی آن بسیار ساده و راحت است.یک سرویس dhcpd از یک Scope که در لینوکس به آن range گفته می شود به همراه یک سری از option ها تشکیل شده است. تعیین range و تعیین آدرس شبکه برای اختصاص دادن به کلاینت ها لازم و ضروری است اما استفاده از option ها اختیاری است.در این مطلب ابتدا نحوه نصب سرویس را نصب و سپس آنرا پیکربندی می کنیم.
فرضیات :
سیستم عامل استفاده شده Centos5.5 :
برای شبکه کردین چندین توزیع لینوکسی را در vmware workstation7 نصب کنید و تنظیمات Network Adapter آنها را بر روی Bridge قرار دهید.
ادرش شبکه ما 10.10.10.0 و subnetmask : 255.255.255.255.0 hsj.
نام دامنه استفاده شده example.com و آدرس IP آن 10.10.10.1 خواهد بود.
برای نمایش نسخه centos خود در خط فرمان دستور زیر را اجرا کنید :
نصب سرویس DHCP در Centos :
سیستمی را که در آن سرویس DHCP را نصب می کنیم بعنوان سرور و بقیه را بعنوان کلاینت در نظر می گیریم. دستور زیر را برای نصب DHCP در Centos اجرا کنید (نیاز به دسترسی کاربر root دارید).
فایل های درگیر با سرویس dhcpd :
مهمترین فایلی که با آن سرو کار داریم فایل dhcpd.conf که در زیر دایرکتوری etc/ قرار دارد. برای مشاهده آن دستور زیر را اجرا کنید :
فایل بالا مربوط به IPV4 بوده و فایل دیگری با نام dhcp6c.conf در همان مسیر بالا وجود دارد که برای IPV6 استفاده می شود.فایل dhcpd.conf در ابتدا خالیست و باید آنرا درست و بر اساس نیاز پر کنیم.(در این فایل با استفاده از علامت # در ابتدای خط , آن خط را کامنت می کنیم).
تنظیمات سرور و کلاینت :
در سیستمی که بعنوان سرور انتخاب می کنیم باید یک کارت شبکه را بعنوان سرویس دهنده DHCP انتخاب کنیم.حتی اگر چند کارت شبکه داشته باشیم تنها یکی از انها را باید برای سرویس DHCP استفاده کنیم و روی آن یک IP بصورت استاتیک(ثابت) تنظیم کنیم.هر کارت شبکه در مسیر زیر یک فایل بصورت ifcfg-ethx دارد که x شماره کارت شبکه و از عدد صفر شروع می شود به بالا.برای دیدن محتوای فایل کانفیگ اولین کارت شبکه با نام eth0 را با دشتور زیر ببینید :
در این پست این فایل را بصورت کامل توضیح داده شده است.
برای دادن یک ادرس IP ثابت به کارت شبکه باید متغیر های زیر را به آن با مقادیر مناسب اضافه کنیم.عبارتی را که باید وارد کنیم در زیر توضح داده شده اند :
IPADDR که همان آدرس IP ثابت به کارت شبکه خواهد بود و در این مثال ما آن را 10.10.10.1 می گذاریم.
NETMASK که همان subnet mask است و در این مثال 255.255.255.0
NETWORK که معرف آدرس شروع شبکه است و با توجه به range این مثال عدد 10.10.10.0 است.
سه عبارت بالا باید وارد شوند اما تغیراتی هم در فایل باید داه شوند :
اول باید مقدار عبارت BOOTPROTO به static تغییر کند.( کلمه static بصورت کوچک)
عبارت ONBOOT باید yes باشد.
تنظمات بخش کلاینت بسیار ساده است و حتی می توان گفت تنظیم خاص هم ندارد و تنها باید در هر فایل ifcfg-eth0 در هر کلاینت مقادار BOOTPROTO برابر با dhcp باشد.
شروع به کار برای پر کردن فایل dhcpd.conf :
این فایل از بخش های اصلی و option ها تشکیل شده استد در پایان عر بخش و یا option علامت سمی کولون (;) می اید.
option ها میان {} قرار می گیرند.
تمامی دستور ها با حروف کوچک هستند.
فایل را با هر ویرایشگری که دوست دارید باز کنید. من از vi با دستور زیر استفاده می کنم(نیاز به کاربر ریشه دارید):
اول از همه نیاز به نوشتن دو خط زیر است که ملزم به نوشتم آن هستید :
سپس شما باید ادرس شبکه و subnet mask انرا تعیین کنید و سپس تنها باید یک range در محدوده ادرس های این شبکه تعیین کنید که با دستور های زیر انجام می شود :
سه option که می توان آنها را نوشت :
router که همان default getway است و کلاینت های این شبکه با استفاده از به دیگر شبکه ها دسترسی دارند.
subnet-mask که subnet mask تمام شبکه را تعیین می کند.
broadcast-address که از نام آن پیداست( این پست را بخوانید)
یک کانفیگ بهینه بصورت زیر خواهد بود :
پس ار تنظیمات بالا کار تمام است و باید با دستور زیر سرویس dhcpd را راه اندازی کنید :
دو option کاربردی دیگر برای dns است که به کلاینت ها تفهیم می کند که برای پرس و جو های DNS ی از چه IP و چه Domain Name ی استفاده کنند.
domain-name معرف نام دامنه
domain-name-servers معرف آدرس IP سرویس
فایل dhcpd.leases که با دستور زیر می توانید انرا ببینید شامل نام سیستم ها و IP هایی است که از سیستم DHCP یک آدرس IP دریافت کرده اند.
اگر این فایل وجود نداشته باشد سرویس دچار مشکل خواهد شد.
نویسنده نامی امیر
در لینوکس سرویس dhcpd برای این منظور استفاده می شود و پیکر بندی آن بسیار ساده و راحت است.یک سرویس dhcpd از یک Scope که در لینوکس به آن range گفته می شود به همراه یک سری از option ها تشکیل شده است. تعیین range و تعیین آدرس شبکه برای اختصاص دادن به کلاینت ها لازم و ضروری است اما استفاده از option ها اختیاری است.در این مطلب ابتدا نحوه نصب سرویس را نصب و سپس آنرا پیکربندی می کنیم.
فرضیات :
سیستم عامل استفاده شده Centos5.5 :
برای شبکه کردین چندین توزیع لینوکسی را در vmware workstation7 نصب کنید و تنظیمات Network Adapter آنها را بر روی Bridge قرار دهید.
ادرش شبکه ما 10.10.10.0 و subnetmask : 255.255.255.255.0 hsj.
نام دامنه استفاده شده example.com و آدرس IP آن 10.10.10.1 خواهد بود.
برای نمایش نسخه centos خود در خط فرمان دستور زیر را اجرا کنید :
کد PHP:
rpm -q centos-release
سیستمی را که در آن سرویس DHCP را نصب می کنیم بعنوان سرور و بقیه را بعنوان کلاینت در نظر می گیریم. دستور زیر را برای نصب DHCP در Centos اجرا کنید (نیاز به دسترسی کاربر root دارید).
کد PHP:
yum install dhcpd
مهمترین فایلی که با آن سرو کار داریم فایل dhcpd.conf که در زیر دایرکتوری etc/ قرار دارد. برای مشاهده آن دستور زیر را اجرا کنید :
کد PHP:
less /etc/dhcpd.conf
تنظیمات سرور و کلاینت :
در سیستمی که بعنوان سرور انتخاب می کنیم باید یک کارت شبکه را بعنوان سرویس دهنده DHCP انتخاب کنیم.حتی اگر چند کارت شبکه داشته باشیم تنها یکی از انها را باید برای سرویس DHCP استفاده کنیم و روی آن یک IP بصورت استاتیک(ثابت) تنظیم کنیم.هر کارت شبکه در مسیر زیر یک فایل بصورت ifcfg-ethx دارد که x شماره کارت شبکه و از عدد صفر شروع می شود به بالا.برای دیدن محتوای فایل کانفیگ اولین کارت شبکه با نام eth0 را با دشتور زیر ببینید :
کد PHP:
less /etc/sysconfig/network-scripts/ifcfg-eth0
برای دادن یک ادرس IP ثابت به کارت شبکه باید متغیر های زیر را به آن با مقادیر مناسب اضافه کنیم.عبارتی را که باید وارد کنیم در زیر توضح داده شده اند :
IPADDR که همان آدرس IP ثابت به کارت شبکه خواهد بود و در این مثال ما آن را 10.10.10.1 می گذاریم.
NETMASK که همان subnet mask است و در این مثال 255.255.255.0
NETWORK که معرف آدرس شروع شبکه است و با توجه به range این مثال عدد 10.10.10.0 است.
سه عبارت بالا باید وارد شوند اما تغیراتی هم در فایل باید داه شوند :
اول باید مقدار عبارت BOOTPROTO به static تغییر کند.( کلمه static بصورت کوچک)
عبارت ONBOOT باید yes باشد.
تنظمات بخش کلاینت بسیار ساده است و حتی می توان گفت تنظیم خاص هم ندارد و تنها باید در هر فایل ifcfg-eth0 در هر کلاینت مقادار BOOTPROTO برابر با dhcp باشد.
کد PHP:
BOOTPROTO=dhcp
این فایل از بخش های اصلی و option ها تشکیل شده استد در پایان عر بخش و یا option علامت سمی کولون (;) می اید.
option ها میان {} قرار می گیرند.
تمامی دستور ها با حروف کوچک هستند.
فایل را با هر ویرایشگری که دوست دارید باز کنید. من از vi با دستور زیر استفاده می کنم(نیاز به کاربر ریشه دارید):
کد PHP:
vi /etc/dhcpd.conf
کد PHP:
;ddns-update-style- interim
;ignore client-update
کد PHP:
}subnet 10.10.10.0 netmask 255.255.255.0
;range 10.10.10.2 10.10.10.20
{
router که همان default getway است و کلاینت های این شبکه با استفاده از به دیگر شبکه ها دسترسی دارند.
subnet-mask که subnet mask تمام شبکه را تعیین می کند.
broadcast-address که از نام آن پیداست( این پست را بخوانید)
یک کانفیگ بهینه بصورت زیر خواهد بود :
کد PHP:
subnet 10.10.10.0 netmask 255.255.255.0
;option routers 10.10.10.250
; option subnet-mask 255.255.255.0
;option broadcast-address 10.10.10.255
;range 10.10.10.2 10.10.10.20
{
کد PHP:
service dhcpd start
domain-name معرف نام دامنه
domain-name-servers معرف آدرس IP سرویس
فایل dhcpd.leases که با دستور زیر می توانید انرا ببینید شامل نام سیستم ها و IP هایی است که از سیستم DHCP یک آدرس IP دریافت کرده اند.
کد PHP:
less /var/lib/dhcpd/dhcpd.leases
نویسنده نامی امیر
کامنت