مفهوم SLA

SLA یک ویژگی است که برای اندازه‌گیری عملکرد شبکه و تأیید سطوح خدمات شبکه استفاده می‌شود. این به مدیران شبکه اجازه می‌دهد تا ترافیک شبکه را شبیه‌سازی کرده و عملکرد دستگاه‌ها را اندازه‌گیری کنند. IP SLA می‌تواند برای نظارت بر طیف وسیعی از پارامترهای شبکه مانند از دست دادن بسته، تأخیر، jitter و در دسترس بودن استفاده شود. همچنین می‌توان از آن برای راه‌اندازی رویدادهای گزارش‌گیری، مانند failover، زمانی که از آستانه عملکرد فراتر رفت، استفاده کرد. IP SLA می‌تواند به مدیران شبکه کمک کند تا مشکلات شبکه را شناسایی و عیب‌یابی کنند و از برآورده شدن سطح خدمات شبکه اطمینان حاصل کنند.

تعریف عملیات IP SLA

در این بخش نحوه تعریف یک عملیات IP SLA که عملکرد شبکه را اندازه‌گیری و سطوح خدمات شبکه را تأیید می‌کند، بررسی می‌شود.

انواع عملیات

در حال حاضر دو نوع عملیات وجود دارد:

  • icmp-echo: درخواست‌های ICMP echo را برای اندازه‌گیری زمان رفت و برگشت بین دستگاه‌ها ارسال می‌کند.

  • icmp-jitter: از دست دادن بسته و jitter را برای ترافیک ICMP اندازه‌گیری می‌کند.

ICMP Echo

این عملیات IP SLA درخواست‌های ICMP echo را به یک آدرس IP مقصد مشخص ارسال می‌کند تا زمان رفت و برگشت بین دستگاه‌ها را اندازه‌گیری کند. درخواست‌های ICMP echo ترافیک شبکه را شبیه‌سازی می‌کنند و به شناسایی مشکلات عملکرد شبکه کمک می‌کنند.

پارامترهای ICMP Echo

  • destination: آدرس IP مقصد برای درخواست ICMP echo را مشخص می‌کند.

  • source: آدرس IP مبدأ برای درخواست ICMP echo را مشخص می‌کند. در واقع مشخص می‌کند بسته‌ها با کدام IP از IP‌های تنظیم شده در اینترفیس ارسال شود.

  • frequency: بازه زمانی ارسال درخواست‌های ICMP echo را مشخص می‌کند.

  • timeout: زمان انتظار عملیات IP SLA برای دریافت پاسخ به درخواست ICMP echo را مشخص می‌کند.

  • threshold: آستانه بالای زمان رفت و برگشت را مشخص می‌کند. در مانیتورینگ و بخش reaction استفاده می‌شود.

  • VRF: نمونه VRF را برای این عملیات IP SLA تنظیم می‌کند.

  • payload size: اندازه payload بسته ICMP را مشخص می‌کند.

دستورات ICMP Echo

ip sla (1-2147483647)

یک توافقنامه سطح سرویس IP (SLA) ایجاد می‌کند.

  • (1-2147483647): آرگومان عددی شماره شاخص نمونه IP SLA در حال پیکربندی را مشخص می‌کند.

icmp-echo <A.B.C.D|X:X::X:X|HOST> [source-ip <A.B.C.D|X:X::X:X>]

برای پیکربندی یک عملیات ICMP Echo که توسط روتر انجام می‌شود استفاده می‌شود. آرگومان بعدی که می‌تواند یک آدرس IPv4 یا IPv6 یا نام میزبان باشد، مقصد برای درخواست ICMP Echo را مشخص می‌کند.

به صورت اختیاری، می‌توان از پارامتر source-ip برای مشخص کردن آدرس IP مبدأ برای عملیات ICMP Echo استفاده کرد. این در مواردی مفید است که روتر چندین اینترفیس دارد و مدیر می‌خواهد کنترل کند کدام اینترفیس برای تولید درخواست ICMP Echo استفاده شود.

frequency (1-604800)

نرخ ارسال درخواست‌های ICMP Echo به مقصد را تنظیم می‌کند. پارامتر frequency بر حسب ثانیه مشخص می‌شود و می‌تواند از 1 تا 604800 (یک هفته) باشد.

به عنوان مثال، اگر فرکانس 60 ثانیه مشخص شود (مقدار پیش‌فرض برای frequency)، روتر هر دقیقه یک درخواست ICMP Echo به مقصد تنظیم شده ارسال می‌کند. این پارامتر می‌تواند برای افزایش یا کاهش نرخ ارسال درخواست‌های ICMP Echo بسته به نیاز مدیر شبکه تنظیم شود.

نکته

مقدار پیش‌فرض frequency برابر 60 ثانیه است.

timeout (0-604800000)

حداکثر زمانی که عملیات IP SLA برای دریافت پاسخ از میزبان مقصد منتظر می‌ماند را تعیین می‌کند. پارامتر timeout بر حسب میلی‌ثانیه مشخص می‌شود و می‌تواند از 1 تا 604800000 (یعنی یک هفته) باشد.

