Файрволл D-Link DFL-210

Часть 3: L2TP VPN-сервер устройства, возможности шейпинга трафика


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

Содержание:

  1. Общие сведения
  2. Вид изнутри
  3. Спецификация
  4. Конфигурация
  5. Тестирование производительности базовых функций
  6. Доступность
  7. Выводы (базовые настройки, производительность)
  8. IPSec VPN-сервер
  9. Тестирование производительности IPSec VPN-сервера
  10. PPTP VPN-сервер
  11. Тестирование производительности PPTP-сервера
  12. Тестирование производительности PPTP-клиента
  13. Выводы (IPSec VPN-сервер, PPTP VPN-сервер, PPTP VPN-клиент)
  14. L2TP VPN-сервер
  15. Тестирование производительности L2TP VPN-сервера
  16. Шейпинг трафика
  17. Тестирование возможностей шейпинга трафика
  18. IDS предотвращение вторжений
  19. Выводы (L2TP VPN-сервер, шейпинг трафика, IDS)

L2TP VPN-сервер

Настройка L2TP VPN-сервера напоминает настройки PPTP VPN-сервера. Но для его использования необходимо предварительно создать IPSec-туннель, через который будет идти трафик (для IPSec-туннеля требуется предварительно создать предварительный ключ аутентификации "l2tpkey")

Туннель устанавливается в режиме "Transport" между WAN-интерфейсом роутера (Local Network: wan_ip) и клиентом.

Для этого туннеля также необходимо задать предварительный ключ для аутентификации

При создании L2TP-интерфейса задается IPSec-туннель, через который будет идти трафик

все виды MPPE шифрования необходимо отключить (будет использоваться шифрование IPSec-туннеля)

Также необходимо создать правила аутентификации, завести пользователей как это делалось при создании PPTP-сервера и настроить правила файрвола.

После этого необходимо создать правила файрвола, позволяющие прохождение трафика через L2TP-туннель. Правила нужно создавать только для L2TP-интерфейса, для IPSec-интерфейса правила создавать не требуется

При работе устройства в качестве L2TP-клиента или L2TP-сервера, аутентификация с использованием сертификатов (EAP-TLS) невозможна.

В дополнение к документации устройства идет небольшой HOWTO-документ, описывающий пошаговую настройку PPTP, IPSec, L2TP VPN-серверов, а также некоторые другие настройки.

Тестирование L2TP VPN-сервера

В качестве клиентов L2TP VPN-сервера выступали компьютеры под управлением Windows XP SP2, которая поддерживает только DES и 3DES шифрование (AES шифрование не поддерживается).

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

Максимальная скорость: 28,393 Мбит/с. Во всех тестах наблюдаются высокие скорости, скорости в полнодуплексном режиме распределяются равномерно.

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

Максимальная скорость: 29,621 Мбит/с. Скорости между потоками распределяются почти равномерно. Максимальная скорость по сравнению с прошлым тестом слегка выросла.

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

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

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

Максимальная скорость: 29,270 Мбит/с. Максимальная скорость практически не изменилась по сравнению с предыдущим тестом.

 

Шейпинг трафика

Шейпинг трафика в файрволе D-Link DFL-210 основан на использовании каналов (или "труб", Pipes). Каналы задают общую ширину полосы пропускания, а также ширину полосы для трафика с различными значениями битов ToS (Type of Service). IP-пакеты имеют поле длиной в 1 байт, несущее информацию о ToS. 3 бита в этом поле позволяют установить 8 значений приоритета трафика (от 0 до 7, чем выше значение — тем выше приоритет). Устройство разделяет трафик который может иметь 8 приоритетов на 4 группы (по 2 значения приоритета на каждую шруппу): Low, Medium, High, Highest. Настройки каналов позволяют задать ширину полосы пропускания для каждой группы.

Также возможна группировка каналов по определенным признакам (в зависимости от адресов, подсетей, портов и интерфейсов, через которые идет трафик), что позволяет более точно настраивать правила шейпинга

Сами по себе каналы (Pipes, они же "трубы" если переводить дословно) не имеют смысла без задания правил, которые эти каналы будут использовать. Правила позволяют направлять трафик через трубы в зависимости от сервиса (под сервисом здесь понимаются те же комплексные правила, что использовалось при настройке файрвола: протокол, порты источника и назначения и т.д.), интерфейсов источника и назначения, адресов компьютеров и подсетей источника и назначения

Примечательно, что эти правила могут использовать не просто каналы, а их цепочки в определенной последовательности. То есть если 1-й канал использует ограничение всей ширины полосы пропускания, 2-й ограничивает трафик в зависимости от адреса назначения, 3-й — в зависимости от используемого сервиса и т.д.

Задаются сразу 2 цепочки: Forward (для трафика) и Return (правила для соединений прошедших через цепочку Forward, трафик которых идет в обратном направлении).

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

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

Тестирование возможностей шейпинга трафика

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

Для начала протестируем ограничение трафика всего канала.

Создадим канал, который ограничивает трафик до 15000 кбит/с и правило, которое и использует этот канал как в цепочке Forward, так и в цепочке Return. Затем для сравнения проведем тестирование с ограничением трафика до 1000 кбит/с.

Ограничение до 15000 кбит/с
Ограничение до 1000 кбит/с

Как показывают графики, шейпинг трафика работает достаточно точно. В полнодуплексном режиме указанным значением (15000 кбит/с и 1000 кбит/с) ограничивается суммарный трафик (то есть сумма скоростей в обоих направлениях). Распределение скоростей в полнодуплексном режиме неравномерно: скорость в направлении LAN -> WAN в 1.5 — 2 раза ниже скорости в направлении WAN -> LAN.

 

Далее посмотрим что произойдет если в цепочках Forward и Return использовать различные каналы с одинаковым значением ширины полосы пропускания (15000 кбит/с и 1000 кбит/с)

Ограничение до 15000 кбит/с
Ограничение до 1000 кбит/с

В полудуплексном режиме практически ничего не изменилось по сравнению с предыдущими тестами. В полнодуплексном режиме скорость выросла, но возрастание незначительное (20–30% вместо 100%).

Теперь направим 2 потока трафика через 2 различных правила, которые используют один и тот же канал (Pipe) для шейпинга трафика в обоих цепочках (Forward и Return)

Ограничение до 15000 кбит/с
Ограничение до 1000 кбит/с

Судя по графикам, суммарные пропускные способности во всех тестах не превышают заданных для канала 15000 и 1000 кбит/с. Таким образом если мы в нескольких правилах используем один канал, все потоки трафика, идущие через этот канал делят между собой его заданную пропускную способность.

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

Ограничение до 15000 кбит/с
Ограничение до 1000 кбит/с

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

Теперь в Pipe Rules зададим 2 правила для двух потоков трафика, но в цепочках Forward и Return укажем различные каналы с одинаковой шириной полосы пропускания (таким образом мы будем использовать 4 канала с одинаковой шириной полосы пропускания и 2 правила, в которых в цепочках Forward и Return стоят различные каналы).

Ограничение до 15000 кбит/с
Ограничение до 1000 кбит/с

При использовании каналов с шириной полосы 1000 кбит/с скорость трафика в полудуплексном режиме возрастает в 2 раза так как трафик идет по 2-м различным каналам. В полнодуплексном режиме скорость трафика по сравнению с полудуплексным режимом возрастает незначительно, хотя так как они идут по различным каналам, скорость должна возрастать еще в 2 раза.

При использовании каналов с шириной полосы 15000 кбит/с скорость трафика в полудуплексном режиме в направлении LAN -> WAN несколько возрастает, а в обратном направлении несколько падает, но изменения скоростей очень незначительны. В полнодуплексном режиме суммарная скорость немного выше 22 Мбит/с — это в 1,5–2 раза выше чем в полудуплексном режиме, но даже до 30 Мбит/с это явно не дотягивает.

При низких скоростях (1000 кбит/с) шейпинг трафика осуществляется значительно лучше, чем при высоких скоростях (15000 кбит/с).

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

Задаем 3 канала: 10000, 7500 и 3000 кбит/с

Как и ожидалось, скорость будет ограничена меньшим из значений ширины полосы, то есть около 3000 кбит/с.

Зададим 2 канала: 10000 и 7500 кбит/с

И снова видно, что итоговая ширина канала равна ширине наименьшего, то есть 7500 кбит/с.

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

Суммарная скорость не дотягивает до 15000 кбит/с, но тем не менее выше 10000 кбит/с.

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

Как видно, при меньших скоростях, цепочка правил шейпинга работает более грамотно — скорость ограничивается каналом шириной 1500 кбит/с.

Теперь посмотрим как ведет себя трафик в динамике: сначала запустим 1 поток трафика (его скорость должна быть ограничена каналом с шириной 1000 кбит/с), затем запустим 2-й поток трафика (теперь скорость обоих потоков должна быть ограничена 1500 кбит/с так как оба потока идут через 1 канал с такой шириной)

Можно заметить, что до запуска 2-го потока, скорость составляет чуть менее 1000 кбит/с, а когда запущены оба потока — скорость каждого держится на уровне 700 — 750 кбит/с (то есть суммарная скорость двух потоков ограничена уровнем ~1500 кбит/с).

Настройки каналов имеют возможность группирования — рассмотрим вкратце эти возможности. Задав каналу параметр группирования по какому либо признаку, мы можем изменить ширину полосы пропускания, попадающую под эти признаки. Поясню на примере: ограничим общую ширину полосы пропускания канала значением 15000 кбит/с (LAN -> WAN), зададим его группировку по признаку Source IP (IP-адрес источника пакетов) и зададим групповое ограничение полосы пропускания 2000 кбит/с. Таким образом максимально возможная скорость в направлении LAN -> WAN составит 15000 кбит/с, но скорость трафика от одного источника в направлении LAN -> WAN не будет превышать 2000 кбит/с. Если мы используем 2 источника пакетов с различными IP-адресами (то есть с различными Source IP адресами, по которым мы производим группировку), то скорость потока каждого из них не будет превышать значения заданного в параметрах группирования (2000 кбит/с), а общая скорость LAN -> WAN трафика идущего через файрвол, не сможет превысить общей ширины канала (15000 кбит/с).

2 потока трафика в направлении LAN -> WAN при таких настройках (как в предыдущем абзаце) распределяются так

Скорость каждого потока составляет ~2000 кбит/с.

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

Подводя предварительные итоги можно сказать, что шейпинг трафика работает достаточно хорошо. На больших скоростях (более 10 Мбит/с) при одновременном запуске нескольких потоков значения скоростей начинают достаточно сильно отличаться от заданных. Использования возможности группировки по определенному признаку, можно значительно сократить количество задаваемых правил.

IDS, предотвращение вторжений

Устройство может проверять проходящий трафик с использованием так называемых сигнатур (заранее известных блоков данных), при обнаружении которых можно разрывать установленные соединения или заносить событие в логи. Какой трафик будет подвергаться проверки, администратор устройства задает самостоятельно — это напоминает задание правил файрвола. По умолчанию никакой трафик не подвергается проверке. При задании проверки всего трафика на все известные устройству атаки (по сигнатурам), максимальная скорость трафика на LAN — WAN переходе снижается до 9,5 — 10 Мбит/с.

В базе сигнатур есть также такие, которые, судя по комментариям к ним, должны реагировать на попытку войти на удаленный компьютер под root'ом используя Telnet, или такие, которые реагируют на E-Mail письма, содержащие вложения с расширением com, exe и др. Но попытки добиться реакции устройства на эти письма ни к чему не привели. Сканирование интерфейса WAN с помощью программы Nessus так же не вызывает реакции механизма IDS.

Сама база сигнатур может обновляться через Интернет — эта возможность является платной и покупается отдельно.

Исходя из вышесказанного, никаких объективных оценок механизма IDS дать невозможно. Единственное, что можно сказать более-менее точно, так то, что падение скорости до 10 Мбит/с (то есть в 6 раз) при использовании IDS весьма значительно.

Выводы:

Работа L2TP VPN-сервера не вызвала никаких вопросов.

Что же касается шейпинга трафика, то на низких скоростях (порядка нескольких Мбит/с) его показатели более точно соответствуют заданным. Использование различных каналов в цепочках Forward и Return почему-то не приводит к существенному увеличению производительности. Возможность группирования каналов позволяет существенно сократить количество правил. В целом можно сказать что шейпинг трафика работает достаточно корректно (если сравнивать с шейпингом трафика в других устройствах).

Включение возможности обнаружения вторжений (IDS) заметно снижает производительность устройства. К сожалению, помимо констатации факта наличия данной возможности, ничего подробного о ней сказать не могу.

Плюсы:

  • Возможность тонкой настройки шепинга трафика
  • Возможность группирования каналов по определенным критериям
  • Наличие возможности обнаружения вторжений

Минусы:

  • Нет возможности использования шейпинга назначением приоритетов потокам трафика
  • Снижение "точности" шейпинга (соответствие реальных скоростей заданным в настройках) снижается на высоких скоростях (порядка десятков Мбит/с)
  • Невозможно использование сертификатов для аутентификации L2TP-клиентов или на L2TP-сервере

 

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

 




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

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

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

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