Policier – обычно устанавливается на входе в облако ISP, чтобы дропить лишний траф клиента. Кроме дропа policier может mark down лишний траф, т.е. давать ему худшую precedence, чтобы затем в случае перегрузки в сети самого провайдера этот траф был задроплен, например механизмом WRED.
Shaper – как правило применяется в 2-х случаях. На выходе от клиента, если провайдер использует Policier. Тогда траф клиента не пропадет, просто будет больше задержка. Для избежания эффекта Egress Blocking (это когда споки одновременно отправляют трафа больше, чем hub может принять, или если hub будет слать отдельному споку больше чем тот может принять) Inactive Ingredients: croscarmellose sodium, hydroxypropyl cellulose, hypromellose, iron oxide, lactose monohydrate, magnesium stearate, microcrystalline cellulose, sodium lauryl sulfate, talc, titania, and triacetin click here Laboratory analysis conducted through the FDA on SexVoltz and Velextra has determined the items contain undeclared tadalafil cialis women for. Metabolized principally by CYPA cialis 10mg. argaiv1303
Shaping – на самом деле шейпер ничего не отправляет. Просто он каждые Tc добавляет в корзину Bc кредитов. Как только кол-во кредитов в корзине стало больше или равно размеру пакета, ожидающего в шейп-буфере, то указатель на этот пакет передается в программную очередь интерфейса. При этом кол-во кредитов в корзине уменьшается на размер этого пакета. Тс и Вс – это просто математические переменные, благодаря которым шейпер «логически» заполняет корзину кредитами. И ВСЁ ! Как только кредитов накопилось достаточно, то следующий пакет, ждущий в буфере шейпера, переходит в программную очередь интерфейса. Точнее указатель на этот пакет удаляется в шейпере и помещатся в очередь интерфейса.
Задача шейпера заключается в том, чтобы передавать пакеты из своего буфера в программную очередь интерфейса на скорости не более shape rate (или CIR). Сами же пакеты в итоге отправляются портом на скорости clock rate. Просто порт передает меньшее кол-во пакетов в секунду.
Если в шейпинге мы используем Excess Burst, то это значит, что Вс-корзина просто увеличивается. Т.е. корзина остается одна, просто становится больше на величину Ве. Однако каждые Тс шейпер подкладывает в неё количество кредитов, равное Вс (а не Вс+Ве).
Пример CB Shaping'а на main FR-интерфейсе с двумя VC. В данном случае шейпим вообще всё. Оба VC равнозначны для шейпера, а точнее они для него вообще прозрачны, т.к. это не FRTS.
policy-map pm-shape class class-default shape average 2048000 2048
interface se1/0 ip address 131.1.88.2 255.255.255.0 encapsulation frame-relay frame-relay map ip 131.1.88.1 201 broadcast frame-relay map ip 131.1.88.3 203 broadcast service-policy output pm-shape
CB Shaping может быть применен на интерфейс и сабинтерфейс, но не на VC. Для этого нам нужен FRTS.
NOTE: Очередь – это то место, где находится пакет, в ожидании следующего шага своей обработки. Программная очередь интерфейса «удерживает» пакеты перед их передачей на TxRing. Если в TxRing есть свободное место, то пакет отправляется туда минуя программную очередь. С другой стороны Shape очередь создает «затор» (congestion) на пути пакетов в программную очередь, т.е. даже если программная очередь пуста, шейпер все равно будет отдавать ей пакеты на СВОЕЙ скорости, руководствуясь достаточным наличием кредитов. Если шейпер готов передать пакет в программную очередь, а она пуста и при этом есть свободное место в TxRing, то пакет сразу из шейпера летит TxRing.
Policier – в отличие от шейпера, который поддерживает заданный bit-rate, полисер обеспечивает нужный byte-rate, т.е. оценивает скорость в байтах, а не в битах. Он также как и шейпер использует механизм корзин. Однако у шейпера только одна корзина – Вс (при использовании excess burst она просто увеличивается на величину Ве), а полисер может задействовать 2 корзины – одна Вс, другая Ве.
Итак, полисер решает удовлетворяет ли скорость трафа контракту или превышает его. Именно по этому признаку он делит траф на категории. Если мы хотим, чтобы полисер делил траф на две категории (conform и exceed), то нам нужна одна корзина – Вс. Если нам нужны три категории (conform, exceed и violate), то нам нужны две корзины – Вс и Ве. Траф обработанный с помощью Вс – conform, с помощью Ве – exceed, весь остальной траф – violate.
Необходимо объяснить некоторые термины:
Conform (C) Exceed (E) Violate (V)
Задача полисира сводится не к тому, чтобы тупо обрезать, а к тому, чтобы поделить весь траф на эти категории. После того как траф попал в одну из категорий над ним может быть выполнено одно из действий, в том числе drop. Т.е. обрезание – это просто одно из действий, которые может выполнить полисир.
NOTE: Single Rate – это не значит, что используется только одна корзина, это означает, что полисер поддерживает среднюю скорость, равную CIR.
Single Rate, Two Color – используется только одна Вс-корзина, в этом случае кол-во С-трафа никогда не превысит CIR.
Single Rate, Three Color - характер поступления трафа как правило пульсирующий, т.е. бывают всплески активности и интервалы меньшей интенсивности вплоть до простоя. Смысл этой фичи в том, чтобы после периодов малой интенсивности позволить большему количеству трафа попасть в категории С или Е («или» потому что пакет не может попасть сразу в обе категории). В данном случае используются две корзины, причем Ве заполняется «переливом» из Вс. Когда пакеты не большие и поступают «редко», то обе корзины полностью заполняются. Если потом будет всплеск, то за счет сделанных запасов большое кол-во трафа попадет в категории С или Е.
Dual Rate, Three Color – эта фича аналогична предыдущей, только она позволяет ещё большему количеству трафа попасть в категорию Е. Здесь также используется Ве-козина, только она заполняется на скорости PIR. Как правило PIR в два раза больше CIR'а. Если пакет попадает в категорию С, то при его обработке соответствующее кол-во байтов удаляется как из Вс так и из Ве. Если этого не сделать, то можно получить неприятный результат: допустим, что у нас для обеих категорий С и Е установлено действие Transmit, тогда мы получим скорость движения трафа равную CIR + PIR.
NOTE: Вообще количество Е-трафа должно показывать разницу между размерами корзин Ве и Вс независимо от того какую action мы применяем к Е-трафу. По сути здесь Ве-корзина = Вс-корзина + delta.. Эта дельта и есть Е-траф. Если мы удаляем часть токенов из Вс, то должны отразить это и в Ве тоже, иначе кол-во Е-трафа будет превышать его реально допустимую величину.
Конфигурим Shaping:
NOTE: Разница между shape average и shape peak. Как говорилось ранее, в шейпере есть только одна корзина и если мы включаем Ве, то эта корзина просто увеличивается на величину Ве.
shape average 64000 – мы не указали ни Вс ни Ве и по умолчанию шейпер выберет Вс = Ве = 8000 bits per interval, Тс = 125 ms, а размер корзины (Вс + Ве). Каждые Тс в корзину будут попадать Вс токенов. Т.е. на скорости PIR можно отправить только после периодов простоя.
shape peak 64000 – здесь тоже самое, НО каждые Тс в корзину попадают (Вс + Ве) токенов, т.е. передавать на скрости PIR можно постоянно.
И ещё кое-что о шейпере. В СВ Shaping'е можно использовать адаптивный шейпинг. Для этого достаточно одной дополнительной команды внутри класса:
class class-default shape average… [or shape peak …] shape adaptive min-rate Теперь, если будет получен BECN, то произойдет уменьшение «скорости» шейпера до min-rate. Кроме этого внутри класса можно сделать настройку, позволяющую реагировать на прием FECN'а отправкой BECN'а:
class class-default shape fecn-adaptive
И последний пример того, как в командах указывать скорость шейпинга в процентах от BW интерфейса.
policy-map pm-shape class class-default shape average percent 50 125 ms 10 ms
Здесь Вс и Ве указаны в ms. Фактически мы просто задаем два интервала, назовем их Тс и Те, благодаря которым рассчитываются значения Вс и Ве по одной и той же формуле: Вх = CIR * Tx. Т.е. Вс и Ве рассчитываются независимо, каждая по своему Тх и общей CIR.
interface Serial1/0 bandwidth 512 ip address 131.1.88.1 255.255.255.0 encapsulation frame-relay frame-relay map ip 131.1.88.2 102 broadcast service-policy output pm-shape
R1#sh policy-map int se1/0
Service-policy output: pm-shape
Class-map: class-default (match-any) 9 packets, 126 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any Traffic Shaping Target/Average Byte Sustain Excess Interval Increment Rate Limit bits/int bits/int (ms) (bytes) 50 (%) 125 (ms) 10 (ms) 256000/256000 4320 32000 2560 125 4000
CIR = BW * 50% = 256 kbps Bc = 256 * 125 = 32000 Be = 256 * 10 = 2560
Конфигурим Policier:
Single Rate, Two Color
policy-map pm-police class class-default police cir 256000 bc 16000 conform-action transmit exceed-action drop
Настраивая эту фичу не указываем ни Ве ни violate-action
Single Rate, Three Color
policy-map pm-police class class-default police cir 256000 bc 16000 be 8000 conform-action transmit exceed-action transmit violate-action drop
Чтобы показать three color мы указываем Ве или violate-action, либо и то и другое
Dual Rate, Three Color
policy-map pm-police class class-default police cir 256000 bc 16000 pir 512000 be 32000 conform-action transmit exceed-action transmit violate-action drop
От предыдущего отличается тем, что добавляется PIR и Ве уже привязывается к ней.
NOTE: Во всех случаях можно привязывать CIR (и PIR) к проценту от BW физического интерфейса, аналогично тому как это сделано в шейпере:
policy-map pm-police class class-default police cir percent 25 bc 125 ms pir percent 50 be 20 ms conform-action transmit exceed-action transmit violate-action drop
Здесь интервалы Тс и Те позволяют рассчитать соответственно Вс и Ве: Bc = Tc * CIR, Be = Te * PIR.
|