چكيده:
امروزه علم كامپيوتر به عنوان يكي از حساس ترين و پرا اهيمت ترين علوم روز دنيا در شاخه هاي بسيار گوناگون و متفاوتي در حال پيشرفت سريع و همه جانبه است. يكي از مهمترين شاخه ها علم شبكه است. با توجه به اهميت شايان ذكر انتقال اطلاعات در دنياي امروز شبكه هاي كامپيوتري بيش از پيش مورد توجه قرار گرفته اند و امروزه در سازمانها ،

ادارات و مراكز بزرگ و كوچك استفاده از شبكه هاي كامپيوتري امري مرسوم و معمول است. لذا موضوع و تمركز اصلي اين دوره كار آموزي روي شبكه هاي كامپيوتري بود. من در اين دوره مطالعه خود روي شبكه هاي را با محوريت دو بخش متفاوت انجام دادم. اولين بخش مربوط به كليات شبكه و اطلاعات مقدماتي نصب و راه اندازي شبكه ها بود كه شامل بخشهاي تئوريك و علمي فروان مي باشد. از جمله مهمترين اين بخشها عبارت بودند از :

– پترولكل هاي ارتباطي
– مدل ارتباطي سيستم باز 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 هاي مختلفي دارد كه مي توانيد با مراجعه به مأخذ از جزئيات آنها مطلع شويد.

۲) 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 از يكديگر جدا شده اند. فرمت كلي اين وروديها بدين شكل مي باشد.
< device > < mountpoint > < filesystemtype > < options > < dump >
< fsck >
اولين فيلد مربوط به نام فايل سيستم مورد نظر است. دويمن فيله شاخه اي كه مي خواهيم فايل سيستم در آنجا mount شود ( به فايل سيستم Linux متصل شود ) را مشخيص مي كند. سومين فيله مربوط به تايپ يا نوع فايل سيستم است. تايپ يك partiton استاندارد در L inux ، ext3 مي باشد.
فايل سيستم براي windaus هاي ۹۵ و ۹۸ و Millennium ، vfat مي باشد و براي Windaws هاي NT ، ۲۰۰۰ ، 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 نگارش ۲/۴ ايجاد شده اند، هر يك سيستم پروندة مربوط به حخود را داشتند.

يكي از ويژگيهاي جالب توجه سيستم عامل Linux در نگارشهاي System V Release 4 به بعد اين است كه سيستم پرونده آن انواع سيستمهاي پروندة موجود را مي شناسد و قارد است اطلاعات موجود درآنها ( يعني پرونده هايشان را ) بخواند. سيستمهاي پروندة پر استفاده در Unix عبارتند از : Extended File System 2 و System V File System صرف نظر از نوع ، سيستم پرونده بايد اطلاعاتي را كه سيستم عامل براي شناسايي كامل يك پرونده نياز دارد مهيا كنند. در ادامه به شرح اين اطلاعات كمي پردازيم:

نوع پرونده: در Linux انواع مختلفي از پرونده ها وجود دارد. به هر نوع يك حرف كوچك انگليسي متناظر اختصاص داده شده است. انواع مختلف پرونده به همراه حروف متناظرشان در شكل فهرست شده است:
حرف متناظر نوع پرونده
– Ordinary file
d Directory
p fifo
c Character device
b Block device
l Link to another file

– نوع اول اغلب شامل پرونده هاي داده اي مي شود. مثلا پرونده هاي برنامه هاي 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 )
2- نوشتن ( Write )
3- اجرا كردن ( 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 كنيد.