منبع اصلی نوشتار زیر در این لینک قرار دارد

name resolution در لینوکس و فایل های مرتبط با آن

name resolution مکانیزمی است که چگونگی تبدیل نام ها به آدرس ها را فراهم می کند. در سیستم عامل های یونیکسی دو گزینه اصلی برای بدست آوردن آدرس های معادل هر نام وجود دارد. فرض کنید که دو ماشین به نام های pc1 و pc2 که به ترتیب دارای آدرس های 192.168.1.1 و 192.168.1.2 وجود دارند که قصد دارید ارتباطی میان آنها را با استفاده از نام هایشان ایجاد کنید. اگر از روی ماشین pc1 دستور ping 192.168.1.2  را انجام دهید و از روی ماشین pc2 دستور ping 192.168.1.1 را نجام دهید قطعن پاسخ درست خواهید گرفت چون هر دوی این ماشین ها در یک شبکه هستند.اما اگر از روی ماشین pc1 دستور ping pc2 و از روی ماشین pc2 دستور ping pc1 را اجرا کنید با اینکه همه چیز درست است و از طریق آدرس ها قادر به ping هستید ولی با ping توسط نام ها به مشکل می خورید. سیستم عامل های یونیکسی ( لینوکسی) ابتدا برای بدست آوردن آدرس معادل یک نام در فایل etc/hosts/  به جستجو می پردازند. این فایل باید بصورت دستی بر روی هر یک از ماشین ها تنظیم شود. فرض اینکه 10 ماشین در شبکه داریم پس لازم است در هر ماشین به ازای 9 ماشین دیگر آدرس و نام معادل را وارد کنیم که از معایب این فایل در شبکه های بزرگ به حساب می آید. از دیگر معایب آن اینکه، پس از تغییر آدرس یک ماشین باید این تغییر را در 9 ماشین دیگر نیز بصورت دستی اعمال کنیم. پس اگر فرض کنیم 10 ماشین داریم پس حداقل باید 9 آدرس  و نام معادلشان را در هر ماشین بصورت دستی وارد نمود. اما می توان حداکثری هم برای تنظیم دستی آدرس و نام معادل بیان کرد به این صورت که اگر در خود ماشینی مانند pc1 با آدرس 192.168.1.1 دستور ping 192.168.1.1 را اجرا کنیم قطعن در صورت عدم مشکلی پاسخ درست خواهیم گرفت ولی اگر در خود ماشین pc1 دستور ping pc1 را اجرا کنیم چون مکانیزمی برای تبدیل نام به آدرس وجود ندارد قطعن در خود همین ماشین هم به مشکل می خوریم پس می توان حداکثری را اینطور گقت که اگر 10 ماشین داشته باشیم به همراه وارد کردن آدرس ها و نام های معادل 9 ماشین دیگر باید آدرس و نام معادل خود همان ماشین را هم در فایل etc/hosts/ وارد کرد که می شود حداکثر 10 ماشین.فایل etc/hosts/ با سرویس dhcp به هیچ عنوان در تعامل نمی باشد. یعنی نباید انطور فرض شود که وقتی dhcp به ماشینی آدرس می دهد (به کارت شبکه ماشینی آدرس می دهد) این فایل بصورت خود کار بروز خواهد شد. بلکه باید دوباره آدرس جدید را بصورت دستی روی تک تک دیگر ماشین ها وارد نمود یا به عبارتی این فایل حالت استاتیک (Static) دارد.

مطلب مرتبط با فایل etc/hosts/

فایل etc/hosts/ چیست

