اطلاعیه

بستن
No announcement yet.

پیاده سازی dhcp در لینوکس – بخش اول

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    پیاده سازی dhcp در لینوکس – بخش اول

    سرویس 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 خود در خط فرمان دستور زیر را اجرا کنید :

    کد PHP:
    rpm -q centos-release 
    نصب سرویس DHCP در Centos :

    سیستمی را که در آن سرویس DHCP را نصب می کنیم بعنوان سرور و بقیه را بعنوان کلاینت در نظر می گیریم. دستور زیر را برای نصب DHCP در Centos اجرا کنید (نیاز به دسترسی کاربر root دارید).

    کد PHP:
    yum install dhcpd 
    فایل های درگیر با سرویس dhcpd :

    مهمترین فایلی که با آن سرو کار داریم فایل dhcpd.conf که در زیر دایرکتوری etc/ قرار دارد. برای مشاهده آن دستور زیر را اجرا کنید :

    کد PHP:
    less /etc/dhcpd.conf 
    فایل بالا مربوط به IPV4 بوده و فایل دیگری با نام dhcp6c.conf در همان مسیر بالا وجود دارد که برای IPV6 استفاده می شود.فایل 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 
    شروع به کار برای پر کردن فایل dhcpd.conf :
    این فایل از بخش های اصلی و option ها تشکیل شده استد در پایان عر بخش و یا option علامت سمی کولون (;) می اید.

    option ها میان {} قرار می گیرند.

    تمامی دستور ها با حروف کوچک هستند.

    فایل را با هر ویرایشگری که دوست دارید باز کنید. من از vi با دستور زیر استفاده می کنم(نیاز به کاربر ریشه دارید):

    کد PHP:
    vi /etc/dhcpd.conf 
    اول از همه نیاز به نوشتن دو خط زیر است که ملزم به نوشتم آن هستید :

    کد PHP:
    ;ddns-update-styleinterim

    ;ignore client-update 
    سپس شما باید ادرس شبکه و subnet mask انرا تعیین کنید و سپس تنها باید یک range در محدوده ادرس های این شبکه تعیین کنید که با دستور های زیر انجام می شود :

    کد PHP:
    }subnet 10.10.10.0 netmask 255.255.255.0

    ;range 10.10.10.2 10.10.10.20


    سه option که می توان آنها را نوشت :

    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


    پس ار تنظیمات بالا کار تمام است و باید با دستور زیر سرویس dhcpd را راه اندازی کنید :

    کد PHP:
    service dhcpd start 
    دو option کاربردی دیگر برای dns است که به کلاینت ها تفهیم می کند که برای پرس و جو های DNS ی از چه IP و چه Domain Name ی استفاده کنند.

    domain-name معرف نام دامنه

    domain-name-servers معرف آدرس IP سرویس

    فایل dhcpd.leases که با دستور زیر می توانید انرا ببینید شامل نام سیستم ها و IP هایی است که از سیستم DHCP یک آدرس IP دریافت کرده اند.

    کد PHP:
    less /var/lib/dhcpd/dhcpd.leases 
    اگر این فایل وجود نداشته باشد سرویس دچار مشکل خواهد شد.
    نویسنده نامی امیر
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-11-2020, 11:49 PM.

    #2
    پیاده سازی dhcp در لینوکس – بخش دوم

    رزرو یک IP برای یک سیستم :
    در حالت های خاص شاید لازم باشد به یک کارت شبکه یا حتی یا یک Device بخواهیم یک IP همیشگی بدهیم. در لینوکس این کار با استفاده از اعلان host بصورت زیر انجام می شود :

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	DHCP1-300x68.png نمایش ها:	1 اندازه:	16.5 KB شناسه:	17059

    در تصویر بالا host یک کلمه کلیدی و HOSTNAME نامی است که شما به دلخواه خود انتخاب می کنید. بجای MAC-ADDRESS باید آدرس MAC سیستم دلخواه را بنویسد.با دستور زیر می توانید آدرس MAC را پیدا کنید.

    ifconfig -a eth0

    مفهوم حوزه global :

    تا به اینجا با طریقه نوشتن یک range و تعیین option هایی برای آن و همچنین تعریف یک آدرس IP رزرو شده آشنا شدیم. در بخش نخست وقتی در حوزه تعریف یک subnet یک یا چندین option را در بین آکولاد باز/بسته {} تعریف می کنیم این option ها فقط مطعلق به همین Scope یا range هستند و در بیرون این آکولاد باز و بسته تاثیری ندارند.حتی می توان در حوزه تعریف یک IP رزرو شده نیز option هایی را تعریف کرد.

    در کل option هایی که بین آکولاد باز/بسته {} باشد تنها در همان حوزه اثر دارد اما می توان option هایی را نیز تعریف کرد که بصورت سراسری یا global باشند مثال زیر :

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	DHCP2-300x284.png نمایش ها:	1 اندازه:	66.1 KB شناسه:	17060

    در مثال بالا خطوط 1 و 3 و 5 بصورت سراسزی برای تمامی آکولاد ها اما خط 16 برای دو آکولاد آخر بصورت سراسری است.

    فرض کنید یک option مانند routers که default getway را نشان می دهد هم بصورت سراسری و هم بصورت محلی ( داخل آکولاد باز/بسته) باشد اما مقادیرشان با هم متفاوت است. در این صورت اولویت با option محلی است یعنی آن option ی که در حوزه محلی است الویت بالاتری نسبت به option سراسری دارد.
    نویسنده نامی امیر
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-11-2020, 11:49 PM.

    کامنت

    درباره انجمن منطقه لینوکسی ها

    انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

    شبکه های اجتماعی

    ایمیل مدیریت

    Habili@linux-zone.org

    در حال انجام ...
    X