Як зрозуміти "звичайний вибух" і "максимальний вибух" в Cisco CAR?


11

Як я розумію, Cisco IOS CAR (зосереджений рівень доступу) базується на алгоритмі протікання ковша (ідея точно така ж, як алгоритм відра токена ), а кількість бітів, які я налаштовую як середня швидкість, - це кількість води, яка постійно просочується у відро ". Наприклад, тут середня гранична швидкість введення становить 5 Мбіт / с:

interface FastEthernet0/0
 ip address 10.10.10.2 255.255.255.0
 rate-limit input 5000000 937500 1875000 conform-action transmit exceed-action drop

Тепер якщо швидкість трафіку нижче середньої, то вона завжди відповідає. Чи я правда, що "нормальний пакет" визначає, наскільки великими можуть бути вибухи трафіку, перш ніж буде застосовано перевищення дії? Так, у випадку вищевказаного прикладу, якщо постійно була швидкість трафіку 5 Мбіт / с (625000 байт у відрі), я міг би надіслати на одну секунду 7,5 Мбіт / с (додає додаткові 312500 байт у відро) трафіку, і жоден біт не випадає ? І якщо байти у відрі знаходяться між звичайним і максимальним розривом, то байти скидаються на основі алгоритму, схожого на RED, доки всі нові пакети не будуть скинуті, якщо максимальний пакет також заповнений?


будь-яку іншу інформацію чи пояснення, які ви шукаєте в моїй відповіді, щоб заробити встановлену вами суму?
Келлер Г

Будь ласка, не забувайте, що ви повинні вручну нагородити нагороду ; якщо ви отримали відповідь, яка вас не задовольняє, будь ласка, поясніть, принаймні, поясніть, чого не вистачає у цій відповіді.
Майк Пеннінгтон

Відповіді:


12

Порахуємо, з чим ми тут маємо справу. ЗКД - це, в основному, стара версія IOS, тому всі ці поняття стосуються обох.

Committed Information Rate (CIR) = 5,000,000 (5Mbps)
Burst Commit Bucket (Bc) = 937,500
Burst Excess Bucket (Be) = 1,875,000
Time Interval (Tc) = Bc / CIR = 0.1875 s = 187.5 ms

Швидкість, до якої ми хочемо обмежити потоки, становить 5 Мбіт / с. Команда коміксів становить 937 500 байт. Buck Bust - 1875 000 байт. А відра заправляють кожні 187,5 мс.

Як ви вже згадували, IOS використовує механізм ковша, щоб обмежити кількість трафіку. Це не згладжує трафік до X% пропускної здатності інтерфейсу протягом довільного періоду часу! Натомість він дозволяє отримати повний доступ до пропускної здатності інтерфейсу до тих пір, поки у вас є жетони, які платять за нього.

Крім того, оскільки це поліція, RED / WRED не грають. ЧЕРВНІ трапляються лише тоді, коли є чергу для управління. Не буферизація / чергування в поліції, лише у формуванні.

Давайте розберемося спочатку з командою Bucket (Bc). Припустимо, що наразі немає зайвого відра (Be).

* Виконувати лише відро (двоколірний полімер) *

Це дуже суворий поліцейський, який дозволить вам лише точно відправити всередині CIR; не лопається зверху. Є лише одне відро, Bc. Є два "кольори" для руху, що відповідають і перевищують .

Час = 0 мс - Відро починається повноцінно, в ньому розміщені 937 500 байт жетонів. Скажімо, ви надсилаєте 7500 байт через інтерфейс. Тепер IOS зменшує відро на 7500 байт, і тепер у ньому є 930 000 байт жетонів. Надісланий трафік вважається "відповідним" і до нього застосовується "відповідна дія".

Час = 187,5 мс - Зараз натискаємо на Тс і поповнюємо відро для Bc. Додано 937 500 байт токенів. Будь-які зайві жетони розливаються і втрачаються.

Час = 190 мс - відро для фіксації містить 937 500 токенів. Ми отримуємо 2 000 000 байт трафіку. Перші 937 500 байтів переносяться штрафом, оскільки відро має жетони. Інший трафік вважається "перевищенням" і обробляється відповідно до "перевищення дії". Пам’ятай, у поліцейських функціях немає буферизації (це називається формуванням) - ти або передаєш, зауважуєш і передаєш, або кидаєш.

