iproute2 در مقابل net-tools (این قسمت: interface ها) (قسمت دوم)

در شماره اول iproute2 بیشتر به معرفی آن و فرمان‌های داخل آن پرداختیم. در صورتی که هر یک از Object های آن خود به یک مطلب نیاز دارند. در این مطلب سعی شده است تا کار اولیه با interface ها تشریح شود، شاید دلیلش این باشد که اولین مسأله در مورد Internetworking بعد از مفاهیم کار با ineterface ها باشد.linux_foundation
نکته: در تمام مثال‌ها دو ماشین را فرض کرده‌ایم که یکی بر روی VirtualBox و دیگری host ما می‌باشد. و از ۲ کارت شبکه آن استفاده می‌کنیم. به صورت پیش‌فرض یکی را برای ssh و دیگری را برای فرمان ip استفاده کرده‌ایم.
برای شماره‌های آتی هر قسمت از iproute2 را یک مطلب کرده‌ام. به عنوان مثال ip rourte یک مطلب جدا، tc یک مطلب جدا و غیره….

۱. فرمان ip و address:

نکته: یکسری از ملزومات در شماره اول پرداخته شد، ولی بلاجبار در این شماره باید اشاره‌ای به آن‌ها بشود همچون مخفف سازی Object ها که بسیار ضروری می‌باشند.
فرمان‌های زیر یکی می‌باشند:

خروجی همه آن‌ها چنین است:

دو فرمان زیر کار را ساده تر‌می‌کند:

در بالا فقط خواستیم با eth0 کار کنیم.
نکته: اگر درحال اسکریپت نویسی هستید و فقط IP address را نیاز دارید می‌توانید اینگونه عمل نمایید:

نکته: اگر نیاز است IPv6 را پیدا کنید کافیست 6- را به جای 4- به کار ببرید، همانند زیر:

برای تغییر ip address بهتر است در ابتدا ip قبلی آن را توسط فرمان زیر پاک نمایید:

البته می‌توانید با خیال راحت dev مربوطه را flush کنید:

سپس به آن یک IP address بیافزایید:

نکته: brd منظور آدرس broadcast می‌باشد.
نکته: dev مشخص کننده interface شما می باشد.

۲. فرمان ip و link:

هر دو فرمان زیر با هم برابرند:

و خروجی آن‌ها چنین می‌شود:

نکته: ip link به صورت پیش‌فرض تمام link ها را نمایش می‌دهد، به عنوان مثال در مثال بالا wlan0 مشکل دارد و می‌توان با up آن را فیلتر کرد و هر چه device ی که up است را نمایش داد:

نکته: ممکن است بخواهید به یک Device فیلتر کنید:

اگر به یاد دارید در net-tools می‌توانستیم با دستور زیر statistics خوبی از interface مربوطه بگیریم:

اما با ip link می‌توان مقادیر بیشتری را دریافت کرد:

نکته: البته اگر از یک s- اضافی استفاده کنیم مقادیر خیلی بیشتر می‌شوند:

شاید برای شما خواننده عزیز تکراری باشد، اما سطوح خوانندگان این مطلب طیف می‌باشد و من مجبورم چند keyword زیر را برای فرمان بالا توضیح دهیم:

  • RX: تعداد Packet های Receive شده

  • TX: تعداد Packet های Transfer شده

  • overrun: طول Packet ی که بیشتر از حد انتظار باشد.

  • collsns: در یک زمان Collosion رخ داده است.

عموما نفوذ‌کننده‌ها برای اینکه بفهمند وسط IDS وجود دارد یا خیر از on و off بودن PROMISC کارت شبکه می‌فهمند. بدین منظور شما می‌توانید آن را تغییر دهید:

فلاگ‌هایی که شما می‌توانید برای کارت شبکه خود تغییر دهید به شرح ذیل می‌باشند:

  • ARP

  • dynamic

  • multicast

  • allmulticast

  • trailers

برای تغییر mtu می‌توانید بدین گونه رفتار نمایید:

برای تغییر دادن طول صف TX می‌توانید بدین گونه رفتار نمایید:

برای تغییر MAC address می‌توان بدین گونه رفتار کرد:

۳. فرمان ip و maddr:

قبل از پرداختن به این Object باید سه نوع آدرس‌دهی در شبکه را تعریف نماییم:

  • unicast: مقصد پیام ارسالی را فقط به یک ماشین بخصوص می‌فرستد.

  • ‌Broadcast: همه ماشین‌ها پیام ارسالی را دریافت می‌کنند.

  • Multicast: فقط گروهی از ماشین‌های مشخص پیام ارسالی را دریافت می‌کنند.

برای مشاهده آدرس multicast یک device می‌توانید از هر دو فرمان زیر استفاده نمایید، خروجی فرقی نمی‌کند:

خروجی چنین می‌شود:

برای اضافه کردن یک آدرس Multicast می‌توان از فرمان زیر استفاده نمود:

همانطور که می‌بینید خطی که دارای کلمه static است به آن اضافه شده است:

نکته: multicast هایی که با فرمان ip اضافه می‌کنیم همیشه کلمه static جلوی آن‌ها دیده می‌شوند.
برای پاک کردن نیز باید از دستور زیر تبعیت نمود:

۴. فرمان ip و neigh:

