Полагаю, практически все сталкивались с ситуацией, когда один канал ограниченной пропускной способности необходимо делить между потребителями. Иногда это несколько серверов, иногда это группы пользователей, каждый из которых рад бы полностью утилизировать весь канал "торрентами" и просмотром фильмов "on-line".
В маршрутизаторах Cisco задать потолок пропускной способности для произвольно описываемого трафика достаточно легко с помощью команды "rate-limit". Есть ещё "traffic-shape", но, если я верно понял, это будет работать только применительно к входящему трафику и потребует больше ресурсов.
Предположим, мы хотим ограничить пользователей под-сети "192.168.1.0/24" и предоставить им возможность воспользоваться пропускной способностью в 512 килобит в секунду, а пользователей под-сети "192.168.2.0/24" лимитировать 768 килобитами в секунду.
Для начала, опишем с помощью "листов доступа" интересующий нас трафик:
access-list 2001 permit ip any 192.168.1.0 0.0.0.255
access-list 2002 permit ip any 192.168.2.0 0.0.0.255
access-list 2002 permit ip any 192.168.2.0 0.0.0.255
Следует помнить о том, что в рамках каждой группы пользователей описанных одним "листом доступа" мы ограничиваем всех её пользователей, а не каждого по отдельности. То есть, всей группе "листа доступа" "2001" будет предоставлена пропускная в 512 килобит в секунду, а не каждому из её членов (как думают многие).
Описываем в свойствах интерфейса параметры лимитирования:
int FastEthernet0/0
description channel to internet
ip address 10.10.1.1 255.255.255.0
no shutdown
no ip route-cache
no cdp enable
rate-limit input access-group 2051 512000 64000 64000 conform-action transmit exceed-action drop
rate-limit input access-group 2052 768000 96000 96000 conform-action transmit exceed-action drop
no ip cef
exit
description channel to internet
ip address 10.10.1.1 255.255.255.0
no shutdown
no ip route-cache
no cdp enable
rate-limit input access-group 2051 512000 64000 64000 conform-action transmit exceed-action drop
rate-limit input access-group 2052 768000 96000 96000 conform-action transmit exceed-action drop
no ip cef
exit
Не знаю, чем это обусловлено, но лимитирование заработало только после принудительного отключения поддержки технологии CEF (Cisco Express Forwarding) на интерфейсе.
Посмотреть, насколько успешно работает отбрасывание пакетов, с помощью которого лимитируется пропускная способность, можно с помощью следующей команды:
# show int FastEthernet0/0 rate-limit
Input
matches: access-group 2001
params: 512000 bps, 64000 limit, 64000 extended limit
....
matches: access-group 2002
params: 768000 bps, 96000 limit, 96000 extended limit
conformed 3058959 packets, 2695M bytes; action: transmit
exceeded 283515 packets, 374375046 bytes; action: drop
last packet: 24436ms ago, current burst: 0 bytes
last cleared 1d03h ago, conformed 219000 bps, exceeded 30000 bps
matches: access-group 2001
params: 512000 bps, 64000 limit, 64000 extended limit
....
matches: access-group 2002
params: 768000 bps, 96000 limit, 96000 extended limit
conformed 3058959 packets, 2695M bytes; action: transmit
exceeded 283515 packets, 374375046 bytes; action: drop
last packet: 24436ms ago, current burst: 0 bytes
last cleared 1d03h ago, conformed 219000 bps, exceeded 30000 bps
20 февраля 2012 в 15:09
20 февраля 2012 в 15:36