هنگامی که عملیات IP SLA یک بسته ICMP Echo به میزبان مقصد ارسال می‌کند، در دوره timeout منتظر پاسخ از میزبان می‌ماند. اگر پاسخ در timeout مشخص شده دریافت نشود، عملیات IP SLA ناموفق در نظر گرفته می‌شود.

به عنوان مثال، اگر timeout 5000 میلی‌ثانیه (5 ثانیه، مقدار پیش‌فرض برای timeout) مشخص شود، عملیات IP SLA حداکثر 5 ثانیه برای دریافت پاسخ از میزبان مقصد منتظر می‌ماند. اگر پاسخ در این زمان دریافت نشود، عملیات IP SLA ناموفق در نظر گرفته می‌شود.

هشدار

مقدار timeout نمی‌تواند بیشتر از frequency باشد.

نکته

مقدار پیش‌فرض timeout برابر 5000 میلی‌ثانیه است.

threshold (1-60000)

مقدار آستانه بالای محاسبه آمار مانیتورینگ شبکه را تنظیم می‌کند. پارامتر threshold بر حسب میلی‌ثانیه مشخص می‌شود و می‌تواند از 1 تا 60000 باشد.

هنگامی که عملیات IP SLA یک بسته ICMP Echo به میزبان مقصد ارسال می‌کند، اگر پاسخ در threshold مشخص شده دریافت نشود، عملیات IP SLA Overthreshold در نظر گرفته می‌شود.

به عنوان مثال، اگر threshold 5000 میلی‌ثانیه (5 ثانیه، مقدار پیش‌فرض برای threshold) مشخص شود، اگر پاسخ در این زمان دریافت نشود، عملیات IP SLA Overthreshold در نظر گرفته می‌شود.

هشدار

مقدار threshold نمی‌تواند بیشتر از timeout باشد.

نکته

عملیات‌های Overthreshold ناموفق نیستند و قابل دسترس و OK هستند. این برای استفاده به عنوان رویداد trigger در نظر گرفته نشده است، بلکه برای استفاده با IP SLA Reactions است.

نکته

مقدار پیش‌فرض threshold برابر 5000 میلی‌ثانیه است.

vrf VRF

این پارامتر اختیاری نمونه VRF را که عملیات باید در آن انجام شود مشخص می‌کند.

به عنوان مثال، سناریویی را در نظر بگیرید که یک ارائه‌دهنده سرویس اینترنت را به چندین مشتری ارائه می‌دهد که هر کدام VRF خود را دارند. در این سناریو، ارائه‌دهنده سرویس می‌تواند از پارامتر VRF در عملیات IP SLA برای انجام عملیات در VRF صحیح استفاده کند. این به ارائه‌دهنده سرویس اجازه می‌دهد تا عملکرد شبکه هر مشتری را به طور مستقل نظارت کند.

اگر پارامتر VRF در عملیات IP SLA مشخص نشود، عملیات در VRF پیش‌فرض روتر انجام می‌شود.

request-data-size (0-16384)

تعداد بایت‌های payload پیام درخواست ICMP echo را مشخص می‌کند. مقدار می‌تواند به هر عددی بین 0 تا 16384 بایت تنظیم شود.

هدف از این پارامتر شبیه‌سازی شرایط مختلف ترافیک شبکه و ارزیابی عملکرد شبکه است. با مشخص کردن یک مقدار بزرگ، عملیات IP SLA می‌تواند تعیین کند که آیا شبکه می‌تواند payload های بزرگ داده را بدون از دست دادن یا تأخیر قابل توجهی مدیریت کند.

نکته

مقدار پیش‌فرض request-data-size برابر 28 بایت است.

مثال برای ICMP Echo

فرض کنید در سناریوی زیر در نود n1 قصد داریم sla از نوع icmp-echo اجرا کنیم. در اینجا ما از دو ISP سرویس اینترنت دریافت می‌کنیم. به صورت پیش‌فرض از ISP1 استفاده می‌کنیم چون سرویس بهتری به ما می‌دهد. حال اگر مقدار rtt بسته‌ها از مقدار بیشتر شد از ISP2 برای دسترسی به اینترنت استفاده می‌کنیم. تنظیمات در روتر n1 به شکل زیر خواهد بود:

SLA

اضافه کردن sla

n1(config)# ip sla 1 
n1(config-ip-sla)# icmp-echo 200.1.2.2 
n1(config-ip-sla-echo)# frequency 30  بسته ها هر ۳۰ ثانیه یک بار ارسال می شوند

تعریف reaction

با دستور زیر مشخص می‌کنیم که در صورتی که حتی یک بسته مقدار rttش از 500 ms بیشتر شد لاگ کن و اگر track ی تعریف کرده باشیم که از این reaction استفاده کند وضعیت track با توجه به این reaction تغییر می‌کند.

n1(config)# ip sla reaction-configuration 1 react rtt action-type logOnly threshold-type immediate threshold-value 500 50

schedule کردن sla

