مسیریابی IP

بررسی اجمالی

مسیریابی فرآیند انتخاب مسیرها در سراسر شبکه برای انتقال بسته ها از یک میزبان به میزبان دیگر است. 

مسیریابی چگونه کار می کند

بیایید به یک مثال پیکربندی اولیه نگاه کنیم تا نشان دهیم که چگونه از مسیریابی برای ارسال بسته ها بین دو شبکه محلی و به اینترنت استفاده می شود.

در این تنظیمات، ما چندین شبکه داریم:

  • دو شبکه مشتری (192.168.2.0/24 و 192.168.1.0/24)؛
  • یک شبکه برای اتصال روترها (172.16.1.0/30) که معمولاً backbone نامیده می شود.
  • آخرین شبکه (10.1.1.0/24) روتر gateway ما (Router1) را به اینترنت متصل می کند. 

 روتر 2:

				
					/ip address
add address=172.16.1.2/30 interface=ether1
add address=192.168.2.1/24 interface=bridge2
				
			

Router1 (gateway) جایی که ether1 به اینترنت متصل می شود:

				
					/ip address
add address=172.16.1.2/30 interface=ether1
add address=192.168.2.1/24 interface=bridge2
				
			

برای مثال، اگر به جدول مسیریابی Router1 نگاه کنیم، می بینیم که روتر فقط از شبکه های متصل مستقیم (directly connected) مطلع است . در این مرحله، زمانی که Client موجود درLAN1 سعی می کند به مشتری موجود در LAN2 برسد (192.168.2.0/24)، یک بسته روی روتر ارسال می شود، زیرا مقصد برای روتر خاص ناشناخته است:

				
					[admin@MikroTik] > /ip/route> print
Flags: D - dynamic; X - disabled, I - inactive, A - active; C - connect, S - static, r - ri
p, b - bgp, o - ospf, d - dhcp, v - vpn
Columns: DST-ADDRESS, GATEWAY, Distance
    DST-ADDRESS    GATEWAY D
DAC 10.1.1.0/24    ether1  0
DAC 172.16.1.0/30  ether2  0
DAC 192.168.1.0/24 bridge1 0
				
			

برای رفع این مشکل باید مسیری اضافه کنیم که به روتر بگوید دستگاه بعدی در شبکه برای رسیدن به مقصد چیست. در مثال ما، Hop بعدی Router2 است، بنابراین باید یک مسیر با gateway اضافه کنیم که به آدرس متصل Routers 2 اشاره می کند:

				
					[admin@MikroTik] > /ip route add dst-address=192.168.2.0/24 gateway=172.16.1.2
[admin@MikroTik] > /ip/route> print
Flags: D - dynamic; X - disabled, I - inactive, A - active; C - connect, S - static, r - ri
p, b - bgp, o - ospf, d - dhcp, v - vpn
Columns: DST-ADDRESS, GATEWAY,       Distance
        DST-ADDRESS    GATEWAY       D
    DAC 10.1.1.0/24    ether1        0
    DAC 172.16.1.0/30  ether2        0
    DAC 192.168.1.0/24 bridge1       0
0   AS  192.168.2.0/24 172.16.1.2
				
			

در این مرحله بسته از LAN1 با موفقیت به LAN2 ارسال می شود، اما هنوز به پایان نرسیده ایم. Router2 نمی داند چگونه به LAN1 برسد، بنابراین هر بسته ای از LAN2 در Router2 حذف می شود.

اگر دوباره به نمودار شبکه نگاه کنیم، به وضوح می بینیم که Router2 تنها یک نقطه خروج دارد. می توان فرض کرد که تمام شبکه های ناشناخته دیگر باید از طریق لینک به Router1 دسترسی داشته باشند. ساده ترین راه برای انجام این کار، افزودن یک مسیر پیش فرض (default route) است : برای افزودن یک مسیر پیش فرض، مقصد را 0.0.0.0/0 تنظیم کنید یا آن را خالی بگذارید

				
					

/ip route add gateway=172.16.1.1


				
			

همانطور که از راه اندازی مثال دیدیم، گروه های مختلفی از مسیرها بر اساس مبدا و ویژگی های آنها وجود دارد.

اطلاعات مسیریابی

اطلاعات مسیریابی RouterOS از دو بخش اصلی تشکیل شده است:

  • FIB (پایگاه اطلاعات حمل و نقل)، برای تصمیم گیری ارسال بسته استفاده می شود که شامل یک کپی از اطلاعات مسیریابی لازم است.
  • RIB (پایگاه اطلاعات مسیریابی) شامل تمام پیشوندهای شناخته شده از پروتکل های مسیریابی (متصل، ایستا، BGP، RIP، OSPF) است.

پایگاه اطلاعات مسیریابی

پایگاه اطلاعات مسیریابی یک پایگاه داده است که ورودی‌های مقصدهای شبکه خاص و gateway های آنها را فهرست می‌کند (آدرس دستگاه بعدی در طول مسیر یا به سادگی hop بعدی ). یکی از این ورودی ها در جدول مسیریابی مسیر نام دارد (route) .

هاپ زمانی اتفاق می افتد که یک بسته از یک بخش شبکه به بخش دیگر منتقل می شود.

به طور پیش فرض، همه مسیرها در یک جدول مسیریابی “اصلی (main)” سازماندهی شده اند. امکان ساخت بیش از یک جدول مسیریابی وجود دارد که در این مقاله بیشتر به آن خواهیم پرداخت، اما در حال حاضر، برای سادگی، در نظر خواهیم گرفت که تنها یک جدول مسیریابی “اصلی” وجود دارد.

جدول RIB شامل اطلاعات مسیریابی کامل، از جمله مسیرهای ثابت و قوانین مسیریابی خط مشی پیکربندی شده توسط کاربر(static routes and policy routing rules)، اطلاعات مسیریابی که از پروتکل های مسیریابی پویا (RIP، OSPF، BGP) و اطلاعات مربوط به شبکه های متصل است، می باشد.

هدف آن فقط ذخیره مسیرها نیست، بلکه فیلتر کردن اطلاعات مسیریابی برای محاسبه بهترین مسیر برای هر پیشوند مقصد، ساخت و به روز رسانی پایگاه اطلاعات حمل و نقل و توزیع مسیرها بین پروتکل های مسیریابی مختلف است.

مسیرهای متصل – Connected Routes

مسیرهای متصل نشان دهنده شبکه ای است که می توان مستقیماً به هاست ها دسترسی داشت (لینک مستقیم به broadcast domain Layer2). این مسیرها به طور خودکار برای هر شبکه IP ایجاد می شوند که حداقل یک اینترفیس فعال به آن متصل است (همانطور که در آدرس ip/ یا پیکربندی آدرس ipv6 / مشخص شده است ). RIB وضعیت مسیرهای متصل را ردیابی می کند اما آنها را تغییر نمی دهد. برای هر مسیر متصل یک آیتم آدرس IP وجود دارد که:

  •  قسمت  address آدرس dst مسیر متصل برابر با یک آیتم آدرس IP شبکه است.
  • قسمت netmask آدرس dst مسیر متصل برابر با قسمت netmask آدرس آیتم آدرس IP است.
  • gateway مسیر متصل برابر با اینترفیس واقعی آیتم آدرس IP (همان اینترفیس ، به جز پورت های اینترفیس بریج) است و نشان دهنده اینترفیسی است که می توان به میزبان های متصل مستقیم از شبکه Layer3 ، دسترسی پیدا کرد.

preferred source دیگر برای مسیرهای متصل استفاده نمی شود. FIB آدرس منبع را بر اساس اینترفیس خارجی انتخاب می کند که اجازه می دهد تا تنظیماتی را ایجاد کنید که در ROS نسخه 6 و قدیمی تر نامعتبر تلقی می شدند.

مسیر پیش فرض -default Route

یک مسیر پیش فرض زمانی استفاده می شود که مقصد با هیچ مسیر دیگری در جدول مسیریابی قابل استفاده نباشد. در RouterOS  آدرس dst  مسیر پیش‌فرض مسیرهای 0.0.0.0/0 (برای IPv4) و ::/0 (برای IPv6) است . اگر جدول مسیریابی دارای یک مسیر پیش فرض فعال باشد، جستجوی جدول مسیریابی در این جدول هرگز بی نتیجه نخواهد ماند.     

