У нас есть два варианта: rate-limit и traffic-shape. Чем эти два способа отличаются?
Все просто: traffic-shape не умеет ставить пакеты в очередь. Вот все, что вышло за рамки указанное пропускной способности — он дропает. А вот rate-limit умеет ставить пакеты в очередь и может отправлять пакеты всплесками, когда появится свободная полоса.
Команда rate-limit вводится в режиме конфигурирации физического интерфейса и имеет следующий синтаксис:
rate-limit input|output [access-group [rate-limit] acl-index] [limit-bps] [nbc] [ebc] conform-action [action] exceed-action [action]
Разберем более детально:
-
- access-group — указываем номер нашего ACL, в который ловим трафик, который будем ограничивать.
Далее идут три значения скорости limit bps, nbc, ebc
-
- limit bps — скорость ограничения(в битах!)
-
- nbc — допустимый предел трафика, все что свыше — будет попадать в очередь
-
- ebc — максимальный предел трафика
Для расчета всех значений используем такую формулу:
nbc=limit(bit/s)/8(bit/s)*1,5sec
ebc=2nbc
Далее по синтаксису:
-
- conform-action — что делать с трафиком при соответствии ограничения
-
- exceed-action action — что делать с трафиком при превышении ограничения.
И тут есть несколько действий:
-
- drop — отбросить пакет
-
- transmit — передать пакет
-
- set-dscp-transmit — пометить пакет
Теперь давайте посмотрим на практике. Возьмем GNS3, один маршрутизатор и две виртуальные машины.
Топология простейшая, чтобы просто показать как это работает.
Ограничим весь трафик из сети 192.168.40.0/24 в сеть 192.168.78.0/24. Для этого на R1 создаем ACL.
R1(config)#access-list 101 permit ip 192.168.40.0 0.0.0.255 192.168.78.0 0.0.0.255
R1(config)#access-list 101 deny ip any any
Ограничиваем абсолютно весь трафик. Пример простой, могут быть более сложные ACL, чтоб ограничивать скорость по каким-то сервисам, портам и пр.
Проверим скорость в сети до ограничений.
Сейчас скорость закачки около 1Мбит/c.
После этого вешаем на физический интерфейс rate-limit, который смотрит в сеть 192.168.40.0/24
R1(config)#int fa 0/0
R1(config-if)#rate-limit output access-group 101 64000 12000 24000 conform-action transmit exceed-action drop
Теперь мы ограничили скорость до 8Кбайт/сек. Проверяем. Скорость стала 64 Кбит/с. Все работает.
Примечание! rate-limit нельзя повесить на логический интерфейс, только на физический.
Contents
Introduction
Providing downstream per-user rate limiting for wireless users is
possible on Cisco Wireless LAN controllers, but the addition of IOS Microflow
policing to the solution allows for granular rate limiting in both the upstream
and downstream directions. The motivation for implementing per-user rate
limiting ranges from bandwidth “hog” protection is to implement tiered
bandwidth models for customer network access, and in some cases, whitelist
particular resources that are exempt from bandwidth policing as a requirement.
In addition to throttling current generation IPv4 traffic, the solution is
capable of per-user IPv6 rate limiting. This provides investment protection.
Prerequisites
Requirements
Microflow policing requires the use of a Supervisor 720 or later that
runs a version of Cisco IOS® Software Release 12.2(14)SX or later.
Components Used
The information in this document is based on these software and
hardware versions:
-
Wireless LAN controllers
-
Access Points (APs)
-
Cisco Catalyst Supervisor 720 or
later
Conventions
Refer to
Cisco
Technical Tips Conventions for more information on document
conventions.
Catalyst 6500 Configuration
Microflow Policing Configuration
Complete these steps:
-
Utilizing Microflow policing first requires that an access control
list (ACL) be created to identify traffic in order to apply a throttling
policy.Note: This configuration example uses the 192.168.30.x/24 subnet for
wireless clients.ip access-list extended acl-wireless-downstream permit ip any 192.168.30.0 0.0.0.255 ip access-list extended acl-wireless-upstream permit ip 192.168.30.0 0.0.0.255 any
-
Create a class-map to match on the previous ACL.
class-map match-all class-wireless-downstream match access-group name acl-wireless-downstream class-map match-all class-wireless-upstream match access-group name acl-wireless-upstream
-
Creating a policy-map will link the previously created ACL and
class-map to a distinct action to apply to the traffic. In this case the
traffic is being throttled to 1Mbps in both directions. A source flow mask is
used in the upstream direction (client to AP) and a destination flow mask is
used in the downstream direction (AP to client).policy-map police-wireless-upstream class class-wireless-upstream police flow mask src-only 1m 187500 conform-action transmit exceed-action drop policy-map police-wireless-downstream class class-wireless-downstream police flow mask dest-only 1m 187500 conform-action transmit exceed-action drop
For more information on configuring Microflow policing, refer to
User-Based
Rate Limiting in the Cisco Catalyst 6500.
Adjusting the Bandwidth Policing Policy
The policy statement within the policy-map is where the actual
Bandwidth (configured in bits) and
Burst size (configured in bytes) parameters are
configured.
A good rule of thumb for the burst size is:
Burst = (Bandwidth / 8) * 1.5
Example:
This line uses a rate of 1Mbps (bits):
police flow mask dest-only 1m 187500 conform-action transmit exceed-action drop
This line uses a rate of 5Mbps (bits):
police flow mask dest-only 5mc 937500 conform-action transmit exceed-action drop
Whitelisting Resources from Bandwidth Policing
In some cases, certain network resources should be exempt from
bandwidth policing such as a Windows Update server or posture remediation
appliance. In addition to hosts, whitelisting can also be used to exempt whole
subnets from bandwidth policing.
Example:
This example excludes the host 192.168.20.22 from any bandwidth
limitation when communicating with the 192.168.30.0/24 network.
ip access-list extended acl-wireless-downstream deny ip host 192.168.20.22 192.168.30.0 0.0.0.255 permit ip any 192.168.30.0 0.0.0.255 ip access-list extended acl-wireless-upstream deny ip 192.168.30.0 0.0.0.255 host 192.168.20.22 permit ip 192.168.30.0 0.0.0.255 any
IPv6 Microflow Policing
Complete these steps:
-
Add another access list on the Catalyst 6500 to identify IPv6 traffic
to be throttled.ipv6 access-list aclv6-wireless-downstream permit ipv6 any 2001:DB8:0:30::/64 ! ipv6 access-list aclv6-wireless-upstream permit ipv6 2001:DB8:0:30::/64 any
-
Modify the class-map to include the IPv6 ACL.
class-map match-any class-wireless-downstream match access-group name aclv6-wireless-downstream match access-group name acl-wireless-downstream class-map match-any class-wireless-upstream match access-group name aclv6-wireless-upstream match access-group name acl-wireless-upstream
Appliance-based (2500, 4400, 5500) Controller Configuration
In order to provide Microflow policing with an appliance-based
controller, such as the 5508 series, the configuration is simplistic. The
controller interface is configured similar to any other VLAN, while the
Catalyst 6500 service policy is applied to the controller
interface.
Complete these steps:
-
Apply police-wireless-upstream on the
incoming port from the controller.interface GigabitEthernet4/13 description WLC switchport switchport trunk allowed vlan 30 switchport mode trunk service-policy input police-wireless-upstream end
-
Apply policy-wireless-downstream on
the uplink LAN/WAN ports.interface GigabitEthernet4/20 description WAN switchport switchport access vlan 20 switchport mode access service-policy input police-wireless-downstream end
Module-based (WiSM, WiSM2) Controller Configuration
In order to leverage Microflow policing on the Catalyst 6500 with the
Wireless Service Module2 (WiSM2), the configuration must be adjusted to use
VLAN-based Quality of Service (QoS). This means that the Microflow policing
policy is not applied directly to the port interface (for example, Gi1/0/1),
but is applied on the VLAN interface.
Complete these steps:
-
Configure the WiSM for VLAN-based QoS:
wism service-vlan 800 wism module 1 controller 1 allowed-vlan 30 wism module 1 controller 1 qos vlan-based
-
Apply policy-wireless-upstream on
Client VLAN SVI:interface Vlan30 description Client-Limited ip address 192.168.30.1 255.255.255.0 ipv6 address 2001:DB8:0:30::1/64 ipv6 enable service-policy input police-wireless-upstream end
-
Apply policy-wireless-downstream on
the uplink LAN/WAN ports.interface GigabitEthernet4/20 description WAN switchport switchport access vlan 20 switchport mode access service-policy input police-wireless-downstream end
Solution Verification
One of the main requirements of per-user rate limiting is the ability
to limit all flows coming from and destined to a particular user. In order to
verify that the Microflow policing solution meets this requirement, IxChariot
is used to simulate four simultaneous download sessions and four simultaneous
upload sessions for a particular user. This can represent someone launching a
FTP session, browsing the web and watching a video stream while sending an
email with a large attachment, etc.
In this test IxChariot is configured with the “Throughput.scr” script
using TCP traffic in order to measure the speed of the link using throttled
traffic. The Microflow policing solution is able to throttle all streams down
to a total of 1Mbps downstream and 1Mbps upstream for the user. In addition,
all of the streams use roughly 25% of available bandwidth (for example, 250kbps
per stream x 4 = 1Mbps).
Note: Because the Microflow policing action occurs at Layer 3, the end
result for TCP traffic throughput can be less than the configured rate because
of protocol overhead.
Related Information
-
Technical Support &
Documentation — Cisco Systems
Рассмотрим как организовать ограничение скорости передачи данных по 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-адреса который будут обозначены в групповых объектах, будут ограничены в скорости доступа согласно описанным правилам, при превышении допустимого порога пакеты будут отбрасываться.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
Загрузка…
Всем привет. Хочу поделиться своим опытом по настройке ограничений скорости на маршрутизаторах Cisco.
Итак, для начала немного расскажу о том, зачем это понадобилось. Скажем, построили мы небольшую Hub-and-Spoke сеть. Каналы связи у нас небольшие, например, 2 Мбит/c каждый. Сеть небольшого предприятия, которое со временем начинает разрастаться и трафик в этих каналах тоже увеличивается.
Пример из жизни. Есть центральный офис и несколько филиалов. Основной трафик — это ERP-системы и обновления софта. Каналы 2 Мбит/c не нагружены, все работает, всех устраивает. Тут в филиале появляется сервер видеонаблюдения, с которого идут видеопотоки на центральный офис, когда там служба безопасности просматривает камеры. При этом канал загружается под 100% и начинаются проблемы. То есть, необходимо весь трафик, идущий к видео серверу урезать.
Как это сделать. Сразу же приходят на ум два варианта:
- rate-limit
- traffic-shape
Чем эти два способа отличаются?
Все просто: traffic-shape не умеет ставить пакеты в очередь. Вот все, что вышло за рамки указанное пропускной способности — он дропает. А вот rate-limit умеет ставить пакеты в очереди и может отправлять пакеты всплесками, когда появится свободная полоса.
Rate-limit команда вводится в режиме конфигурирования физического интерфейса и имеет следующий синтаксис:
rate-limit input|output [access-group [rate-limit] acl-index] [limit-bps] [nbc] [ebc] conform-action [action] exceed-action [action]
Разберем более детально:
- access-group — указываем номер нашего ACL, в который ловим трафик, который будем ограничивать.
Далее идут три значения скорости limit bps, nbc, ebc
- limit bps — скорость ограничения(в битах!)
- nbc — допустимый предел трафика, все что свыше — будет попадать в очередь
- ebc — максимальный предел трафика
Для расчета всех значений используем такую формулу:
nbc=limit(bit/s)/8(bit/s)*1,5sec
ebc=2nbc
Или же используем готовый калькулятор .
Далее по синтаксису:
- conform-action — что делать с трафиком при соответствии ограничения
- exceed-action action — что делать с трафиком при превышении ограничения.
И тут есть несколько действий:
- drop — отбросить пакет
- transmit — передать пакет
- set-dscp-transmit — пометить пакет
Теперь давайте посмотрим на практике. Возьмем GNS3, один маршрутизатор и две виртуальные машины.
Топология простейшая, чтобы просто показать как это работает.
Ограничим весь трафик из сети 192.168.40.0/24 в сеть 192.168.78.0/24. Для этого на R1 создаем ACL.
- R1(config)#access-list 101 permit ip 192.168.40.0 0.0.0.255 192.168.78.0 0.0.0.255
- R1(config)#access-list 101 deny ip any any
Ограничиваем абсолютно весь трафик. Пример простой, могут быть более сложные ACL, чтоб ограничивать скорость по каким-то сервисам, портам и пр.
Проверим скорость в сети до ограничений.
На хосте C1 у нас работает FTP-сервер, С2 — будет ftp-клиентом. Скорость виртуальной сети у меня 1Мбит/c
Видим что скорость закачки около 1Мбит/c.
После этого вешаем на физический интерфейс rate-limit, который смотрит в сеть 192.168.40.0/24
- R1(config)#int fa 0/0
- R1(config-if)#rate-limit output access-group 101 64000 12000 24000 conform-action transmit exceed-action drop
Теперь мы ограничили скорость до 8Кбайт/сек. Проверяем.
Скорость стала 64 Кбит/с. Все работает.
Примечание: rate-limit нельзя повесить на логический интерфейс, только на физический.
Благодарю за внимание.
Автор: mikonoid
Источник
Организация ограничения скорости передачи данных по IP-адресу на маршрутизаторах CISCO
Рассмотрим как организовать ограничение скорости передачи данных по IP адресам пользователей на маршрутизаторе CISCO.
Имеется интернет канал шириной в 30 Mb/s, необходимо добавить возможность разбивать его на различную пропускную способность Download/Upload (Входящей/Исходящей) (прим. 20M, 10M, 5M, 1M), для определенных сегментов локальной сети.
Создаем групповые объекты (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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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), в которых укажем какая скорость доступна для созданных классификаций трафика:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
policy—map DOWNLOAD_SPEED class DOWNLOAD_UNLIM_ROUTE 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_ROUTE 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-адреса который будут обозначены в групповых объектах, будут ограничены в скорости доступа согласно описанным правилам, при превышении допустимого порога пакеты будут отбрасываться.