بعد از اضافه کردن sla باید مشخص کنیم که این sla چه زمان‌هایی باید اجرا شود. در این مثال ما می‌خواهیم sla از همین لحظه شروع به کار کند و برای همیشه فعال باشد:

n1(config)# ip sla schedule 1 start-time now life forever 
informational-ZEBRA: SLA 1 running state changed: Running نشان می دهد sla اجرا شده است
informational-ZEBRA: SLA 1 state changed: Ok نشان می دهد sla up شده است 

مشاهده تنظیمات اعمال شده

n1# sh ip sla configuration 1 
Entry number: 1
 Operation timeout (milliseconds): 5000
 Type of operation to perform: icmp-echo
 Target address/Source address: 200.1.2.2/0.0.0.0
 Request size (ARR data portion): 28
 VRF name: 
 Schedule:
  Operation frequency (seconds): 30
  Next Scheduled Start Time: Start Time already passed
  Life (seconds): forever
  Recurring (Starting Everyday): FALSE
 Threshold (milliseconds): 5000
n1# 

مشاهده وضعیت sla

n1(config)# do sh ip sla statistics 1
IPSLA Operation id: 1
Type of operation: icmp-echo
  Latest RTT: 12 milliseconds                                                          
Latest operation start time: Sat Jun 10 14:02:23 2023        آخرین باری که اجرا شده است
Latest successfull operation time: Sat Jun 10 14:02:23 2023  آخرین باری که با موفقیت اجرا شده است
Latest failed operation time: N/A                            آخرین باری که ناموفق بوده است
Latest operation return code: OK                             وضعیت آخرین باری که اجرا شده است
Number of successes: 68                                      تعداد دفعاتی که موفقیت آمیز بوده است  
Number of failures: 0                                        تعداد دفعاتی که موفقیت آمیز نبوده است 
Operation time to live: Forever                              عمر باقی مانده
n1(config)# 

اضافه کردن track

یک track تعریف می‌کنیم که برای آن reaction rtt در sla شماره 1 مشخص شده است. یعنی اگر مقدار rtt در sla 1 کمتر از 500 ms باشد track 1 فعال (up) خواهد بود در غیر اینصورت track down خواهد شد.

n1(config)# track 1 ip sla 1 reaction rtt 
informational-ZEBRA: Track 1 came up

سپس با استفاده از track یک route default اضافه می‌کنیم که این route زمانی در سیستم نصب می‌شود که track فعال باشد. ما یک route دیگر نیز با مقدار distance برابر با 150 هم اضافه کرده‌ایم که چون مقدار distance آن بیشتر است نصب نخواهد شد و فقط زمانی که track غیر فعال (down) باشد این route نصب می‌شود:

n1(config)# ip route 0.0.0.0/0 200.1.2.2 track 1
n1(config)# ip route 0.0.0.0/0 200.1.3.3 150
n1(config)# do sh ip fib 
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric, W - WG,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

S>* 0.0.0.0/0 [1/0] via 200.1.2.2, ge0, weight 1, 00:00:14
C>* 10.0.2.0/24 is directly connected, ge2, 01:03:46
C>* 200.1.2.0/24 is directly connected, ge0, 01:04:45
C>* 200.1.3.0/24 is directly connected, ge1, 01:04:02
n1(config)# 

به شکل زیر نیز می‌توان وضعیت track را مشاهده کرد:

n1# sh track 1
Track 1
  IP SLA 1 reaction
  Reaction is Up
    1 change[s], last change 00:07:59
  Latest operation return code: OK
  Tracked by:
    Static IP Routing
n1# 

ICMP Jitter

این عملیات IP SLA یک سری درخواست ICMP echo را به یک آدرس IP مقصد مشخص ارسال می‌کند تا تغییرات تأخیر بسته (jitter) شبکه را اندازه‌گیری کند. این عملیات تأخیر بین ارسال هر بسته و پاسخ دریافت شده از مقصد را اندازه‌گیری می‌کند و jitter را با مقایسه مقادیر تأخیر محاسبه می‌کند.

پارامترهای ICMP Jitter

  • destination: آدرس IP مقصد برای درخواست ICMP echo را مشخص می‌کند.

  • source: آدرس IP مبدأ برای درخواست ICMP echo را مشخص می‌کند. در واقع مشخص می‌کند بسته‌ها با کدام IP از IP‌های تنظیم شده در اینترفیس ارسال شود.

  • num-packets: تعداد بسته‌هایی که برای هر عملیات ارسال می‌شوند را مشخص می‌کند.

  • interval: مدت زمان بین درخواست‌های echo متوالی ارسال شده به یک دستگاه هدف را مشخص می‌کند.

  • frequency: بازه زمانی اجرای عملیات را مشخص می‌کند.

  • timeout: زمان انتظار عملیات IP SLA برای دریافت پاسخ به درخواست ICMP echo را مشخص می‌کند.

  • threshold: آستانه بالای زمان رفت و برگشت را مشخص می‌کند. در مانیتورینگ و بخش reaction استفاده می‌شود.

  • VRF: نمونه VRF را برای این عملیات IP SLA تنظیم می‌کند.

  • percentile: درصد زمان‌های رفت و برگشت پایین‌تر که در آمار percentile استفاده می‌شوند را مشخص می‌کند.

برای مثال وقتی مقدار 95 تنظیم شود، 5 درصدی که بیشترین مقدار rtt را دارند و به نوعی داده پرت به حساب می‌آیند در محاسبات لحاظ نشوند و فقط 95 درصد از داده‌ها جهت تحلیل و تصمیم‌گیری استفاده شوند.

دستورات ICMP Jitter

icmp-jitter <A.B.C.D|X:X::X:X|HOST> [source-ip <A.B.C.D|X:X::X:X>]

برای پیکربندی یک عملیات ICMP Jitter که توسط روتر انجام می‌شود استفاده می‌شود.

num-packets (1-100)

تعداد بسته‌هایی که برای هر عملیات ارسال می‌شوند را مشخص می‌کند. مقدار می‌تواند از 1 تا 100 باشد.

نکته

مقدار پیش‌فرض num-packets برابر 10 است.

interval (1-60000)

مدت زمان بین درخواست‌های echo متوالی ارسال شده به یک دستگاه هدف را مشخص می‌کند. مقدار بر حسب میلی‌ثانیه مشخص می‌شود و می‌تواند از 1 تا 60000 باشد.

نکته

مقدار پیش‌فرض interval برابر 20 میلی‌ثانیه است.

percentile jitterAvg (1-100)

درصد زمان‌های رفت و برگشت پایین‌تر که در آمار percentile استفاده می‌شوند را مشخص می‌کند.

نکته

مقدار پیش‌فرض percentile برابر 95 است.

مثال ICMP Jitter

فرض کنید می‌خواهیم مثال قبل را با jitter پیاده‌سازی کنیم:

SLA

n1(config)# ip sla 2 
n1(config-ip-sla)# icmp-jitter 200.1.2.2 
n1(config-ip-sla-echo)# frequency 30  
n1(config-ip-sla-icmpjitter)# percentile jitterAvg 90  
n1(config-ip-sla-icmpjitter)# 
n1(config)# ip sla reaction-configuration 2 react jitterAvg action-type logOnly threshold-type average 5 threshold-value 100 10  
n1(config)# ip sla schedule 2 start-time now life 7200
n1(config)# track 1 ip sla 2 reaction jitterAvg 
n1(config)# ip route 0.0.0.0/0 200.1.2.2 track 1
n1(config)# ip route 0.0.0.0/0 200.1.3.3 150

ما در این مثال یک sla با شماره 2 از نوع jitter به مقصد 200.1.2.2 تعریف کرده‌ایم که هر 30 ثانیه یک بار اجرا می‌شود. همچنین 10 درصدی که بیشترین مقدار jitter را دارد از داده‌ها حذف نموده‌ایم. در ادامه یک reaction اضافه کردیم که از نوع jitterAvg است و اگر میانگین 5 مقدار jitter از 100 بیشتر شود لاگ می‌کند.

پس از آن یک track تعریف کردیم که به این reaction واکنش نشان می‌دهد و در صورت up بودن آن یک route اضافه می‌کند.

با این تنظیم به صورت پیش‌فرض اینترنت از ISP1 در دسترس خواهد بود و در صورتی که میانگین jitter در 5 بار اجرا شدن sla بیشتر از 100ms شود اینترنت از ISP2 در دسترس خواهد بود.

n1# sh ip sla statistics 2
IPSLA Operation id: 2
Type of operation: icmp-jitter
  Latest RTT: 10 milliseconds
Latest operation start time: Sun Jun 11 09:33:34 2023
Latest successfull operation time: Sun Jun 11 09:33:34 2023
Latest failed operation time: N/A
Latest failed operation error: Timed out
Latest operation return code: OK
RTT Values:
  Number of RTT:10	RTT Min/Avg/Max: 10/12/15 milliseconds
Jitter time:
  Number of Jitter Samples: 9
  Jitter Min/Avg/Max: 0/2/4 milliseconds
Percentile Jitter time:
  Number of Percentile Jitter Samples (90%): 8
  Percentile Jitter Min/Avg/Max: 0/2/4 milliseconds
Over Threshold:
  Number Of RTT Over Threshold: 0
Out of Sequence: 0
Packet Loss: 0
Number of successes: 8
Number of failures: 0
Operation time to live: 01:56:26

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

n1(config)# do sh ip sla statistics 2 details 
IPSLA Operation id: 2
Type of operation: icmp-jitter
  Latest RTT: 11 milliseconds
Latest operation start time: Sun Jun 11 09:35:04 2023
Latest successfull operation time: Sun Jun 11 09:35:04 2023
Latest failed operation time: N/A
Latest failed operation error: Timed out
Latest operation return code: OK
RTT Values:
  Number of RTT:10	RTT Min/Avg/Max: 7/12/15 milliseconds
