Товари
 
Виробники
 
Новини
 
Статті

Traffic Generator в роутерах MikroTik

16.10.2012
  1. Выбор портов для тестирования
  2. Подключение роутеров
  3. Тестирование производительности маршрутизации (Routing)
  4. Тестирование производительности моста (Bridging)

 

Не за горами выход стабильной версии операционной системы RouterOS 6, но уже сейчас можно опробовать ее предварительный релиз RouterOS 6.0rc1. Скачать его можно здесь http://www.mikrotik.com/download.

В RouterOS 6 появился новый инструмент traffic generator, который позволяет проводить тестирование производительности без затрат на дорогостоящее оборудование для тестирования. Трафик генерируется с одного из роутеров в локальной сети.

Эта статья расскажет о том, как сконфигурировать оборудование MikroTik для проведения тестов производительности. В качестве оборудования будут использоваться два высокопроизводительных маршрутизатора MikroTik RB1100AHx2.

 

Выбор портов для тестирования

Сначала нужно выбрать, какие порты RB1100AHx2 мы будем использовать для тестирования.

На схеме ниже, можно определить, какие порты подключены к CPU и дадут максимальную скорость. Это следующие порты:

  • порты от Gigabit Switch1 к портам Gigabit Switch2;
  • порт Eth11 к Gigabit Switch1/2;
  • порты Eth12/13 к Gigabit Switch1/2 или к Eth11.

Чтобы получить максимальную производительность от RB1100AHx2 мы запустим 6 потоков:

  • oт Eth1 к Eth6 (зеленый маршрут на схеме)
  • oт Eth1 к Eth11 (зеленый маршрут на схеме)
  • от Eth6 к Eth1 (красный маршрут на схеме)
  • от Eth6 к Eth11 (красный маршрут на схеме)
  • от Eth11 к Eth6 (желтый маршрут на схеме)
  • от Eth11 к Eth1 (желтый маршрут на схеме)

В нашем тестировании один роутер RB1100AHx2 будет тестируемым, назовем его DUT (device under test). Второй роутер будет генерировать трафик, назовем его Traffic Generator.

 

Подключение роутеров

Внимание! Операционная система RouterOS версии 6 должна быть установлена на двух роутерах.

Подключите сетевой кабель как на следующем рисунке: Eth1 к Eth1, Eth6 к Eth6, Eth11 к Eth11

Порты Eth12 будут использованы в тесте, когда будет достигнута максимальная скорость по проводным интерфейсам.

Теперь приступим к настройке роутеров. В первом тесте роутер будет выполнять маршрутизацию (layer3), а во втором будет бриджем (layer2).

 

Тестирование производительности маршрутизации (Routing)

Выполняем в терминале настройку роутеров.

DUT Config - настройка тестируемого роутера

/ip address
add address=1.1.1.254/24 interface=ether1 network=1.1.1.0
add address=2.2.2.254/24 interface=ether6 network=2.2.2.0
add address=3.3.3.254/24 interface=ether11 network=3.3.3.0
 

Traffic Generator Config - настройка генератора трафика

/ip address
add address=1.1.1.1/24 interface=ether1 network=1.1.1.0
add address=2.2.2.2/24 interface=ether6 network=2.2.2.0
add address=3.3.3.3/24 interface=ether11 network=3.3.3.0

/tool traffic-generator packet-template
add name=r12 header-stack=mac,ip,udp ip-gateway=1.1.1.254 ip-dst=2.2.2.2
add name=r13 header-stack=mac,ip,udp ip-gateway=1.1.1.254 ip-dst=3.3.3.3
add name=r21 header-stack=mac,ip,udp ip-gateway=2.2.2.254 ip-dst=1.1.1.1
add name=r23 header-stack=mac,ip,udp ip-gateway=2.2.2.254 ip-dst=3.3.3.3
add name=r32 header-stack=mac,ip,udp ip-gateway=3.3.3.254 ip-dst=2.2.2.2
add name=r31 header-stack=mac,ip,udp ip-gateway=3.3.3.254 ip-dst=1.1.1.1
 

 

Запуск тестов

Для запуска теста в traffic-generator используется размер пакета 60 байт, чтобы получить пакет размером 64 байта на ethernet.

