ADSL 2/2+ маршрутизатор и IPSEC PPTP и L2TP VPN-сервер со встроенной беспроводной точкой доступа стандарта IEEE 802.11g D-Link DSL-G804V

часть 2: тестирование VPN-серверов и QOS-шейпинга устройства


В прошлой части обзора были рассмотрены настройки устройства и производительность его базовых функций. В этой части обзора будут рассмотрены настройки и производительность VPN-сервера, а также возможности шейпинга трафика устройства.

 

Содержание:

 

Устройство содержит в себе сразу 3 VPN-сервера: PPTP, IPSec, L2TP.

PPTP-сервер поддерживает PAP/CHAP-аутентификацию, а также 40-битное и 128-битное MPPE-шифрование. IPSec VPN-сервер позволяет производить авторизацию только по предварительному ключу и использовать DES, 3DES, AES128, AES192, AES256 шифрование. L2TP VPN-сервер позволяет использовать PAP/CHAP аутентификацию и использовать те же алгоритмы шифрования, что и IPSec VPN-сервер.

Все тесты проводились при использовании режима ADSL2+ как позволяющего развить максимальную скорость.

IPSec VPN-сервер

Как уже говорилось выше, IPSec VPN-сервер позволяет использовать 5 видов шифрования: DES, 3DES, AES128, AES192, AES256. Так как ОС Windows XP не поддерживает AES-шифрования, для тестирования были использованы стендовые компьютеры под управлением ОС Gentoo Linux 2.6.11. В спецификации на устройство на сайте компании D-Link сказано, что оно имеет аппаратное ускорение алгоритма 3DES. О количестве возможных одновременных VPN-соединений ничего не говорится. Также устройство не позволяет устанавливать ключи в ручном режиме — их получение возможно только через механизм IKE (Internet Key Exchange).

При тестировании создавались туннели со следующими параметрами:

  • Обмен ключами: IKE
  • Хеш: SHA1

Туннели создавались между роутером и компьютером под управлением Gentoo Linux, находящимся в WAN-сегменте роутера. Тесты проводились с использованием 3DES, AES128 и AES256 шифрования. DES-шифрование считается уже недостаточно криптостойким, поэтому тесты с его использованием не проводились. AES128 — AES-шифрование со стандартной длиной ключа, равной 128 битам. AES256 — AES-шифрование с удвоенной длиной ключа, равной 256 битам. Тестирование производительности при использовании шифрования AES192 также не проводилось — результаты скорости должны быть средней величиной между результатами при использовании AES128 и AES256 шифрования.

Сокращения:

  • WAN — стендовый компьютер под управлением Gentoo Linux 2.6.11, находящийся в WAN-сегменте роутера
  • LAN — компьютер, находящийся в LAN-сегменте роутера
  • fdx — fullduplex mode — полнодуплексный режим

Производительность IPSec, 1 туннель.

Посмотрим на полученные результаты: по тестам в полудуплексном режиме видно, что реализация аппаратного 3DES ускорения в устройстве действительно присутствует и прекрасно работает. При его использовании скорость прямого канала составляет 7,765 Мбит/с. Скорость трафика при использовании AES-шифрования значительно ниже и составляет 3,164 Мбит/с при использовании AES128 и 2,536 Мбит/с при использовании AES256 шифрования. 

Производительность IPSec, 2 туннеля

Судя по графику, 3DES-шифрование снова занимает лидирующие позиции по скорости. Максимальная скорость при его использовании: 8.23 Мбит/с. Остальные скорости остаются примерно на том же уровне.

Производительность IPSec, 3 туннеля

Полудуплексный режим

Полнодуплексный режим

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

Максимальная скорость трафика при использовании 3DES-шифрования составляет ~8,5 Мбит/с.

PPTP VPN-сервер

PPTP VPN-сервер устройства позволяет устанавливать PPTP-соединения с использованием как PAP, так и CHAP аутентификации. Возможно использование MPPE (Microsoft Point-to-Point Encryption) шифрования с ключом длиной 40 и 128 бит.

Однако при создании аккаунта, указание типа аутентификации никак не влияет на устанавливаемое соединение. То есть при попытке установить соединение из-под Windows XP с параметрами по умолчанию, постоянно использовалась MS-CHAPv2 аутентификация, даже если в параметрах аккаунта четко было сказано использовать только PAP-аутентификацию. Использовать именно PAP-аутентификацию можно, только отключив CHAP на стороне клиента. Возможно также использование сервера в качестве PPTP-клиента. При использовании PAP-аутентификации, невозможно использование шифрования.

После создания аккаунта, его можно включить и выключить. Параметры включенного аккаунта нельзя изменять.

Тестирование проводилось только при использовании 128-битного MPPE-шифрования.

Список включенных аккаунтов и установленных соединений можно увидеть в окне статуса PPTP-соединений

В качестве клиентов выступали стендовые компьютеры под управлением ОС Windows XP.

Сокращения:

  • LAN — компьютер в LAN-сегменте роутера, генерирующий трафик. Этот компьютер не участвует в шифровании
  • WAN — компьютер в WAN-сегменте роутера, он является PPTP-клиентом и непосредственно шифрует трафик

1 PPTP туннель, MPPE128-шифрование

Максимальная скорость: 6,062 Мбит/с

2 PPTP туннеля, MPPE128-шифрование

Максимальная скорость немного повысилась по сравнению с аналогичным тестом с использованием 1-го PPTP-туннеля.

3 PPTP туннеля, MPPE128-шифрование

Полудуплексный режим

Полнодуплексный режим

Максимальная скорость при использовании PPTP-сервера — 6,663 Мбит/с.

При использовании PPTP-сервера без использования шифрования, скорость трафика существенно возрастает и составляет 13,625 Мбит/с.

L2TP VPN-сервер

L2TP VPN-сервер использует для шифрования IPSec (с использованием алгоритмов DES, 3DES, AES128, AES192, AES256), а аутентификация производится при использовании протоколов PAP/CHAP.

При использовании встроенных в Windows XP средств VPN, использование любого алгоритма из набора AESxxx-алгоритмов шифрования невозможно (Windows XP попросту не поддерживает AES-шифрование). По этой причине тестирование проводилось только при использовании 3DES-шифрования.

В качестве клиентов использовались стендовые компьютеры под управлением Windows XP SP2.

Сокращения:

  • LAN — компьютер в LAN-сегменте роутера, генерирующий трафик. Этот компьютер не участвует в шифровании
  • WAN — компьютер в WAN-сегменте роутера, он является L2TP-клиентом и непосредственно шифрует трафик

1 L2TP-туннель, 3DES-шифрование

Максимальная скорость: 13,436 Мбит/с.

2 L2TP-туннеля, 3DES-шифрование

Максимальная скорость: 15,097 Мбит/с. Максимальная скорость несколько выросла по сравнению с аналогичным тестом с одним L2TP-туннелем.

3 L2TP-туннеля, 3DES-шифрование

В полудуплексном режиме

В полнодуплексном режиме

Максимальная скорость: 15,488 Мбит/с — при использовании трех туннелей максимальная скорость возросла по сравнению со скоростью, полученной при использовании двух туннелей.

При отключении шифрования, максимальная скорость трафика составила 13,377 Мбит/с (при использовании первого туннеля). Явно видно, что аппаратное ускорение 3DES шифрования прекрасно работает и практически не влияет на скорость трафика, однако не ясно, почему при использовании 3DES-шифрования в IPSec VPN сервере не удается достичь столь высоких скоростей.

Теперь перейдем к возможностям шейпинга трафика устройства.

IP QoS

Рассматриваемый роутер позволяет производить шейпинг трафика в зависимости от адресов источника и назначения, протоколов (tcp/udp/icmp/gre) и портов (в случае использования протоколов tcp или udp). Шейпинг трафика можно производить дискретно с шагом в 32 кбит/с. Правила шейпинга задаются отдельно для входящего и исходящего трафика.

Рассмотрим настройку шейпинга трафика более подробно:

Каждому правилу шейпинга можно сопоставить расписание.

Помимо этого есть возможность приоритезации пакетов, и возможность проставлять биты ToS в зависимости от адресов источника/назначения, протоколов и портов (в случае использования TCP или UDP протокола). Приоритезацию можно проводить только для исходящего трафика — это сделано для того, чтобы при полной загрузке обратного канала один поток не занял всю ширину обратного канала (которая в технологии ADSL значительно меньше ширины прямого канала).

