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 را کرده باشند.