/tool traffic-generator
quick tx-template=r12,r13,r21,r23,r31,r32 packet-size=60 mbps=300
[admin@TrafficGen] > /tool traffic-gen quick tx-template=r12,r13,r21,r23,r31,r32 packet-size=60
mbps=120
24     0         185 422  91.9Mbps       185 190  88.8Mbps                     232   3.0Mbps 16us
24     1         213 397 105.8Mbps       212 747 102.1Mbps                     650   3.7Mbps 10.6us
24     2         186 245  92.3Mbps       186 185  89.3Mbps                      60   3.0Mbps 16.4us
24     3         213 685 105.9Mbps       212 961 102.2Mbps                     724   3.7Mbps 10.8us
24     4         249 142 119.5Mbps       180 400  86.5Mbps                  68 742  32.9Mbps 13.2us
24     5         249 141 119.5Mbps       193 158  92.7Mbps                  55 983  26.8Mbps 11.1us
24     TOT     1 297 032 635.3Mbps     1 170 641 561.9Mbps                 126 391  73.4Mbps 10.6us

Проверим, выполняется ли переадресация на тестируемом устройстве DUT:
 

[admin@DUT] > /interface monitor-traffic aggregate,ether1,ether6,ether11
                     name:               ether1    ether6   ether11
    rx-packets-per-second:  1 235 620   481 094   487 045   267 469
      rx-drops-per-second:          0         0         0         0
     rx-errors-per-second:          0         0         0         0
       rx-bits-per-second:  593.0Mbps 230.9Mbps 233.7Mbps 128.3Mbps
    tx-packets-per-second:  1 233 862   360 750   360 402   512 692
      tx-drops-per-second:          0         0         0         0
     tx-errors-per-second:          0         0         0         0
       tx-bits-per-second:  603.9Mbps 178.9Mbps 178.7Mbps 246.0Mbps

После выполнения теста вы можете заметить, что общая пропускная способность при размере пакетов 64 байта составляет 1 170 641pps, что гораздо быстрее, чем в тестах на routerboard.com.

Это потому что по умолчанию используется режим fast-path. Этот режим позволяет передавать пакеты без дополнительной обработки в ядре Linux и значительно повышает скорость передачи данных.

 

Включим отслеживание соединений на тестируемом роутере DUT:

/ip firewall connection tracking set enabled=yes

Теперь снова запускаем тест. Как видите, теперь тесты соответствуют значениям производительности, заявленным на routerboard.com.

46     0         249 793 123.8Mbps       127 410  61.1Mbps                 122 383  62.7Mbps 3.22ms
46     1         249 791 123.8Mbps        87 232  41.8Mbps                 162 559  82.0Mbps 5.2ms
46     2         249 792 123.8Mbps       127 424  61.1Mbps                 122 368  62.7Mbps 3.15ms
46     3         249 792 123.8Mbps        87 219  41.8Mbps                 162 573  82.0Mbps 5.18ms
46     4         249 792 119.9Mbps        40 492  19.4Mbps                 209 300 100.4Mbps 5.54ms
46     5         249 791 119.8Mbps        46 736  22.4Mbps                 203 055  97.4Mbps 5.41ms
46     TOT     1 498 751 735.3Mbps       516 513 247.9Mbps                 982 238 487.4Mbps 3.15ms

Теперь можем добавить дополнительные правила брандмауэра, очереди или любую другую конфигурацию и посмотреть, как маршрутизатор будет реально справляться.

 

Добавим несколько правил фаервола

Мы защитим локальную сеть от нежелательного трафика. Добавим правила по умолчанию, которые должны присутствовать в любом фаерволе:

/ip firewall filter
add chain=forward protocol=tcp connection-state=invalid \
    action=drop comment="drop invalid connections"
add chain=forward connection-state=established action=accept \
    comment="allow already established connections"
add chain=forward connection-state=related action=accept \
    comment="allow related connections"

Теперь будет потеряно около 18% пакетов

53     TOT     1 492 520 732.3Mbps       435 546 209.0Mbps               1 056 974 523.2Mbps 3.08ms