گزینه بهتر و ساده تر که با dhcp نیز در تعامل است استفاده از dns است. شما یک ماشین را بعنوان dns server در نظز می گیرید. وقتی dns را روی ماشینی نصب می کنید نسبت به فایل etc/hosts/ دارای امکانات فراوانی هستید. اصلی ترین مزیت برای تمام مدیران مدیریت ساده تر آدرس ها و نام های معادلشاناست. با نصب و تنظیم dns نیاز به ایجاد و تنظیم فایل هایی به نام zone file ها دارید. در اصل zone file ها، پایگاه داده هایی هستند که مانند فایل etc/hosts/ دارای آدرس و نام های معادلشان هستند. از دیگر مزیت های dns اینکه شما بجای تنظیم دستی تک تک فایل های etc/hosts/ در هر ماشین فقط نیاز دارید یکبار آدرس هر ماشین و نام معادلش را در zone file مربوطه وارد کنید و یا در صورت تغییر یک ادرس فقط و فقط یک فایل در dns server  را تغییر می دهید. یعنی در zone file مربوطه در dns server فقط باید یکبار همان آدرس را تغییر دهید و سپس تمامی دیگر ماشین ها از این تغییر متوجه خواهند شد. مزیت دیگر استفاده از dns ادغام یا همکاری آن با سرویس dhcp است. با تنظیم dhcp ویژگی وجود دارد که وقتی dhcp به ماشینی جدید، آدرس ip می دهد خود dhcp آدرس و نام معادل آنرا بصورت خودکار در zone file وارد می کند.اما چگونه؟ برای اینکار باید در تنظیم dhcp دو پارامتر زیر را تنظیم کنید. با فرض اینکه از قبل dns server را که دارای آدرس 192.168.1.3 است تنظیم کرده باشیم اولین پارامتر تنظیماتی زیر اشاره به نام دامنه دارد که بطور مثال falearn.local است و دمین پارامتر تنظیماتی زیر اشاره به آدرس dns server دارد.

;”option domain-name    “falearn.local

;”option domain-name-servers    “192.168.1.3

وقتی ماشینی از dhcp آدرس می گیرد بصورت خودکار ادرس dns server آن 192.168.1.3 تنظیم خواهد شد. اما پارامتری که باعث ثبت خودکار آدرس و نام ماشین در zone file در dns server می شود پارامتر زیر است.مقدار توصیه شده برای آن interim است.

;”ddns-update-style    “interim

البته اگر به هر دلیلی آدرس ماشینی را تغییر دادید دیگر dhcp وظیفه تغییر آدرس در dns server را ندارد و خودتان باید دستی آنرا تغییر دهید. اما فقط در یک ماشین و در یک فایل و یکبار آدرس را تغییر خواهید داد که نسبت به فایل etc/hosts/ ساده تر مدیریت می شود.

مطالب مرتبط با dhcp و dns

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

آموزش راه اندازی امن dns server

فایل etc/resolv.conf/ در سیستم های یونیکسی (لینوکسی) در کلاینت ها و دیگر ماشین ها برای تنظیم ادرس name server ها استفاده می شودد. منظور اینکه در این فایل آدرس dns server های شبکه که باید کلاینت یا هر ماشینی از آنها آدرس معادل نام را بخواهد بصورت زیر قرار می گیرد. در هر خط این فایل جلوی عبارت nameserver یک آدرس قرار می گیرد.

nameserver   DNS_IP_ADDR

اما در لینوکس چگونه ترتیب بین استفاده از فایل etc/hosts/ و dns معلوم می شود.اگر فرض کنیم که هر دو روش یعنی فایل etc/hosts/ و فایل etc/resolv.conf/ برای داشتن آدرس dns server ها لینوکس از فایلی به نام etc/nsswitch.conf/ برای فهمیدن اینکه اولویت با کدام روش (فایل etc/hosts/ یا dns server) استفاده می کند. این فایل در اصل پایگاه داده ای است برای تعیین روش و اولویت name resolution که در سیستم عامل های یونیکسی (لینوکسی) استفاده می شود. خطی مانند زیر در این فایل قرار دارد که معلوم می کند ماشین لینوکسی باید ابتدا برای بدست آوردن آدرس معادل نام از فایل etc/hosts/ استفاده کند و در صورتی که از این فایل به نتیجه ای نرسید به سراغ dns برود.

hosts:      files dns

files در خط بالا منظور همان فایل etc/hosts/ است و چون پیش از dns آمده پس اولویت اول است. منظور از dns هم اینکه ماشین لینوکسی فایل etc/resolv.conf/ را خوانده و آدرس (های) dns server (ها) را خوانده و در خواست را به آن ارسال می کند.

مطالب مرتبط با فایل ها

فایل etc/resolv.conf/ چیست

فایل etc/nsswitch.conf/ چیست

توجه داشته باشید که منظور از نام ماشین در گفته های بالا، ” نام هاست” یا hostname آن ماشین است.



برچسب ها : , , , , , , , , , ,