Задача звучит просто: дома два туннеля, и надо, чтобы телевизор ходил через один, рабочий ноутбук — через другой, а остальные устройства напрямую. KeeneticOS такое умеет, но не полностью, и граница проходит в неочевидном месте.
Коротко: развести по туннелям устройства получится, а адреса назначения — нет. Дальше по порядку, почему так и что с этим делать.
Что работает: разделение по устройствам
Механизм — «Приоритеты подключений». Раздел состоит из двух вкладок: «Политики доступа в интернет», где политики создаются, и «Применение политик», где к ним привязываются клиенты.
Порядок такой:
- Поднимите оба туннеля как обычные подключения и убедитесь, что у каждого включён параметр использования для выхода в интернет — без него интерфейс не станет кандидатом на маршрут по умолчанию.
- На первой вкладке создайте политику, задайте имя и отметьте в ней только один туннель.
- Создайте вторую политику со вторым туннелем.
- На вкладке «Применение политик» перетащите нужные устройства или целые сегменты сети на нужную политику.
Всё, что не перетащили, остаётся на основной политике по умолчанию — вместе со всеми незарегистрированными клиентами. Всего политик в KeeneticOS может быть до шестнадцати, так что запаса хватит.
Разделять можно не только по отдельным устройствам, но и по сегментам: гостевая сеть через один туннель, домашняя — напрямую.
Частая путаница: две политики против одной с двумя подключениями
Ошибка, которая стоит вечера: в одну политику добавляют оба туннеля и ждут, что трафик разделится.
Не разделится. Несколько подключений внутри политики — это резервирование: роутер использует первое по приоритету, а на второе переключается, только когда первое отвалилось. Порядок в списке и есть приоритет.
Чтобы устройства ходили разными путями одновременно, туннели должны лежать в разных политиках, по одному в каждой.
| Что настроено | Что получится |
|---|---|
| Две политики, в каждой свой туннель | разделение: разные устройства — разные пути |
| Одна политика, в ней два туннеля | резервирование: второй включится, когда упадёт первый |
| Устройство не привязано ни к чему | основная политика по умолчанию |
Главная ловушка: маршруты глобальны
Вот место, о которое разбивается большинство сложных схем.
Статический маршрут в KeeneticOS действует на весь роутер, а не на политику. Он не знает, из какой политики пришёл пакет, и применяется ко всем одинаково.
Практическое следствие: если для рабочей подсети прописан маршрут через первый туннель, то устройства из второй политики, обратившись к той же подсети, тоже уйдут в первый туннель. Политика распределяет канал по умолчанию для устройства, а маршрут перебивает это решение для конкретного адреса — и перебивает у всех сразу.
Отсюда правило, которое экономит много времени: разделять получается по источнику, а не по назначению. «Это устройство — через тот туннель» настраивается. «Этот адрес — в первый туннель, а тот же адрес для другого устройства — во второй» — нет.
На форуме Keenetic такие схемы регулярно заканчиваются одинаково: человек перебирает политики, упирается в глобальность маршрутов и в итоге переносит второй VPN на само устройство.
Когда проще не мучить роутер
Это не поражение, а нормальное инженерное решение, и стоит рассмотреть его до того, как потрачен вечер.
Второй туннель имеет смысл держать на роутере, если он нужен нескольким устройствам или устройствам без своего клиента — телевизору, приставке, лампочкам.
Если же второй туннель нужен одному компьютеру и по узкому поводу — рабочий доступ, отдельный сервис, — клиент на самом устройстве настраивается за минуту, не конфликтует с маршрутами роутера и, что важно, выключается, когда не нужен. Роутер при этом остаётся простым, а простой роутер легче чинить.
Чего не стоит делать при двух туннелях
Не привязывайте туннель к интерфейсу провайдера. Соблазн понятный: туннелей два, хочется указать каждому свой путь. Но привязка в поле «Подключаться через» создаёт зависимость на старте, и после перезагрузки туннель не поднимается — разобрано отдельно. Если развести каналы действительно нужно, делайте это маршрутом до адреса сервера, а не привязкой интерфейса.
Не рассчитывайте на разделение по доменам. Поле для доменного имени в маршрутах выглядит обещающе, но работает не так, как кажется, — почему именно, разобрано в статье о выборочной маршрутизации.
Проверка
Проверять надо с устройства, а не по виду интерфейса: оба туннеля будут зелёными в любом случае.
- С устройства первой политики откройте сайт проверки адреса и запомните результат.
- То же самое с устройства второй политики.
- Адреса должны отличаться и совпадать с локациями соответствующих серверов.
Если адреса совпали — устройство не привязано к своей политике либо его перебивает глобальный маршрут. Если адрес совпал с домашним, туннель у этой политики не выбран основным.
Коротко
Два туннеля на Keenetic поднимаются и работают одновременно, а развести по ним устройства позволяют «Приоритеты подключений» — по одной политике на туннель. Одна политика с двумя подключениями даёт не разделение, а резервирование. Разделить по адресу назначения не выйдет: статические маршруты глобальны и действуют поверх политик. И если второй туннель нужен ровно одному компьютеру, дешевле поднять его прямо там, чем строить схему на роутере.