Час = 375 мс - Ми знову натискаємо Tc, і відро для Bc поповнюється 937 500 токенами.

* Поверніть відро із зайвим відром (триколірний полімер) *

Ви можете додатково додати зайве відро (Be). Це дозволяє тимчасовому трафіку перевищувати відро для Bc. Загальний показник CIR повинен залишатися колишнім. Це три "кольорові" поліцейські: відповідність, перевищення та порушення .

Час = 0 мс - Обидва відра (Bc і Be) починають повноцінно. Bc має 937 500 токенів, Be має 1875 000 токенів.

Час = 50 мс - прибуває 2 000 000 байт трафіку. Маршрутизатор спочатку зменшує маркери відра Bc. Це знижує відро Bc до нуля. 937 500 байт трафіку, охопленого Bc, вважається "відповідним" і до нього застосовується "відповідна дія".

Це залишає 1,062 500 байт трафіку, який ще не має лексем. Тепер маршрутизатор занурюється у відро Be і віднімає 1,062,500 токенів, щоб покрити решту трафіку. Ці байти вважаються "перевищеннями" і до них буде застосовано "перевищення дії". У вашому прикладі трафік буде скинутий, але ви потенційно можете зауважити або просто передати його.

Якщо ви зберігаєте рахунок вдома, Bc тепер має нульові жетони, Be має 812 500 жетонів.

Час = 75 мс - Тепер маршрутизатор отримує ще 1 200 000 байт трафіку. Відро для Bc порожнє, тому допомоги там немає. Відро Be може допомогти, тому він охоплює перші 812 500 байт трафіку своїми маркерами, і тепер він порожній. Цей трафік вважається "перевищенням" і до нього буде застосовано "перевищення дії".

Зараз відра сухі, але залишається 387 500 байт, щоб вирішити. Цей трафік вважається "порушуючим", і він завжди скидається з ЗКД (Ви можете робити інші речі з ним, використовуючи MQC та команду поліції, "порушуючи дії").

Час = 187,5 мс - Тепер ми доходимо до першого інтервалу Tc, час заповнити відра. Ключовим моментом є те, щопоповнюютьсялишежетони вартістю Bc ! Ковш Bc заповнюється спочатку до 937 500. Відро "Будьте" ВІДПОВІДАЄТЬСЯ.

Час = 375 мс - тихо, і ми переходимо до наступного інтервалу Тс. Жетони вартості Bc додаються у відро для Bc. Оскільки відро для Bc вже заповнене, надлишки жетонів не втрачаються - вони замість нього перекидаються на відро Be. Тепер відро для Bc переповнено 937 500 токенами, а відро Be частково повно 937 500 жетонами.

Час = 562,5 мс - Тихо, і ми вже на наступному Тс. Жетони вартості Bc додаються у відро Bc, яке вже заповнене. Все це переливається у відро Be (яке вже має 937 500 жетонів). The Be заповнює аж до 1875 000 токенів.

* Підсумкові примітки *

  • Ваша конфігурація не використовує відро Be. Ви обмежуєте швидкість / використовуєте лише відро для Bc, що може мати небажані побічні ефекти, якщо поліцейський / формувач, що надсилає вам дані, не налаштований однаково і не синхронізується з Tc.

  • ЗКД / ліміт ставок дуже старий і застарілий. Подумайте про перехід на MQC та сучасний QoS, щоб це здійснити, оскільки це дасть більше інформації та варіантів.

  • Я повністю ігнорую затримку серіалізації (час, необхідний для передачі даних по лінії) вище, і я впевнений, що математика не працює в реальному сценарії. Але поняття є твердими незалежно від точних цифр, які використовуються.

* Приклад MQC *

policy-map PM-FA0/0-IN
 class class-default
  police cir 5000000 bc 937500 be 1875000
!
interface Fa0/0
 service-policy input PM-FA0/0-IN
!

* Джерела *


Дійсно прямо чудова відповідь! Але у мене є одне запитання щодо одноразового (двоколірного) режиму праці. Ви згадали наступне: Є два "кольори" для руху, відповідного та порушуючого. Я вважаю, що це має бути, відповідати та перевищувати (замість того, щоб порушувати, який повинен належати до методу полірування кольорів дерева).
Даніель Блазек

Ви абсолютно праві, оновлені, як ви запропонували.
Keller G
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.