ROUTE(8) راهنمای مدیر سیستم لینوکس ROUTE(8)

route - نمایش و دستکاری جدول مسیریابی IP در هسته لینوکس

route [-CFvnNee] [-A family |-4|-6]

[-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
[-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric M] [[dev] If]
[-V] [--version] [-h] [--help]

دستور route جداول مسیریابی IP در هسته لینوکس را دستکاری می‌کند. کاربرد اصلی آن، تنظیم مسیرهای ایستا (static routes) به میزبان‌ها یا شبکه‌های خاص از طریق یک رابط شبکه پس از پیکربندی آن با برنامه ifconfig(8) است.

هنگامی که گزینه‌های add یا del استفاده شوند، route جداول مسیریابی را تغییر می‌دهد. بدون این گزینه‌ها، route محتویات فعلی جداول مسیریابی را نمایش می‌دهد.

استفاده از خانواده آدرس مشخص‌شده (مانند `inet'). برای مشاهده فهرست کامل از route --help استفاده کنید. می‌توانید از -6 به‌عنوان نام مستعار برای --inet6 و از -4 به‌عنوان نام مستعار برای -A inet استفاده کنید.
اعمال عملیات بر روی جدول مسیریابی FIB (Forwarding Information Base) هسته. این حالت پیش‌فرض است.
اعمال عملیات بر روی کش مسیریابی (routing cache) هسته.
انتخاب حالت گزارش تفصیلی (verbose).
نمایش آدرس‌ها به‌صورت عددی به‌جای تلاش برای تعیین نام‌های نمادین میزبان. این گزینه زمانی که می‌خواهید علت ناپدید شدن مسیر به سرور نام (nameserver) خود را بررسی کنید مفید است.
استفاده از قالب netstat(8) برای نمایش جدول مسیریابی. گزینه -ee یک سطر بسیار طولانی شامل تمامی پارامترهای جدول مسیریابی تولید می‌کند.
حذف یک مسیر.
افزودن یک مسیر جدید.
شبکه یا میزبان مقصد. می‌توانید یک آدرس یا نام نمادین شبکه یا میزبان ارائه دهید. همچنین می‌توانید به‌جای استفاده از گزینه netmask از نمادگذاری /prefixlen استفاده کنید.
شناسه target یک شبکه است.
شناسه target یک میزبان است.
هنگام افزودن مسیر شبکه، ماسک شبکه (netmask) مورد استفاده را مشخص می‌کند.
هدایت بسته‌ها از طریق یک دروازه (gateway).
نکته: دروازه مشخص‌شده ابتدا باید در دسترس باشد. این معمولاً به این معنی است که باید از قبل یک مسیر ایستا به آن دروازه تنظیم کرده باشید. اگر آدرس یکی از رابط‌های محلی خود را مشخص کنید، از آن برای تصمیم‌گیری درباره رابطی که بسته‌ها باید به سمت آن هدایت شوند استفاده می‌شود؛ این یک ترفند سازگاری با سیستم‌های BSD (BSDism) است.
تنظیم فیلد متریک در جدول مسیریابی (مورد استفاده دیمن‌های مسیریابی) روی مقدار M. اگر این گزینه مشخص نشود، متریک برای خانواده آدرس inet6 (IPv6) به‌طور پیش‌فرض برابر با '1' و برای inet (IPv4) برابر با '0' خواهد بود. همیشه باید یک مقدار متریک صریح مشخص کنید تا به این مقادیر پیش‌فرض وابسته نباشید - این مقادیر همچنین با iproute2 متفاوت هستند.
تنظیم MTU (حداکثر واحد انتقال / Maximum Transmission Unit) مسیر بر حسب بایت برابر با M. توجه داشته باشید که پیاده‌سازی فعلی دستور route امکان تنظیم اندازه حداکثر سگمنت (MSS) را فراهم نمی‌کند.
تنظیم اندازه پنجره TCP برای اتصالات روی این مسیر بر حسب بایت برابر با W. این مورد معمولاً فقط در شبکه‌های AX.25 و با درایورهایی که توانایی پردازش فریم‌های متوالی (back to back) را ندارند استفاده می‌شود.
irtt I
تنظیم زمان رفت و برگشت اولیه (irtt) برای اتصالات TCP روی این مسیر به میزان I میلی‌ثانیه (بین ۱ تا ۱۲۰۰۰). این گزینه معمولاً فقط در شبکه‌های AX.25 کاربرد دارد. در صورت حذف، مقدار پیش‌فرض RFC 1122 یعنی ۳۰۰ میلی‌ثانیه استفاده می‌شود.
نصب یک مسیر مسدودکننده که جستجوی مسیر را با شکست مواجه می‌کند. برای مثال، از این گزینه برای پوشاندن و فیلتر کردن شبکه‌ها قبل از استفاده از مسیر پیش‌فرض استفاده می‌شود. این گزینه برای مقاصد فایروال نیست.
نصب یک مسیر پویا یا تغییریافته. این فلگ‌ها برای اهداف عیب‌یابی هستند و معمولاً فقط توسط دیمن‌های مسیریابی تنظیم می‌شوند.
مجبور کردن مسیر برای انتساب به دستگاه (رابط) مشخص‌شده، در غیر این صورت هسته تلاش خواهد کرد دستگاه را خودش تعیین کند (با بررسی مسیرهای موجود، مشخصات دستگاه و جایی که مسیر به آن اضافه می‌شود). در اکثر شبکه‌های معمولی به این گزینه نیازی نخواهید داشت.

اگر dev If آخرین گزینه در خط فرمان باشد، کلمه dev می‌تواند حذف شود، زیرا مقدار پیش‌فرض است. در غیر این صورت، ترتیب اصلاح‌کننده‌های مسیر (metric netmask gw dev) اهمیتی ندارد.

route add -net 127.0.0.0 netmask 255.0.0.0 metric 1024 dev lo
یک ورودی لوپ‌بک (loopback) معمولی با استفاده از ماسک شبکه 255.0.0.0 و منتسب به دستگاه "lo" اضافه می‌کند (با این فرض که این دستگاه قبلاً با ifconfig(8) به‌درستی تنظیم شده است).
route add -net 192.56.76.0 netmask 255.255.255.0 metric 1024 dev eth0
مسیری را به شبکه محلی 192.56.76.x از طریق "eth0" اضافه می‌کند. کلمه "dev" در اینجا می‌تواند حذف شود.
route del default
مسیر پیش‌فرض فعلی را که در فیلد مقصد جدول مسیریابی با عنوان "default" یا 0.0.0.0 مشخص شده است، حذف می‌کند.
route del -net 192.56.76.0 netmask 255.255.255.0
مسیر را حذف می‌کند. از آنجا که هسته مسیریابی لینوکس از آدرس‌دهی بدون کلاس (classless) استفاده می‌کند، تقریباً همیشه باید ماسک شبکه‌ای را مشخص کنید که با آنچه در فهرست 'route -n' دیده می‌شود یکسان باشد.
route add default gw mango
یک مسیر پیش‌فرض اضافه می‌کند (که اگر مسیر دیگری مطابقت نداشته باشد، استفاده خواهد شد). تمامی بسته‌هایی که از این مسیر استفاده می‌کنند از طریق آدرس گره‌ای به نام "mango" هدایت خواهند شد. دستگاهی که در عمل برای این مسیر استفاده می‌شود بستگی به نحوه دسترسی به "mango" دارد - "mango" باید روی یک مسیر مستقیماً در دسترس قرار داشته باشد.
route add mango sl0
مسیری را به میزبان با نام "mango" از طریق رابط SLIP اضافه می‌کند (با این فرض که "mango" میزبان SLIP است).
route add -net 192.57.66.0 netmask 255.255.255.0 gw mango
این دستور شبکه "192.57.66.x" را اضافه می‌کند تا از طریق مسیر قبلی به سمت رابط SLIP هدایت شود.
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
این یک مورد خاص و کم‌کاربرد است که مستند شده تا نحوه انجام آن مشخص باشد. این دستور تمام مسیرهای IP کلاس D (چندپخشی / مالتی‌کست) را طوری تنظیم می‌کند که از طریق "eth0" عبور کنند. این یک خط پیکربندی استاندارد و صحیح در هسته‌ای با قابلیت چندپخشی است.
route add -net 10.0.0.0 netmask 255.0.0.0 metric 1024 reject
یک مسیر مسدودکننده و ردکننده برای شبکه خصوصی "10.x.x.x" نصب می‌کند.
route -6 add 2001:0002::/48 metric 1 dev eth0
یک مسیر IPv6 با متریک مشخص‌شده اضافه می‌کند تا مستقیماً از طریق eth0 در دسترس باشد.

خروجی جدول مسیریابی هسته در ستون‌های زیر سازماندهی شده است:

شبکه مقصد یا میزبان مقصد.
آدرس دروازه یا '*' در صورتی که هیچ دروازه‌ای تنظیم نشده باشد.
ماسک شبکه برای شبکه مقصد؛ مقدار '255.255.255.255' برای مقصد میزبان و '0.0.0.0' برای مسیر default (پیش‌فرض).
فلگ‌های احتمالی عبارتند از:
U (مسیر فعال است / up)
H (مقصد یک میزبان است / host)
G (استفاده از دروازه / gateway)
R (بازگردانی مسیر برای مسیریابی پویا / reinstate)
D (به‌صورت پویا توسط دیمن یا تغییر مسیر نصب شده / dynamic)
M (توسط دیمن مسیریابی یا تغییر مسیر اصلاح شده / modified)
A (نصب‌شده توسط addrconf)
C (ورودی کش / cache)
! (مسیر مسدودکننده / reject)
«فاصله» تا مقصد (معمولاً بر حسب تعداد گام‌ها یا hops شمرده می‌شود).
تعداد ارجاعات به این مسیر (در هسته لینوکس استفاده نمی‌شود).
تعداد دفعات جستجو برای این مسیر. بسته به استفاده از -F یا -C، این مقدار نشان‌دهنده عدم تطابق در کش مسیریابی (-F) یا تطابق در کش (-C) خواهد بود.
رابط شبکه‌ای که بسته‌های مربوط به این مسیر به آن ارسال خواهند شد.
اندازه حداکثر سگمنت پیش‌فرض برای اتصالات TCP روی این مسیر.
اندازه پنجره پیش‌فرض برای اتصالات TCP روی این مسیر.
زمان رفت و برگشت اولیه (Initial RTT). هسته از این مقدار برای حدس زدن بهترین پارامترهای پروتکل TCP بدون معطل ماندن برای پاسخ‌ها (که ممکن است کند باشند) استفاده می‌کند.
تعداد ورودی‌های ARP و مسیرهای کش‌شده که به کش سرآیند سخت‌افزاری برای مسیر کش‌شده ارجاع می‌دهند. اگر برای رابط مسیر کش‌شده نیازی به آدرس سخت‌افزاری نباشد (مانند lo)، این مقدار -1 خواهد بود.
آیا آدرس سخت‌افزاری برای مسیر کش‌شده به‌روز است یا خیر.

/proc/net/ipv6_route
/proc/net/route
/proc/net/rt_cache

ethers(5), arp(8), rarp(8), route(8), ifconfig(8), netstat(8)

دستور route برای لینوکس ابتدا توسط Fred N. van Kempen <waltje@uwalt.nl.mugnet.org> نوشته شد و سپس توسط Johannes Stille و Linus Torvalds برای pl15 اصلاح گردید. Alan Cox گزینه‌های mss و window را برای لینوکس 1.1.22 اضافه کرد. پشتیبانی از irtt و ادغام با netstat توسط Bernd Eckenfels انجام شد.

در حال حاضر توسط Phil Blundell <Philip.Blundell@pobox.com> و Bernd Eckenfels <net-tools@lina.inka.de> نگهداری می‌شود.

2014-02-17 net-tools