VPN на все случаи жизни
Для чего нужен VPN-клиент? Ваша домашняя сеть может быть подключена по VPN к публичному VPN-сервису, сети офиса или другого интернет-центра Keenetic при любом способе доступа в интернет. До сих пор еще встречаются и провайдеры, дающие интернет именно по технологии VPN.
С точки зрения совместимости, вы можете подключаться по PPTP, OpenVPN, L2TP/IPsec с любого интернет-центра Keenetic. Иметь такой универсальный VPN-клиент особенно полезно, если при соединении сетей (например, чтобы получить доступ из городского дома к дачному) на одной стороне (обычно на даче) нет белого IP-адреса.
Помимо VPN-клиента, любая, даже самая младшая модель Keenetic имеет в арсенале аналогичные VPN-серверы: PPTP, OpenVPN, L2TP/IPsec.
Если вы не знаете, какой тип VPN выбрать, возьмите на карандаш, что во многих моделях Keenetic передача данных по IPSec (в том числе L2TP over IPsec) ускоряется аппаратно. В таком туннеле можно абсолютно не волноваться о конфиденциальности IP-телефонии или потоков видеонаблюдения. PPTP наиболее прост и удобен, но потенциально уязвим. OpenVPN очень популярен в определенных кругах, но чрезвычайно ресурсоемкий и не имеет особых преимуществ против IPsec.
Если провайдер выдает вам белый IP-адрес, рекомендуем обратить внимание на две опции: так называемый виртуальный сервер IPSec (Xauth PSK) и сервер L2TP over IPSec. Они замечательны тем, что обеспечивают абсолютно защищенный доступ к домашней сети со смартфона, планшета или компьютера с минимальной настройкой: в Android, iOS и Windows для этих типов VPN есть удобные встроенные клиенты. Если вы вдалеке от дома, в незнакомом или подозрительно месте используете открытую сеть Wi-Fi, ваши данные могут быть перехвачены. Чтобы не волноваться об этом, включите обязательное туннелирование вашего интернет-трафика через домашнюю сеть. Для вас это будет совершенно бесплатно и не опаснее, чем если бы вы выходили в интернет из дома.
VPN на домашнем роутере: быстро и надежно
Обычно беспроводные роутеры используются для предоставления доступа к Интернет различным домашним устройствам. Но иногда требуется решить и в определенном смысле противоположную задачу – реализовать удаленный доступ к размещенным в домашней сети сервисам и системам. Традиционный вариант решения этой задачи обычно состоит из трех шагов – использовать сервис динамического DNS для автоматического определения внешнего IP-адреса роутера, назначить в параметрах сервиса DHCP роутера выделение фиксированного адреса для нужного клиента и создать правило трансляции портов для требуемого сервиса на этом клиенте. Заметим, что удаленный доступ в большинстве случаев возможен только при наличии «белого»/«внешнего» адреса на WAN-интерфейсе роутера (подробнее см. в статье), а DDNS может не требоваться, если ваш провайдер предоставляет фиксированный IP-адрес.
Правил трансляции портов часто вполне достаточно для реализации задачи, но у них есть определенные особенности. Например, в случае необходимости защиты передаваемой информации, вам потребуется решать этот вопрос для каждого соединения индивидуально. Вторая потенциальная проблема – ограничения в случае, когда программное обеспечение требует использования определенного номера порта, а серверов в локальной сети несколько. Кроме того, если сервисов и внутренних систем у вас много, то есть очевидные неудобства прописывания в роутер каждого правила трансляции.
Помочь справиться с этими вопросами помогут технологии VPN – виртуальных частных сетей. Они позволяют создать безопасное соединение между удаленным клиентом или локальной сетью и сразу всей сетью за роутером. То есть вам будет достаточно один раз настроить этот сервис и при подключении к нему клиент будет вести себя так, как будто он находится в локальной сети. Заметим, что эта схема тоже требует внешнего адреса на роутере и, кроме того, имеет некоторые ограничения связанные с использованием имен систем и других сервисов.
В прошивках многих современных роутеров среднего и верхнего сегмента предусмотрен встроенный сервер VPN. Чаще всего он работает с протоколами PPTP и OpenVPN. Первый является популярным вариантом, который был разработан более 15-ти лет назад при участии крупных ИТ-компаний, включая Microsoft. Его клиент встроен во многие современные ОС и мобильные устройства, что упрощает реализацию. Однако считается, что в этом решении не очень хорошо решаются вопросы безопасности. Скорость защищенного соединения для этого протокола в зависимости от производительности платформы роутера обычно составляет 30-50 Мбит/с, на самых быстрых устройствах мы встречали и 80 Мбит/с (см. например статью).
OpenVPN является свободной реализацией VPN сходного возраста и выпускается по лицензии GNU GPL. Клиенты для него есть для большинства платформ, включая мобильные. Серверы можно встретить во многих альтернативных прошивках для роутеров, а также в оригинальных версиях от производителей оборудования. Минусом этого протокола является требование значительных вычислительных ресурсов для обеспечения высокой скорости работы, так что 40-50 Мбит/с можно получить только на решениях верхнего сегмента (см. например).
Еще один вариант, который чаще связывают с «серьезными» решениями безопасных сетевых коммуникаций, – IPsec (см. статью). Его история началась немного раньше и сегодня его можно встретить во многих продуктах удаленного доступа корпоративного уровня.
Тем не менее, относительно недавно его реализация появилась и в таком явно массовом оборудовании, как роутеры серии Zyxel Keenetic. Используемый в них программный модуль позволяет реализовать безопасные сценарии удаленного доступа, а также объединения сетей без сложных настроек. Кроме того, он совместим с решениями серии ZyWall. К плюсам этого производителя стоит отнести удобную базу знаний с подробными статьями о реализации типовых сценариев. По данной теме можно обратить внимание на статьи по объединению двух сетей и подключению клиента с Windows. Приводить подробные скриншоты настроек не имеет смысла, поскольку они есть по указанным ссылкам. Отметим только что все просто и понятно.
Учитывая ресурсоемкость используемых в данном сценарии алгоритмов, важным является вопрос производительности такого решения. Для его изучения были выбраны три модели роутеров последнего поколения – топовые Keenetic Ultra II и Keenetic Giga III, а также бюджетный Keenetic Start II. Первые два имеют процессоры MediaTek серии MT7621, по 256 МБ оперативной памяти и по 128 МБ флэшпамяти, гигабитные сетевые порты, два диапазона Wi-Fi, поддержку 802.11ac, порт USB 3.0. При этом в старшей используется чип с двумя ядрами, работающими на частоте 880 МГц, а во второй – такой же чип, но только с одним ядром. А третий роутер оборудован 100 Мбит/с портами (причем в количестве двух штук – один WAN и один LAN) и однодиапазонным беспроводным модулем. Процессор в нем используется MT7628N с одним ядром и частотой 575 МГц, а объем оперативной памяти составляет 64 МБ. С точки зрения программных возможностей, связанных с IPsec, устройства не отличаются.
На все три роутера были установлены прошивки из ветки бета версий v2.07(xxxx.2)B2. Режим подключения к сети Интернет на всех устройствах выбирался самый простой – IPoE. Работа с другими вариантам, скорее всего, приведет к снижению результатов. На следующих двух графиках приводятся результаты тестирования пар с разными настройками параметров соединения – Ultra II и Giga III, Ultra II и Start II. В первой устройства в целом сравнимы по скорости (правда у старшего два ядра), а во второй ограничения будут от младшей модели. Направление указано относительно второго устройства. Использовались сценарии передачи, приема и одновременной передачи и приема данных между подключенными к роутерам клиентами.
Как мы видим, скорости здесь достаточно низкие и даже не дотягивают до 100 Мбит/с. При этом нагрузка на процессор во время активного обмена данными очень высока, что может иметь негативные последствия и для других решаемых устройством задач.
Однако, как мы помним по другим сходным ресурсоемким сценариям (например, обработке видео), существенный рост производительности на специализированных задачах можно получить благодаря использованию выделенных блоков чипов, «заточенных» на эффективную работу с определенными алгоритмами. Что интересно, в современных SoC от MediaTek такие как раз присутствуют и программисты компании в недавних обновлениях прошивок реализовали эту возможность.
При этом максимальный эффект можно получить на чипах MT7621 и RT6856, а на MT7628 поддерживаются не все режимы. Посмотрим, что изменится при использовании данного блока. Для его включения используем команду в консоли, как на скриншоте.
Старшая пара показывает скорость в 200 Мбит/с и более, что еще раз подтверждает правильность идеи создания специализированных блоков для определенных стандартных алгоритмов, которые существенно производительнее универсальных ядер.
Для младшей однокристальной системы эффект менее заметен, но и здесь можно отметить увеличение скорости в два раза для некоторых конфигураций.
Посмотрим теперь, насколько хорошо устройства справятся с обслуживанием подключений с достаточно быстрого компьютера с процессором Intel Core i5 и ОС Windows 8.1 x64 (описание настройки соединения доступно по ссылке выше). В роли условных серверов (в соединениях IPsec участники в определенном смысле равноправны) выступили старший Keenetic Ultra II и младший Keenetic Start II.
Топовый роутер в некоторых конфигурациях разгоняется более чем до 300 Мбит/с. Так что видимо второе ядро процессора помогает и в этом сценарии. Впрочем, на практике для достижения этих результатов вам понадобится и соответствующие Интернет-каналы.
Результаты Keenetic Start II по понятным причинам практически не отличаются от того, что мы видели выше.
Стоит заметить, что использование оптимизации не сказалось на стабильности соединения. Все участники успешно выдержали все тесты без каких-либо замечаний.
Проведенные тесты еще раз подтвердили, что современные продукты сегмента ИТ представляют собой программно-аппаратные комплексы и эффективность решения ими поставленных задач существенно зависит не только от установленного «железа», но и эффективной программной реализации его возможностей.
Пока я проводил тесты, оказалось, что компания в последних отладочных прошивках серии 2.08 для энтузиастов реализовала еще одну полезную возможность, позволяющую использовать сервис IPsec с мобильными клиентами. Описанный выше сценарий создания профиля соединения требовал постоянных IP-адресов с двух сторон соединения, что для смартфонов в обычных ситуациях не встречается. Подробности и инструкции можно прочитать в этих ветках: Android, iOS/OS X, Windows (Cisco VPN Client).
В настоящий момент этот режим не полностью поддерживается в Web-интерфейсе, однако это не помешало провести несколько быстрых тестов с Keenetic Giga III. С Apple iPhone 5S реальная скорость составила 5-10 Мбит/с в зависимости от направления, а Xiaomi Mi5 оказался побыстрее – 10-15 Мбит/с (оба устройства подключались через Wi-Fi). Штатный клиент Cisco IPsec в OS X 10.11 на современной системе показал 110 Мбит/с на передачу и 240 Мбит/с на прием (при использовании гигабитной локальной сети и с учетом описанной выше операции по настройке роутера в консоли). Windows с известным, хотя и уже не поддерживающимся клиентом Cisco VPN Client, работала также достаточно быстро – 140 Мбит/с на передачу и 150 Мбит/с на прием. Таким образом, данная реализация IPsec явно может быть интересна широкому кругу пользователей для реализации быстрого и безопасного удаленного доступа к своей локальной сети с мобильных устройств и компьютеров из любой точки мира.