Организация ограничения скорости передачи данных по 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-адреса который будут обозначены в групповых объектах, будут ограничены в скорости доступа согласно описанным правилам, при превышении допустимого порога пакеты будут отбрасываться.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

БесполезноСлабоватоПриемлемоОтличноПревосходно (2 голос(ов), в среднем: 3,00 из 5)
Загрузка...

Всего комментариев: 3 Комментировать

  1. Михаил /

    Здравствуйте. Подскажите, если в object-group указывается сеть, к примеру /24, и отдается 20 Мбит, то данная полоса будет делиться между всеми клиентами поровну.
    А если стоит задача отдать каждому клиенту в сети /24 20 Мбит. Это в принципе реализуемо?
    Знаю что на оборудовании mikrotik это делается с помощью очередей pcq

  2. Ворфоломей /

    class DOWNLOAD_UNLIM_ROUTE
    class DOWNLOAD_UPLOAD_UNLIM_ROUTE
    Ошибки?

    Вроде так должно быть?
    class DOWNLOAD_UNLIM
    class UPLOAD_UNLIM

    1. Жаконда / Автор записи

      Да моя синтасическая ошибка, поправил. Спасибо!

Оставить ответ

15 − 5 =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика