چکیده: امروزه علم کامپیوتر به عنوان یکی از حساس ترین و پرا اهیمت ترین علوم روز دنیا در شاخه های بسیار گوناگون و متفاوتی در حال پیشرفت سریع و همه جانبه است.
یکی از مهمترین شاخه ها علم شبکه است.
با توجه به اهمیت شایان ذکر انتقال اطلاعات در دنیای امروز شبکه های کامپیوتری بیش از پیش مورد توجه قرار گرفته اند و امروزه در سازمانها ، ادارات و مراکز بزرگ و کوچک استفاده از شبکه های کامپیوتری امری مرسوم و معمول است.
لذا موضوع و تمرکز اصلی این دوره کار آموزی روی شبکه های کامپیوتری بود.
من در این دوره مطالعه خود روی شبکه های را با محوریت دو بخش متفاوت انجام دادم.
اولین بخش مربوط به کلیات شبکه و اطلاعات مقدماتی نصب و راه اندازی شبکه ها بود که شامل بخشهای تئوریک و علمی فروان می باشد.
از جمله مهمترین این بخشها عبارت بودند از : پترولکل های ارتباطی مدل ارتباطی سیستم باز OSI و بررسی لایه های مختلف شبکه که شامل تجزیه و تحلیل هرلایه وظایف آن در معماری لایه ای می باشد.
مدلهای مختلف فیزیکی شبکه از قبیل مدل Sener base model , Peer to Peer و Client – sener model بررسی اجزای ارتباطی شبکه ها مانند کارت شبکه ( NIC )، کابل های ارتباطی مانند Twisted Pair و Coaxial و نحوه اتصالات آنها و قطعات سخت افزاری مهم مانند تکرار کننده ها ( Repeaters )، پل ها ( bridges )، مسیر یابها ( Routers ) دروازه ها ( Gateways )، سوئیچ ها ( Switch es ) و اینکه هر کدام از این قطعات چه وظایفی دارند و در کدامیک از لایه های شبکه مورد استفاده قرار می گیرند.
در بخش دوم به جنبه های مدیریتی شبکه ها و نحوه تنظیمات و اداره آنها پرداختم.
در این قسمت که بیشتر جنبه نرم افزاری داشت با استفاده از سیستم عامل توانمند Linux مدیریت بخشهای مختلف یک شبکه را مطالعه کردم.
برای این امر ابتدا لازم بود آشنایی های اولیه را با سیستم عامل Linux کسب کنیم و سپس مطالعه خود روی این سیستم عامل را بیشتر با جهت گیری در زمینه کاربرد آن در شبکه ها ادامه دهم.
لذا در ابتدا با طریقه نصب و راه اندازی Linux آشنا شدم و سپس با تعدادی دستورهای اولیه مفهوم و مفاهیم کاربردی ضروری آن آشنا گشتم.
در قسمت بعد به مطالعه کاربرد Linux در شبکه های کامپیوتری پرداختم.
البته مطالعه و کار در این بخش بسیار وسیع است و من تنها کار خود را محدود به کار با تعدادی از Sener های مهم Linux کردم .
این Sener ها عبارت بودند از : DNS Sener , Samba Sener , HTTP Sener , Squid Sener , DHCP Sener که در هر مورد ابتدا به کلیات و وظایف هر یک پرداختم.
سپس به معرفی دستورات لازم برای کار با هر یک پرداختم و در نهایت تنظیمات هر کی را مطالعه کردم.
در هر یک از این مورد سعی کردم بیشتر به جنبه های علمی قضایا نگاه کنم و از پرداختن به جزئیات تئوریک صرف حتی المقدور پرهیز کنم.
لذا در جاهایی که احساس کردم توضیحات و جزئیات بیشتر صرفا جنبه تئوریک یا استفاده های بسیار خاص دارد به معرفی منابع و سایتهای اینترنتی مربوطه اکتفا کردم ولی سعی کردم نمونه هایی ازفایلهای مهمی که در تنظیمات این سرورها نقش مهمی دارند در این گزارش بیاورم.
شرح واحد صنقی : شرکت گیلدس کامپیوتر یک شرکت قدیمی و با سابقه در بازار کامپیوتر است که علاوه بر جنبه های تجاری سعی کرده به جنبه های علمی و تئوریک نیز بها دهد.
فعالیت عمده این شرکت در دو بخش سخت افزار و شبکه صورت می گیرد.
در بخش سخت افزار، اسمبل کردن قطعات کامپیوتری و تعمیر قطعات صورت می گیرد.
البته این کار معمولا در حجم های بزرگ صورت می گیرد زیرا مشتریان طرف قرار داد این شرکت با برخورداری از امکانات و مهارت های کانی در بخش شبکه، با شرکت در مناقصه های بزرگ، پروژه های مختلفی را به عهده می گیرد.
این پروژه ها معمولا شامل نصب در راه اندازی شبکه های محلی(LAN ) می باشد که شامل تهیه قطعات سخت افزاری و نصب کامل و دقیق شبکه و سپس انتخاب Sener های مناسب با توجه به نیازهای شبکه و تنظیمات آنها و در نهایت تنظیمات Client های شبکه می باشد.
اینجانب دوره کارآموزی خود را زیر نظر آقای مهندس بابادی نیا مدیر فنی شرکت انجام دادم.
ایشان به عنوان مدیر فنی هم مسئولیت بخش سخت افزار شرکت یا بخش فنی آن را دارا میباشند.
و هم در پروژه های بخش IT و شبکه با سایر اعضای شرکت همکاری می کنند و نقش مؤثری را ایفا می کنند.
دستورهای Umount , Mount : سیستم عامل Linux فایلها و شاخه های خود را به صورت یک درختی کلی به هم پوسته سازماندهی می کند.
این درخت از شاخه Root شروع می شود تا به شاخه های سیستم و کاربردو … برسد.
در Linux شاخه های مختلف با اساسی خاص برای منظورهای مشخصی در نظر گرفته می شوند.
به عنوان مثال : ساختار فایلی با این شاخه آغاز می شود( root نامیده می شود ) / برای نگهداری فایلهای Kemel و Module هایی که هنگام boot شدن loud می شوند.
Boot / شاخه های کاربر را در بر می گیرد.
Home / فایل های واسط برای device هایی مثل پرینتر را نگهداری می کند.
Dev / برای نگهداری شاخه هایی که به طور موقت mount می شوند مانند Floppy, CD , ROM etc / برای نگهداری فایلهای موقت ( temporary ) tmp / برای استفاده از فایل ها و منابعی که در مکانهایی خارج از درخت بهم پیوسته تعریف شده برای Linux می باشند باید آنها را mount کرد.
این منابع ممکن است Floppy disk یا CD- ROM یا مثلا روی یک partihon غیر از Linux روی Hard disk واقع باشد.
برای استفاده از چنین منابعی می توانیم آنها را به دو صورت mount کنیم که یکی موقتی و دیگری دائمی است که به ذکر هر کدام می پردازیم: روش اول این است که با استفاده از دستور mount و تعیین یک مکان برای mount کردن منبع مورد نظر، آنرا به طور mount کنیم.
فرصت کلی این دستور به شکل زیر است: $ mount device mountpoint فایلهای مربوط به device مورد نظر ساخته می شوند.
مثلا Fdo به اولین Flopppy drive متصل به سیستم اشاره می کند.
در Liunx و partition های هارد دیسک با دو حرف « hd » آغاز می شوند که بعد از آن حرفی که بعنوان label برای partitan در نظر گرفته می شود می آید.
مثلا hdaz نامی است که Linux برای دومین partitan از اولین Hard disk متصل به سیستم در نظر می گیرد.
در اکثر موارد می توان با کمک گرفتن از دستور man بهمراه یک با چند حرف اول device مورد نظر، اطلاعات و جزئیات آن را استخراج کرد.
مثلا با دستور man sd می توان صفحات راهنمای SCSI device را مشاهده نمود.
مثال ) $ mount / dev / mydir این دستور Floppy disk موجود در اولین FDD را در شاخه mount , / mydir می کند.
شاخه ای که می خواهیم چیزی را در آن mount کنیم باید خالی باشد.
اگر در این شاخه فایلی از قبل mount شده باشد پیغامی مبنی بر اینکه فایل دیگری قبلا در این شاخه mount شده ، دریافت می کنید.
برای جایگزینی فایلی که قبلا mount شده با یک فایل جدید، باید ابتدا آن فایل را un mount کنید.
مثلا باید ابتدا floppy disk را un mount کنید تا بتوان یک دیسک دیگر را در drive قرارداد و mount کرد.
فرمت کلی این دستور مشابه دستور mount می باشد: $ umount device or mount point مثال ) $ umount / dev/ fdo این دستور فلاپی دیسک mount شده در شاخه mydir / را umount می کند.
همچنین به طور مشابه برای unmount کردن فلاپی می توان در دستور بالا به جای device ، mount point را ذکر کرد.
نتیجه یکسان خواهد بود: $ umount / mydir نکته بسیار مهم: یک محدودیت بزرگ درباره دستور umount وجود دارد که ممکن است برای کاربر مشکل ساز شود.
هیچگاه یک شاخه یا یک فایل سیستم را که در حال حاضر در آن می باشید یا در حال استفاده ازآن هستید unmount کنید.
اگر سعی در انجام چنین کار می کنید پیغام خطائی از طرف سیستم می آید: The file system is busy !
برای مثال، فرض کنید که یک CD- ROM را در شاخه mount , / mut / cdrom کرده اید و سپس به همان شاخه /mnt / cdrom بروید.
اگر در این حالت تصمیم به عرض کردن CD- ROM بگیرید ابتدا باید CD-ROM فعلی را با کمک دستور umount ، ار محل فعل umount کنید ولی این دستور عمل مورد نظر شما را انجام نمی دهد زیرا در حال حاضر همان در شاخه ای هستند که می خواهید آن را umount کنید.
برای انجام این کار باید ابتدا شاخه مورد نظر را ترک کنید و سپس اقدام به umount کردن CD-ROM نماید.
$ mount / der / hdc / mut / cdrom $ cd / mut / cdrom $ umount / mut / cdeom umount : / dev / hdd : devicc is busy $ cd / root $ umount / mnt / cdrom دستور mount ، option های مختلفی دارد که می توانید با مراجعه به مأخذ از جزئیات آنها مطلع شوید.
2) mount دائمی در صورت استفاده از دستور mount ، حتی اگر دستور umount را اجرا نکنید پس از reboot شدن سیستم، منابع و فایلهای mount شده خود به خود umount می شوند.
ولی گاهی اوقات نیاز است به اینکه یک فایل یا یک device برای مدتی یا برای همیشه درمحلی mount شود.
برای انجام این کار می توانیم از فایل fstab استفاده کنیم.
ورودی هایی که در این فایل قراردارند هر بار هنگام boot ank sdsjl fi x,v o,n;hv mount می شوند و دیگر نیازی به mount کردن آنها به طور کلی نمی باشد.
این فایل در شاخه / etc وسیع است.
یک ورودی ( entry ) در فایل fstab دارای فیلدهای متعددی است که به وسیله یک Space یا tab از یکدیگر جدا شده اند.
فرمت کلی این ورودیها بدین شکل می باشد.
اولین فیلد مربوط به نام فایل سیستم مورد نظر است.
دویمن فیله شاخه ای که می خواهیم فایل سیستم در آنجا mount شود ( به فایل سیستم Linux متصل شود ) را مشخیص می کند.
سومین فیله مربوط به تایپ یا نوع فایل سیستم است.
تایپ یک partiton استاندارد در L inux ، ext3 می باشد.
فایل سیستم برای windaus های 95 و 98 و Millennium ، vfat می باشد و برای Windaws های NT ، 2000 ، XP این تایپ ntfs می باشد.
تایپ auto سعی می کند به طور خودکار نوع فایل سیستم مورد نظر را تشخیص دهد.
مثال ، با باز کردن فایل /etc / fstab و دارد کردن در entey ذیل ، فلاپی دیسک و cdrom همیشه به طور خودکار هنگام boot شدن سیستم ، mount می شوند: / dev / hdc / mnt / cdrom iso 9660 ro.
Noauto 00 / dev / fdo / mnt / floppy / auto defaults / noaulo 00 یا به عنوان مثال دیگر اگر بخواهیم اولین patiton از اولین Hard disk را به طور خودکار mount کنیم چنین entey را در فایل fshib وارد می کنیم: / dev / had / mnt / windows vfat defaull 3 00 و label این partiton درشاخه /mnt ، windows خواهند بود .
سیستم پرونده ( File System ) Linux نیز همانند همه سیستمهای عامل به طرز چشمگیری بر اطلاعات ذخیره شده در پرونده ها تکیه می کند: اطلاعات کاربران مختلف، پرونده های اجرایی مورد نیاز کاربران، پرونده های داده ای مربوط به آنها، کتابخانه های مورد نیاز برای برنامه نویسی ، اطلاعات مربوط به تنظیمهای سخت افزاری و امکانات موجود در سیستم، کد اجرایی خود سیستم عامل و بسیاری اطلاعات دیگر، همگی به صورت پرونده ذخیره می شوند.
بنابراین با توجه به اهمیت و حساسیت اطلاعات فوق الذکر لازم است که این پرونده ها تحت یک نظام قوی و قابل اطمینان مدیریت و نگهداری شوند.
در سیستمهای عامل ، انجام این وظایف بر عهده سیستم پرونده است.
مثلا در DOS سیستم پرونده FAT و در سیستم عامل Windows NT ، سیستم پرونده NTFS برای این کار طراحی شده اند.
گونه هایی از Unix که قبل از BSD نگارش 2/4 ایجاد شده اند، هر یک سیستم پرونده مربوط به حخود را داشتند.
یکی از ویژگیهای جالب توجه سیستم عامل Linux در نگارشهای System V Release 4 به بعد این است که سیستم پرونده آن انواع سیستمهای پرونده موجود را می شناسد و قارد است اطلاعات موجود درآنها ( یعنی پرونده هایشان را ) بخواند.
سیستمهای پرونده پر استفاده در Unix عبارتند از : Extended File System 2 و System V File System صرف نظر از نوع ، سیستم پرونده باید اطلاعاتی را که سیستم عامل برای شناسایی کامل یک پرونده نیاز دارد مهیا کنند.
در ادامه به شرح این اطلاعات کمی پردازیم: نوع پرونده: در Linux انواع مختلفی از پرونده ها وجود دارد.
به هر نوع یک حرف کوچک انگلیسی متناظر اختصاص داده شده است.
انواع مختلف پرونده به همراه حروف متناظرشان در شکل فهرست شده است: نوع اول اغلب شامل پرونده های داده ای می شود.
مثلا پرونده های برنامه های C از نوعند.
نوع دوم نیز که برای کاربران DOS و W indows ، نوع پرونده شناخته شده ای است برای دسته بندی مجموعه های پرونده استفاده می شود.
Fifo نوعی پرونده است که برای برقراری ارتباط بین فرایندها استفاده می شود.
یکی از راههای تبادل اطلاعات بین فرایندها در Linux ، استفاده از fifo است.
ویژگی این کانال ارتباطی این است که پس از قطع ارتباط بین فرایندها از بین نمی رود و پایدار باقی می ماند.
قبل از توضیح دادن نوعی های c و b لازم است مطالبی راجع به نحوه استفاده Linux از سخت افزار بدانید: سیستم عامل Linux با هر سخت افزاری به صورت یک پرونده برخود می کند.
مثلا ارسال یک بلوک داده به چاپگر معادل نوشتن آن بلوک داده و پرونده متناظر با چاپگر است.
به این پرونده، دستگاه ( device file ) گفته می شود.
عملیات ورودی و خروجی در سخت افزارهای مختلف به دو صورت انجام می شود: ارسال و دریافت بایت به بایت داده ها ارسال و دریافت بلوکی داده ها ( در یک انتقال بیش از یک بایت منتقل شود ): متناظر با این تقسیم بندی، پرونده های دستگاه نیز به دو دسته تقسیم می شوند: character device : مانند درگاه سری ( Sereal Port ).
Block device : مانند دیسک سخت.
پرونده های نوع اول را با حرف c و نوع دوم را با b نمایش می دهند.
بعدا درباره این پرونده می تواند آن را به مالکیت کاربران دیگر در آورد.
مدیر سیستم و کاربران ایجاد کننده پرونده ، نمونه هایی از مالکان پرونده اند.
گروه پرونده : در سیستم عامل Linux کاربران به گروههایی تقسیم می شوند.
برای یک پرونده علاوه بر مالک آن شماره گروهی از کاربران که می توانند به آن پرونده دسترسی داشته باشند، نگهداری می شود.
اجازه های دسترسی ( Access P ermissions ) : نحوه دسترسی افراد به پرونده ها را مشخص می کند.
سه دسته از افرادی که می توانند به یک پرونده دسترسی داشته باشند، عبارتند از : مالک پرونده افراد درون گروه مربوط به آن پرونده بقیه کاربران برای هر کدام از افراد فوق سه نوع اجازه دسترسی مطرح می شود : خواندن ( Read ) نوشتن ( Write ) اجرا کردن ( eXecute ) طریقه نصب نرم افزار در سیستم عامل Linux : نصب نرم افزار یک کامپیوتر (administrative function )است که به وسیله کاربر root انجام می شود.
اگر هنگام نصب Linux تمام package های موجود را انتخاب نکرده باشید، تنها تعدادی از application و utility های فراوان موجود برای کاربرانLinux روی سیستم شما نصب شده است.
بسیاری از نسخه های Linux مانند Mandrake ، SUSE ، Calaera ، Rad Hat از ابزاری به نام Rad Hat Package Manager یا RPM برای سازماندهی نرم افزارهای Linux و تبدیل آنها به package هاییکه به طور خودکار قابل نصب یا حذف کردن باشند استفاده می کنند.
Debian از ابزار مدیریتی package خاص خود به نام Advanced Package Tool یا ATP استفاده می کند.
با این ابزار می توان براحتی یک package را روی سیستم نصب ( install ) کرد یا پس از نصب آنراحذف ( remore ) نمود.
نرم افزارهایی که روی CD- ROM شما موجودند با تمام گستردگی شان تنها بخش کوچکی از نرم افزارهای موجود برای کاربران Linux را تشکیل می دهند.
شما می توانید نرم افرازهای اضافی از سایتهای نرم افزاری مانند سایت Soura forge به آدرس اینترنتی download , Sourceforge .
net کنید.
نصب نرم افزار به وسیله RPM : یک برنامه کاربردی در Linux اغلب شامل تعدادی فایلهای مختلف است که باید در شاخه های متفاوتی نصب شوند.
خود برنامه اغلب در شاخه ای به نام usr / bin / قرار می گیرد در حالیکه Online manual files در شاخه دیگری قرار می گیرند و فایلهای کتابخانه ای ( library files ) در شاخه ای دیگر.
به علاوه عملیات نصب ممکن است نیاز به تغییرات بعضی فایلهای Confiy داشته باشد.
Pakagre های نرم افزاری RPM تمام این کارها را برای شما انجام می دهند.
همچنین ، اگر در آینده تصمیم گرفتید که مثلا به یک application به خصوص دیگر نیازی ندارید می توانید آن را Uninstall نمایید.
در یک محیط desktop مانند KDE یا Gnome ، می توانید با استفاده از ابزار مدیریتی GUI ، Package های RPM را نصب یا حذف نمایید.
بعضی نسخه ها ابزار مدیریتی خاص خود را دارند.
Mandrake Software Manager Mandrake که تا حد زیادی شبیه به Kpackaye رفتار م یکند استفاده می نماید.
Caldera این خدمات را از طریق COAS فراهم می کند.
همچنین می توان Package های RPM را به کار بردن دو ابزار مستقل مدیریت نمود که اولی Gnome RPM و اولی Utility Kpackage می باشد.
GnomeRPM برای کار روی هر محیط Gnome desktop طراحی شده است و Kpackage بخشی از KDE desktop می باشد.
با این ابزارها می توان محل یک package را روی سیستم تشخیص داد.
Package هایی را که می خواهید نصب کنید انتخاب نمایید.
هر دو این ابزار یک لیست از package های نصب شده روی سیستم و نشان می دهند.
اگر package مورد نظر براینصب یا update کردن package دیگری داشته باشد ممکن است هنگام نصب آن مشکلاتی رخ دهد.
این مشکلی است که اغلب وقتی یک application نیاز یه نسخه updateion نیاز به نسخه update شده یک کتابخانه مشترک دارد، اتفاق می افتد.
در این صورت شما از مشکل مطلع می شوید و برای ادامه از شما سؤال می شود.
شما می توانید کار را در آن زمان Canccl کنید و یا با پید کردن جای package مورد نیاز به نصب آن اقدام کنید.
اگر به محیط desktop دسترسی ندارید یا ترجیح می دهید که از واسط Command line استفاده کنید، می توانید با استفاده از دستور package rpm مورد نظر را مدیریت را نصب کنید.
$ rpm options rpm – package – name $ rpm – ql mozilla lmore ql فایلهای موجودد دورن application را لیست می کند.
$ rpm – ivh xv- 3010a –23.i386.
rpm برای نصب package های جدید استفاده می شود.
برای update کردن از U - استفاده می شود .
V – فایلهای را که حال نصب شدن هستند نمایش می دهد و h - یک سمبل متحرک است که نشان می دهد rpm هنوز مشغول اجرا است.
استفاده از vh - در در حین کاربرد دستور rpm کاملا مرسوم می باشد.
$ rpm – Urh mozilla – l.
0rcJ – D .
I 386.
Rpm.
$ mount / dev / mydir دراینجا کافی است علامت را حذف کنید و سپس نام وب سرور خود را بجای new.host.name تایپ کنید.
در Red Hat و بعضی نسخه های دیگر، یک entry استاندارد برای نصب web server با استفاده از /var/www بعنوان شاخه web site شما درنظر گرفته شده است.
شما می توانید web site خود را بفرم دلخواهتان تغییر دهید.
این کار بوسیله انجام تغییرات مناسب درراهنماهای مربوط می باشد.
راهنمای Dowment Root ، شاخه درنظر گرفته شده برای Web page های شما را تعیین می کند.
همچنین Server Root مشخص می کند که تنظیمات web server های شما را تعیین می کند.
همچنین Sever Root مشخص می کند که تنظیمات web server ، خطاها و فایلهای log درکجا نگهداری شوند.
Do wment Root /var/www/htm/ Sever Root /etc/httpd راهنمای MaxClient ، ماکزیمم تعداد کاربرانی که بطور همزمان می توانند به سایت شما وصل شوند را تعیین می کند.
MaxClient 150 بدیهی است شما می توانید این عدد را مطابق دلخواهتان تغییر دهید.
- کنترل دسترسی: (Access Control) با کمک راهنماهای کنترل دسترسی مانند allow و deny می توانید دسترسی به کاربران را به web site تان کنترل کنید.
بکاربردن allow بهمراه لیستی از whostname ، اجازه دسترسی را تنها به آن hostname های مشخص شده محدود می کند.
با بکاربردن deny به همراه لیستی از hostname ها ، اجازه دسترسی از آنها سلب می شود.
آرگومان all اجازه دسترسی یا عدم دسترسی را به تمام hostname ها تعمیم می دهد.
راهنمای order تعیین می کند را هنماهای کنترل دسترسی با چه ترتیبی باید اجرا شونند.
سایر راهنماها مانند requre باعث ایجاد authentication می شوند که کاربران را مجبور به log in کردن می نماید.
راهنماهای اجازه دسترسی ممکن است بطور سراسری برای کنترل دسترسی به کل سایت استفاده شوند یا دریک راهنمای شاخه خاص قرارگیرند و کنترل دسترسی را درمورد آن شاخه انجام دهند.
دراین مثال اجازه دسترسی به تمام کاربران داده می شود: order allow, deny allow from all با web site شما ارتباط برقرار می کند.
برای مثال ، یک browser ممکن است اطلاعات موردنظر را ازیک صفحه بگیرد (GET) یا اطلاعات را ازطریق آن صفحه بفرستد (post).
شما می توانید چنین دسترسی هایی را با استفاده از راهنمای محدود کنید.
زوج می شود تا یک block محدود را که درآن می توانید اجازه دسترسی ها را کنترل کنید تعریف نماید.
این راهنماها تنها در مورد متدهای دسترسی معین شده کاربرد دارند.
می توانید چنین بلاکهای Limit را دریک Directory بکار ببرید تا اجازه دسترسی ها را تنها برای آن شاخه کنترل کنید.
دراین مثال بلاک directory درفایل /etc/config/httpd.conf متدهای دسترسی را برای شاخه home سایت شما کنترل می کند.
This should be changed to whatever you set Document Root to.
Options Indexes Follow SymLinks AllowOverride All Order allow.
Deny Allow from all مثالی دیگر Order Deny.
Allow Deny from www.
Myvids.
Com دراین مثال اجازه دسترسی به شاخه mypics را ازتقاضاهایی که از www.myvids.com می آیند سلب می کند.
* برای اطلاعات بیشتر از جزئیات یا هرگونه تنظیمات احتمالی دیگر می توانید به مراجع یا سایتهای زیر رجوع کنید.
www.apache.org – httpd.apache.org DNS Severs Domain Name Service یا DNS یک سرویس اینترنتی است که اسمی حوزه (domain name) را به IP های متناظرشان تبدیل می کند.
همانطورکه می دانید تمام کامپیوترهایی که به اینترنت متصل می باشند با استفاده از پروتکل اینترنت (IP) ، آدرس دهی می شوند.
آدرس دهی به شیوه IP ممکن است به روش جدیدتر IP6 (ویرایش Internet Protcol 6) یا فرم قدیمی تر IP4 انجام شود.
ولی از آنجا که هنوز اکثر سیستم ها از روش آدرس دهی IP4 حمایت می کنند مثالهایی که دراین جا استفاده می کنیم از همین شیوه آدرس دهی تبعیت می کنند.
این شیوه آدرس دهی از این قراراست که به کامپیوتر یک سوی اعداد درغالب چهاربخش (Segment) متفاوت نسبت داده می شود.
بطورمثال 192.168.0.2 .
دراینجا جزئیات تسالین شیوه آدرس دهی و معنای این Segment ها و کلاسهای مختلف IP بحث موردنظر ؟؟؟.
بحث مهم اینکه درهرصورت کاربرد این اعداد بعنوان آدرس درعمل بسیارسخت و حتی غیرممکن می باشد و احتمال بروز خطا نیز بالا میرود.
برای حل این مشکل متناظر با هریک از این IPها یک نام درنظر گرفته می شود که به آن fully qualified domain name می گویند.
بطورمثال www.linux.org دارای یک IP های متناظرشان به یکدیگر است.
می توان برای هرکامپیوتر یک فایل درنظر گرفت که این عمل متناظر بوسیله آن انجام شود.
در Unix , Linux این فایل /etc/hosts می باشد.
دراینجا می توان آدرس IP و نام یک کامپیوتر را وارد کرد.
ولی این متد این عیب را دارد که هرکامپیوتر روی شبکه نیاز به یک لیست کامل ازتمامی کامپیوترهای دیگر متصل به شبکه دارد و تازه این لیست باید مرتباً Update نیز شود.
هرچند این متد برای شبکه های کوچک قابل اجرا است ولی کاملاً بدیهی است که برای اینترنت به هیچ وجه عملی نمی باشد.
به این دلیل سرویس نام حوزه یا Domah Name Service برای ترجمه اسامی کامپیوترهای متصل به اینترنت به آدرسهای IP متناظرشان بوجود آمد.
این عمل بوسیله بهم وصل کردن severهایی که سرویس نام حوزه را ارائه می دهند (که به آنها DNS Server یا name server می گویند) انجام می شود.
این sever ها لیستی از نامهای کامپیوترها و IPهای متناظرشان را نگه داری می کنند.
هرگاه یک نام بعنوان آدرس تایپ می شود، ابتدا این نام به DNS Server مربوطه ارجاع داده می شود و IP متناظر آن استخراج می شود و سپس درخواست درحقیقت به آن آدرس IP فرستاده می شود.
مجموعه این عملیات را resolve کردن آدرس IP گویند.
برای مثال وقتی ما درخواست برقراری ارتباط با سایت www.Linux.org را می کنیم ابتدا آدرس IP این سایت resolve می شود و سپس درخواست ما به آدرس 192.182.196.56 که آدرس IP متناظر این نام است ارسال می شود.
BIND: نرم افزار DNS Server ای که درحال حاضردرسیستمهای Linux استفاده می شود BIND یا Berkeley Internet Name Domain می باشد.
این نرم افزار از یک دیمن name server ، تعدادی تنظیمات نمونه و کتابخانه هایی که درعلمیات resolve کردن استفاده می شوند تشکیل شده است.
نام named , BIND name sever doemon می باشد.
برای اینکه سیستم شما بتواند بعنوان یک name server عمل کند کافی است این named daemon را اجرا کنید.
این daemon به تقاضاها برای resolution یک نام (پیدا کردن آدرس IP متناظر) گوش می دهد و آدرس IP متناظر صحیح را برمی گرداند.
مشابه آنچه درمورد httpd داشتیم برای …, start, stop دراینجا نیز می توانیم از دستور servuce استفاده می کنیم: مثال: Service named restart این دستور daemon مربوط به DNS Sever یا همان named را restart می کند.
- تنظیمات و پیکربندی DNS با استفاده از فایل named.Conf : دراین قسمت باید ابتدا با مفهوم Zone آشنا شویم.
Zone به قسمتی از شبکه که name server ؟؟؟
آنرا به عهده دارد گفته می شود.
یک Zone مانند domain نیست زیرا دریک domain بزرگ ممکن است Zone های مختلفی وجود داشته باشند که هرکدام name server خود را دارند.
همچنین ممکن است یک name server به چندین Zone سیروس دهد.
درچنین مواردی هرZone ، فایل مربوط به خود را دارد.
Zone file ها اطلاعات مربوط به منابعی که تناظر بین IP ها و اسامی را دارند درخود نگه می دارند.
ورودی های Zone درفایل named.conf تعریف می شوند.
دراین فایل ورودی های Zone برای forward DNS server, slave, master قرار می گیرند.
تایپهای معمول Zone عبارتند از: - Master Zone : فایل اصلی یا primary zone file برای یک شبکه است.
این فایل شامل نقشه ای از domain name ها به آدرسهای IP متناظر برای تمام host های شبکه است.
- Slave Zone : این فایل درحقیقت یک ارجاع به DNS Server های روی شبکه است.
شبکه شما می تواند یک Master DNS ؟؟؟
داشته باشد و تعدادی Slave DNS Server برای کمک به کاهش بار روی شبکه.
یک Slave DNS Server بطورخودکار تنظیمات خود را از master DNS Server کپی می کند که شامل تمام Zone file ها می باشد.
- Forward Zone : این فایل شمال لیست اسامی name server های خارج شبکه است که درصورتیکه name server شبکه نتوانست آدرسی را پیدا کند به آن server ارجاع دهید، forward کند.
IN-ADDR.
ARPA Zone : برای عملیات reverse resolution یا پیداکردن IP بطورمعکوس است.
در این حالت یک IP داریم که می خواهیم domain name متناظر آنرا پیدا کنیم.
چنین عملی برسیم تا فایلهای این Zone انجام می شود.
هرفایل master zone معمولاً یک فایل IN-ADDR.ARPA Zone متناظر دارد که عملیات revser resolution را انجام دهید.
به ازای هرentry درفایل master zone یک reverse mapping entry دراین فایل وجوددارد با این تفاوت که segment های این ورودی برعکس هستند.
مثلاً به ازای یک ورودی IP ، 192.168.0.4 در فایل master zone ، دراین فایل ورودی 4.0168.192 وجود دارد.
-Hint Zone : مشخص می کند که root name server کیست.
فایل named.
Conf : همانطور که گفتهشد تنظیمات لازم برای named.
Conf در این فایل قرار میگیرند.
فرمت کلی این فایل بدین شکل است: zone “ domain نام [ in] type باز شد foruand hint.
Slave.
Mater می تواند type file “ نام فایل “ ز { optio { directony “ نام شاخه “ ز و name sene های zone این شاخههای فایلهای cache فایلهای forwarders { } ز ها در صورت query هایی که DNS Serve نام میشوند.
Forward لزوم به آنها } ز در اینجا برای فهم تبریک نمونه از فایل تنظیم شده named .
conf را میآوریم.
11 A Sinple BIND q con figuration logging { cateyary cname { null ز} ز {ز options { diretory “ / var / normed “ ر { ز zone “.” { type hint ز file “ named.
Ca “ ز { ز zone “ my trek.com” { type masterز hle “ my trek.
Com” ز { ز zone “ 1.168.192.
IN.
ADDR.
ARPA” { type master ز file “ 142.
168.o “ ز zone “ o.o .
127.
IN- ADDR.
ARPA “ { type master ز flle “ named.
Local “ ز { ز قدم بعدی ایجاد ZONE FILE هارد named.
Conf های مربوطه میباشد.
- منابع رکورد ( Resource Records ) : name sever اطلاعات مربوط به domain name را برای هر host روی شبکه در منابع رکوردی که داخل فایلهای zonc و reverse mapping هستند نگهداری میکنید.
برای هر کامپیوتر نیاز به یک رکورد در فایل zone می باشد.
هر رکورد معمولاً یک خط اشغال میکند.
فرمت استاندارد یک رکورد بدین شکل است: name [ ] [ ] [ ] name نام رکورد می باشد.
Tt1 یا time to live زمانی است که رکورد بوسیله cache .
senrer میشود.
Class ، کلدس رکود را تعیین میکند.
کلاسی که در اثر رکوردها بکار میرود ً IN ً برای اینترنت است.
Type ، تایپ رکورد را مشخص میکند.
این تایپ میتواند برای یک host ، NS برای NAME SEVER مسول یک Zone، mx برای یک mail sener ، txt برای رشته های تستی که معمولاً حاوی اطلاعاتی درباره یک host هستند و چندین تایپ دیگر باشد.
در اینجا به ذکر مثالی میپردازیم که در آن نام rabbit .
mytrek.
Com می باشد، کلاس کلاس in یا اینترنت است و تایپ از نوع یک (A) host میباشد و data همان آدرس IP است.