После определения целей и методологий в предыдущих двух статьях начинаем публиковать результаты тестирования оборудования.
Рассмотрим ситуацию, когда маршрутизатор обеспечивает только подключение некоторого офиса к сети Интернет. Какие функции мы на нём используем в этом случае? Как правило, помимо статической маршрутизации это будут NAT/PAT и какой-то из вариантов МСЭ: CBAC или ZBF. В данной статье представлены результаты тестирования NAT и Firewall по отдельности и при одновременном использовании. Напомню, что для тестов мы используем 10 односторонних UDP потоков. Т.е. получаем оценку максимальной производительности МСЭ, поскольку используем базовые конфигурации без глубокого инспектирования.
Конфигурации оборудования
Базовая конфигурация была описана ранее:
Схемы и методология нагрузочного тестирования
Конфигурация PAT
interface GigabitEthernet0/0
ip nat inside
interface GigabitEthernet0/1
ip nat outside
ip access-list extended NAT
permit ip 172.25.1.0 0.0.0.255 any
ip nat inside source list NAT interface gi0/1 overload
Конфигурация CBAC
# Тестирование осуществляется UDP потоками
ip inspect name FW udp
ip inspect name FW tcp
ip inspect name FW icmp
ip inspect name FW ftp
ip access-list extended DENY
deny ip any any
interface gi0/0
ip inspect FW in
interface gi0/1
ip access-group DENY in
Конфигурация ZBF
# Тестирование осуществляется UDP потоками
zone security INSIDE
zone security OUTSIDE
class-map type inspect match-any PROT
match protocol udp
match protocol tcp
match protocol icmp
match protocol ftp
policy-map type inspect INS-OUT
class type inspect PROT
inspect
class class-default
drop
interface gi0/0
zone-member security INSIDE
interface gi0/1
zone-member security OUTSIDE
zone-pair security INS-OUT source INSIDE destination OUTSIDE
service-policy type inspect INS-OUT
Результаты тестирования
На рисунке ниже приведены графики зависимости загрузки процессора маршрутизатора от скорости приёма пакетов RxRate для различных размеров кадров (100, 400 и 1400 байт). Загрузка процессора — по горизонтали (в процентах), RxRate — по вертикали (в Мбит/c). Красные крестики на графиках обозначают точку, когда начинаются потери пакетов (loss > 0.001), и при увеличении TxRate рост RxRate ещё происходит (с увеличением процента потерь), но не выше максимального значения, отражённого на графиках. Точками на графиках обозначены результаты значений, собранных итерациями скрипта в IxNetwork.
Приведём ещё один рисунок. Здесь RxRate выраженна не в в Мбит/c, а в виде количества кадров/пакетов в секунду FPS (frames per seconds).
Получается, что размер кадра не влияет на производительность маршрутизатора, выраженную в fps (или pps). Это интересный, но объяснимый факт — маршрутизатор при включенных нами технологиях обрабатывает только заголовки пакетов, и поэтому размер полезной нагрузки никак не влияет на количество выполняемых процессором операций. Т.е. мы можем рассчитать пропускную способность маршрутизатора, выраженную в Мбит/c для любого размера кадра, путём умножения FPS на соответствующий размер кадра.
Цифры
В таблице ниже приведены значения FPS (брались на основе тестов с frame size = 400 байт), а также во сколько раз по сравнению со статической маршрутизацией снижается производительность при включении той или иной функции/технологии:
Выводы
1) Для значений от 75% и выше зависимость загрузки процессора от скорости передачи носит линейный характер;
2) ZBF нагружает маршрутизатор сильнее, чем CBAC;
3) Включение NAT сильно снижает производительность маршрутизатора;
4) Для IMIX трафика (frame size = 400 байт) Cisco 1921 при включенном NAT и МСЭ подходит для симметричного канала в 30 Мбит/c.
В следующей статье обсудим влияние QoS, GRE и IPSec на максимальную пропускную способность маршрутизатора, а в этой напоследок задачка…
Задачка на сообразительность
А можно ли, к примеру, зная результаты тестов отдельно для NAT и отдельно для ZBF, рассчитать результаты теста NAT + ZBF?
Метки: IXIA, router, МСЭ
Опубликовано: Маршрутизаторы и коммутаторы
Серж, а приведи для ленивых еще табличку со скоростью передачи данных в МБИТ/СЕК для приведенных FPS для разного размера пакетов. Считать лень.
Т.е я бы взял столбец 75% CPU и перемножил на 100, 400 и 1400 байт.