Jitter time:
  Number of Jitter Samples: 9
  Jitter Min/Avg/Max: 0/2/4 milliseconds
  Positive Jitter Num/Min/Avg/Max: 6/0/1/4 milliseconds
  Negative Jitter Num/Min/Avg/Max: 3/3/3/4 milliseconds
Percentile Jitter time:
  Number of Percentile Jitter Samples (90%): 8
  Percentile Jitter Min/Avg/Max: 0/2/4 milliseconds
Over Threshold:
  Number Of RTT Over Threshold: 0
Out of Sequence: 0
Packet Loss: 0
Number of successes: 11
Number of failures: 0
Operation time to live: 01:54:56

زمان‌بندی عملیات IP SLA

بعد از تعریف عملیات IP SLA، باید زمان‌بندی اجرای آن را مشخص کنید. این بخش نحوه زمان‌بندی عملیات IP SLA را توضیح می‌دهد.

دستورات زمان‌بندی

ip sla schedule (1-2147483647)

زمان‌بندی اجرای یک عملیات IP SLA را تنظیم می‌کند.

پارامترها:

  • start-time: زمان شروع عملیات را مشخص می‌کند:

    • now: عملیات بلافاصله شروع می‌شود

    • <HH:MM:SS>: زمان شروع مشخص (فرمت ساعت:دقیقه:ثانیه)

    • <HH:MM:SS <day> <month> <year>>: تاریخ و زمان شروع مشخص

  • life: مدت زمان اجرای عملیات را مشخص می‌کند:

    • forever: عملیات برای همیشه اجرا می‌شود

    • <seconds>: مدت زمان به ثانیه (1-2147483647)

  • recurring: مشخص می‌کند که آیا عملیات به صورت تکراری اجرا شود:

    • recurring: عملیات به صورت روزانه تکرار می‌شود

    • بدون این پارامتر: عملیات فقط یک بار اجرا می‌شود

مثال‌ها:

n1(config)# ip sla schedule 1 start-time now life forever
n1(config)# ip sla schedule 2 start-time 09:00:00 life 3600
n1(config)# ip sla schedule 3 start-time 08:00:00 recurring life forever

غیرفعال کردن SLA

با دستور زیر می‌توانید schedule را غیرفعال کنید:

n1(config)# no ip sla schedule 1

IP SLA Reactions

IP SLA Reactions به شما اجازه می‌دهد تا واکنش‌های خودکار را بر اساس نتایج عملیات IP SLA تنظیم کنید. این واکنش‌ها می‌توانند شامل ثبت لاگ، trigger کردن track و غیره باشند.

انواع Reactions

  • rtt: واکنش بر اساس زمان رفت و برگشت

  • jitterAvg: واکنش بر اساس میانگین jitter

  • jitterAvgPct: واکنش بر اساس میانگین jitter percentile

انواع Threshold

  • immediate: واکنش فوری بر اساس آخرین مقدار

  • average: واکنش بر اساس میانگین X مقدار از Y مقدار

  • X of Y: واکنش زمانی که X از Y مقدار از آستانه فراتر رود

انواع Action

  • logOnly: فقط ثبت لاگ

  • logAndTrigger: ثبت لاگ و trigger کردن track

دستورات Reaction

ip sla reaction-configuration (1-2147483647)

پیکربندی واکنش برای یک عملیات IP SLA را تنظیم می‌کند.

سینتکس:

ip sla reaction-configuration <operation-id> react <reaction-type> action-type <action-type> threshold-type <threshold-type [threshold-value<rising> <falling>] [threshold X value <X>] [threshold Y value <Y>]

مثال‌ها:

n1(config)# ip sla reaction-configuration 1 react rtt action-type logOnly threshold-type immediate threshold-value 500 50
n1(config)# ip sla reaction-configuration 2 react jitterAvg action-type logAndTrigger threshold-type average 5 threshold-value 100 10
n1(config)# ip sla reaction-configuration 3 react jitterAvgPct action-type logOnly threshold-type X of Y threshold X value 3 threshold Y value 5 threshold-value 120 80

نمایش و عیب‌یابی IP SLA

نمایش آمار IP SLA

show ip sla statistics (1-2147483647) [<details|json>]

این دستور برای نمایش آمار یک عملیات IP SLA خاص استفاده می‌شود. می‌تواند برای مشاهده معیارهای عملکردی در زمان واقعی مانند زمان رفت و برگشت (RTT)، از دست دادن بسته، jitter و موارد دیگر استفاده شود.

پارامترها:

  • (1-2147483647): شماره عملیات IP SLA که آمار آن نمایش داده می‌شود را مشخص می‌کند.

  • details: (اختیاری) جزئیات بیشتری درباره عملیات نمایش می‌دهد.

  • json: (اختیاری) خروجی را به صورت JSON فرمت می‌کند.

مثال:

n1# show ip sla statistics 1
IPSLA Operation id: 1
Type of operation: icmp-echo
  Latest RTT: 13 milliseconds
Latest operation start time: Wed Feb 22 09:56:30 2023
Latest successfull operation time: Wed Feb 22 09:56:30 2023
Latest failed operation time: N/A
Latest operation return code: OK
Number of successes: 6
Number of failures: 0
Operation time to live: 00:59:34

نمایش پیکربندی IP SLA

show ip sla configuration [(1-2147483647)] [json]

این دستور برای نمایش جزئیات پیکربندی یک عملیات IP SLA استفاده می‌شود. این دستور می‌تواند با یا بدون مشخص کردن شناسه عملیات خاص استفاده شود.

پارامترها:

  • (1-2147483647): (اختیاری) شناسه عملیات IP SLA که جزئیات پیکربندی آن نمایش داده می‌شود را مشخص می‌کند. اگر مشخص نشود، دستور پیکربندی تمام عملیات IP SLA را نمایش می‌دهد.

  • json: (اختیاری) خروجی را به صورت JSON فرمت می‌کند.

مثال:

n1# show ip sla configuration 1
Entry number: 1
 Operation timeout (milliseconds): 5000
 Type of operation to perform: icmp-echo
 Target address/Source address: 200.1.2.2/0.0.0.0
 Request size (ARR data portion): 28
 VRF name:
 Schedule:
  Operation frequency (seconds): 30
  Next Scheduled Start Time: Start Time already passed
  Life (seconds): forever
  Recurring (Starting Everyday): FALSE
 Threshold (milliseconds): 5000

نمایش پیکربندی Reaction

show ip sla reaction-configuration [(1-2147483647)] [json]

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

پارامترها:

  • (1-2147483647): (اختیاری) شناسه عملیات IP SLA که جزئیات پیکربندی واکنش آن نمایش داده می‌شود را مشخص می‌کند. اگر مشخص نشود، دستور پیکربندی واکنش تمام عملیات IP SLA را نمایش می‌دهد.

  • json: (اختیاری) خروجی را به صورت JSON فرمت می‌کند.

مثال:

n1# show ip sla reaction-configuration 1
Entry number: 1
  Reaction: rtt
    Threshold type: Immediate
    Rising threshold: 500 milliseconds
    Falling threshold: 100 milliseconds
    Action type: Log only

نمایش Trigger Reaction

show ip sla reaction-trigger [(1-2147483647)] [json]

این دستور برای نمایش وضعیت و پیکربندی فعلی trigger های واکنش IP SLA استفاده می‌شود.

پارامترها:

  • (1-2147483647): (اختیاری) شناسه عملیات IP SLA که جزئیات trigger واکنش آن نمایش داده می‌شود را مشخص می‌کند. اگر مشخص نشود، دستور trigger واکنش تمام عملیات IP SLA را نمایش می‌دهد.

  • json: (اختیاری) خروجی را به صورت JSON فرمت می‌کند.

مثال:

n1# show ip sla reaction-trigger 1
Entry number: 1
  Target entry number: 2
  Operational state: pending

عیب‌یابی IP SLA

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

برای عیب‌یابی IP SLA، می‌توانید از دستورات برای مشاهده وضعیت و نتایج عملیات IP SLA و برای تأیید پیکربندی عملیات IP SLA استفاده کنید. همچنین دستوراتی برای فعال‌سازی پیام‌های دیباگ برای رویدادهای IP SLA وجود دارد.

علاوه بر این دستورات، می‌توان از ابزارهای عیب‌یابی دیگر، مانند capture بسته و ابزارهای تحلیل شبکه، برای شناسایی و حل مشکلات IP SLA استفاده کرد. همچنین مهم است که اطمینان حاصل شود زیرساخت شبکه پایه به درستی پیکربندی شده و به درستی کار می‌کند تا از هر مشکلی با IP SLA جلوگیری شود.

فعال‌سازی لاگ‌های دیباگ

debug sla event

دستور debug ip sla event برای نمایش پیام‌های دیباگ مربوط به رویدادهای IP SLA استفاده می‌شود.

هنگامی که این دستور فعال می‌شود، روتر پیام‌های دیباگ نشان‌دهنده رویدادهای IP SLA را تولید می‌کند. این پیام‌ها می‌توانند برای عیب‌یابی مشکلات شبکه مربوط به IP SLA مفید باشند.

n1(config)# debug ip sla event

debug socket event

این دستور دیباگ رویدادهای socket را در روتر فعال می‌کند. این دستور برای عیب‌یابی مشکلات مربوط به عملیات socket، مانند اتصالات و قطع اتصالات socket، خطاهای socket و داده‌های خوانده شده استفاده می‌شود.

socket برای اتصال بین برنامه سرویس SLA و برنامه روتر استفاده می‌شود.

n1(config)# debug socket event

مشاهده لاگ‌ها

n1# show log soosla

سناریوهای عملی و کاربردی

در این بخش چند سناریوی عملی و کاربردی برای استفاده از IP SLA در محیط‌های واقعی بررسی می‌شود.

سناریو ۱: مانیتورینگ لینک بین دو دیتاسنتر

در این سناریو، یک سازمان با دو دیتاسنتر مواجه است که باید از طریق دو لینک WAN به یکدیگر متصل شوند. لینک اصلی (Primary) با پهنای باند بیشتر و لینک پشتیبان (Backup) با پهنای باند کمتر. هدف این است که ترافیک به صورت پیش‌فرض از لینک اصلی عبور کند و در صورت مشکل، به طور خودکار به لینک پشتیبان switch شود.

SLA

تنظیمات در روتر دیتاسنتر A (DC-A)

ابتدا یک SLA از نوع ICMP Echo برای مانیتورینگ روتر دیتاسنتر B تعریف می‌کنیم:

DC-A(config)# ip sla 10
DC-A(config-ip-sla)# icmp-echo 10.2.0.1
DC-A(config-ip-sla-echo)# frequency 10
DC-A(config-ip-sla-echo)# timeout 3000
DC-A(config-ip-sla-echo)# threshold 500
DC-A(config-ip-sla-echo)# 
DC-A(config)# ip sla schedule 10 start-time now life forever

در این مثال، عملیات SLA هر 10 ثانیه یک بار اجرا می‌شود و اگر RTT از 500ms بیشتر شود، threshold فعال می‌شود.

تعریف Reaction و Track

حالا یک reaction تعریف می‌کنیم که اگر RTT از 300ms بیشتر شود، track را down کند:

DC-A(config)# ip sla reaction-configuration 10 react rtt action-type logAndTrigger threshold-type immediate threshold-value 300 150
DC-A(config)# track 10 ip sla 10 reaction rtt

تنظیمات مسیریابی شرطی

حالا دو route برای شبکه دیتاسنتر B اضافه می‌کنیم: یکی از طریق لینک اصلی با distance کمتر و دیگری از طریق لینک پشتیبان با distance بیشتر:

DC-A(config)# ip route 10.2.0.0/16 192.168.1.2 track 10
DC-A(config)# ip route 10.2.0.0/16 192.168.2.2 200

با این تنظیم:

  • تا زمانی که track 10 فعال باشد، ترافیک از طریق لینک اصلی (192.168.1.2) با distance 1 ارسال می‌شود

  • در صورتی که track 10 down شود، route با distance 200 (لینک پشتیبان) نصب می‌شود

مشاهده وضعیت

DC-A# sh track 10
Track 10
  IP SLA 10 reaction
  Reaction is Up
    2 change[s], last change 00:15:23
  Latest operation return code: OK
  Tracked by:
    Static IP Routing

DC-A# sh ip sla statistics 10
IPSLA Operation id: 10
Type of operation: icmp-echo
  Latest RTT: 45 milliseconds
Latest operation start time: Mon Jan 15 10:30:45 2024
Latest successfull operation time: Mon Jan 15 10:30:45 2024
Latest failed operation time: N/A
Latest operation return code: OK
Number of successes: 1250
Number of failures: 0
Operation time to live: Forever

سناریو ۲: مانیتورینگ سرور داخلی و مسیریابی شرطی

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

        Internet
          /  \
         /    \
    ISP1      ISP2
     |          |
    GW1        GW2
     |          |
     +----------+
           |
        Router
           |
     DNS Server

تنظیمات در Router

ابتدا SLA برای مانیتورینگ سرور DNS تعریف می‌کنیم:

Router(config)# ip sla 20
Router(config-ip-sla)# icmp-echo 172.16.10.10
Router(config-ip-sla-echo)# frequency 15
Router(config-ip-sla-echo)# timeout 2000
Router(config-ip-sla-echo)# threshold 100
Router(config-ip-sla-echo)# 
Router(config)# ip sla schedule 20 start-time now life forever

تعریف Reaction بر اساس شرایط X از Y

برای اطمینان بیشتر، reaction را طوری تنظیم می‌کنیم که track فقط زمانی down شود که 3 از 5 عملیات آخر ناموفق باشند:

Router(config)# ip sla reaction-configuration 20 react rtt action-type logAndTrigger threshold-type X of Y threshold X value 3 threshold Y value 5 threshold-value 200 100
Router(config)# track 20 ip sla 20 reaction rtt

تنظیمات مسیریابی

Router(config)# ip route 0.0.0.0/0 203.0.113.1 track 20
Router(config)# ip route 0.0.0.0/0 198.51.100.1 150

با این تنظیم:

  • تا زمانی که سرور DNS از طریق GW1 قابل دسترس باشد، ترافیک از ISP1 عبور می‌کند

  • اگر 3 از 5 عملیات SLA آخر ناموفق باشند، track down شده و ترافیک به ISP2 switch می‌شود

سناریو ۳: مانیتورینگ کیفیت سرویس در محیط VRF (ISP)

در این سناریو، یک ارائه‌دهنده سرویس اینترنت (ISP) چندین مشتری دارد که هر کدام در VRF جداگانه‌ای قرار دارند. ISP می‌خواهد کیفیت سرویس را برای هر مشتری به طور مستقل نظارت کند و در صورت مشکل، مسیریابی را تغییر دهد.

ISP Router
  ├── VRF: Customer-A
  │     └── Monitor: 10.1.1.1
  ├── VRF: Customer-B
  │     └── Monitor: 10.2.1.1
  └── VRF: Customer-C
        └── Monitor: 10.3.1.1

