Пример управления трафиком
Данный пример конфигурации демонстрирует практическое применение таких механизмов QoS как:
- Ограничение общей полосы пропускания.
- Приоритезация трафика на основе DSCP.
- Распределение ширины полосы пропускания между очередями.
Постройте схему в соответствии с рисунком ниже.
Схема состоит из маршрутизатора EcoRouter посередине и двух оконечных устройств выступающих в роли генераторов трафика.
Настройте ECO-1:
enable
configure
hostname ECO-1
# Настройка портов и интерфейсов
interface 2ge0
ip address 192.168.1.1/24
port ge0
service-instance 4ge0
encapsulation untagged
connect ip interface 2ge0
interface 2ge1
ip address 192.168.2.1/24
port ge1
service-instance 4ge1
encapsulation untagged
connect ip interface 2ge1
# Создание профиля трафика
traffic-profile profile-dscp
# Создание политик обслуживания
service-policy policy
bandwidth percent 100
traffic-profile profile-dscp
service-policy policer.1
bandwidth kbps 3000
traffic-profile profile-dscp
# Применение политики обслуживания к экземпляру сервиса
port ge1
service-instance 4ge1
service-policy policer.1 out
Настройте интерфейс и маршрутизацию на Generator-1:
ip a a 192.168.1.2/24 dev eth0
ip route add default via 192.168.1.1
Настройте интерфейс и маршрутизацию на Generator-2:
ip a a 192.168.2.2/24 dev eth0
ip route add default via 192.168.2.1
На Generator-1 выполните команду ping
в адрес Generator-2:
ping 192.168.2.2 -c 5
PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
64 bytes from 192.168.2.2: icmp_seq=1 ttl=63 time=20.6 ms
. . .
--- 192.168.2.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 19.919/20.428/20.873/0.393 ms
Вы должны получить успешный результат (все пакеты переданы и получены) .
На Generator-2 в режиме сервера на порту 5202 запустите утилиту iperf3: iperf3 -s -D -p 5202
.
На Generator-1 для измерения пропускной способности запустите утилиту iperf3.
iperf3 -c 192.168.2.2 -p 5202 -t 30 -S 0 -b 10M -l 8 --logfile out_iperf
cat out_iperf | grep Mbits | tail -n 1
[ 6] 0.00-30.02 sec 11.3 MBytes 3.14 Mbits/sec receiver
Утилита iperf3
с указанными параметрами отправляет данные на порт 5202 Generator-2 со скоростью 10 Мбит/с и сохраняет значения измерений за период в 30 секунд в файл out_iperf. Команда cat
выводит на экран предпоследнюю строку файла out_iperf, которая содержит среднее значение скорости приёма данных.
Полученная средняя скорость в “3.14 Mbits/sec” приблизительно соответствует заданному в политике policer.1 значению в 3000 Кбит/сек. Политика ограничения пропускной способности функционирует верно.
Для дополнительной проверки вы можете изменить значение пропускной способности в политике обслуживания и повторить измерения.
На ECO-1 настройте дополнительные политики обслуживания, карты классов трафика, профили трафика и планировщик очередей:
# Установка нового значения пропускной способности политики обслуживания
service-policy policer.1
bandwidth kbps 3550
# Создание карт классов трафика
class-map IPP0
match dscp 0
class-map IPP1
match dscp 1
class-map IPP3
match dscp 2
class-map IPP5
match dscp 3
# Создание профиля трафика
traffic-profile profile-dscp
class IPP0
class IPP1
class IPP2
class IPP3
class IPP5
# Создание планировщика очередей трафика
traffic-scheduler pqwrr.0
queue 0
class IPP0 cir mbps 1 pir mbps 2
exit
queue 1
class IPP1 cir kbps 500 pir kbps 800
exit
queue 2
class IPP3 cir kbps 500 pir kbps 500
exit
queue 3
class IPP5 cir kbps 100 pir kbps 250
exit
# Применение планировщика очередей к политике обслуживания
service-policy policer.1
scheduler pqwrr.0
# Применение политики обслуживания к экземпляру сервиса
port ge0
service-instance 4ge0
service-policy policy in
На Generator-2 запустите четыре экземпляра утилиты iperf3 в режиме сервера:
# Удаление ранее запущенных экземпляров серверов iperf3
pkill -f iperf3
# Запуск экземпляров сервера iperf3 на 4 портах для 4 потоков данных
iperf3 -s -D -p 5210
iperf3 -s -D -p 5211
iperf3 -s -D -p 5212
iperf3 -s -D -p 5213
На Generator-1 запустите четыре экземпляра утилиты iperf3 в режиме клиента :
iperf3 -c 192.168.2.2 -p 5210 -t 300 -S 0 -b 10M -l 8 --logfile out_iperf_2 &
iperf3 -c 192.168.2.2 -p 5211 -t 300 -S 4 -b 10M -l 8 --logfile out_iperf_3 &
iperf3 -c 192.168.2.2 -p 5212 -t 300 -S 8 -b 10M -l 8 --logfile out_iperf_4 &
iperf3 -c 192.168.2.2 -p 5213 -t 300 -S 12 -b 10M -l 8 --logfile out_iperf_5 &
Утилита iperf3 трафика будет генерировать трафик в течении 5 минут, как это задано значением при ключе -t
.
Перейдите на ECO-1 и, при необходимости, очистите данные статистики по очередям командой clear counters port ge1 queues
.
На ECO-1 проверьте наполняемость очередей пакетами:
ecorouter#sh counters port ge1 queues brief
Port ge1
Service instance 4ge1
Traffic scheduler pqwrr.0
Early detection algorithm: None RED-drop
QoS Statistics: packets/bytes
0/0
Match
queue class packets/bytes
0 IPP0 1230/1805146
1 IPP1 569/855727
2 IPP3 428/642253
3 IPP5 151/222875
4 --- 0/0
5 --- 0/0
6 --- 0/0
7 default 4/222
На ECO-1 проверьте скорость передачи данных с разбивкой по очередям:
ecorouter#show counters port ge1 queues-speed
Port ge1
Service instance 4ge1
queue class match/bps pass/bps match/pps pass/pps
0 IPP0 2.131 m 1.982 m 176 163
1 IPP1 956.848 k 787.280 k 79 65
2 IPP3 662.120 k 512.736 k 54 42
3 IPP5 387.584 k 246.272 k 32 20
4 ----- 0 0 0 0
5 ----- 0 0 0 0
6 ----- 0 0 0 0
7 default 0 0 0 0
total 4.138 m 3.528 m 341 290
Данная команда выдаёт моментальную скорость передачи и выдаваемые показатели колеблются, тем не менее, они держатся приблизительно в пределах заданных в планировщике очередей.
Чтобы убедиться, что на длительном периоде (5 минут) средняя скорость довольно точно укладывается в заданные планировщиком показатели PIR, обратитесь к содержимому файлов out_iperf_2, out_iperf_3, out_iperf_4, out_iperf_5 на Generator-1. Файлы являются результатом работы экземпляров утилиты iperf3, содержат посекундные данные скорости и усреднённые значения в конце.