تبلیغات
اگر تنهاترین تنهایان شوم باز هم خدا هست - آموزش تنظیمات TCP\IP در لینوكس
شنبه 27 آذر 1389  01:19 ب.ظ    ویرایش: - -

قبل از تصمیم گیری برای نصب و راه اندازی 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 را كرده باشند.

   


نظرات()  
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر

اگر تنهاترین تنهایان شوم باز هم خدا هست

مــتـنــفــرم از خــاطــره هـــایــی کــه وقــتــی بــهـــشــون فــکــر مــی کــنــم ، مــیــگـــم: وای مـــن چــقـــدر احــ