Для трафика с высоким приоритетом резервируется 60% ширины канала, для нормального приоритета — 30% и для трафика с низким приоритетом — 10% ширины канала.

Проведем для начала тесты с дискретным указанием ширины канала. Начнем с шейпинга трафика прямого канала.

Тест 1: ширина прямого канала устанавливалась в 32 кбит/с (значение Rate Limit равнялось 1). Тест проводился на пакетах максимального размера. Посмотрим, насколько точно результат соответствует установленным параметрам.

Как можно увидеть, скорость трафика достаточно точно соответствует заданным параметрам. Скорость трафика составляет 0,031 Мбит/с (30,272 Кбит, при учете, что 1 Кбит/с = 1024 бит/с).

Тест 2: Теперь увеличим ширину прямого канала в 10 раз по сравнению с предыдущим тестом до 320 кбит/с (значение Rate Limit составляет 10).

Скорость трафика возросла в 10 раз по сравнению с предыдущим тестом и составила 0,312 Мбит/с.

Тест 3: Теперь посмотрим, насколько изменится скорость трафика при изменении ширины канала на малую величину. Изменим значение параметра Rate Limit на 1 по сравнению с предыдущим тестом (теперь оно равно 11). Ширина канала должна измениться на 32 кбит/с.

Скорость трафика составляет 0.338 Мбит/с — то есть скорость трафика изменилась на 0,026 Мбит/с (по идее должна была измениться на 0,032 Мбит/с, ошибка составляет около 15%). Видимо, при увеличении ширины канала, точность исполнения правил шейпера несколько падает.

Далее я попробовал провести тесты с несколькими потоками, задав им различную ширину канала, но столкнулся с некоторыми сложностями в настройке. При попытке создать 2 правила, со значениями Rate Limit равными 10 и 50, я получил следующую картину:

То есть создавая первое правило (с названием "abc") все прошло нормально, но при создании второго правила (с названием "djn"), значение параметра Rate Limit устанавливалось в значение 32, вместо заданных 50. Если те же операции проделать в обратном порядке (сначала создать поток с Rate Limit равным 50, а затем с Rate Limit равным 10), то получится следующая картина

В ряде случаев мне удавалось получить даже такую картину

и честно говоря, мне не особо понятно, чем вызвано такое расхождение задаваемых с установившимися параметрами (на последнем рисунке задаваемые значения Rate Limit составляют 50 и 70 соответственно). Не всегда задавая одни и те же значения, я получал одинаковые значения установившихся значений. 

Тест 4: Было создано 2 правила. Ширина канала, заданная в первом правиле составляет 10 * 32 кбит/с (значение Rate Limit равно 10), а во втором правиле — 40 * 32 кбит/с (значение Rate Limit равно 40). Установившиеся значения Rate Limit показаны на скриншоте

Как видим, на заданные значения Rate Limit 10 и 40, установившиеся значения составили 10 и 25. Посмотрим на результаты теста

Как видно из графика, различия в скоростях потока больше схожи с установившемся распределением значений Rate Limit (10/25), нежели с заданным (10/40).

В случае с обратным каналом, тесты с использованием одного потока, практически полностью повторяют картину, полученную при тестировании прямого канала. При создании нескольких правил шейпинга, таких проблем как с прямым каналом (когда заданные значения Rate Limit не соответствуют установившимся параметрам) не наблюдалось — любые значения устанавливались без проблем

При тестировании шейпинга трафика при использовании нескольких потоков, результат наблюдался только на одном потоке, второй поток почему-то не подвергался шейпингу. В итоге при задании для каждого потока одинаковой ширины канала равной 160 кбит/с (значение Rate Limit равнялось 5), получалась следующая картина

Видно, что первый поток подвергается шейпингу (коричневая кривая), а второму потоку (зеленая кривая) почему-то достается вся оставшаяся ширина канала. 

Теперь рассмотрим возможности приоритезации исходящего трафика.

Так как в технологии ADSL скорость обратного канала значительно ниже скорости прямого, то может возникнуть ситуация, что вся его пропускная способность будет полностью использована. При этом менее чувствительные к скорости трафика приложения (закачка файлов на FTP) могут парализовать более чувствительные (IP-телефония). Данная возможность также позволяет проставлять биты ToS (Type of Service), что позволяет правильнее обрабатывать их другими маршрутизаторами.

По умолчанию всему исходящему трафику назначается нормальный приоритет. Создание правила позволяет установить только высокий или низкий приоритет трафика

В документации сказано, что на потоки с низким приоритетом выделяется 10% ширины канала, со средним — 30%, с высоким — 60%. Судя по всему, такое распределение должно быть только при полной загрузке обратного канала.

Проведем несколько тестов:

Тест 1: запустим 2 потока, которым назначим высокий и низкий приоритеты, чтобы посмотреть, как распределяется ширина полосы межу ними.

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

Тест 2: запустим 3 потока трафика с высоким, нормальным и низким приоритетом — это позволит увидеть отличается ли распределение ширины полосы пропускания от указанных в документации (60%/30%/10%)

Все приоритеты назначаются верно. Распределение полосы между потоками отличается от 60/30/10 (для потоков с высоким/нормальным/низким приоритетами соответственно) совсем незначительно и составляет 54,3/31,4/14,3.

Тест 3: запустим 3 потока последовательно с интервалом между запусками в 1 минуту. Сначала запустим поток с низким приоритетом, минуту спустя — со средним, еще минуту спустя — с высоким, и посмотрим, как перераспределяется ширина канала при запуске потока с другим приоритетом

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

Выводы:

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

IPSec VPN-сервер поддерживает AES-шифрование с различной длиной ключа (128 бит, 192 бит, 256 бит). Устройство имеет аппаратную поддержку ускорения 3DES-шифрования, что четко прослеживается в результатах тестов. При увеличении числа VPN-туннелей (в пределах трех туннелей), суммарного падения скорости не наблюдается.

PPTP VPN-сервер поддерживает MPPE-шифрование с длиной ключа 40 и 128 бит. Использование PAP или CHAP — аутентификации не зависит от настроек сервера (то есть если на сервере задано использование CHAP-аутентификации, а на клиенте установлено использование PAP-аутентификации, то подключение все равно будет установлено с настройками клиента).

L2TP VPN-сервер может передавать данные без использования шифрования, а может использовать для шифрования IPSec.

Шейпинг трафика может производиться дискретно с шагом в 32 кбит/с, однако при задании правил для входящего трафика, заданные значения ширины канала отличаются от установившихся (то есть если я создаю 2 правила и ставлю значения Rate Limit равные 10 и 40, то установившимися значениями будут 10 и 25 и работать правила будут именно по установившимся значениям). При задании правил для исходящего трафика установившиеся значения соответствуют заданным, но при создании более чем одного правила, работает только одно, а остальные как будто игнорируются.

Задание приоритетов для потоков исходящего трафика работает практически так, как и должно работать. 

Плюсы:

  • Наличие трех VPN-серверов
  • Поддержка AES-шифрования с различной длиной ключа
  • Аппаратное ускорение 3DES-шифрования
  • L2TP и PPTP VPN-сервера могут выступать в режиме клиентов
  • Возможность шейпинга трафика
  • Достаточно точное совпадение скорости трафика с установившимся значением ширины канала при шейпинге
  • Прекрасно работающая приоритезация исходящего трафика

Минусы:

  • Невозможность использования сертификатов в IPSec VPN-сервере
  • L2TP и PPTP VPN-серверы не позволяют задать "обязательный" тип аутентификации — соединение происходит с настройками клиента (то есть если на сервере стоит CHAP, а на клиенте — PAP, то будет использоваться PAP аутентификация и это нельзя запретить)
  • В шейпинге трафика прямого канала установившиеся значения ширины полосы пропускания могут отличаться от заданных в параметрах
  • В шейпинге трафика обратного канала используется только одно правило (то есть при задании нескольких правил, исполняется только одно, а остальной трафик идет без ограничений и занимает остальную часть ширины канала)

 

Оборудование предоставлено российским представительством компании D-Link
DSLAM предоставлен российским представительством компании D-Link

 




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.