Добавим другие правила фаервола, чтобы посмотреть, как количество правил фаервола влияет на производительность роутера.

/ip firewall filter
add chain=forward protocol=icmp action=jump jump-target=icmp 

add chain=icmp protocol=icmp icmp-options=0:0 action=accept \
 comment="echo reply"  
add chain=icmp protocol=icmp icmp-options=3:0 action=accept \
 comment="net unreachable"  
add chain=icmp protocol=icmp icmp-options=3:1 action=accept \
 comment="host unreachable"
add chain=icmp protocol=icmp icmp-options=3:4 action=accept \
 comment="host unreachable fragmentation required"  
add chain=icmp protocol=icmp icmp-options=4:0 action=accept \
 comment="allow source quench"  
add chain=icmp protocol=icmp icmp-options=8:0 action=accept \
 comment="allow echo request"  
add chain=icmp protocol=icmp icmp-options=11:0 action=accept \
 comment="allow time exceed"  
add chain=icmp protocol=icmp icmp-options=12:0 action=accept \
 comment="allow parameter bad"  
add chain=icmp action=drop comment="deny all other types"

Как видите, производительность осталась практически без изменений. Вы можете добавить любое количество правил и увидеть, что они слабо влияют на производительность маршрутизатора.

33 TOT 1 500 908 736.4Mbps 424 197 203.6Mbps 1 076 711 532.8Mbps 4.07ms

 

Выполним тестирование с различными размерами пакетов:

/tool traffic-generator
quick tx-template=r12,r13,r21,r23,r31,r32 packet-size=508 mbps=500
/tool traffic-generator
quick tx-template=r12,r13,r21,r23,r31,r32 packet-size=1514 mbps=500

Если мы запустим тест с размером пакетов 1518 байт, то максимальная пропускная способность будет только 2.9 Гбит/с. Это потому что на проводных интерфейсах достигнута максимальная скорость передачи данных.

Для проведения теста добавим еще один порт и потоки. Подключите сетевой кабель к портам Eth12 на двух роутерах и выполните следующую настройку:

DUT - тестируемый роутер:

/ip address
add address=4.4.4.254/24 interface=ether12

Traffic Generator - генератор трафика:

/ip address
add address=4.4.4.4/24 interface=ether12

/tool traffic-generator packet-template
add header-stack=mac,ip,udp ip-dst=4.4.4.4/32 ip-gateway=1.1.1.254 ip-src=1.1.1.1/32 name=\
    r14
add header-stack=mac,ip,udp ip-dst=4.4.4.4/32 ip-gateway=2.2.2.254 ip-src=2.2.2.2/32 name=\
    r24
add header-stack=mac,ip,udp ip-dst=4.4.4.4/32 ip-gateway=3.3.3.254 ip-src=3.3.3.3/32 name=\
    r34
add header-stack=mac,ip,udp ip-dst=1.1.1.1/32 ip-gateway=4.4.4.254 ip-src=4.4.4.4/32 name=\
    r41
add header-stack=mac,ip,udp ip-dst=2.2.2.2/32 ip-gateway=4.4.4.254 ip-src=4.4.4.4/32 name=\
    r42
add header-stack=mac,ip,udp ip-dst=3.3.3.3/32 ip-gateway=4.4.4.254 ip-src=4.4.4.4/32 name=\
    r43

Запустим тест:

/tool traffic-generator quick tx-template=r12,r13,r14,r21,r23,r24,r31,r32,r34,r41,r42,r43
packet-size=1514 mbps=350

Как видите, мы получили скорость 3.7 Гбит/с.

30     6          23 472 284.2Mbps        23 328 282.5Mbps                     144 1744.1... 3.22ms
30     7          28 890 349.9Mbps        28 741 348.1Mbps                     149 1804.6... 1.74ms
30     8          28 889 349.9Mbps        26 870 325.4Mbps                   2 019  24.4Mbps 984us
30     9          23 455 284.0Mbps        23 083 279.5Mbps                     372   4.5Mbps 866us
30     10         28 876 349.7Mbps        28 709 347.7Mbps                     167   2.0Mbps 922us
30     11         28 875 349.7Mbps        27 277 330.3Mbps                   1 598  19.3Mbps 3.33ms
30     TOT       323 389   3.9Gbps       311 743   3.7Gbps                  11 646 143.6Mbps 341us

