Схема та же:
Такую картину наблюдаем без применения ограничений:
Мы поступим следующим образом:
-
На входном интерфейсе Linkmeup_R2 (e0/1) настроим полисинг — это будет входной контроль. По договору мы даём 10 Мб/с.
-
На выходном интерфейсе Linkmeup_R4 (e0/2) настроим шейпинг на 20 Мб/с.
Начнём с шейпера на Linkmeup_R4.
Матчим всё:
class-map match-all TRISOLARANS_ALL_CM
match any
Шейпим до 20Мб/с:
policy-map TRISOLARANS_SHAPING
class TRISOLARANS_ALL_CM
shape average 20000000
Применяем на выходной интерфейс:
interface Ethernet0/2
service-policy output TRISOLARANS_SHAPING
Всё, что должно покинуть (output) интерфейс Ethernet0/2, шейпим до 20 Мб/с.
И вот результат:
Получается достаточно ровная линия общей пропускной способности и рваные графики по каждому отдельному потоку.
Дело в том, что ограничиваем мы шейпером именно общую полосу. Однако в зависимости от платформы отдельные потоки тоже могут шейпиться индивидуально, таким образом получая равные возможности.
Теперь настроим полисинг на Linkmeup_R2.
К существующей политике добавим полисер.
policy-map TRISOLARANS_ADMISSION_CONTROL
class TRISOLARANS_TCP_CM
police cir 10000000 bc 1875000 conform-action transmit exceed-action drop
На интерфейс политика уже применена:
interface Ethernet0/1
service-policy input TRISOLARANS_ADMISSION_CONTROL
Здесь указываем среднюю разрешённую скорость CIR (10Mб/с) и разрешённый всплеск Bc (1 875 000 байтов или около 14,6 МБ).
Позже, объясняя, как работает полисер, я расскажу, что за CIR да Bc и как эти величины определять.
Такая картина наблюдается при полисинге. Сразу видно резкие изменения уровня скорости:
А вот такая любопытная картина получается, если мы сделаем слишком маленьким допустимый размер всплеска, например, 10 000 байтов.
police cir 10000000 bc 10000 conform-action transmit exceed-action drop
Общая скорость сразу упала до примерно 2Мб/с.
Будьте аккуратнее с настройкой всплесков:)