Пример управления трафиком

Данный пример конфигурации демонстрирует практическое применение таких механизмов 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, содержат посекундные данные скорости и усреднённые значения в конце.