Если включить все предыдущие правила фаервола, то мы получим скорость 2.8 Гбит/с, что примерно на 30% медленнее:

18     TOT       275 405   3.3Gbps       238 143   2.8Gbps                 37 262 453.9Mbps 1.57ms

Примечание: Поскольку скорость в режиме quick mode указана на поток, то если у вас есть два потока на каждом порту, вам необходимо отправить 1/2 от трафика на поток.

 

Тестирование производительности моста (Bridging)

DUT Config - настройка тестируемого роутера

/interface bridge add
/interface bridge port
add bridge=bridge1 interface=ether1
add bridge=bridge1 interface=ether6
add bridge=bridge1 interface=ether11

Traffic Generator Config - настройка генератора трафика

/ip address
add address=1.1.1.1/24 interface=ether1 network=1.1.1.0
add address=2.2.2.2/24 interface=ether6 network=2.2.2.0
add address=3.3.3.3/24 interface=ether11 network=3.3.3.0

/tool traffic-generator packet-template
add header-stack=mac,ip,udp ip-src=1.1.1.1/32 ip-dst=2.2.2.2/32 name=b12
add header-stack=mac,ip,udp ip-src=1.1.1.1/32 ip-dst=3.3.3.3/32 name=b13
add header-stack=mac,ip,udp ip-src=2.2.2.2/32 ip-dst=1.1.1.1/32 name=b21
add header-stack=mac,ip,udp ip-src=2.2.2.2/32 ip-dst=3.3.3.3/32 name=b23
add header-stack=mac,ip,udp ip-src=3.3.3.3/32 ip-dst=1.1.1.1/32 name=b31
add header-stack=mac,ip,udp ip-src=3.3.3.3/32 ip-dst=2.2.2.2/32 name=b32

Запускаем тесты

/tool traffic-generator
quick tx-template=b12,b13,b21,b23,b31,b32 packet-size=60 mbps=200
/tool traffic-generator
quick tx-template=b12,b13,b21,b23,b31,b32 packet-size=508 mbps=500
/tool traffic-generator
quick tx-template=b12,b13,b21,b23,b31,b32 packet-size=1514 mbps=500

С небольшими пакетами мы получаем примерно 1,4 млн. пакетов в секунду.

187    0         195 659  97.0Mbps       195 640  93.9Mbps                      19   3.1Mbps 22us
187    1         236 906 117.5Mbps       221 901 106.5Mbps                  15 005  10.9Mbps 18.7us
187    2         202 678 100.5Mbps       202 678  97.2Mbps                       0   3.2Mbps 18.7us
187    3         238 750 118.4Mbps       231 348 111.0Mbps                   7 402   7.3Mbps 12.1us
187    4         263 906 126.6Mbps       256 146 122.9Mbps                   7 760   3.7Mbps 23.9us
187    5         263 906 126.6Mbps       256 030 122.8Mbps                   7 876   3.7Mbps 14.3us
187    TOT     1 401 805 686.8Mbps     1 363 743 654.5Mbps                  38 062  32.2Mbps 12.1us

С размером пакетов 1518 байт мы получим на проводных интерфейсах максимальную скорость передачи 2.9 Гбит/с. Поэтому нужно использовать порты Eth12 и добавить несколько потоков, как в тесте маршрутизации (Routing).

11     TOT       243 587   2.9Gbps       241 695   2.9Gbps                   1 892  25.5Mbps 1.04ms

 

Друкована версія Поділіться статтею:
  • Звичайна форма
  • Facebook

Відгуки про статтю

  Оцінка: 5, Голосів: 1, Коментарів: 1

Залишити коментар
Ваше ім’я: *
Ваша пошта:  

Коментар: *
Оцiнка:  
Введіть символи: *
Поновити
 
Oleg 29.10.2024 20:08:01
Отличная статья, спасибо!
Сторінки: 1
Магазин
Техпідтримка
Наші партнери
   
© 2003–2024 «Компанія ТехноТрейд»
інтернет-магазин мережевого обладнання
×
×
Валюта: