شبکه در لینوکس

وقتی وارد مبحث شیرین شبکه در لینوکس میشویم، باید خاطر نشان کنیم که تقریبا هیچ کاری نیست که نتوان آن را از طریق لینوکس انجام داد. لینوکس برای ایجاد انواع سیستمها و اپلیکیشنهای شبکه شامل فایروالها، روترها، سرورها، فضاهای ذخیرهسازی NAS و … به کار میرود.
درست همانطور که مبحث شبکه بسیار گسترده است، در نتیجه فرمانهایی که به این منظور استفاده میشوند نیز زیاد است. در این درس و درسهای بعدی با فرمانهای ping ، traceroute ، netstat ، ftp ، lftp ، wget ، ssh ، scp ، sftp و … آشنا خواهیم شد.
آزمودن و مانیتور یک شبکه در لینوکس
حتی اگر شما مدیر یک شبکه لینوکس نیستید، ولی اغلب اوقات آزمودن عملکرد و پردازش یک شبکه لینوکس برای شما مفید خواهد بود. به این منظور فرمانهایی وجود دارد که به توضیح آنها خواهیم پرداخت:
فرمان ping – ارسال یک بسته به یک میزبان شبکه
سادهترین فرمان شبکه، فرمان ping میباشد. فرمان ping یک بسته اختصاصی با نام IMCP ECHO_REQUEST به میزبان مورد نظر ارسال میکند. بیشتر دیوایسهای شبکه این بسته را دریافت میکنند و به آن پاسخ میدهند تا اجازه دهند اتصال شبکه تایید شود.
ممکن است فایروالهای شبکه به گونهای پیکربندی شده باشند تا ترافیک ICMP را بلاک کنند.
برای مثال اگر بخواهیم ببینیم که اتصال ما با سایت http://www.linuxcommand.org برقرار است یا خیر، میتوانیم فرمان ping را به صورت زیر به کار ببریم:
1 |
[me@linuxbox ~]$ ping linuxcommand.org |
زمانی که فرمان اجرا میشود، ping سعی میکند بستههایی را به آدرس وارد شده ارسال کند تا اینکه این پروسه متوقف شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[me@linuxbox ~]$ ping linuxcommand.org PING linuxcommand.org (66.35.250.210) 56(84) bytes of data. 64 bytes from vhost.sourceforge.net (66.35.250.210): icmp_seq=1 ttl=43 time=10 7 ms 64 bytes from vhost.sourceforge.net (66.35.250.210): icmp_seq=2 ttl=43 time=10 8 ms 64 bytes from vhost.sourceforge.net (66.35.250.210): icmp_seq=3 ttl=43 time=10 6 ms 64 bytes from vhost.sourceforge.net (66.35.250.210): icmp_seq=4 ttl=43 time=10 6 ms 64 bytes from vhost.sourceforge.net (66.35.250.210): icmp_seq=5 ttl=43 time=10 5 ms 64 bytes from vhost.sourceforge.net (66.35.250.210): icmp_seq=6 ttl=43 time=10 7 ms --- linuxcommand.org ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 6010ms rtt min/avg/max/mdev = 105.647/107.052/108.118/0.824 ms |
ما در اینجا با کمک کلیدهای ترکیبی Ctrl+C فرمان را متوقف کردهایم.
پس از آنکه فرمان متوقف شد، ping نتیجه نهایی را به ما نشان میدهد. در نتیجه نهایی نشان داده شده که ۶ بسته ارسال شده و ۶ بسته دریافت شده است.
گفتنی است که یک شبکه با عملکرد مناسب نباید هیچ بستهای را از دست بدهد. یک ping موفقیتآمیز این است که اجزای شبکه (مانند کارت شبکه، کابلها، روترها و دروازهها) به خوبی کار میکنند.
فرمان traceroute – ردیابی مسیر یک بسته شبکه
فرمان traceroute (برخی سیستمها از فرمان مشابه tracepath استفاده میکنند) لیستی از روترهای موجود در شبکه را از مبدا تا مقصد به ما نشان میدهد. برای مثال:
1 |
[me@linuxbox ~]$ traceroute slashdot.org |
خروجی چیزی شبیه تصویر زیر خواهد بود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
traceroute to slashdot.org (216.34.181.45), 30 hops max, 40 byte packets 1 ipcop.localdomain (192.168.1.1) 1.066 ms 1.366 ms 1.720 ms 2 * * * 3 ge-4-13-ur01.rockville.md.bad.comcast.net (68.87.130.9) 14.622 ms 14.885 ms 15.169 ms 4 po-30-ur02.rockville.md.bad.comcast.net (68.87.129.154) 17.634 ms 17.626 ms 17.899 ms 5 po-60-ur03.rockville.md.bad.comcast.net (68.87.129.158) 15.992 ms 15.983 ms 16.256 ms 6 po-30-ar01.howardcounty.md.bad.comcast.net (68.87.136.5) 22.835 ms 14.23 3 ms 14.405 ms 7 po-10-ar02.whitemarsh.md.bad.comcast.net (68.87.129.34) 16.154 ms 13.600 ms 18.867 ms 8 te-0-3-0-1-cr01.philadelphia.pa.ibone.comcast.net (68.86.90.77) 21.951 ms 21.073 ms 21.557 ms 9 pos-0-8-0-0-cr01.newyork.ny.ibone.comcast.net (68.86.85.10) 22.917 ms 21 .884 ms 22.126 ms 10 204.70.144.1 (204.70.144.1) 43.110 ms 21.248 ms 21.264 ms 11 cr1-pos-0-7-3-1.newyork.savvis.net (204.70.195.93) 21.857 ms cr2-pos-0-0- 3-1.newyork.savvis.net (204.70.204.238) 19.556 ms cr1-pos-0-7-3-1.newyork.sav vis.net (204.70.195.93) 19.634 ms 12 cr2-pos-0-7-3-0.chicago.savvis.net (204.70.192.109) 41.586 ms 42.843 ms cr2-tengig-0-0-2-0.chicago.savvis.net (204.70.196.242) 43.115 ms 13 hr2-tengigabitethernet-12-1.elkgrovech3.savvis.net (204.70.195.122) 44.21 5 ms 41.833 ms 45.658 ms 14 csr1-ve241.elkgrovech3.savvis.net (216.64.194.42) 46.840 ms 43.372 ms 4 7.041 ms 15 64.27.160.194 (64.27.160.194) 56.137 ms 55.887 ms 52.810 ms 16 slashdot.org (216.34.181.45) 42.727 ms 42.016 ms 41.437 ms |
در خروجی مشاهده میکنیم که ۱۶ روتر بین مبدا تا مقصد وجود دارد. به این معنی که بسته من تا زمانی که به مقصد برسد میباید از ۱۶ روتر عبور کند. آدرس IP و اطلاعات عملکردی اکثر روترها مشخص است ولی برخی روترها به خاطر فایروال، اطلاعاتی را نشان نمیدهند که با *** نتیجه باز میگردد.
فرمان netstat – آزمودن تنظیمات و آمار شبکه
فرمان netstat به منظور آزمودن تنظیمات و آمارهای مختلف شبکه استفاده میشود. در بین گزینههای زیادی که این فرمان دارد، ما قادر به مشاهده ویژگیهای مختلفی در نصب شبکه خود هستیم. برای مثال با استفاده از گزینه –ie میتوانیم کارت شبکهها موجود در سیستم خود را تست کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[me@linuxbox ~]$ netstat -ie eth0 Link encap:Ethernet HWaddr 00:1d:09:9b:99:67 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::21d:9ff:fe9b:9967/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:238488 errors:0 dropped:0 overruns:0 frame:0 TX packets:403217 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:153098921 (146.0 MB) TX bytes:261035246 (248.9 MB) Memory:fdfc0000-fdfe0000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2208 errors:0 dropped:0 overruns:0 frame:0 TX packets:2208 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:111490 (108.8 KB) TX bytes:111490 (108.8 KB) |
در مثال بالا میبینیم که سیستم ما دارای دو رابط شبکه میباشد. اولین آن eth0 نام دارد که رابط اترنت و دومی lo است که رابط شبکه مجازی است که سیستم به منظور گفتگو با خودش از آن استفاده میکند.
کلمه مهم UP به معنی در حال اجرا بودن رابط شبکه در این توضیحات است. همانطور که مشاهده میکنیم هر دو رابط شبکه ما در اینجا UP هستند (خط چهارم از هر رابط) که به معنای این است که رابط شبکه فعال هست. همچنین وجود یک آدرس IP معتبر در فیلد inet addr (خط دوم از هر رابط inetial address به معنای آدرس اولیه). در سیستمهایی که آدرس IP را به صورت دینامیک (از طریق DHCP دریافت میکنند) وجود یک آدرس IP معتبر نشاندهنده این است که سرویس DHCP به درستی در حال اجراست. استفاده گزینه –r جدول روتینگ کرنل شبکه را به ما نشان میدهد. این نشان میدهد که شبکه چگونه پیکربندی شده تا بستهها را دریافت و یا ارسال کند:
1 2 3 4 5 |
[me@linuxbox ~]$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 |