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).
20 комментариев
Добавить комментарий
И вопрос — а есть ли роутеры, которые позволяют подконнектится к провайдеру по PPTP/L2TP и поднять уже внутри этого соединения VPN туннель? При этом, пустить для определенных портов трафик через VPN, а для других — в обход. Потому что сейчас у меня вся связка работает частично на компе (сам по себе туннель).
Большинство роутеров, что мне встречались, включая упомянутые в материале, позволяют поднимать туннели поверх VPN соединений к провайдеру.
С портами сложнее. Какая конкретно задача стоит?
ЗЫ. то что этот роутер торрент-качалка разрекламировано большими буквами на самой коробке продукта, так что твои претензии опять же к зухелю…
Вот такие падаваны. Пичалька.
1. Теряет DECT-трубку при перезагрузке интернетцентра: входящий звонок и далее обрыв, потеря трубкой базы (проявляется не на всех трубках, помогает перезагрузка трубки но не всегда и надежность такого телефона равна «0»)
2. Нет индикации времени имени трубки и списка вызовов, так как недостаточно иметь поддержку GAP, нужна еще поддержка CAT-iq v2, но она есть не во всех трубках и точно ее нет в прошивке кинетика и появится она осенью 2016 года, и то это не точно а скорее всего а может и не появится, так как обещают ее в версии 2.08, которая в данны момент просто нерабочая ну совсем...
!!! НИКТО не написал в рекламе DECT Plus, что при покупке я получу в итоге телефон без пропущенных вызовов, времени. просто пустой экран и все.
3. Трубки при входящем вызове выдают вместо привычного трель-пауза-трель непрерывный звонок, это настолько бесит, что даже словами не передать! Тоесть для моей трубы выбор из 20 трелей и мелодий сократился только до 4 мелодий, которые оформлены в виде «музыки» — Решения тоже не предвидится.
Имея Keenetic Ultra, повелся на обещания рекламы ZyXEL и почти год ждал обновление прошивки для своего топового роутера (линейка обновилась в сентябре 2015 года, в продажу поступил роутер Ultra 2 и соответсвенно первая Ultra была сразу же брошена!)
На форуме http://forum.keenetic.net сразу встречает надпись, которая полностью характеризует отношение разработчиков к покупателям,
цитирую:
«Кратко о том, чем мы здесь занимаемся, и чего от нас ждать 16.08.2016»
"… но если все разработчики будут еще и с Антошами Уральскими общаться напрямую вместо специально обученного отдела техподдержки — никакого прогресса не будет — у нас просто не останется времени на исполнение прямых обязанностей. ..."
Вот так.
Крайне не рекомендую к покупке владельцам роутеров поизводства до 2016 года, так как только у вас есть призрачная надежда на выпуск обновления и доведения до полу-рабочего состояния сего чуда-устройства. Перед покупкой проверьте свою трубку на совместимость со стандартом CAT-iq v2, без этого смотреть вам в пустой экран без индикации времени, имени трубки и пропущенных вызовов...
Что касается VPN PPTP, лично у меня никаких замечаний к нему нет. Просто работает и внимания к себе не требует.
Что касается самого проекта, то основная тема статьи — повышение эффективности благодаря использованию особенностей платформы. Такое на для этого кода никто делать не будет, так что действительно высокие скорости на встраиваемых платформах для него недоступны.
Добавить комментарий