TCP/IP چیست؟ و آشنایی با چهار لایه آن
TCP/IP چیست؟ و آشنایی با چهار لایه آن
کلید اجرای یک سرویس کوچک برنامه نویسی TCP/IP می باشد.
Internet Protocol / Transmission Control Protocol عنوانی است برای گروهی از پروتکل ها که در جهت برفراری ارتباط کامپیوتر ها استفاده می شود.
سرویس دهنده ماشینی است که اطلاعات را بر روی سرویس گیرنده ارسال می کند.
سرویس گیرنده یک کاربر عمومی اینترنت و یا اینترانت می باشد.(در مورد اینترانت و اکسترانت در پست بعدی به طور کامل توضیح خواهم داد) و کد ورود به شبکه با استفاده از یک نرم افزار صورت می گیرد.
چهار لایه TCP/IP :
1- لایه واسطه شبکه
2- لایه شبکه
3- لایه انتقال
4- لایه کاربرد
لایه اول : لایه واسطه شبکه
در این لایه استانداردهای سخت افزاری و نرم افزاری و پرتکل های شبکه تعریف شده.
این لایه درگیر با مسائل سخت افزاری مرتبط با شبکه بوده و می تواند عناصر همگن و ناهمگن را به هم پیوند بزند. در این لایه تمام پروتکل های LAN ,MAN قابل استفاده هستند.
لایه دوم : لایه شبکه
وظیفه اصلی این لایه هدایت از مبدا تا مقصد بسته های اطلاعاتی خاص به نام IP است.
(بعدا توضیح کامل داده خواهد شد)
به قیر از پروتکل IP پروتکل هایی دیگ نیز هستند که وطایف مهمی را بر عهده دارند.
مهمترین آنها : ARP , RARP , RIP , ICMP , BOOTP ,& more
دراین لایه مسیر یاب ها از شرایط توپولوژیکی و ترافیکی شبکه اطلاعات را کسب می کند تا مسیر یاب ها به روش آسان و پویا انجام دهند.
لایه سوم : لایه انتقال
در این لایه ماشین ها ی میزبان در شبکه با هم ارتباط برقرار می کنند و به عبارت دیگر یک سرویس اتصال گرا مطمئن است برای عملیاتی مانند ارسال صوت و تصویر که سرعت مهمتر از دقت است سرویس های سریع و نا مطمئن طراحی شده است. در این سرویس لایه از رسیدن داده ها به مقصد اطلاع می یابد.
لایه چهارم : لایه کاربرد
این لایه دارای سطع بالایی برای خلق برنامه های کاربردی ویژه و پیچیده ارائه می شود.
انتقال فایل یا FTP و شیبه سازی ترمینال و مدیریت پست و انتقال صفحات ابر متنی و ده ها پروتکل کاربردی دیگر از سطح این لایه است.
مفاهيم پروتکل TCP/IP در شبكه
پروتکل TCP/IP
TCP/IP ، يکی از مهمترين پروتکل های استفاده شده در شبکه های کامپيوتری است . اينترنت بعنوان بزرگترين شبکه موجود ، از پروتکل فوق بمنظور ارتباط دستگاه های متفاوت استفاده می نمايد. پروتکل ، مجموعه قوانين لازم بمنظور قانونمند نمودن نحوه ارتباطات در شبکه های کامپيوتری است .در مجموعه مقالاتی که ارائه خواهد شد به بررسی اين پروتکل خواهيم پرداخت . در اين بخش مواردی همچون : فرآيند انتقال اطلاعات ، معرفی و تشريح لايه های پروتکل TCP/IP و نحوه استفاده از سوکت برای ايجاد تمايز در ارتباطات ، تشريح می گردد.
مقدمه
امروزه اکثر شبکه های کامپيوتری بزرگ و اغلب سيستم های عامل موجود از پروتکل TCP/IP ، استفاده و حمايت می نمايند. TCP/IP ، امکانات لازم بمنظور ارتباط سيستم های غيرمشابه را فراهم می آورد. از ويژگی های مهم پروتکل فوق ، می توان به مواردی همچون : قابليت اجراء بر روی محيط های متفاوت ، ضريب اطمينان بالا ،قابليت گسترش و توسعه آن ، اشاره کرد . از پروتکل فوق، بمنظور دستيابی به اينترنت و استفاده از سرويس های متنوع آن نظير وب و يا پست الکترونيکی استفاده می گردد. تنوع پروتکل های موجود در پشته TCP/IP و ارتباط منطقی و سيستماتيک آنها با يکديگر، امکان تحقق ارتباط در شبکه های کامپيوتری را با اهداف متفاوت ، فراهم می نمايد. فرآيند برقراری يک ارتباط ، شامل فعاليت های متعددی نظير : تبديل نام کامپيوتر به آدرس IP معادل ، مشخص نمودن موقعيت کامپيوتر مقصد ، بسته بندی اطلاعات ، آدرس دهی و روتينگ داده ها بمنظور ارسال موفقيت آميز به مقصد مورد نظر ، بوده که توسط مجموعه پروتکل های موجود در پشته TCP/IP انجام می گيرد.
معرفی پروتکل TCP/IP
TCP/IP ، پروتکلی استاندارد برای ارتباط کامپيوترهای موجود در يک شبکه مبتنی بر ويندوز 2000 است. از پروتکل فوق، بمنظور ارتباط در شبکه های بزرگ استفاده می گردد. برقراری ارتباط از طريق پروتکل های متعددی که در چهارلايه مجزا سازماندهی شده اند ، ميسر می گردد. هر يک از پروتکل های موجود در پشته TCP/IP ، دارای وظيفه ای خاص در اين زمينه ( برقراری ارتباط) می باشند . در زمان ايجاد يک ارتباط ، ممکن است در يک لحظه تعداد زيادی از برنامه ها ، با يکديگر ارتباط برقرار نمايند.
TCP/IP ، دارای قابليت تفکيک و تمايز يک برنامه موجود بر روی يک کامپيوتر با ساير برنامه ها بوده و پس از دريافت داده ها از يک برنامه ، آنها را برای برنامه متناظر موجود بر روی کامپيوتر ديگر ارسال می نمايد. نحوه ارسال داده توسط پروتکل TCP/IP از محلی به محل ديگر ، با فرآيند ارسال يک نامه از شهری به شهر، قابل مقايسه است .
برقراری ارتباط مبتنی بر TCP/IP ، با فعال شدن يک برنامه بر روی کامپيوتر مبدا آغاز می گردد . برنامه فوق ،داده های مورد نظر جهت ارسال را بگونه ای آماده و فرمت می نمايد که برای کامپيوتر مقصد قابل خواندن و استفاده باشند. ( مشابه نوشتن نامه با زبانی که دريافت کننده ، قادر به مطالعه آن باشد) . در ادامه آدرس کامپيوتر مقصد ، به داده های مربوطه اضافه می گردد ( مشابه آدرس گيرنده که بر روی يک نامه مشخص می گردد) . پس از انجام عمليات فوق ، داده بهمراه اطلاعات اضافی ( درخواستی برای تائيد دريافت در مقصد ) ، در طول شبکه بحرکت درآمده تا به مقصد مورد نظر برسد. عمليات فوق ، ارتباطی به محيط انتقال شبکه بمنظور انتقال اطلاعات نداشته ، و تحقق عمليات فوق با رويکردی مستقل نسبت به محيط انتقال ، انجام خواهد شد .
لايه های پروتکل TCP/IP
TCP/IP ، فرآيندهای لازم بمنظور برقراری ارتباط را سازماندهی و در اين راستا از پروتکل های متعددی در پشته TCP/IP استفاده می گردد. بمنظور افزايش کارآئی در تحقق فرآيند های مورد نظر، پروتکل ها در لايه های متفاوتی، سازماندهی شده اند . اطلاعات مربوط به آدرس دهی در انتها قرار گرفته و بدين ترتيب کامپيوترهای موجود در شبکه قادر به بررسی آن با سرعت مطلوب خواهند بود. در اين راستا، صرفا" کامپيوتری که بعنوان کامپيوتر مقصد معرفی شده است ، امکان باز نمودن بسته اطلاعاتی و انجام پردازش های لازم بر روی آن را دارا خواهد بود. TCP/IP ، از يک مدل ارتباطی چهار لايه بمنظور ارسال اطلاعات از محلی به محل ديگر استفاده می نمايد: Application ,Transport ,Internet و Network Interface ، لايه های موجود در پروتکل TCP/IP می باشند.هر يک از پروتکل های وابسته به پشته TCP/IP ، با توجه به رسالت خود ، در يکی از لايه های فوق، قرار می گيرند.
لايه Application
لايه Application ، بالاترين لايه در پشته TCP/IP است .تمامی برنامه و ابزارهای کاربردی در اين لايه ، با استفاده از لايه فوق، قادر به دستتيابی به شبکه خواهند بود. پروتکل های موجود در اين لايه بمنظور فرمت دهی و مبادله اطلاعات کاربران استفاده می گردند . HTTP و FTP دو نمونه از پروتکل ها ی موجود در اين لايه می باشند .
پروتکل HTTP)Hypertext Transfer Protocol) . از پروتکل فوق ، بمنظور ارسال فايل های صفحات وب مربوط به وب ، استفاده می گردد .
پروتکل FTP)File Transfer Protocol) . از پروتکل فوق برای ارسال و دريافت فايل، استفاده می گردد .
لايه Transport
لايه " حمل " ، قابليت ايجاد نظم و ترتيب و تضمين ارتباط بين کامپيوترها و ارسال داده به لايه Application ( لايه بالای خود) و يا لايه اينترنت ( لايه پايين خود) را بر عهده دارد. لايه فوق ، همچنين مشخصه منحصربفردی از برنامه ای که داده را عرضه نموده است ، مشخص می نمايد. اين لايه دارای دو پروتکل اساسی است که نحوه توزيع داده را کنترل می نمايند.
TCP)Transmission Control Protocol) . پروتکل فوق ، مسئول تضمين صحت توزيع اطلاعات است .
UDP)User Datagram Protocol) . پروتکل فوق ، امکان عرضه سريع اطلاعات بدون پذيرفتن مسئوليتی در رابطه با تضمين صحت توزيع اطلاعات را برعهده دارد .
لايه اينترنت
لايه "اينترنت"، مسئول آدرس دهی ، بسته بندی و روتينگ داده ها ، است. لايه فوق ، شامل چهار پروتکل
اساسی است :
IP)Internet Protocol) . پروتکل فوق ، مسئول آدرسی داده ها بمنظور ارسال به مقصد مورد نظر است .
ARP)Address Resoulation Protocol) . پروتکل فوق ، مسئول مشخص نمودن آدرس MAC)Media Access Control) آداپتور شبکه بر روی کامپيوتر مقصد است.
ICMP)Internet Control Message Protocol) . پروتکل فوق ، مسئول ارائه توابع عيب يابی و گزارش خطاء در صورت عدم توزيع صحيح اطلاعات است .
IGMP)Internet Group Managemant Protocol) . پروتکل فوق ، مسئول مديريت Multicasting در TCP/IP را برعهده دارد.
لايه Network Interface
لايه " اينترفيس شبکه " ، مسئول استقرار داده بر روی محيط انتقال شبکه و دريافت داده از محيط انتقال شبکه است . لايه فوق ، شامل دستگاه های فيزيکی نظير کابل شبکه و آداپتورهای شبکه است . کارت شبکه ( آداپتور) دارای يک عدد دوازده رقمی مبنای شانزده ( نظير : B5-50-04-22-D4-66 ) بوده که آدرس MAC ، ناميده می شود. لايه " اينترفيس شبکه " ، شامل پروتکل های مبتنی بر نرم افزار مشابه لايه های قبل ، نمی باشد. پروتکل های Ethernet و ATM)Asynchronous Transfer Mode) ، نمونه هائی از پروتکل های موجود در اين لايه می باشند . پروتکل های فوق ، نحوه ارسال داده در شبکه را مشخص می نمايند.
مشخص نمودن برنامه ها
در شبکه های کامپيوتری ، برنامه ها ی متعددی در يک زمان با يکديگر مرتبط می گردند. زمانيکه چندين برنامه بر روی يک کامپيوتر فعال می گردند ، TCP/IP ، می بايست از روشی بمنظور تمايز يک برنامه از برنامه ديگر، استفاده نمايد. بدين منظور ، از يک سوکت ( Socket) بمنظور مشخص نمودن يک برنامه خاص ، استفاده می گردد.
آدرس IP
برقراری ارتباط در يک شبکه ، مستلزم مشخص شدن آدرس کامپيوترهای مبداء و مقصد است ( شرط اوليه بمنظور برقراری ارتباط بين دو نقطه ، مشخص بودن آدرس نقاط درگير در ارتباط است ) . آدرس هر يک از دستگاه های درگير در فرآيند ارتباط ، توسط يک عدد منحصربفرد که IP ناميده می شود ، مشخص می گردند. آدرس فوق به هريک از کامپيوترهای موجود در شبکه نسبت داده می شود . IP : 10. 10.1.1 ، نمونه ای در اين زمينه است .
پورت TCP/UDP
پورت مشخصه ای برای يک برنامه و در يک کامپيوتر خاص است .پورت با يکی از پروتکل های لايه "حمل" ( TCP و يا UDP ) مرتبط و پورت TCP و يا پورت UDP ، ناميده می شود. پورت می تواند عددی بين صفر تا 65535 را شامل شود. پورت ها برای برنامه های TCP/IP سمت سرويس دهنده ، بعنوان پورت های "شناخته شده " ناميده شده و به اعداد کمتر از 1024 ختم و رزو می شوند تا هيچگونه تعارض و برخوردی با ساير برنامه ها بوجود نيايد. مثلا" برنامه سرويس دهنده FTP از پورت TCP بيست و يا بيست ويک استفاده می نمايد.
سوکت (Socket)
سوکت ، ترکيبی از يک آدرس IP و پورت TCP ويا پورت UDP است . يک برنامه ، سوکتی را با مشخص نمودن آدرس IP مربوط به کامپيوتر و نوع سرويس ( TCP برای تضمين توزيع اطلاعات و يا UDP) و پورتی که نشاندهنده برنامه است، مشخص می نمايد. آدرس IP موجود در سوکت ، امکان آدرس دهی کامپيوتر مقصد را فراهم و پورت مربوطه ، برنامه ای را که داده ها برای آن ارسال می گردد را مشخص می نمايد.
در بخش دوم اين مقاله به تشريح هر يک از پروتکل های موجود در پشته TCP/IP، خواهيم پرداخت .
TCP/IP ،شامل شش پروتکل اساسی( TCP,UDP,IP,ICMP,IGMP ،ARP ) و مجموعه ای از برنامه های کاربردی است. پروتکل های فوق، مجموعه ای از استادنداردها ی لازم بمنظور ارتباط بين کامپيوترها و دستگاهها را در شبکه ، فراهم می نمايد. تمامی برنامه ها و ساير پروتکل ها ی موجود در پروتکل TCP/IP ، به پروتکل های شش گانه فوق مرتبط و از خدمات ارائه شده توسط آنان استفاده می نمايند . در ادامه به تشريح عملکرد و جايگاه هر يک از پروتکل های اشاره شده ، خواهيم پرداخت .
پروتکل TCP : لايه Transport
TCP) Transmission Control Protocol) ، يکی از پروتکل های استاندارد TCP/IP است که امکان توزيع و عرضه اطلاعات ( سرويس ها) بين صرفا" دو کامپيوتر ، با ضريب اعتماد بالا را فراهم می نمايد. چنين ارتباطی ( صرفا" بين دو نقطه ) ، Unicast ناميده می شود . در ارتباطات با رويکرد اتصال گرا ، می بايست قبل از ارسال داده ، ارتباط بين دو کامپيوتر برقرار گردد . پس از برقراری ارتباط ، امکان ارسال اطلاعات برای صرفا" اتصال ايجاد شده ، فراهم می گردد . ارتباطات از اين نوع ، بسيار مطمئن می باشند ، علت اين امر به تضمين توزيع اطلاعات برای مقصد مورد نظر برمی گردد . بر روی کامپيوتر مبداء ، TCP داده هائی که می بايست ارسال گردند را در بسته های اطلاعاتی (Packet) سازماندهی می نمايد. در کامپيوتر مقصد ، TCP ، بسته های اطلاعاتی را تشخيص و داده های اوليه را مجددا" ايجاد خواهد کرد .
ارسال اطلاعات با استفاده از TCP
TCP ، بمنظور افزايش کارائی ، بسته های اطلاعاتی را بصورت گروهی ارسال می نمايد . TCP ، يک عدد سريال ( موقعيت يک بسته اطلاعاتی نسبت به تمام بسته اطلاعاتی ارسالی ) را به هريک از بسته ها نسبت داده و از Acknowledgment بمنظور اطمينان از دريافت گروهی از بسته های اطلاعاتی ارسال شده ، استفاده می نمايد. در صورتيکه کامپيوتر مقصد ، در مدت زمان مشخصی نسبت به اعلام وصول بسته های اطلاعاتی ، اقدام ننمايد ، کامپيوتر مبداء ، مجددا" اقدام به ارسال اطلاعات می نمايد. علاوه برافزودن يک دنباله عددی و Acknowledgment به يک بسته اطلاعاتی ، TCP اطلاعات مربوط به پورت مرتبط با برنامه ها ی مبداء و مقصد را نيز به بسته اطلاعاتی اضافه می نمايد. کامپيوتر مبداء ، از پورت کامپيوتر مقصد بمنظور هدايت صحيح بسته های اطلاعاتی به برنامه مناسب بر روی کامپيوتر مقصد ، استفاده می نمايد. کامپيوتر مقصد از پورت کامپيوتر مبداء بمنظور برگرداندن اطلاعات به برنامه ارسال کننده در کامپيوتر مبداء ، استفاده خواهد کرد .
هر يک از کامپيوترهائی که تمايل به استفاده از پروتکل TCP بمنظور ارسال اطلاعات دارند ، می بايست قبل از مبادله اطلاعات ، يک اتصال بين خود ايجاد نمايند . اتصال فوق ، از نوع مجازی بوده و Session ناميده می شود .دو کامپيوتر درگير در ارتباط ، با استفاده از TCP و بکمک فرآيندی با نام : Three-Way handshake ، با يکديگر مرتبط و هر يک پايبند به رعايت اصول مشخص شده در الگوريتم مربوطه خواهند بود . فرآيند فوق ، در سه مرحله صورت می پذيرد :
مرحله اول : کامپيوتر مبداء ، اتصال مربوطه را از طريق ارسال اطلاعات مربوط به Session ، مقداردهی اوليه می نمايد ( عدد مربوط به موقعيت يک بسته اطلاعاتی بين تمام بسته های اطلاعاتی و اندازه مربوط به بسته اطلاعاتی )
مرحله دوم : کامپيوتر مقصد ، به اطلاعات Session ارسال شده ، پاسخ مناسب را خواهد داد .
کامپيوتر مبداء ، از شرح واقعه بکمک Acknowledgment ارسال شده توسط کامپيوتر مقصد ، آگاهی پيدا خواهد کرد .
پروتکل UDP : لايه Transport
UDP) User Datagram Protocol ) ، پروتکلی در سطح لايه "حمل" بوده که برنامه مقصد در شبکه را مشخص نموده و از نوع بدون اتصال است . پروتکل فوق، امکان توزيع اطلاعات با سرعت مناسب را ارائه ولی در رابطه با تضمين صحت ارسال اطلاعات ، سطح مطلوبی از اطمينان را بوجود نمی آورد . UDP در رابطه با داده های دريافتی توسط مقصد ، به Acknowledgment نيازی نداشته و در صورت بروز اشکال و يا خرابی در داده های ارسال شده ، تلاش مضاعفی بمنظور ارسال مجدد داده ها ، انجام نخواهد شد . اين بدان معنی است که داده هائی کمتر ارسال می گردد ولی هيچيک از داده های دريافتی و صحت تسلسل بسته های اطلاعاتی ، تضمين نمی گردد .از پروتکل فوق ، بمنظور انتقال اطلاعات به چندين کامپيوتر با استفاده از Broadcast و يا Multicast ، استفاده بعمل می آيد . پروتکل UDP ، در موارديکه حجم اندکی از اطلاعات ارسال و يا اطلاعات دارای اهميت بالائی نمی بانشد ، نيز استفاده می گردد. استفاده از پروتکل UDP در مواردی همچون Multicasting Streaming media ، (نظير يک ويدئو کنفرانس زنده) و يا انتشار ليستی از اسامی کامپيوترها که بمنظور ارتباطات محلی استفاده می گردند ، متداول است . بمنظور استفاده از UDP ، برنامه مبداء می بايست پورت UDP خود را مشخص نمايد دقيقا" مشابه عملياتی که می بايست کامپيوتر مقصد انجام دهد . لازم به يادآوری است که پورت های UDP از پورت های TCP مجزا و متمايز می باشند (حتی اگر دارای شماره پورت يکسان باشند ).
پروتکل IP : لايه Internet
IP) Internet Protocol ) ، امکان مشخص نمودن محل کامپيوتر مقصد در يک شبکه ارتباطی را فراهم می نمايد. IP ، يک پروتکل بدون اتصال و غيرمطمئن بوده که اولين مسئوليت آن آدرس دهی بسته های اطلاعاتی و روتينگ بين کامپيوترهای موجود در شبکه است . با اينکه IP همواره سعی در توزيع يک بسته اطلاعاتی می نمايد ، ممکن است يک بسته اطلاعاتی در زمان ارسال گرفتار مسائل متعددی نظير : گم شدن ، خرابی ، عدم توزيع با اولويت مناسب ، تکرار در ارسال و يا تاخير، گردند.در چنين مواردی ، پروتکل IP تلاشی بمنظور حل مشکلات فوق را انجام نخواهد داد ( ارسال مجدد اطلاعات درخواستی ) .آگاهی از وصول بسته اطلاعاتی در مقصد و بازيافت بسته های اطلاعاتی گم شده ، مسئوليتی است که بر عهده يک لايه بالاتر نظير TCP و يا برنامه ارسال کننده اطلاعات ، واگذار می گردد .
عمليات انجام شده توسط IP
می توان IP را بعنوان مکانی در نظر گرفت که عمليات مرتب سازی و توزيع بسته های اطلاعاتی در آن محل ، صورت می پذيرد .بسته ها ی اطلاعاتی توسط يکی از پروتکل های لايه حمل ( TCP و يا UDP) و يا از طريق لايه " ايترفيس شبکه " ، برای IP ارسال می گردند . اولين وظيفه IP ، روتينگ بسته های اطلاعاتی بمنظور ارسال به مقصد نهائی است . هر بسته اطلاعاتی ، شامل آدرس IP مبداء ( فرستنده ) و آدرس IP مقصد ( گيرنده ) می باشد. در صورتيکه IP ، آدرس مقصدی را مشخص نمايد که در همان سگمنت موجود باشد ، بسته اطلاعاتی مستقيما" برای کامپيوتر مورد نظر ارسال می گردد . در صورتيکه آدرس مقصد در همان سگمنت نباشد ، IP ، می بايست از يک روتر استفاده و اطلاعات را برای آن ارسال نمايد.يکی ديگر از وظايف IP ، ايجاد اطمينان از عدم وجود يک بسته اطلاعاتی ( بلاتکليف ! ) در شبکه است . بدين منظور محدوديت زمانی خاصی در رابطه با مدت زمان حرکت بسته اطلاعاتی در طول شبکه ، در نظر گرفته می شود .عمليات فوق، توسط نسبت دادن يک مقدار TTL)Time To Live) به هر يک از بسته های اطلاعاتی صورت می پذيرد. TTL ، حداکثر مدت زمانی را که بسته اطلاعاتی قادر به حرکت در طول شبکه است را مشخص می نمايد( قبل از اينکه بسته اطلاعاتی کنار گذاشته شود) .
پروتکل ICMP : لايه Internet
ICMP) Internet Control Message Protocol) ، امکانات لازم در خصوص اشکال زدائی و گزارش خطاء در رابطه با بسته های اطلاعاتی غيرقابل توزيع را فراهم می نمايد. با استفاده از ICMP ، کامپيوترها و روترها که از IP بمنظور ارتباطات استفاده می نمايند ، قادر به گزارش خطاء و مبادله اطلاعاتی محدود در رابطه وضعيت بوجود آمده می باشند. مثلا" در صورتيکه IP ، قادر به توزيع يک بسته اطلاعاتی به مقصد مورد نظر نباشد ، ICMP يک پيام مبتنی بر غيرقابل دسترس بودن را برای کامپيوتر مبداء ارسال می دارد . با اينکه پروتکل IP بمنظور انتقال داده بين روترهای متعدد استفاده می گردد ، ولی ICMP به نمايندگی از TCP/IP ، مسئول ارائه گزارش خطاء و يا پيام های کنترلی است . تلاش ICMP ، در اين جهت نيست که پروتکل IP را بعنوان يک پروتکل مطمئن مطرح نمايد ، چون پيام های ICMP دارای هيچگونه محتوياتی مبنی بر اعلام وصول پيام (Acknowledgment ) بسته اطلاعاتی نمی باشند . ICMP ، صرفا" سعی در گزارش خطاء و ارائه فيدبک های لازم در رابطه با تحقق يک وضعيت خاص را می نمايد .
پروتکل IGMP : لايه Internet
IGMP) Internet Group Managment Protocol) ، پروتکلی است که مديريت ليست اعضاء برای IP Multicasting ، در يک شبکه TCP/IP را بر عهده دارد . IP Multicasting، فرآيندی است که بر اساس آن يک پيام برای گروهی انتخاب شده از گيرندگان که گروه multicat ناميده می شوند ؛ ارسال می گردد . IGMP ليست اعضاء را نگهداری می نمايد .
پروتکل ARP : لايه Internet
ARP) Address Resolution Protocol) ، پروتکلی است که مسئوليت مسئله " نام به آدرس" را در رابطه با بسته های اطلاعاتی خروجی (Outgoing) ، برعهده دارد . ماحصل فرآيند فوق ، Mapping آدرس IP به آدرسMAC )Media Access Control) ، مربوطه است . کارت شبکه از آدرس MAC ، بمنظور تشخيص تعلق يک بسته اطلاعاتی به کامپيوتر مربوطه ، استفاده می نمايند . بدون آدرس های MAC ، کارت های شبکه ، دانش لازم در خصوص ارسال بسته های اطلاعاتی به لايه بالاتر بمنظور پردازش های مربوطه را دارا نخواهند بود . همزمان با رسيدن بسته های اطلاعاتی به لايه IP بمنظور ارسال در شبکه ، آدرس های MAC مبداء و مقصد به آن اضافه می گردد .
ARP ، از جدولی خاص بمنظور ذخيره سازی آدرس های IP و MAC مربوطه ، استفاده می نمايد. محلی از حافظه که جدول فوق در آنجا ذخيره می گردد ، ARP Cache ناميده می شود. ARP Cache هر کامپيوتر شامل mapping لازم برای کامپيوترها و روترهائی است که صرفا" بر روی يک سگمنت مشابه قرار دارند.
کشف نقطه ضعف جدیدی در پروتکل TCP
نقطه ضعف جدیدی در پروتکل (TCP (Transmission Control Protocol کشف شده که بسیار جالب است.
به گزارش بخش خبر سايت اخبار فن آوري اطلاعات ايران، از گروه امنيتي آشيانه، قبل از توضیح این آسیب پذیری که منجر به یک حمله ( Denial of Service) DOS یا عدم سرویس می گردد اندکی درباره پروتکل Tcp توضیح می دهيم:
جهت برقراری یک ارتباط TCPاحتیاج به انجام یک فرآیند به نام Handshaking می باشد که طی آن دستگاهی که قصد برقراری ارتباط با یک کامپیوتر هدف را دارد بسته Tcp با تنظیم بیت SYN=1 به سمت کامپیوتر مقصد می فرستد و در جواب ؛ کامپیوتر مقصد یک بسته با بیتهای SYN=1 و ACK=1 خواهد فرستاد و در نهایت ارتباط برقرار می گردد. همچنین گزینه ای بنام Sequence Number نیز در این ارتباط تعریف می گردد تا توالی بسته ها در مقصد مشخص باشد. رنج Sequence Number به گزینه دیگری بنام Window که در حقیقب مقدار فضای بافر اختصاص داده شده به ارتباط Tcp را مشخص می نماید ؛ بستگی دارد و در واقع تفاضل دو Sequence Number پی در پی در یک کامپیوتر از مقدار فضای Windowای که در طرف دیگر تعیین شده نمی تواند بیشتر باشد. در پایان نیز جهت خاتمه ارتباط ؛ یک بسته با تنظیم بیت RST=1 به کامپیوتر مقابل فرستاده می شود و ارتباط قطع می گردد.
در این نقطه ضعف ؛ هکر با استفاده از یک بسته TCP/IP که آدرس IP و شماره پورت آن جعلی و برابر با شماره IP و پورت کامپیوتر هدف می باشد و نیز بیت RST آن برابر 1 تنظیم شده است ؛ این بسته را به سمت کامپیوتر یا روتری که کامپیوتر قربانی با آن در ارتباط است می فرستد که باعث گمراه شدن آن و قطع ارتباط کامپیوتر قربانی با آن می شود. نکته ماجرا در تعیین Sequence Number صحیح جهت گمراه کردن کامپیوتر یا دستگاه مقصد می باشد. در گذشته چنین کاری تقریباً غیر ممکن می نمود اما شواهد حاکی از چیز دیگریست . مسئله اینجاست که هنگام فرستادن یک بسته Tcp با بیت RST=1 ؛ مقدار Sequence Number می تواند هر عددی در محدوده رنج گزینه Window باشد و به همین دلیل حدس زدن آن برای هکر بسیار راحتتر می باشد که در نهایت هکر را قادر به بستن ارتباط کامپیوتر هدف( که می تواند یک سرور باشد) با دستگاهی که سرور با آن یک ارتباط برقرار کرده است (مثل روتر ) ؛ می نماید.
آموزش تنظيمات TCP\IP در لينوكس
قبل از تصميم گيري براي نصب و راه اندازي TCP\IP بر روي لينوكس بايد از آماده بودن فايل سيستم براي اين كار مطمئن شويد. براي اين كار كافي است چند گام ساده را طي كنيد. نخست آنكه بايد از نصب بودن نرم افزار شبكه اطمينان بيابيد. اين موضوع در زمان نصب لينوكس از كاربر سوال مي شود و در اكثر مواقع و در بيشتر توزيع هاي لينوكس بهصورت پيش فرض انتخاب شده است. توجه داشته باشيد كه دايركتوري proc \ يكي از مكان هايي است كه اطلاعات شبكه اي لينوكس در آنجا ذخيره مي شود. وجود اين دايركتوري يكي از نشانه هاي نصب بودن امكانات شبكه اي در لينوكس است. زماني كه از محتويات دايركتوري proc \ ليست مي گيريد (يعني با دستور cd به اين مسير برويد و سپس فرمان ls را اجرا كنيد). در صورتي كه دايركتوري proc \ در سيستم شما موجود نباشد به احتمال زياد ناگزير خواهيد بود كه كرنل سيستم عامل خود را مجددا” كامپايل كرده و گزينه \proc را برگزينيد. به اين منظور بايد به دايركتوري سورس لينوكس يعني \usr\src\linux تغيير مسير داده و روتين تنظيمات (يا configuration ) كرنل را اجرا كنيد. دستور اين كار چنين است:Make config اگر در محيط گرافيكي X-windows كار مي كنيد،مي توانيد از ابزارهاي گرافيكي استفاده كرده و دستور مقابل را تايپ كنيد: Make xconfig در زمان كامپايل كرنل از شما سوال مي شود كه آيا به پشتيباني از procfs نياز داريد يا خير.به اين مورد پاسخ مثبت دهيد. همين موضوع باعث ساخته شدن دايركتوري \proc در سيستم شما خواهد شد. دايركتوري \proc هميشه در زمان راه اندازي لينوكس به طور خودكار mount مي شود. وجود خطي مشابه با خط زير در فايل \etc\fstab شرايط mount خودكار اين دايركتوري را فراهم مي كند. None \ proc proc defaults گام بعدي كه قبل از نصب و راه اندازي TCP\IP لازم است برداشته شود،انتخاب نام ميزبان (hostname ) سيستم است. براي اين كار مي توان از دستور مقابل استفاده كرد: Hostname…name… در دستور بالا به جاي name نام مورد نظر خود را براي ميزبان قرار دهيد. در اينجا ذكر اين نكته ضروري است كه اگر سيستم شما در شبكه قرار دارد و در نتيجه داراي يك نام domain كامل هستيد،مي توانيد در دستور فوق از نام كامل سيستم و Domain استفاده كنيد. مثلا” : Hostnameyourname.yourdomain.com در هر صورت يك ورودي جديد در فايل etc\hosts\ ساخته خواهد شد كه منعكس كننده نتيجه اجراي دستور بالاست. توصيه مي شود كه از اين موضوع براي اطمينان از صحت عملكرد دستور قبلي حتما” استفاده كنيد. نكته ديگري كه بايد قبل از راه اندازي TCP\IP بر روي سيستم خود در نظر بگيريد آن است كه بايد يك نشاني IP براي شناسايي سيستم خود در شبكه انتخاب كنيد. به طور معمول فايل etc\netyworks شامل تمامي نام ها و نشاني هايي است كه سيستم شما در شبكه با آن ها سرو كار دارد. نرم افزارهاي كاربردي از اطلاعات موجود در اين فايل براي تعيين نشاني هاي مقاصد منابع موجود در شبكه استفاده مي كنند. در فايل etc.networks دو ستون براي فهرست كردن نام سمبوليك و نشاني IP منابع شبكه در نظر گرفته شده است. در بسياري از موارد در فايل هاي etc\networks مدخلي براي درايور loopback وجود دارد. در زير نمونه اي از يك فايل etc\networks آورده شده است: Loopback 12.0.0. Marlin-net 147.154.0 BNR 47.0.0.0 در نمونه فايل فوق،دو شبكه به همراه نشاني هاي IP آن ها ثبت شده اند. توجه داشته باشيد كه در نشاني هاي IP فقط بخش شبكه در نشاني IP ذكر شده است و به جاي بخش انتهايي نشاني ها،صفر قرار داده شده است.
رابط شبكه
يكي از كارهاي ديگري كه در شبكه بندي لينوكس بايد انجام شود،تعيين رابط شبكه براي سيستم عامل و ديگر ابزارهاي نرم افزاري آن است. اين كار توسط دستور ifconfig انجام مي شود. اجراي اين دستور به همراه ذكر نشاني IP باعث مي شود تا لايه شبكه كرنل لينوكس بتواند با رابط شبكه ارتباط برقرار كند. بدين ترتيب سيستم عامل مي تواند از طريق رابط شبكه به تبادل اطلاعات با دنياي خارج بپردازد. كاربر بايد به ازاي هر يك از درايوهاي شبكه،رابط هاي شبكه مربوط را برپاكند،بدين معني كه بايد براي هر يك از درايوهاي شبكه،رابط هاي شبكه مربوط را بر پا كند. بدين معني كه بايد براي هر يك از درايوهاي ppp ,loopback و يا اترنت،يك بار فرمان ifconfig اجرا شود. ترتيب كار به صورت زير است: ifconfig interface-name ip- address در دستور بالا،به جاي interfacename بايد نام اختصاري درايور قرار داده شود. بعد از آن كه دستور ifconfig اجرا شد و در نتيجه رابط شبكه فعال گرديد. كاربر بايد از دستور route براي ايجاد و يا حذف مسيرها در جدول مسير يابي (routing table ) كرنل استفاده كند. اين عمل از آن جهت اهميت دارد كه سيستم بتواند توسط جدول مسيريابي ،ديگر منابع شبكه را بيابد. از دستور فوق به صورت زير استفاده مي شود: Route add\delip-address توجه داشته باشيد در هر مورد استفاده از دستور فوق بايد يكي از حالات add يا del بكار برده شوند. در صورتي كه بخواهيد محتويات فعلي جدول مسيريابي سيستم را مشاهده كنيد،مي توانيد به اين صورت عمل كنيد: $ Route (يعني استفاده از دستور route بدون هيچ سوئيچ ) اگر اين دستور را اجرا كنيد،ممكن است چيزي شبيه متن زير ببينيد.(در اين مثال،سيستم مورد نظر فقط داراي مدخل درايور loopback بوده است(
$route
Kernel Routing table
Destination Gateway Genmask Window Use Lface
Loopback *255.0.0.0u1936 0 16 lo
يادآوري مي كنيم كه يك روش ديگر نمايش داده هاي جدول مسيريابي ،استفاده ا زدستور مقابل است: Netstat –rn در دستور فوق سوئيچ r باعث نمايش جدول مسيريابي و سوئيچ n منجر به نمايش نشاني هاي ip به جاي اسامي نمادين مي شوند. در جداول مسيريابي ستون هايي كه اهميت دارند. ستون مربوط به نام مقصد مثلا” loopback ،ستون مربوط به ماسك مانند Genmask و نهايتا” ستون نام رابط شبكه هستند. شما مي توانيد توسط دستور route به همراه سوئيچ n ،داده هاي جدول مسيريابي را به صورتي مشاهده كنيد كه در آن به جاي اسامي سمبوليك،از نشاني هاي ip استفاده شده باشد. همان طور كه قبلا” اشاره شد،در شرايط معمول سيستم هاي مجهز به سيستم عامل لينوكس داراي يك رابط loopback و يك رابط شبكه نظير اترنت هستند كه بايد به ترتيب تنظيم شوند.
تنظيم رابط loopback
همان طور كه قبلا” اشاره كرديم ،رابط loopback توسط برخي از نرم افزارها براي كاركرد طبيعي مورد استفاده قرار مي گيرد.از آن گذشته تعداد ديگري از نرم افزارهاي كاربردي تحت لينوكس نيز از اين رابط براي كاربردهاي عيب يابي كمك مي گيرند. يادآوري مي كنيم كه نشاني ip يك رابط شبكه loopback به صورت 127.0.0.1 نوشته مي شودو فايل etc\hosts\ بايد يك ورودي براي loopback باشد. در اين جا مناسب است كه خاطر نشان كنيم كه نشاني loopback را مي توان به صورت هاي گوناگوني نوشت و اصولا” هر نشاني به فرم 127.x.x.x (x به معني عددي بين 0 تا 255 است) پذيرفتني است. اينكه چرا عادت كرده ايم كه از يونيكسي اوليه چنين مرسوم بوده است. در صورتي كه ورودي مربوط به رابط loopback در فايل \etc\hosts ثبت نشده ifconfig lo استفاده كنيم.
تنظيم رابط اترنت
براي تنظيم اترنت (مثلا” كارت شبكه) هم مي توانيد همان مراحل قبلي را مجدد تكرار كنيد. فقط توجه داشته باشيد كه نام رابط شما چيزي مانند eth0 يا eht 1 است و نشاني ip را نيز بايد به نشاني ip انتخابي خود تغيير دهيد. در اين جا زماني كه قصد اجراي دستور ifconfig را براي رابط شبكه داريد،نيازي به مشخص كردن ماسك شبكه نخواهيد داشت. زيرا سيستم عامل مي تواند مقدار پارامتر ماسك را به طور خودكار از نشاني ip داده شده به دست آورد. به عنوان مثال مي توانيد براي ثبت نشاني 147.123.20.1 از يكي از خطوط زير استفاده كنيد:
Ifconfig 147.123.20.1 ifconfig 147.123.20.1 nemask 255.25.255.0 براي بررسي صحت انجام عمليات مي توانيد بار ديگر از دستور ifconfig eht 0 استفاده كنيد. نشاني Broadcast بر اساس نشاني ip سيستم محلي تنظيم شده است. اين عمل از آن جهت توسط TCP\IP انجام مي گيرد كه تمام سيستم هاي موجود در شبكه به يك باره در دسترس قرار گيرند. مقدار و اندازه Maximum Transfer Unit هم به طور معمول بر اساس استانداردهاي شبكه هاي اترنت به مقدار حداكثر مجاز يعني 1500 تنظيم مي شود. همان طور كه مي دانيد گام بعدي اضافه كردن نشاني اترنت به جدول مسيريابي كرنل است . نشاني ip مورد نياز براي همراهي در دستور route همان نشاني شبكه بدون ذكر پارامتر محلي است . براي آنكه تمام شبكه محلي را در يك نوبت پوشش دهيم،از گزينه net در دستور route كمك مي گيريم. در نتيجه شكل استفاده از دستور route براي مثال ما به صورت زير خواهد بود:Route add –net 147.123.20.0 اين دستور تمامي سيستم هاي موجود در شبكه محلي را كه توسط نشاني 147.123.20.0 شناسايي مي شوند، را به جدول مسيريابي اضافه مي كند. در سيستم هاي موجود در شبكه را به صورت دستي به جدول مسيريابي اضافه كنيد. روش ديگر آن است كه از فايل \etc\networks فقط براي مشخص كردن بخش فهرست هايي از نام ها و نشاني هاي ip باشد،به عنوان مثال در صورتي كه در اين فايل ،ورودي مربوط به شبكه اي به نام foobamet داشته باشيم،مي توانيم تمام شبكه كمك دستور زير به جدول مسيريابي اضافه كنيم: Route add foobar-net استفاده از فايل etc\networks اين اشكال امنيتي را به همراه دارد كه به تمام سيستم هاي موجود در شبكه اجازه دسترسي و مجوزهاي يكساني داده مي شود. پس از آنكه مسيرها به جدول مسيريابي كرنل اضافه شدند،مي توانيد براي بررسي صحت تنظيمات،از دستور ping براي هر يك از سيستم هاي شبكه استفاده كنيد. براي اين كار يا بايد نام سيستم مقصد را داشته باشيد و يا آنكه نشاني ip آن را بدانيد. اين اطلاعات مي توانند از طريق فايل \etc\hosts و يا سرويسي مانند DNS به دست آيند. پس از آنكه مراحل فوق به درستي انجام گرديدند،سيستم لينوكس شما قادر خواهد بود كه به هر يك از سيستم هاي موجود در شبكه محلي توسط پروتكل TCP\IP متصل شود. در صورتي كه شبكه مورد نظر كوچك باشد،اين عمل كفايت مي كند و كار در همين جا خاتمه يافته مي شود . اما در شبكه هاي بزرگتر و يا شبكه هايي كه از پروتكل هاي ويژه اي استفاده مي كنند و يا در آن ها Gateway به كار رفته باشد،نياز به طي مراحل ديگري وجود خواهد داشت. در صورتي كه قصد اضافه كردن سيستم هاي ديگري را به شبكه داشته باشيد كه از TCP\IP استفاده مي كنند،مي توانيد همانند مراحل قبلي ،نام و نشاني IP هاي آن ها را به فايل \etc\hosts اضافه كنيد. سيستم هايي به نام godzilla و godzilla.tpci ،مجهز به سيستم عاملي (كه از TCP\IP پشتيباني مي كند)هستند. و قادرند به كمك teinet يا ftp به سيستم لينوكسي ما متصل شوند (توجه داشته باشيد كه كاربر چنين سيستم هايي فقط زماني قادر خواهد بود به سيستم شما login كند كه مجوزهاي مربوط را براي آنها تنظيم كرده باشيد.) در صورتي كه نام يا نشاني يك سيستم راه دور در فايل \etc\hosts ثبت شده باشد،شما قادر خواهيد بود كه توسط ابزارهايي مانند telnet يا ftp با آن سيستم ارتباط داشته باشيد.
Name service و Name resolver
پروتكل TCP\IP از ورودي هاي فايل \etc\hosts براي ترجمه اسامي به نشاني هاي IP استفاده مي كند. به عنوان مثال،زماني از نامي مانند darkstar را در آن بيابد. در صورتيكه چنين ورودي در اين فايل موجود نباشد، شما قادر به اتصال چنين سيستمي نخواهيد بود. اما تصور كنيد كه تعداد سيستم هاي موجود در شبكه زياد باشند و شما قصد اتصال به تعداد بيشتري از سيستم ها را داشته باشيد و در اين صورت تنظيم و اضافه كردن يكايك نام ها و نشاني هاي ip به جدول مسيريابي كاري خسته كننده و زمان برخواهد بود. سرويس BIND كه مخفف عبارت Beekeley internet Name Domain Service است براي حل اين مشكل ايجاد شده است. بعدها BIND در DNS يا Domain Name System نيز پياده سازي شد. در حال حاضر اكثر توزيع هاي لينوكس به BIND مجهز هستند و در بعضي از نسخه ها هم DNS از قبل پياده سازي شده است. BIND و DNS هر دو مقوله هاي پيچيده اي هستند كه بسياري از كاربران لينوكس را فراري مي دهند. در صورتي كه شبكه شما به يك DNS سرور متصل باشد و يا آنكه قصد استفاده ا زسرور DNS ISP را داشته باشيد،نيازي به اجراي BIND بر روي سيستم خود نخواهيد داشت. اما در عوض بايد سيستم خود را به گونه اي تنظيم كنيد كه قادر به استفاده از سرور DNS باشد. در چنين مواقعي،به جاي آن كه نام ها و نشاني هاي يكايك سيستم هاي متصل به شبكه را به فايل \etc\hosts اضافه كنيد،كلانيت DNS و يا مجموعه اي از روتين هاي كتابخانه اي در لينوكس،فراخواني مي شوند و با استفاده از سرور DNS نام هاي مورد نظر را به نشاني هاي مربوطه آن ها ترجمه يا Resolver مي كنند. Name Resolver توسط فايل \etc\resolv.conf تنظيم مي شود. به طور معمول اين فايل شامل راهنماي (directive ) جستجو و راهنماي Name server است. راهنماي جستجو به شكل زير به كار برده مي شود: Searchdomain 1 domain2 domainN در عبارت فوق هر يك از domain ها توسط فهرستي از پسوندهاي دامنه اي جايگزين مي شوندكه Name Resolver به اسامي ميزباني اضافه مي كند كه به صورت كامل مشخص نشده باشد.به عنوان مثال،راهنماي جستجوي زير توجه كنيد: Search xyz.com us.xyx.com europe.xyz.com در صورتي كه نامي مانند http://www.abc.com به كار گرفته شده باشد،مي گوييم كه اين نام به صورت كامل بيان شده است. در چنين وضعيتي ،از راهنماي جستجو استفاده نخواهد شد. اما اگر يك سرويس TCP\IP از نامي مانند WWW استفاده كند كه به شكل كامل نيست،در اين صورت راهنماي جستجو سعي خواهد كرد تا اين نام را به ترتيب به صورت اسامي مشابه با http://www.xyz.com و http://www.us.xyz.com و ... تعبير كند. سرورهاي DNS مورد استفاده Name Resolver توسط راهنماي nameserver مشخص مي شود: Nameserver ipaddress كه در آن پارامتر ipaddress نشاني ip سرور DNS است. به عنوان مثال در صورتي كه نخستين سرور DNS داراي نشاني IP برابر با 199.231.13.10 باشد، در اين صورت راهنماي DNS به شكل زير خواهد شد: Nameserver 100.231.13.10 در هر مورد مي توان حداكثر مي توان سه نشاني سرور DNS مشخص كرد كه هر يك داراي راهنماي nameserver خود هستند و در يك خط ثبت مي شوند. مطلب ديگري كه مي تواند توسط كاربر تنظيم شود،ترتيب مراجعه به DNS يا فايل \etc\hosts در زمان ترجمه نام است. بدين ترتيب معني كه كاربر مي تواند با كمك فايل \etc\nsswitch.conf انتخاب كند كه براي ترجمه نام،نخست به DNS مراجعه شود و سپس به فايل \etc\hosts و يا بر عكس . در هنگام استفاده از سيستم هاي بزرگ و يا در زماني كه قصد استفاده از تمام سرويس هاي اينترنتي در سيستم لينوكس خود داشته باشيد،لازم خواهد بود كه مشخصه هاي BIND به درستي تنظيم شده باشند،خوشبختانه چنين تنظيمي فقط كافي است كه يك بار انجام شود. براي اين كار به نرم افزار BIND نياز خواهد بود كه در اكثر توزيع هاي جديد لينوكس پيش بيني شده است.
دروازه يا Gateway:
زماني كه دو يا چند شبكه به يكديگر متصل مي شوند،از Gateway استفاده مي شود. Gateway ماشيني است كه به عنوان رابط بين چند شبكه عمل مي كند و اطلاعات را بر اساس نشاني هاي ip آن ها به شبكه هاي مربوطه هدايت و مسيردهي مي كند. زماني كه قرار باشد يك سيستم لينوكسي به عنوان Gateway كار كند،بايد چند تغيير در تنظيمات فايل هاي configuration شبكه اعمال شود. براي آنكه بتوان از سرويس هاي يك سيستم ديگر به عنوان Gateway استفاده كرد،بايد به جدول مسيريابي،اطلاعاتي از Gateway قرار باشد شبكه اي را به اينترنت متصل سازد. اين عمل توسط دستور زير قابل تنظيم است: Route add default gw netgate در دستور بالا، natgate نام سيستمي در شبكه است كه قرار است به عنوان يك gateway به كار گرفته شود. اين نام در دستور بالا بعد از كليد واژه gw ذكر مي شود. معني عبارت default در دستور بالا به اين معني است كه تمام سيستم هاي موجود در شبكه قادر به اتصال به اينترنت از طريق Gateway هستند. در صورتي كه قصد ارتباط دادن دو شبكه توسط يك Gateway در بين باشد،بايد نام شبكه دوم در فايل etc\networks\ قيد شده باشد و در اين صورت شكل نوشتاري دستور route به صورت زير است: Route add big-corp gw gate-serv در دستو رفوق از سيستمي به نام gateserv براي دسترسي به شبكه اي به نام bigcorp مي توان استفاده كرد. نكته ديگر آنكه اگر به همين جا اكتفا شود،كاربران فقط قادر خواهند بود كه اطلاعات را به سيستم ها ي مقصد در شبكه دوم ارسال كنند و قابليت دريافت اطلاعات از آن سيستم ها وجود نخواهد داشت. براي حل اين مسئله لازم است كه در جداول مسيريابي سيستم هاي شبكه دوم تنظيماتي انجام شود. اگر قصد استفاده از سيستم محلي خود را به عنوان ارتباط دهنده دو شبكه داشته باشيد،بايد سيستم خود را به دو كارت شبكه ( يا دو اتصال PPP و يا SLIP ) مجهز كنيد. فرض كنيد كه قصد استفاده از سيستم خود را براي اتصال دو شبكه به نام هاي Small-net و big-net داشته باشيم و شرايط سخت افزاري اين كار فراهم شده باشد. نخستين گام آن است كه رابط هاي اترنت كارت هاي شبكه هر يك با نشاني هاي خودشان تنظيم شوند. به عنوان مثال ممكن است سيستم شما در شبكه بزرگ تر داراي نشاني ip برابر با 163.12.34.36 باشد و در شبكه كوچك تر نشاني سيستم 147.123.12.1 باشد. در اين صورت لازم خواهد بود كه دو ورودي در فايل \etc\hosts براي ساده تر عمل ترجمه نام (Name resolution ) ايجاد كنيم. مثلا” به اين ترتيب 163.12.34.36 merlin.big-net.com merlin-iface1
147.123.12.1 merlin.small-net.com merlin-iface2
در اين مثال فرض شده است كه سيستم شما در هر دو شبكه داراي نام merlin است كه كاملا” قانوني است در مورد فوق اسامي رابط ها نيز به جهت سهولت قيد شده اند. پس از اين مرحله بايد از فرمان ifconfig براي برقراري ارتباط بين رابط ها و اسامي هاي به كار رفته در فايل \etc\hosts استفاده كنيم: ifconfig eth 0 merlin-iface1 ifconfig eth1merlin-iface2
و نهايتا” لازم است كه جدول مسيريابي را تغيير دهيم. براي اين كار از دستورات زير به صورت مشخص شده بايد استفاده كنيم: Route add big-net Route add small-net
زماني كه اين مراحل به درستي انجام شوند، مي توانيد از سيستم خود به عنوان يك Gateway براي برقراري ارتباط بين دو شبكه استفاده كنيد.
استفاده از ابزارهاي گرافيكي براي تنظيمات رابط هاي شبكه
تا اينجا از دستوراتي استفاده كرديم كه تمام مراحل لازم براي ايجاد و تنظيمات شبكه را از ابتداي كار توصيف مي كردند. زماني كه لينوكسي راه اندازي مي شود، به طور معمول نيازي به اجراي اسكريپت هايي نظير اسكريپت هاي فوق را نخواهيد داشت،علت اين موضوع آن است كه چنين اسكريپت هايي به طور خودكار در زمان راه اندازي اجرا مي شوند. اما اشكال كار در اينجا است كه اين اسكريپت ها ممكن است از يك توزيع لينوكس به توزيع ديگري كمي تفاوت داشته باشند،به عنوان مثال لينوكس هايي مانند slackware كه از اسكريپت هايي به سبك يونيكس BSD استفاده مي كنند. با لينوكس هايي مانند RedHat يا Fedora كه از اسكريپت هاي به سبك يونيكس VR4 پيروي مي كنند،از نظر اسكريپت هاي Shell ، تفاوت دارند. اما خوشبختانه،توزيع عاي لينوكس امروزي به همراه ابزارهاي گرافيكي عرضه مي شوند كه كار تنظيمات شبكه را تا حد بسيار زياد تسهيل مي كنند. اين ابزارها به طور خودكار تغييرات و ويرايش هاي شما را در اسكريپت هاي راه اندازي اعمال مي كنند. يكي از نخستين ابزارهاي گرافيكي تنظيمات لينوكس ، netcfg نام دارد . براي راه اندازي اين ابزار كافي است كه نام آن را از خط فرمان اجرا كنيد.
Linuxconf
ابزار بسيار قوي ديگر،linuxconf نام دارد كه مي توان از آن براي تنظيمات شبكه و بسياري از اعمال مديريتي ديگر استفاده كرد. از آنجايي كه از اين ابزار براي مسير دهي و اعمال پيچيده ديگر استفاده مي شود. فراگيري آن و كسب مهارت در آن كاملا” منطقي است. براي راه اندازي اين ابزار هم مي توانيد به سادگي نام آن را از خط فرمان اجرا كنيد. البته برنامه هاي گرافيكي ميزكارهايي مانند KDE يا GNOME هم بسته به نسخه لينوكسي كه از آن استفاده مي كنيد،ممكن است پيش بيني آيكوني براي فراخواني linuxconf را كرده باشند.
(( زَكَاةُ الْعِلْمِ نَشْرُهُ ))