Организация ограничения скорости передачи данных по IP-адресу на маршрутизаторах CISCO
Рассмотрим как организовать ограничение скорости передачи данных по IP адресам пользователей на маршрутизаторе CISCO.
Имеется интернет канал шириной в 30 Mb/s, необходимо добавить возможность разбивать его на различную пропускную способность Download/Upload (Входящей/Исходящей) (прим. 20M, 10M, 5M, 1M), для определенных сегментов локальной сети.
Все действия будут производится на маршрутизаторе Cisco 2911/K9 версия прошивки 15.4(3)M9 (c2900-universalk9-mz.SPA.154-3.M9.bin)
Создаем групповые объекты (object-group), для определения принадлежности того или иного IP-адреса, либо подсети:
object-group network DOWNLOAD_UNLIM object-group network DOWNLOAD_20M object-group network DOWNLOAD_10M object-group network DOWNLOAD_5M object-group network DOWNLOAD_1M object-group network UPLOAD_UNLIM object-group network UPLOAD_20M object-group network UPLOAD_10M object-group network UPLOAD_5M object-group network UPLOAD_1M
Создаем списки доступа (access List) и связываем их с созданными групповыми объектами (object-group):
ip access-list extended DOWNLOAD_UNLIM permit ip any object-group DOWNLOAD_UNLIM ip access-list extended DOWNLOAD_20M permit ip any object-group DOWNLOAD_20M ip access-list extended DOWNLOAD_10M permit ip any object-group DOWNLOAD_10M ip access-list extended DOWNLOAD_5M permit ip any object-group DOWNLOAD_5M ip access-list extended DOWNLOAD_1M permit ip any object-group DOWNLOAD_1M ip access-list extended UPLOAD_UNLIM permit ip object-group UPLOAD_UNLIM any ip access-list extended UPLOAD_20M permit ip object-group UPLOAD_20M any ip access-list extended UPLOAD_10M permit ip object-group UPLOAD_10M any ip access-list extended UPLOAD_5M permit ip object-group UPLOAD_5M any ip access-list extended UPLOAD_1M permit ip object-group UPLOAD_1M any
Классифицируем трафик (class-map) на основе списков доступа (access list):
class-map match-all DOWNLOAD_UNLIM match access-group name DOWNLOAD_UNLIM class-map match-all DOWNLOAD_20M match access-group name DOWNLOAD_20M class-map match-all DOWNLOAD_10M match access-group name DOWNLOAD_10M class-map match-all DOWNLOAD_5M match access-group name DOWNLOAD_5M class-map match-all DOWNLOAD_1M match access-group name DOWNLOAD_1M class-map match-all UPLOAD_UNLIM match access-group name UPLOAD_UNLIM class-map match-all UPLOAD_20M match access-group name UPLOAD_20M class-map match-all UPLOAD_10M match access-group name UPLOAD_10M class-map match-all UPLOAD_5M match access-group name UPLOAD_5M class-map match-all UPLOAD_1M match access-group name UPLOAD_1M
Теперь настроим политики (policy-map), в которых укажем какая скорость доступна для созданных классификаций трафика:
policy-map DOWNLOAD_SPEED class DOWNLOAD_UNLIM police cir percent 100 class DOWNLOAD_1M police cir 1000000 bc 187500 be 375000 conform-action transmit exceed-action drop class DOWNLOAD_5M police cir 5000000 bc 937500 be 1875000 conform-action transmit exceed-action drop class DOWNLOAD_10M police cir 10000000 bc 1875000 be 3750000 conform-action transmit exceed-action drop class DOWNLOAD_20M police cir 20000000 conform-action transmit exceed-action drop policy-map UPLOAD_SPEED class DOWNLOAD_UPLOAD_UNLIM police cir percent 100 class UPLOAD_1M police cir 1000000 bc 187500 be 375000 conform-action transmit exceed-action drop class UPLOAD_5M police cir 5000000 bc 937500 be 1875000 conform-action transmit exceed-action drop class UPLOAD_10M police cir 10000000 bc 1875000 be 3750000 conform-action transmit exceed-action drop class UPLOAD_20M police cir 20000000 conform-action transmit exceed-action drop
Мы описали для каждого класса, гарантированную полосу пропуская (CIR — committed information rate), по-умолчанию значение указывается битах, но можно и указать 20m, значение будет пониматься как мегабит, так же можно использовать k — килобит (прим. 512k), g — гигабит (прим. 1g). Указали максимальный и расширенный всплеск BC (committed burst), BE (extended burst), эти значения указываются в байтах.
Я рассчитываю BC, BE по следующей формуле:
Bc = Скорость(bit/s) / 8(bit/s) * 1,5сек Be = 2 * Bс
В конце указали действие которое будет совершаться над оставшимися пакетами которые, не попали в полосу пропускания, они либо идут в корзину, либо ставятся в очередь. В нашем случае пакеты выходящие за рамки обозначенной полосы пропускания, будут отбрасываться.
Осталось назначить созданные политики (police-map) на интерфейс, смотрящий в локальную сеть:
interface GigabitEthernet0/1 service-policy input UPLOAD_SPEED service-policy output DOWNLOAD_SPEED
В итоге IP-адреса который будут обозначены в групповых объектах, будут ограничены в скорости доступа согласно описанным правилам, при превышении допустимого порога пакеты будут отбрасываться.
class DOWNLOAD_UNLIM_ROUTE
class DOWNLOAD_UPLOAD_UNLIM_ROUTE
Ошибки?
Вроде так должно быть?
class DOWNLOAD_UNLIM
class UPLOAD_UNLIM
Да моя синтасическая ошибка, поправил. Спасибо!
Здравствуйте. Подскажите, если в object-group указывается сеть, к примеру /24, и отдается 20 Мбит, то данная полоса будет делиться между всеми клиентами поровну.
А если стоит задача отдать каждому клиенту в сети /24 20 Мбит. Это в принципе реализуемо?
Знаю что на оборудовании mikrotik это делается с помощью очередей pcq