Как ограничить скорость на коммутаторе
В traffic policy для классификации пакетов могут использоваться правила ACL. ACL классифицируются как базовые, расширенные и ACL уровня 2. Базовый ACL определяет правила на основе IP-адреса источника, флага фрагмента и временного диапазона. Ограничение трафика настраивается в traffic behavior, чтобы ограничить скорость соответствующих пакетов. Список контроля доступа (ACL) состоит из одного или нескольких правил. Правила определяют, соответствуют ли пакеты условиям, таким как адреса источника, адреса назначения и номера портов пакетов.
На схеме ниже, компания имеет два отделения, принадлежащих к VLAN 10 и VLAN 20 соответственно. Некоторые серверы развернуты в VLAN 10, и до них требуется высокая пропускная способность, сотрудники должны иметь доступ в Интернет только в VLAN 20, при этом нет высоких требований к пропускной способности. Компания имеет выделенную линию 10 Мбит/с. Компания требует, чтобы пропускная способность для доступа в Интернет в VLAN 20 составляла от 2 до 4 Мбит/с, а трафик, превышающий 4 Мбит/с, был отброшен.
Схема настройки выглядит следующим образом:
1. Создайте VLAN, настройте интерфейсы и протокол маршрутизации для взаимодействия между компанией и внешней сетью.
2. Настройте ACL на Switch для сопоставления трафика из указанного сегмента сети.
3. Настройте traffic classifier на Switch для классификации пакетов на основе ACL.
4. Настройте traffic behavior на Switch, чтобы ограничить скорость согласованного трафика.
5. Настройте traffic policy на Switch, привяжите политику трафика к классификатору трафика и поведению трафика и примените политику трафика к
GE1/0/1, подключенному к SwitchA в входящем направлении, чтобы реализовать ограничение скорости.
Шаг 1 Создайте VLAN и настройте интерфейсы и протокол маршрутизации.
Шаг 2 Настройте ACL.
Шаг 3 Настройте классификатор трафика.
Шаг 4 Настройте поведение трафика.
Шаг 5 Настройте политику трафика и примените политику трафика к интерфейсу.
Шаг 6 Проверьте конфигурацию.
Switch файл конфигурации
Switch Файл конфигурации A
Bandwidth Control – функционал, который позволяет ограничить пропускную способность на порту коммутатора. Ограничить скорость можно как в одном направлении(rx или tx), так и в обоих направлениях (both).
Рассмотрим пример настройки на коммутаторе DES-3200-52 rev.C1.
Если совершать настройку через Web-интерфейс, то нужно зайти в раздел QoS - Bandwidth Control - Bandwidth Control Settings и задать ограничение на нужном порту. Просмотреть сделанные настройки можно в таблице на этой же странице:
Рисунок 1. Bandwidth Control Settings
Если совершать настройку через CLI, то нужно ввести команду:
Для просмотра сделанных настроек нужно ввести команду:
Bandwidth Control Table
Port RX Rate TX Rate Effective RX Effective TX
(Kbit/sec) (Kbit/sec) (Kbit/sec) (Kbit/sec)
----- ---------- ---------- ---------------- ----------------
1 64 64 64 64
2 64 64 64 64
3 No Limit No Limit No Limit No Limit
4 No Limit No Limit No Limit No Limit
5 No Limit No Limit No Limit No Limit
Для проверки корректной работы функционала можно подключить ПК в 1 и 2 порты, и проверить пропускную способность между ними с помощью утилиты iperf:
ПК2: iperf -u -c 10.90.90.198 -b 100M
------------------------------------------------------------
Client connecting to 10.90.90.198, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 10.90.90.99 port 49360 connected with 10.90.90.198 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 114 MBytes 95.8 Mbits/sec
[ 3] Sent 81447 datagrams
[ 3] Server Report:
[ 3] 0.0-10.3 sec 83.3 KBytes 66.5 Kbits/sec 81.581 ms 81366/81424 (1e+02%)
Как видно из результатов – функционал работает корректно. Небольшая погрешность не является критичной.
У нас есть два варианта: 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 — максимальный предел трафика
Для расчета всех значений используем такую формулу:
Далее по синтаксису:
- conform-action — что делать с трафиком при соответствии ограничения
- exceed-action action — что делать с трафиком при превышении ограничения.
И тут есть несколько действий:
- drop — отбросить пакет
- transmit — передать пакет
- set-dscp-transmit — пометить пакет
Теперь давайте посмотрим на практике. Возьмем GNS3, один маршрутизатор и две виртуальные машины.
Топология простейшая, чтобы просто показать как это работает.
Ограничим весь трафик из сети 192.168.40.0/24 в сеть 192.168.78.0/24. Для этого на R1 создаем ACL.
Ограничиваем абсолютно весь трафик. Пример простой, могут быть более сложные ACL, чтоб ограничивать скорость по каким-то сервисам, портам и пр.
Проверим скорость в сети до ограничений.
Сейчас скорость закачки около 1Мбит/c.
После этого вешаем на физический интерфейс rate-limit, который смотрит в сеть 192.168.40.0/24
Теперь мы ограничили скорость до 8Кбайт/сек. Проверяем. Скорость стала 64 Кбит/с. Все работает.
Примечание! rate-limit нельзя повесить на логический интерфейс, только на физический.
Встала задача ограничить скорость клиенту до 20 Мбит/с. Его IP заведён на центральном коммутаторе Cisco 3750 как Interface VLAN и на него повешен IP. Можете помочь с примером ограничения скорости на интерфейс влане? Есть какие то конфиги готовые или чёткий пример как это сделать?
Схему как подклюён клиент прилагаю
Комментарии
Самый простой способ это порезать его трафик на этом интерфейсе:
policy-map SPEED
class class-default
bandwidth percent 20
Если гигабитный интерфейс, это соответственно 2% от максимальной скорости.
Но тема QoS(L3) и CoS(L2) огромна. Советую тебе зайти на ютуб и посмотреть хороший вебинар на эту темуБольшое спасибо за весьма интересную статью. Но увы, наша блин 3750 при применении service-policy на interface vlan шлёт лесом и пишет:
Так что видимо это осуществимо на роутерах, а L3 коммутаторам требуется несколько другая реализация
Так что видимо это осуществимо на роутерах, а L3 коммутаторам требуется несколько другая реализация
Это не то слово, особенно на enterprise свичах, Cisco их сильно режет по функционалу, хотя ASIC явно умеет гораздо больше, чем задействовано в софте. Убогие D-Link делают эти свичи как стоячие.
Другое дело, когда берешь ME серию коммутаторов Cisco.Вообще, QoS очень аппаратно зависим и надо очень внимательно читать документацию по настройке QoS именно для вашей железки.
Вообще, QoS очень аппаратно зависим и надо очень внимательно читать документацию по настройке QoS именно для вашей железки.
Да я уже в этом убедился. Что там весьма специфичные настройки и требуется полное понимание как QoS в целом, так и конкретно по моей железке.Вообще, QoS очень аппаратно зависим и надо очень внимательно читать документацию по настройке QoS именно для вашей железки.
Да я уже в этом убедился. Что там весьма специфичные настройки и требуется полное понимание как QoS в целом, так и конкретно по моей железке. Главное даже не в этом. Там принципиально может не быть нужной вам функциональности, хотя бы потому, что Cisco не считает эту функциональность необходимой для Enterprise сетей.Вот пример как зарезать по влану, на 10 мегабит, но у вас там IP адрес
Просто пускай это будет здесь.mac access-list extended customerXXX
permit any any vlan 100vlan 100
name customerXXXclass-map match-all customerXXX
match access-group name customerXXXpolicy-map customerXXX
class customerXXX
police 10000000 conform-action transmit exceed-action dropinterface Vlan100
no ip address
mac packet-classify
service-policy input customerXXX
service-policy output customerXXXПопробуйте зарезать по влану, пример на 10 мегабит:
mac access-list extended customerXXX
permit any any vlan 100vlan 100
name customerXXXclass-map match-all customerXXX
match access-group name customerXXXpolicy-map customerXXX
class customerXXX
police 10000000 conform-action transmit exceed-action dropinterface Vlan100
Спасибо, обязательно попробую Отпишусь по результатам.
ip address x.x.x.x x.x.x.x
mac packet-classify
service-policy input customerXXX
service-policy output customerXXXБольшое спасибо за весьма интересную статью. Но увы, наша блин 3750 при применении service-policy на interface vlan шлёт лесом и пишет:
Так что видимо это осуществимо на роутерах, а L3 коммутаторам требуется несколько другая реализация
Вы полисинг вешайте не на интерфейс влан, а на физически интерфейс смотрящий в сторону клиента.class-map match-all customerXXX
match access-group name customerXXXpolicy-map customerXXX
class customerXXX
police 16000000 1000000 exceed-action dropinterface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan .
service-policy input customerXXX
service-policy output customerXXXip access-list extended customerXXX
permit ip any host 192.168.0.1
permit ip host 192.168.0.1 any
ЛюбительскийНесмотря на то, что поддержка функции автосогласования (Auto-Negotiation) скорости порта давно уже стала само собой разумеющейся в сетевых устройствах, иногда пользователи или администраторы сетей сталкиваются с ситуациями, когда что-то пошло не так, и соединение не поднялось или поднялось не на ожидаемой скорости. Что делать в такой ситуации рассмотрим в данной заметке.
1. Возможные причины проблем.
- Физические проблемы соединения – плохие контакты в коннекторах, частичный или полный обрыв проводов в кабеле или коннекторах, неправильная разводка проводов в коннекторах и т.п.
- Программные проблемы – некорректная работа драйвера сетевого адаптера, некорректная работа внутреннего программного обеспечения сетевого устройства (коммутатора, маршрутизатора, точки доступа и т.п.).
- Аппаратные проблемы – физические неисправности сетевого устройства.
2. Методы устранения различных проблем.
Для обнаружения и устранения физических проблем можно сделать следующее:
- заменить патч-корд;
- прозвонить кабель специальным тестером, например, LT -100;
Программные проблемы решаются обновлением драйверов и установкой последних версий Firmware (внутреннее ПО) сетевых устройств (если устройства предполагают их обновление).
Аппаратные проблемы решаются заменой оборудования или же его ремонтом в специализированных сервисных центрах, если есть в этом целесообразность.
3. Если всё вышеперечисленное не помогает.
Если же найти причину проблемы не удалось, а физически всё исправно, то можно попробовать отключить автосогласование и выставить фиксированную скорость на портах с одной или двух сторон, если имеющееся оборудование позволяет это сделать. Иногда это позволяет обойти проблемы совместной несогласованной работы при подключении к сети старых сетевых устройств или устройств «No Name».
Приведу пример настройки на доступном мне коммутаторе D-Link DGS-1100-24 (H/W A1). Настройка производится на порту, к которому подключено проблемное устройство. Например, это 13 порт. Открываем страницу «Port Settings» раздела меню «System» WEB-интерфейса коммутатора, выбираем в выпадающем списке «From Port» нужный порт 13, в списке «ToPort» он выставится автоматически, выбираем нужную скорость в выпадающем списке «Speed» и нажимаем кнопку «Apply».
Скорость на порту зафиксируется и порт, в данной ситуации, поднимается на выбранной скорости.
У других настраиваемых или управляемых коммутаторов настройка будет похожа, главное найти расположение этих настроек в интерфейсе коммутатора.
Читайте также: