Дисклеймер: нижеописанное есть имхо и может быть не совсем точным в технических деталях, но если кому-то поможет — я буду только рад.
Введение
Будем считать, что все уже в курсе для чего нужен QoS, уже есть понимание каким типам трафика какие приоритеты нужно выделить и осталось только произвести настройку.
Маркировка трафика для QoS с точки зрения оборудования обычно производится на уровне агрегации — ядра (Core) или крупных узлов — дистрибуции (Distribution). С точки зрения модели OSI — на втором уровне (канальном — поле 802.1p) — в рамках одного широковещательного домена или вилана (VLAN 802.1Q) и третьем (сетевом — обычно поле DSCP) — для передачи приоритетов между маршрутизаторами.
Как увидеть поля 802.1p и DSCP
Чтобы контролировать правильность составления ACL, надо увидеть поля 802.1p и DSCP. Для этого проще всего зеркалировать трафик с UPLINK порта коммутатора (на котором и помечаем трафик) на порт с которого подключен наш ПК. Чтобы увидеть заголовок кадра (канальный уровень), нужно захватывать трафик в линуксе, кроме того некоторые сетевые карты сами отбрасывают эти заголовки перед передачей в ОС (?), поэтому если не увидите тэги — пробуйте на другой сетевой карте.
Запускаем Wireshark, кликаем правой кнопкой на заголовках колонок и в настройках (Column Preferences) добавляем поля: DSCP (IP DSCP Value), VLAN id (802.1Q VLAN id), 802.1p (Custom vlan.priority).
Так же надо помнить что мы не увидим поле 802.1p для пакетов из выставленного на зеркалируемый порт Untagged вилана (Access в терминалогии Cisco), т.к. коммутатор будет снимать заголовок 802.1Q для пакетов у которых PVID (Port Vlan Identifier) порта равен VID кадра.
Кое-что о QoS
Если у вас провайдерская сеть — используйте алгоритм WRR вместо Strict (по-умолчанию), об этом много где написано. Так же распределяйте маркируемый трафик по приоритетам так, чтобы он адекватно распределялся по очередям, а иначе какой смысл всего этого действа?)
Соответствие приоритетов на канальном и сетевом уровнях, а так же связь с очередями на коммутаторах. Часть таблицы позаимствована тут. Соответствие как бы условное, просто вы можете, например, написать правило на маршрутизаторе, что если пришел пакет с DSCP=48, то нужно прописать в нём 802.1p=6.
PCP | Priority | Ethernet Traffic Class (Wireshark) | IP Precedence Value (Cisco) | D-Link 4 очереди | D-Link 8 очередей | DSCP |
7 | 7 | Network Control | network | Q3 | Q6 | 56 |
6 | 6 | Voice, < 10 ms latency and jitter | internet | Q3 | Q6 | 48 |
5 | 5 | Video, < 100 ms latency and jitter | critical | Q2 | Q5 | 40-46 |
4 | 4 | Controlled Load (контролируемая нагрузка) | flash-override | Q2 | Q4 | 32-38 |
3 | 3 | Excellent Effort | flash | Q1 | Q3 | 24-30 |
2 | 2 | Spare (запасной) | immediate | Q0 | Q1 | 16-22 |
0 | 1 | Background (фоновый) | priority | Q0 | Q0 | 8-14 |
1 | 0 | Best Effort (по умолчанию, доставка по возможности, негарантированная доставка) | routine | Q1 | Q2 | 0 |
Особенности ACL на D-Link
Чтобы не запутаться с Source и Destination при составлении правил, надо запомнить что на коммутаторах D-Link ACL применяются только для пакетов, приходящих на порт коммутатора (со стороны клиента), в то время как (например) на Cisco правила можно применять на приходящие и уходящие с порта пакеты. Клиент в данном случае это любое сетевое устройство, подключенное к данному порту коммутатора.
Каждый пакет проверяется на соответствие условиям из списка ACL, причем условия (правила) перебираются по очереди. Если пакет попал в соответствие правилу — выполняется действие (пакет пропускается или отбрасывается, плюс в нём могут быть изменены поля приоритетов). Т.е. после попадания в соответствие какому-либо условию данный пакет не проверяется на соответствие оставшимся в списке правилам. Поэтому очень важно заранее продумывать порядок правил, чтобы с пакетами, попадающим в соответствие к нескольким правилам, производились наиболее подходящие действия.
На коммутаторах D-Link есть определенные ограничения на количество профайлов и правил в них. Например в D-Link DGS-3620 Series можно создать 6 профайлов (только один типа Packet content profile), 256 правил в каждом, а в D-Link DGS-3600 Series — 14 профайлов (только один типа Packet content profile), 128 правил в каждом. Так же есть другие ограничения, о них будет замечено в примерах правил ACL.
Разница в составлении правил для обычных и инкапсулированных в PPPoE IP пакетов.
Теперь самое интересное. Если в сети используется протокол PPPoE, то правила ACL, анализирующие MAC адреса и VLAN ID будут работать для всех кадров, а связанные с заголовком IP пакета — только для обычных кадров, но не для PPPoE. Почему так происходит? Посмотрим на кадры в Wireshark.
Обычный кадр:
Кадр с PPPoE:
Из-за PPPoE заголовок IP смещается на 8 байт, поэтому коммутатор не может его прочитать. Поэтому правила связанные с MAC адресами и VLAN ID пишем одни на всех, а с IP адресами — в двух вариациях.
Начнём с общих. На разных линейках коммутаторов в синтаксисе могут быть различия, например D-Link DGS-3620 Series просит название профайла, а у DGS-3600 Series такого нет. В данном случае у нас 28 портов и 27 является UPLINK’ом.
Маркируем управляющий вилан (менеджмент трафик).
delete access_profile profile_id 1 create access_profile profile_id 1 profile_name Management ip vlan 0xFFF dscp config access_profile profile_id 1 add access_id 1 ip vlan_id 1 port 1-28 permit priority 7 replace_priority replace_dscp 56
Маркируем WEB трафик и IP телефонию по TCP и UDP портам.
delete access_profile profile_id 2 create access_profile profile_id 2 profile_name Static_UDP ip udp src_port_mask 0xFFFF dst_port_mask 0xFFFF dscp config access_profile profile_id 2 add access_id 1 ip udp src_port 5060 port 1-28 permit priority 6 replace_priority replace_dscp 48 config access_profile profile_id 2 add access_id 2 ip udp dst_port 5060 port 1-28 permit priority 6 replace_priority replace_dscp 48 delete access_profile profile_id 3 create access_profile profile_id 3 profile_name Static_TCP ip tcp src_port_mask 0xFFFF dst_port_mask 0xFFFF dscp config access_profile profile_id 3 add access_id 1 ip tcp src_port 80 port 27 permit priority 4 replace_priority replace_dscp 32 config access_profile profile_id 3 add access_id 2 ip tcp src_port 443 port 27 permit priority 4 replace_priority replace_dscp 32 config access_profile profile_id 3 add access_id 3 ip tcp src_port 5060 port 1-28 permit priority 6 replace_priority replace_dscp 48 config access_profile profile_id 3 add access_id 4 ip tcp src_port 5061 port 1-28 permit priority 6 replace_priority replace_dscp 48 config access_profile profile_id 3 add access_id 5 ip tcp dst_port 5060 port 1-28 permit priority 6 replace_priority replace_dscp 48 config access_profile profile_id 3 add access_id 6 ip tcp dst_port 5061 port 1-28 permit priority 6 replace_priority replace_dscp 48
Маркируем мультикаст трафик по IP адресу и маске.
delete access_profile profile_id 4 create access_profile profile_id 4 profile_name Multicast_dst ip destination_ip_mask 0.0.0.0 dscp config access_profile profile_id 4 add access_id 1 ip destination_ip 224.0.0.0 mask 224.0.0.0 port 1-28 permit priority 3 replace_priority replace_dscp 26
Далее мы хотим промаркировать трафик с определённых сервисов, например местных кэширующих серверов Google и серверов Wargaming. Из нюансов для разных линеек коммутаторов: на D-Link DGS-3620 Series можно создавать профайлы с 0.0.0.0 маской и дальше нарезать её как угодно в правилах, а на DGS-3600 Series придется создать отдельный профайл на каждую необходимую маску.
Для обычных пакетов:
delete access_profile profile_id 6 create access_profile profile_id 6 profile_name Static_IP ip source_ip_mask 0.0.0.0 # Cache servers config access_profile profile_id 6 add access_id 2 ip source_ip 128.0.80.0 mask 255.255.240.0 port 27 permit priority 3 replace_priority replace_dscp 24 # Wargaming config access_profile profile_id 6 add access_id 11 ip source_ip 92.223.0.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 12 ip source_ip 92.223.1.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 13 ip source_ip 92.223.2.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 14 ip source_ip 92.223.3.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 15 ip source_ip 92.223.4.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 16 ip source_ip 92.223.6.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 17 ip source_ip 92.223.8.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 18 ip source_ip 92.223.10.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 19 ip source_ip 92.223.12.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 20 ip source_ip 92.223.14.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 21 ip source_ip 92.223.16.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 22 ip source_ip 92.223.17.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 23 ip source_ip 92.223.18.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 24 ip source_ip 92.223.19.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 25 ip source_ip 92.223.20.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 26 ip source_ip 92.223.21.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 27 ip source_ip 92.223.22.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 28 ip source_ip 92.223.23.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 29 ip source_ip 92.223.24.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 30 ip source_ip 92.223.25.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 31 ip source_ip 92.223.26.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 32 ip source_ip 92.223.27.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 33 ip source_ip 92.223.99.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 34 ip source_ip 92.223.112.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 35 ip source_ip 92.223.114.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 36 ip source_ip 92.223.116.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 37 ip source_ip 92.223.118.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 38 ip source_ip 92.223.119.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 39 ip source_ip 92.223.120.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 40 ip source_ip 92.223.121.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 41 ip source_ip 92.223.122.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 42 ip source_ip 92.223.123.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 43 ip source_ip 92.223.124.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 44 ip source_ip 92.223.125.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 45 ip source_ip 92.223.126.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 46 ip source_ip 92.223.127.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 47 ip source_ip 185.12.212.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 48 ip source_ip 185.12.213.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 49 ip source_ip 185.12.240.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 50 ip source_ip 185.12.241.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 51 ip source_ip 185.12.242.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 6 add access_id 52 ip source_ip 185.12.243.0 mask 255.255.255.0 port 27 permit priority 5 replace_priority replace_dscp 40
Для PPPoE пакетов нужно создать профиль типа Packet content filter http://www.dlink.ru/ru/faq/62/892.html, http://www.dlink.ru/ru/faq/62/240.html. Учтите что а мануале порядковые номера байтов в чанках записаны в десятичной системе счисления, а в Wireshark в шестнадцатеричной. К тому же в данный профайл можно добавить другие необходимые правила, типа фильтрации по TCP или UDP портам, достаточно добавить нужное смещение и маску. Разумеется все необходимые значения IP адресов, портов и т.п. нужно перевести в шестнадцатеричную систему счисления.
Шпаргалка по смещениям/расположению часто используемых полей в пакетах.
Обычные пакеты TCP/UDP |
PPPoE пакеты TCP/UDP |
Маска для правил ACL |
|
Source IP |
Chunk 8 (30-33) |
Chunk 10 (38-41) |
0xffffffff |
Destination IP |
Chunk 9 (34-37) |
Chunk 11 (42-45) |
0xffffffff |
Source Port |
Chunk 10 (38-39) |
Chunk 12 (46-47) |
0xffff0000 |
Destination Port |
Chunk 10 (40-41) |
Chunk 12 (48-49) |
0x0000ffff |
delete access_profile profile_id 5 create access_profile profile_id 5 profile_name PPPoE_pctcnt packet_content_mask offset_chunk_1 10 0xFFFFFF00 offset_chunk_2 12 0xFFFF0000 # HTTP, HTTPS config access_profile profile_id 5 add access_id 1 packet_content offset_chunk_2 0x00500000 port 27 permit priority 4 replace_priority replace_dscp 32 config access_profile profile_id 5 add access_id 2 packet_content offset_chunk_2 0x01BB0000 port 27 permit priority 4 replace_priority replace_dscp 32 # Wargaming config access_profile profile_id 5 add access_id 10 packet_content offset_chunk_1 0x5CDF0000 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 11 packet_content offset_chunk_1 0x5CDF0100 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 12 packet_content offset_chunk_1 0x5CDF0200 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 13 packet_content offset_chunk_1 0x5CDF0300 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 14 packet_content offset_chunk_1 0x5CDF0400 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 15 packet_content offset_chunk_1 0x5CDF0600 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 16 packet_content offset_chunk_1 0x5CDF0800 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 17 packet_content offset_chunk_1 0x5CDF0A00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 18 packet_content offset_chunk_1 0x5CDF0C00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 19 packet_content offset_chunk_1 0x5CDF0E00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 20 packet_content offset_chunk_1 0x5CDF1000 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 21 packet_content offset_chunk_1 0x5CDF1100 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 22 packet_content offset_chunk_1 0x5CDF1200 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 23 packet_content offset_chunk_1 0x5CDF1300 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 24 packet_content offset_chunk_1 0x5CDF1400 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 25 packet_content offset_chunk_1 0x5CDF1500 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 26 packet_content offset_chunk_1 0x5CDF1600 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 27 packet_content offset_chunk_1 0x5CDF1700 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 28 packet_content offset_chunk_1 0x5CDF1800 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 29 packet_content offset_chunk_1 0x5CDF1900 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 30 packet_content offset_chunk_1 0x5CDF1A00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 31 packet_content offset_chunk_1 0x5CDF1B00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 32 packet_content offset_chunk_1 0x5CDF6300 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 33 packet_content offset_chunk_1 0x5CDF7000 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 34 packet_content offset_chunk_1 0x5CDF7200 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 35 packet_content offset_chunk_1 0x5CDF7400 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 36 packet_content offset_chunk_1 0x5CDF7600 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 37 packet_content offset_chunk_1 0x5CDF7700 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 38 packet_content offset_chunk_1 0x5CDF7800 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 39 packet_content offset_chunk_1 0x5CDF7900 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 40 packet_content offset_chunk_1 0x5CDF7A00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 41 packet_content offset_chunk_1 0x5CDF7B00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 42 packet_content offset_chunk_1 0x5CDF7C00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 43 packet_content offset_chunk_1 0x5CDF7D00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 44 packet_content offset_chunk_1 0x5CDF7E00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 45 packet_content offset_chunk_1 0x5CDF7F00 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 46 packet_content offset_chunk_1 0xB90CD400 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 47 packet_content offset_chunk_1 0xB90CD500 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 48 packet_content offset_chunk_1 0xB90CF000 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 49 packet_content offset_chunk_1 0xB90CF100 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 50 packet_content offset_chunk_1 0xB90CF200 port 27 permit priority 5 replace_priority replace_dscp 40 config access_profile profile_id 5 add access_id 51 packet_content offset_chunk_1 0xB90CF300 port 27 permit priority 5 replace_priority replace_dscp 40 # Cache servers config access_profile profile_id 5 add access_id 60 packet_content offset_chunk_1 0x80005000 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 61 packet_content offset_chunk_1 0x80005100 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 62 packet_content offset_chunk_1 0x80005200 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 63 packet_content offset_chunk_1 0x80005300 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 64 packet_content offset_chunk_1 0x80005400 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 65 packet_content offset_chunk_1 0x80005500 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 66 packet_content offset_chunk_1 0x80005600 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 67 packet_content offset_chunk_1 0x80005700 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 68 packet_content offset_chunk_1 0x80005800 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 69 packet_content offset_chunk_1 0x80005900 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 70 packet_content offset_chunk_1 0x80005A00 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 71 packet_content offset_chunk_1 0x80005B00 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 72 packet_content offset_chunk_1 0x80005C00 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 73 packet_content offset_chunk_1 0x80005D00 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 74 packet_content offset_chunk_1 0x80005E00 port 27 permit priority 3 replace_priority replace_dscp 24 config access_profile profile_id 5 add access_id 75 packet_content offset_chunk_1 0x80005F00 port 27 permit priority 3 replace_priority replace_dscp 24
Не забываем сохранить конфигурацию save all и убедиться, что трафик маркируется как мы задумали.
Для тестирования QoS необходимо ограничить пропускную способность порта (Bandwidth) до 2-10 Мб/с, к которому подключен наш ПК, и удалить правила ACL, маркирующие трафик. Затем организовать передачу приоритезируемого трафика. Затем запускаем iperf, выступающий сервером, на ПК за пределами нашего коммутатора, маркирующего трафик:
iperf -s -B <ip адрес сервера, на котором работает iperf> -i 1
И iperf, выступающий клиентом, на нашем ПК.
iperf -c <ip адрес сервера, к которому подключается клиент> -t 360
Далее добавляем правила ACL и смотрим как изменилась ситуация.
Так же QoS можно протестировать организовав с помощью iperf UDP поток, по нему будет видно количество потерянных пакетов до и после включения правил ACL. iperf тогда запускаем с такими параметрами:
iperf -s -u -B <ip адрес сервера, на котором работает iperf> -i 1 iperf -c <ip адрес сервера, к которому подключается клиент> -u -P 1 -i 1 -f m -b 10M -t 360