معمولاً جدول مسیریابی روتر خانگی فقط شامل شبکه های متصل و یک مسیر پیش فرض برای ارسال تمام ترافیک خروجی به دروازه ISP است:

				
					[admin@TempTest] /ip/route> print
Flags: D - dynamic; X - disabled, I - inactive, A - active; C - connect, S - static, r - ri
p, b - bgp, o - ospf, d - dhcp, v - vpn
Columns: DST-ADDRESS, GATEWAY, Distance
#      DST-ADDRESS     GATEWAY      D
   DAd 0.0.0.0/0       10.155.125.1 1
   DAC 10.155.125.0/24 ether12      0
   DAC 192.168.1.0/24  vlan2        0
				
			

مسیرهای چند مسیری (ECMP)- Multipath (ECMP) routes

برای پیاده سازی برخی تنظیمات، مانند متعادل کردن بار، ممکن است لازم باشد از بیش از یک مسیر به یک مقصد معین استفاده کنید.

مسیرهای ECMP (هزینه برابر چند مسیری) دارای مقادیر gateway متعدد (هاپ بعدی) هستند. همه جهش های بعدی قابل دسترسی در FIB کپی می شوند و برای ارسال بسته ها استفاده می شوند.

این مسیرها را می توان به صورت دستی و همچنین به صورت پویا توسط هر یک از پروتکل های مسیریابی پویا (OSPF، BGP، RIP) ایجاد کرد. چندین مسیر ترجیح داده شده به یک مقصد به طور خودکار توسط RouterOS (نمونه زیر را ببینید) با + flag تخصیص داده می شود.

				
					[admin@TempTest] /ip/route> print
Flags: D - DYNAMIC; I - INACTIVE, A - ACTIVE; C - CONNECT, S - STATIC, m - MODEM; + - ECMP
Columns: DST-ADDRESS, GATEWAY, DISTANCE
#       DST-ADDRESS      GATEWAY       D
0   AS+ 192.168.2.0/24   10.155.125.1  1
1   AS+ 192.168.2.0/24   172.16.1.2    1
				
			

انتخاب مسیر

ممکن است چندین مسیر با یک مقصد وجود داشته باشد که از پروتکل های مسیریابی مختلف و از پیکربندی های ایستا دریافت می شود، اما تنها یک (بهترین) مقصد می تواند برای ارسال بسته استفاده شود. برای تعیین بهترین مسیر، RIB یک الگوریتم انتخاب مسیر را اجرا می کند که بهترین مسیر را از بین همه مسیرهای نامزد در هر مقصد انتخاب می کند.

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

  • مسیر غیرفعال نیست.
  • اگر نوع مسیر یکپارچه(unicast ) است ، باید حداقل یک مرحله بعدی قابل دسترسی داشته باشد. (اگر gateway ای از شبکه متصل باشد و مسیر متصل فعال باشد، gateway قابل دسترسی در نظر گرفته می شود)   
  • مسیر نباید مصنوعی (synthetic) باشد . 

مسیر کاندید با کمترین مسافت به یک مسیر فعال تبدیل می شود. اگر بیش از یک مسیر نامزد با مسافت یکسان وجود داشته باشد، انتخاب مسیر فعال دلخواه است.

جستجوی Nexthop

جستجوی Nexthop بخشی از فرآیند انتخاب مسیر است. هدف اصلی آن یافتن یک آدرس گت وی (next-hop) قابل دسترسی مستقیم است. تنها پس از انتخاب یک next-hop معتبر، روتر می داند که از کدام رابط برای ارسال بسته استفاده کند.

جستجوی Nexthop پیچیده‌تر می‌شود اگر مسیرها دارای یک آدرس گت وی باشند که چندین hops از این روتر فاصله داشته باشد (به عنوان مثال iBGP، multihop eBGP). چنین مسیرهایی در FIB بعد از اینکه الگوریتم انتخاب next-hop آدرس گت وی قابل دسترسی مستقیم (Imediate next-hop) را تعیین کرد، در FIB نصب می شوند.

لازم است مجموعه مسیرهایی را که می توان برای جستجوی hops های بعدی فوری استفاده کرد، محدود کرد. برای مثال، مقادیر Nexthop مسیرهای RIP یا OSPF قرار است مستقیماً قابل دسترسی باشند و فقط با استفاده از مسیرهای متصل باید جستجو شوند. این با استفاده از ویژگی های  scope  و  target-scope به دست می آید  .

مسیرهایی با دامنه بیشتر از حداکثر مقدار پذیرفته شده، برای جستجوی بعدی hop استفاده نمی شود. هر مسیر حداکثر مقدار محدوده پذیرفته شده را برای nexthop خود در ویژگی target-scope مشخص می کند. مقدار پیش‌فرض این ویژگی امکان جستجوی nexthop را فقط از طریق مسیرهای متصل می‌دهد، به استثنای مسیرهای iBGP که مقدار پیش‌فرض بزرگ‌تری دارند و می‌توانند از طریق مسیرهای IGP و استاتیک نیز به nexthop مراجعه کنند.

تغییراتی در RouterOS v7 nexthop جستجو وجود دارد.

مسیرها به ترتیب دامنه پردازش می‌شوند و به‌روزرسانی مسیرهایی با دامنه بزرگ‌تر نمی‌تواند بر وضعیت جستجوی nexthop برای مسیرهایی با دامنه کوچک‌تر تأثیر بگذارد.

یک مثال از v6 را در نظر بگیرید:

				
					/ip route add dst-address=10.0.1.0/24 gateway=10.0.0.1
    scope=50 target-scope=30 comment=A
/ip route add dst-address=10.0.2.0/24 gateway=10.0.0.1
    scope=30 target-scope=20 comment=B
/ip route add dst-address=10.0.0.0/24 scope=20 gateway=WHATEVER
    comment=C
				
			

گت وی 10.0.0.1 به صورت بازگشتی از طریق C با استفاده از کوچکترین دامنه (حوزه 20 از مسیر B) resolve می شود، هر دو مسیر فعال هستند. حالا A و B را همزمان تغییر می دهیم:

				
					/ip route set A target-scope=10
				
			

به طور ناگهانی، اعمال یک به روز رسانی در مسیر A، گت وی مسیر B را غیر فعال می کند. این به این دلیل است که در v6 تنها یک گت وی به ازای هر آدرس وجود دارد.

v7 چندین گت وی را در هر آدرس نگه می‌دارد، یکی برای هر ترکیبی از scope و gateway-check.

تغییر محدوده هدف یا بررسی گت وی یک مسیر در نسخه 7 ، مانند نسخه 6 روی مسیرهای دیگر تأثیر نمی گذارد . در v7 target-scope و gateway-check ویژگی هایی هستند که به صورت داخلی به دروازه متصل هستند نه به مسیر. 

مسیر ذخیره سازی- Route Storage

اطلاعات مسیریابی ذخیره می شود تا در یک کیس معمولی تا حد امکان حافظه کمتری را اشغال کند. این بهینه‌سازی‌ها بدترین حالت‌های غیر آشکار را دارند و بر عملکرد تأثیر می‌گذارند.

همه مسیرها و گت وی ها در یک سلسله مراتب با پیشوند/آدرس نگهداری می شوند

				
					    Dst [4]/0 1/0+4                             18  <-- number of prefixes
         ^  ^ ^ ^ ^
         |  | | | |
         |  | | | \- bytes taken by Route distinguisher or Interface Id
         |  | | \--- vrf/routing table
         |  | \----- AFI
         |  \------- netmask length of prefix
         \---------- bytes taken by prefix value

         [stuff subject to change without notice]
				
			

هر یک از این “Dst” مربوط به یک “dst-address” مسیر یا آدرس گت وی است. هر «Dst» به یک یا چند «T2Node» نیز نیاز دارد.

همه مسیرها با یک آدرس dst در لیستی که بر اساس اولویت مسیر مرتب شده اند در Dst نگهداری می شوند.
توجه:  بدترین حالت: داشتن تعداد زیادی مسیر با همان ‘dst-address’ واقعا کند است! حتی اگر غیر فعال باشند! زیرا به روز رسانی یک لیست مرتب شده با ده ها هزار عنصر کند است!

ترتیب مسیر تنها زمانی تغییر می کند که ویژگی های مسیر تغییر کند. اگر مسیر فعال/غیرفعال شود، ترتیب تغییر نمی کند.

هر مسیر دارای سه نسخه از ویژگی های مسیر است:

  • private — آنچه از peer، قبل از عبور از فیلترها دریافت می شود.
  • updated  — نتیجه اعمال درون فیلترها چیست.
  • current — ویژگی هایی که در حال حاضر توسط مسیر استفاده می شود چیست.

به صورت دوره ای (در صورت نیاز)، ویژگی های update  از ویژگی های private محاسبه می شوند . زمانی که update  های مسیر دریافت می‌شود، یا زمانی که فیلتر درون فیلتر به‌روزرسانی می‌شود، این اتفاق می‌افتد.    

هنگامی که جدول مسیریابی مجدداً محاسبه می شود، ویژگی های current بر روی مقدار مشخصه های updated  تنظیم می شوند .    

این بدان معناست که معمولاً اگر فیلتر درونی وجود نداشته باشد که ویژگی‌های مسیر را تغییر دهد، private ، updated  و current مقدار یکسانی را به اشتراک می‌گذارند.     

ویژگی های مسیر در چند گروه نگهداری می شوند:

  • داده های L1 – همه flags, list of extra properties, as-path;
  • داده های L2 – همه nexthops, RIP,OSPF,BGP metrics, route tags و غیره.
  • داده L3 – موارد distance, scope, kernel type, MPLS
  • ویژگی‌های اضافی – communities, originator, aggregator-id, cluster-list, unknown

به عنوان مثال، داشتن ترکیب های مختلف از ویژگی های مسیر distance و scope ، حافظه بیشتری مصرف می کند!    

تطبیق جوامع – Matching communities یا as-path با استفاده از regexp، نتیجه را در حافظه پنهان ذخیره می‌کند تا سرعت فیلتر کردن را افزایش دهد. هر مقدار as-path یا جامعه دارای یک کش برای تمام regexp است که بر حسب تقاضا با نتایج مطابقت پر می شود.
توجه:  بدترین حالت: تغییر ویژگی ها در “in-filter” باعث می شود برنامه مسیر از حافظه بیشتری استفاده کند! زیرا ویژگی های “private ” و “updated  ” متفاوت خواهند بود! داشتن تعداد زیادی Regex های مختلف باعث کندی تطبیق و استفاده از حافظه زیادی می شود! زیرا هر مقدار یک کش با هزاران ورودی خواهد داشت!

اطلاعات دقیق در مورد حافظه استفاده شده توسط پروتکل های مسیریابی را می توان در منو مشاهده کرد /routing stats memory 

پایگاه اطلاعات حمل و نقل- Forwarding Information Base

FIB (پایگاه اطلاعات حمل و نقل) حاوی یک کپی از اطلاعاتی است که برای ارسال بسته ضروری است:

  • تمام مسیرهای فعال
  • قوانین مسیریابی خط مشی – policy routing rules

هر مسیر دارای ویژگی dst-address است که تمام آدرس‌های مقصد را مشخص می‌کند که این مسیر می‌تواند برای آنها استفاده شود. اگر چندین مسیر وجود داشته باشد که برای یک آدرس IP خاص اعمال می شود، خاص ترین (با بزرگترین netmask) استفاده می شود. این عملیات (یافتن خاص ترین مسیری که با آدرس داده شده مطابقت دارد) “جستجو جدول مسیریابی – routing table lookup ” نامیده می شود.  

فقط یک مسیر بهترین را می توان برای ارسال بسته استفاده کرد. در مواردی که جدول مسیریابی شامل چندین مسیر با آدرس dst یکسان است ، همه بهترین مسیرها در یک مسیر ECMP ترکیب می‌شوند. بهترین مسیر در FIB نصب شده و به عنوان “active” مشخص شده است.   

هنگامی که تصمیم حمل و نقل از اطلاعات اضافی استفاده می کند، مانند آدرس منبع بسته، به آن مسیریابی خط مشیpolicy routing می گویند . مسیریابی خط مشی به عنوان لیستی از قوانین مسیریابی خط مشی پیاده سازی می شود، که جداول مسیریابی مختلف را بر اساس آدرس مقصد، آدرس منبع، اینترفیس مبدأ و علامت مسیریابی بسته انتخاب می کند (که می تواند توسط قواعد mangle فایروال تغییر یابد).  

جستجوی جدول مسیریابی – Routing table lookup

FIB از اطلاعات زیر از بسته برای تعیین مقصد خود استفاده می کند:

  • آدرس منبع – source address
  • آدرس مقصد- destination address
  • رابط منبع- source interface
  • علامت مسیریابی- routing mark
  •  

تصمیمات احتمالی مسیریابی عبارتند از:

  • دریافت بسته به صورت محلی
  • بسته را دور می اندازد (به صورت بی صدا یا با ارسال پیام ICMP به فرستنده بسته)
  • بسته را به یک آدرس IP خاص در یک رابط خاص ارسال می کند

اجرای تصمیم مسیریابی:

  • بررسی می کند که بسته باید به صورت محلی تحویل داده شود (آدرس مقصد آدرس روتر است)
  • قوانین مسیریابی خط مشی ضمنی- implicit policy routing rules را پردازش می کند
  • قوانین مسیریابی خط مشی پردازش اضافه شده توسط کاربر – policy routing rules added by a user را پردازش می کند
  • قانون catch-all ضمنی را پردازش می کند و مقصد را در جدول مسیریابی “اصلی” جستجو می کند
  • نتیجه برگشتی “شبکه غیر قابل دسترس” است

نتیجه تصمیم مسیریابی می تواند باشد:

  • آدرس IP رابط nexthop +
  • رابط نقطه به نقطه – point-to-point interface
  • تحویل محلی – local delivery
  • دور انداختن – discard
  • ICMP ممنوع است – ICMP prohibited
  • میزبان ICMP غیرقابل دسترس است – ICMP host unreachable
  • شبکه ICMP غیرقابل دسترسی است – ICMP network unreachable

قوانینی که با بسته فعلی مطابقت ندارند نادیده گرفته می شوند. اگر یک قانون عملی باشد:

  • drop  یا unreachable است ، سپس در نتیجه فرآیند تصمیم گیری مسیریابی برگردانده می شود. 
  • جستجو – lookup سپس آدرس مقصد بسته در جدول مسیریابی که در قانون مشخص شده ، جستجو می شود. اگر جستجو ناموفق باشد (هیچ مسیری وجود ندارد که با آدرس مقصد بسته مطابقت داشته باشد)، سپس FIB با قانون بعدی ادامه می‌دهد.
  • جستجو-فقط  (lookup-only) مشابه جستجو است با این تفاوت که اگر هیچ یک از مسیرهای جدول با بسته مطابقت نداشته باشد، جستجو ناموفق است.  

در غیر این صورت:

  • اگر نوع مسیر سیاهچاله ، ممنوع یا غیرقابل دسترسblackholeprohibit, or unreachable باشد، این عمل را به عنوان نتیجه تصمیم مسیریابی برمی گرداند.    
  • اگر این یک مسیر یا مسیر متصل با یک رابط به عنوان مقدار گت  وی باشد، این رابط و آدرس مقصد بسته را به عنوان نتیجه تصمیم مسیریابی برمی گرداند.
  • اگر این مسیر دارای یک آدرس IP به عنوان مقدار گت وی باشد ، این آدرس و رابط مرتبط را به عنوان نتیجه تصمیم مسیریابی برمی گرداند.
  • اگر این مسیر دارای چندین مقدار nexthop باشد، یکی از آنها را به صورت round-robin  انتخاب می کند.

نمایش مسیرها

در RouterOS سه منو برای مشاهده وضعیت فعلی مسیرها در جدول مسیریابی دارید:

  • /ip route – لیست مسیرهای IPv4 و ویژگی های اساسی
  • /ipv6 route – فهرست مسیرهای IPv6 و ویژگی های اساسی
  • /routing route – لیست تمام مسیرهای با ویژگی های توسعه یافته

/routing route منو در حال حاضر فقط خواندنی است. برای افزودن یا حذف مسیرها باید از منوها استفاده شود./ip(ipv6) route 

خروجی نمونه

				
					[admin@MikroTik] /ip/route> print
Flags: D - dynamic; X - disabled, I - inactive, A - active; C - connect, S - stati
c, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn
Columns: DST-ADDRESS, GATEWAY, DIstance
#       DST-ADDRESS      GATEWAY      DI
0   XS   10.155.101.0/24  1.1.1.10
1   XS                    11.11.11.10
   D d   0.0.0.0/0        10.155.101.1 10
2   AS   0.0.0.0/0        10.155.101.1 1
3   AS + 1.1.1.0/24       10.155.101.1 10
4   AS + 1.1.1.0/24       10.155.101.2 10
5   AS   8.8.8.8          2.2.2.2      1
   DAC   10.155.101.0/24  ether12      0
 
 
|  ||| |   |                 |         |
|  ||| |   |                 |         \----Distance
|  ||| |   |                 \--Configured gateway
|  ||| |   \-- dst prefix
|  ||| \----- ECMP flag
|  ||\------- protocol flag (bgp, osf,static,connected etc.)
|  |\-------- route status flag (active, inactive, disabled)
|  \--------- shows if route is dynamic
\----------- console order number (shown only for static editable routes)
				
			

خروجی routing route بسیار شبیه مسیر IP است با این تفاوت که مسیرها را از تمام خانواده آدرس ها در یک منو نشان می دهد و مسیرهای فیلتر شده را نیز فهرست می کند.

				
					[admin@MikroTik] /routing/route> print
Flags: X - disabled, I - inactive, F - filtered, U - unreachable, A - active; c - connect, s - static,
r - rip, b - bgp, o - ospf, d - dhcp, v - vpn, a - ldp-address, l - ldp-mapping
Columns: DST-ADDRESS, GATEWAY, DIStance, SCOpe, TARget-scope, IMMEDIATE-GW
     DST-ADDRESS            GATEWAY      DIS SCO TAR IMMEDIATE-GW
Xs   10.155.101.0/24
Xs
d    0.0.0.0/0              10.155.101.1 10  30  10  10.155.101.1%ether12
As   0.0.0.0/0              10.155.101.1 1   30  10  10.155.101.1%ether12
As   1.1.1.0/24             10.155.101.1 10  30  10  10.155.101.1%ether12
As   8.8.8.8                2.2.2.2      1   254 254 10.155.101.1%ether12
Ac   10.155.101.0/24        ether12      0   10      ether12
Ic   2001:db8:2::/64        ether2       0   10
Io   2001:db8:3::/64        ether12      110 20  10
Ic   fe80::%ether2/64       ether2       0   10
Ac   fe80::%ether12/64      ether12      0   10      ether12
Ac   fe80::%bridge-main/64  bridge-main  0   10      bridge-main
A    ether12                             0   250
A    bridge-main                         0   250 
				
			

routing route print detail اطلاعات پیشرفته تری را برای اشکال زدایی مفید نشان می دهد

				
					[admin@MikroTik] /routing route> print detail
Flags: X - disabled, I - inactive, F - filtered, U - unreachable, A - active;
c - connect, s - static, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn, a - ldp-address, l - ldp-ma>
+ - ecmp
Xs dst-address=10.155.101.0/24
Xs
d afi=ip4 contribution=best-candidate dst-address=0.0.0.0/0 gateway=10.155.101.1
immediate-gw=10.155.101.1%ether12 distance=10 scope=30 target-scope=10
belongs-to="DHCP route" mpls.in-label=0 .out-label=0 debug.fwp-ptr=0x201C2000
 
As afi=ip4 contribution=active dst-address=0.0.0.0/0 gateway=10.155.101.1
immediate-gw=10.155.101.1%ether12 distance=1 scope=30 target-scope=10
belongs-to="Static route" mpls.in-label=0 .out-label=0 debug.fwp-ptr=0x201C2000