تنظیمات برای Customer-A

برای هر مشتری، SLA در VRF مربوطه تعریف می‌شود:

ISP-Router(config)# ip sla 100
ISP-Router(config-ip-sla)# icmp-echo 10.1.1.1 vrf Customer-A
ISP-Router(config-ip-sla-echo)# frequency 30
ISP-Router(config-ip-sla-echo)# timeout 5000
ISP-Router(config-ip-sla-echo)# threshold 1000
ISP-Router(config-ip-sla-echo)# 
ISP-Router(config)# ip sla schedule 100 start-time now life forever

تعریف Reaction با Jitter

برای این مشتری، از jitter استفاده می‌کنیم تا کیفیت سرویس را بهتر ارزیابی کنیم:

ISP-Router(config)# ip sla 101
ISP-Router(config-ip-sla)# icmp-jitter 10.1.1.1 vrf Customer-A
ISP-Router(config-ip-sla-icmpjitter)# frequency 60
ISP-Router(config-ip-sla-icmpjitter)# num-packets 20
ISP-Router(config-ip-sla-icmpjitter)# interval 20
ISP-Router(config-ip-sla-icmpjitter)# percentile jitterAvg 95
ISP-Router(config-ip-sla-icmpjitter)# 
ISP-Router(config)# ip sla schedule 101 start-time now life forever
ISP-Router(config)# ip sla reaction-configuration 101 react jitterAvg action-type logAndTrigger threshold-type average 5 threshold-value 50 20
ISP-Router(config)# track 100 ip sla 100 reaction rtt
ISP-Router(config)# track 101 ip sla 101 reaction jitterAvg

مسیریابی چند مسیری با استفاده از Track

در VRF مربوطه، چند route با track تعریف می‌کنیم:

ISP-Router(config)# vrf Customer-A
ISP-Router(config-vrf)# ip route 0.0.0.0/0 203.0.113.10 track 100
ISP-Router(config-vrf)# ip route 0.0.0.0/0 203.0.113.20 150
ISP-Router(config-vrf)# ip route 192.168.1.0/24 10.1.2.1 track 101
ISP-Router(config-vrf)# 

مشاهده وضعیت

ISP-Router# sh ip sla statistics 101 vrf Customer-A
IPSLA Operation id: 101
Type of operation: icmp-jitter
  Latest RTT: 15 milliseconds
Latest operation start time: Mon Jan 15 11:00:00 2024
Latest successfull operation time: Mon Jan 15 11:00:00 2024
Latest failed operation time: N/A
Latest operation return code: OK
RTT Values:
  Number of RTT:20	RTT Min/Avg/Max: 12/15/18 milliseconds
Jitter time:
  Number of Jitter Samples: 19
  Jitter Min/Avg/Max: 0/3/8 milliseconds
Percentile Jitter time:
  Number of Percentile Jitter Samples (95%): 19
  Percentile Jitter Min/Avg/Max: 0/3/7 milliseconds
Over Threshold:
  Number Of RTT Over Threshold: 0
Out of Sequence: 0
Packet Loss: 0
Number of successes: 120
Number of failures: 0
Operation time to live: Forever

این تنظیمات به ISP اجازه می‌دهد:

  • کیفیت سرویس هر مشتری را به طور مستقل در VRF مربوطه نظارت کند

  • بر اساس RTT و Jitter تصمیم‌گیری کند

  • در صورت مشکل در یک مسیر، به طور خودکار به مسیر جایگزین switch کند

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

  1. انتخاب frequency مناسب: برای لینک‌های حساس، frequency کمتری (10-30 ثانیه) و برای لینک‌های عادی، frequency بیشتری (60-120 ثانیه) استفاده کنید.

  2. تنظیم threshold: threshold را بر اساس نیاز شبکه تنظیم کنید. برای لینک‌های داخلی، threshold کمتری (100-500ms) و برای لینک‌های WAN، threshold بیشتری (500-2000ms) مناسب است.

  3. استفاده از X of Y: برای جلوگیری از switch شدن مکرر، از threshold-type “X of Y” استفاده کنید تا track فقط زمانی down شود که مشکل به صورت مداوم وجود داشته باشد.

  4. نظارت بر لاگ‌ها: با استفاده از show log soosla می‌توانید تمام رویدادهای SLA را مشاهده کنید و مشکلات را شناسایی کنید.

خلاصه

IP SLA یک ویژگی قدرتمند برای:

اندازه‌گیری عملکرد شبکه در زمان واقعی
نظارت بر کیفیت سرویس و شناسایی مشکلات
اتوماسیون واکنش‌ها بر اساس شرایط شبکه
عیب‌یابی شبکه با استفاده از آمار دقیق
بهینه‌سازی مسیریابی با استفاده از track و reaction

با استفاده صحیح از IP SLA می‌توانید عملکرد شبکه خود را بهبود بخشیده و اطمینان حاصل کنید که سطوح خدمات مورد نیاز برآورده می‌شوند.