همانطور که به خاطر دارید، فرمان‌های arp و rarp در بسته net-tools و فرمان ip در بسته iproute2 وجود دارند. اما در این بینابین یک فرمان که به شدت به کار می‌آید، چه با iproute2 کار کنید و چه با net-tools ، دم دستی شما به حساب می‌آید که در بسته iputils-arping وجود دارد. این فرمان arping نام دارد.
neigh کارآیی فرمان arp را داراست.
از فرمان arp گذر می‌کنیم، زیرا در net-tools قرار دارد هر چند،‌ به چند مثال از آن نیاز داریم.
اما در ابتدا با arping شروع می‌کنیم که اساس کار یک sysadmin می‌باشد.
بیایید کمی فرمان زیر را بررسی کنیم:

نکته: همیشه interface واجب می‌باشد.
نکته: همیشه آدرس مقصد واجب می‌باشد.
نکته: با 1 c- می‌توان تعداد ARPING ها را مشخص کرد. (مخفف count)
و بدین صورت به ARP Table شما اضافه می‌گردد.
نکته: فرمان بالا برای IP های مقصدی کار می‌کند که قابل دسترس باشند.
نکته: دو نسخه از فرمان arping وجود دارد که با syntax های متفاوت کار می‌کنند. یکی در بسته arping و دیگری در بسته‌ای که بالاتر توضیح داده شد. ترجیج بر این است که هر دو مورد بررسی قرار گیرد.
وقت آن رسیده که بر ip neighbor فوکوس نماییم. چند فرمان زیر طبق قانون مخفف سازی همگی یکی هستند:

نکته: در همه موارد بالا می‌تواند آخرین پارامتر show قرار گیرد که در مثال‌های بعدی به آن خواهیم پرداخت.
کارکرد این Object بر روی ARP Table می‌باشد. ترجیح می‌دهم با مثال‌ها پیش رویم تا بیشتر با آن آشنا شوید.
قبل از هر گونه مثالی، بهتر است رکن‌های اساسی را در یک ARP Table را یادآورم شوم:

  • آدرس IP

  • آدرس MAC که به آن Link Layer Address نیز گفته می‌شود. (lladdr)

  • انواع state های هر row که در دستور IP با کلمه nud با آن برخورد می‌کنیم. nud خود مخفف Neighbour Unreachability Detection می‌باشد.

  • خیلی از موارد نیز وجود دارند که به عنوان جزییات در نظر گرفته می‌شوند که شما را به مستندات می‌سپاریم.(همانند زمان)

  • نکته: فرض را بر این گذاشتیم که شما با پروتکل (Address Resolution Protocol) که مخففا آن را ARP می‌نامیم آشنا هستید و از تعاریف گذشتیم.
    بیایید چند مثال بزنیم تا به نکاتی برسیم، اگر از net-tools به خاطر داشته باشید می‌توانستید کش arp را این چنین ببینید:

    معادل همان در iproute2 این چنین می‌شود:

    تجزیه تحلیل هر خط:
    هر خط مربوط به یک MAC Address می‌باشد. ستون اول آدرس IPv4 یا IPv6 آن می‌باشد. سپس interface شبکه آن با dev blahblah همانند dev eth0 مشخص شده است. با lladdr آدرس سخت افزاری آن (MAC Address) مشخص می‌گردد. گزینه آخر nud می‌باشد.
    نکته: خطوطی هستند که با FAILED مشخص شده‌اند، این‌ها از سیستم‌ پاک شده‌اند ولی تاریخ انقضا آن‌ها از بین نرفته است یا فعلاً قابل دسترس نیستند. در‌واقع در حال حاضر به گونه‌ای مشکل دارند.
    سه nud زیر خیلی مهم هستند:

    • REACHABLE : این‌گونه آدرس‌ها قابل دسترس می‌باشند.

    • STALE : این‌گونه آدرس‌ها معتبر ولی مشکوک می‌باشند. ip neigh نمی‌تواند آن‌ها را تغییر دهد.

    • PERMANENT : این‌گونه آدرس‌ها معتبر بوده و فقط به صورت administratively قابل پاک کردن می‌باشند.

    به چند مثال زیر دقت نمایید:

    در بالا یک آدرس با یک MAC خود را به صورت permanent و با interface استفاده شده eth0 اضافه
    کردیم. که با ip n نمایش داده شده است.
    فرض کنید چنیدن interface دارید و می‌خواهید فیلتر کنید، اینگونه رفتار می‌کنید:

    برای فیلتر کردن بین nud ها هم اینگونه می‌توان رفتار کرد:

    همچنین می‌توان هر دو را با هم ترکیب کرد:

    برای اطلاعات بیشتر همانند قبل‌تر (link)ها از فرمان زیر استفاده می‌کنیم:

    می‌توان برای پاک کردن یک interface خاص از جدول از فرمان زیر استفاده کرد:

    یا :

    البته فرمان‌های replace و change نیز وجود دارند که به خود خواننده واگذار می‌شوند.

    ۵. فرمان ip ntable:

    ntable مخصوص پیکربندی جدول مقادیر arp می‌باشد. بر دو نوع است:

    • ndisc_cache : که مخصوص IPv6 است.

    • arp_cache : که مخصوص IPv4 است.

    با دستور زیر می‌توان مقادیر IPv4 را فیلتر کرد:

    با فرمان زیر به سادگی می‌توان پارامتر‌های neighbor را تغییر داد:

    همانطور که دیدید، ratrans را از ۱۰۰۰ به ۳۰۰۰ تغییر دادیم.
    همانطور که دیدید، بعضی از Object ها گفته نشد و قرار است و برای بعضی از Object ها مثل route مطلبی جدا بگذارم. منتظر مطالب بعدی iproute باشید.

    یک دیدگاه در “iproute2 در مقابل net-tools (این قسمت: interface ها) (قسمت دوم)”

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *