Что такое раздельная маршрутизация и зачем она нужна
Раздельная маршрутизация (split tunneling) — это технология, при которой часть трафика направляется через VPN-туннель, а остальной трафик идёт напрямую через обычное интернет-подключение провайдера. На роутерах Keenetic эта возможность реализована через гибкую систему маршрутов и приоритетов подключений.
Зачем это нужно? Представьте, что вы хотите, чтобы YouTube, Instagram и ChatGPT открывались через VPN, а онлайн-банк, госуслуги и локальные сервисы работали через обычный канал. Без раздельной маршрутизации пришлось бы включать VPN на каждом устройстве вручную или гнать весь трафик через туннель, что замедляет доступ к локальным ресурсам и может вызвать проблемы с гео-привязкой.
На Keenetic раздельная маршрутизация позволяет автоматически направлять трафик для конкретных IP-адресов или подсетей через VPN, не затрагивая остальной интернет. Это удобно для домашней сети, где много устройств: смартфоны, Smart TV, приставки — все они получают нужный доступ без индивидуальной настройки.
Как работает маршрутизация в Keenetic: основные понятия
В Keenetic (ныне Netcraze) маршрутизация строится на системе интерфейсов, приоритетов и статических маршрутов. Каждое подключение (провайдер, VPN, LTE) имеет свой интерфейс и приоритет. Когда пакет уходит в интернет, роутер выбирает интерфейс на основе таблицы маршрутов.
Ключевые элементы:
- Интерфейс — сетевое подключение, например,
Home(локальная сеть),ISP(провайдер),OpenVPN0илиWireguard0(VPN-туннель). - Приоритет подключений — определяет, какой интерфейс используется по умолчанию для выхода в интернет. Чем выше приоритет, тем больше трафика идёт через него.
- Статический маршрут — правило, которое направляет трафик для определённой подсети или IP-адреса через конкретный интерфейс.
- NAT — механизм подмены адреса источника. Если NAT включён на интерфейсе, трафик выходит с IP-адреса роутера; если выключен — с IP-адреса устройства.
Для раздельной маршрутизации важно понимать, что статические маршруты имеют приоритет над общими правилами. Если вы добавите маршрут для IP-адреса через VPN, трафик к этому адресу пойдёт через туннель, даже если основной шлюз — провайдер.
Подготовка Keenetic: установка VPN-компонентов
Прежде чем настраивать раздельную маршрутизацию, необходимо установить и настроить VPN-клиент на роутере. Keenetic поддерживает множество протоколов: OpenVPN, WireGuard, L2TP/IPsec, SSTP, а также VLESS через дополнительные пакеты.
Шаг 1. Вход в админ-панель. Откройте браузер и перейдите по адресу http://my.keenetic.net или http://192.168.1.1. Если вы меняли IP-адрес роутера, используйте свой.
Шаг 2. Установка компонента. Перейдите в раздел «Управление» → «Общие настройки» → «Изменить набор компонентов». В строке поиска введите название нужного протокола, например, WireGuard или OpenVPN, и установите его. После установки роутер перезагрузится.
Шаг 3. Создание подключения. Перейдите в раздел «Интернет» → «Другие подключения» и добавьте новое подключение. Для WireGuard можно импортировать конфигурационный файл .conf или ввести параметры вручную. Для OpenVPN — загрузить файл конфигурации.
Шаг 4. Активация. Включите подключение и убедитесь, что оно активно. Проверьте, что в разделе «Приоритеты подключений» VPN-интерфейс находится выше провайдера, если вы хотите использовать его по умолчанию. Однако для раздельной маршрутизации это не обязательно — можно оставить провайдера основным, а VPN использовать только для определённых маршрутов.
Способы настройки раздельной маршрутизации
Существует несколько подходов к раздельной маршрутизации на Keenetic. Выбор зависит от ваших задач и используемого VPN-протокола.
Способ 1: Статические маршруты через веб-интерфейс. Этот способ подходит для большинства случаев. Вы добавляете маршруты для конкретных IP-адресов или подсетей, указывая интерфейс VPN.
- Перейдите в раздел «Маршрутизация» → «IPv4 маршруты».
- Нажмите «Добавить маршрут».
- Укажите подсеть или IP-адрес (например,
185.15.172.18/32для конкретного хоста). - В поле «Интерфейс» выберите ваш VPN-интерфейс (например,
Wireguard0). - Сохраните маршрут.
Повторите для всех нужных адресов. Этот метод прост, но требует ручного добавления каждого адреса.
Способ 2: Импорт списков маршрутов. Для популярных сервисов (YouTube, Instagram, ChatGPT и др.) существуют готовые списки IP-адресов в виде .bat файлов. Эти файлы содержат команды route add, которые можно импортировать в Keenetic.
- Скачайте последний
.batфайл для нужного сервиса из репозитория, например, RockBlack-VPN/ip-address. - В веб-интерфейсе Keenetic перейдите в «Маршрутизация» → «IPv4 маршруты».
- Нажмите «Импорт» и выберите скачанный файл.
- Повторите для всех нужных сервисов.
Этот способ экономит время, но требует доверия к источнику списков. Убедитесь, что файлы актуальны.
Способ 3: Выборочный NAT через CLI. Для более тонкой настройки, особенно при использовании OpenVPN, можно использовать команды интерфейса. Например, чтобы трафик для определённых IP выходил через провайдера, а не через VPN, нужно:
- Отключить NAT на VPN-интерфейсе (если он включён).
- Добавить статические маршруты для нужных IP через интерфейс провайдера.
Пример команды: ip route 185.15.172.18 ISP auto — этот маршрут направит трафик к указанному IP через провайдера, минуя VPN.
Важно: при использовании OpenVPN с redirect-gateway весь трафик по умолчанию идёт через туннель. Чтобы исключить отдельные адреса, нужно добавить маршруты через net_gateway (шлюз провайдера). Однако, как показывает практика, команда push "route ... net_gateway" может не работать корректно на Keenetic, поэтому лучше использовать локальные статические маршруты.
Настройка раздельной маршрутизации для популярных сервисов
Рассмотрим практический пример: вы хотите, чтобы YouTube и Instagram открывались через VPN, а остальной трафик шёл напрямую. Для этого нужно добавить маршруты для IP-адресов этих сервисов через VPN-интерфейс.
Шаг 1. Скачайте списки IP. Перейдите в репозиторий RockBlack-VPN/ip-address и выберите папку Global/Youtube или Global/Instagram. Скачайте последний .bat файл.
Шаг 2. Импортируйте маршруты. В веб-интерфейсе Keenetic откройте «Маршрутизация» → «IPv4 маршруты» и импортируйте файл. Роутер добавит все маршруты из списка.
Шаг 3. Проверьте. Откройте YouTube на любом устройстве, подключённом к Wi-Fi. Если видео загружается, а IP-адрес устройства изменился на зарубежный (проверьте через 2ip.io), значит, маршрутизация работает.
Важно: Списки IP-адресов могут устаревать, так как сервисы используют динамические адреса. Периодически обновляйте маршруты, скачивая свежие файлы.
Если вы хотите направить через VPN только определённые устройства (например, только Smart TV), можно использовать привязку маршрутов к IP-адресам устройств в локальной сети. Для этого в маршруте укажите не только подсеть назначения, но и источник (опция from в CLI). Однако в веб-интерфейсе такая возможность ограничена, поэтому чаще используют маршруты для всех устройств.
Особенности настройки для OpenVPN и WireGuard
Разные VPN-протоколы имеют свои нюансы при настройке раздельной маршрутизации.
OpenVPN. OpenVPN часто использует параметр redirect-gateway, который заставляет весь трафик идти через туннель. Чтобы реализовать раздельную маршрутизацию, нужно:
- Убедиться, что на VPN-интерфейсе отключён NAT (если вы хотите, чтобы трафик выходил с IP-адреса устройства, а не роутера).
- Добавить статические маршруты для адресов, которые должны идти через провайдера, с указанием интерфейса провайдера.
- Для адресов, которые должны идти через VPN, маршруты уже есть (весь трафик по умолчанию идёт через туннель).
Проблема: если вы хотите, чтобы только некоторые адреса шли через VPN, а остальные напрямую, нужно отключить redirect-gateway и вручную добавить маршруты для нужных подсетей. Это делается на стороне сервера или клиента. На Keenetic можно вручную добавить маршруты через веб-интерфейс.
WireGuard. WireGuard работает иначе: в конфигурации есть параметр AllowedIPs. Если указать 0.0.0.0/0, весь трафик пойдёт через туннель. Для раздельной маршрутизации можно указать конкретные подсети, например, AllowedIPs = 185.15.172.18/32, 91.108.56.0/22. Однако при импорте конфигурации в Keenetic этот параметр может игнорироваться, и роутер будет использовать все адреса. Поэтому проще добавить статические маршруты вручную.
VLESS (через XKeen или sing-box). VLESS позволяет более гибко настраивать маршрутизацию, но требует установки Entware и дополнительных пакетов. В XKeen можно указать список доменов или IP, которые должны идти через прокси. Это удобно, но сложнее в настройке.
Использование выборочного NAT для раздельной маршрутизации
В некоторых сценариях, особенно при использовании OpenVPN в корпоративных сетях, возникает необходимость настроить выборочный NAT. Например, в магазине с Keenetic 4G, где весь трафик идёт через OpenVPN-туннель к офисному серверу, нужно, чтобы трафик к эквайрингу и ОФД выходил через локальный NAT роутера, а не через туннель.
Как это сделать:
- Отключите NAT на VPN-интерфейсе, если он включён. Для этого в CLI выполните
no ip nat OpenVPN0. - Включите NAT на интерфейсе провайдера:
ip nat ISP. - Добавьте статические маршруты для нужных IP-адресов через интерфейс провайдера:
ip route 185.15.172.18 ISP auto.
В результате трафик к указанным адресам пойдёт через провайдера с NAT, а остальной трафик — через VPN. Это позволяет, например, кассовому оборудованию работать с эквайрингом напрямую, не создавая лишней нагрузки на туннель.
Важно: при такой настройке убедитесь, что маршруты для VPN-подсетей остаются корректными, иначе может нарушиться связь с офисом.
Автоматизация и обновление списков маршрутов
Ручное добавление маршрутов для каждого сервиса — трудоёмкая задача, особенно если IP-адреса меняются. К счастью, существуют способы автоматизации.
Использование готовых репозиториев. Проект RockBlack-VPN/ip-address регулярно обновляет списки IP-адресов для популярных сервисов. Вы можете периодически скачивать свежие .bat файлы и импортировать их в роутер. Некоторые энтузиасты создают скрипты, которые автоматически обновляют маршруты через SSH.
Скрипты на роутере. Если у вас установлен Entware, можно написать скрипт, который будет запускаться по расписанию (например, через cron) и обновлять маршруты. Однако это требует навыков программирования и доступа к командной строке.
Ограничения.
- Keenetic не поддерживает группы IP-адресов в веб-интерфейсе, поэтому для массового добавления приходится использовать импорт.
- Невозможно централизованно раздавать маршруты через OpenVPN (push-маршруты) для клиентов Keenetic — это ограничение прошивки.
- Списки IP могут быть неполными или содержать устаревшие адреса, что приведёт к некорректной работе.
Несмотря на это, раздельная маршрутизация остаётся одним из самых удобных способов обеспечить доступ к заблокированным сервисам без постоянного ручного включения VPN.
Диагностика и устранение неполадок
При настройке раздельной маршрутизации могут возникнуть проблемы. Рассмотрим типичные ошибки и способы их решения.
Проблема 1: VPN подключён, но трафик идёт мимо него. Проверьте приоритеты подключений. Если провайдер имеет более высокий приоритет, чем VPN, весь трафик пойдёт напрямую. Перетащите VPN-подключение выше в списке приоритетов.
Проблема 2: Некоторые сайты не открываются через VPN. Убедитесь, что для этих сайтов добавлены маршруты через VPN-интерфейс. Проверьте, что IP-адреса актуальны. Возможно, сайт использует CDN с динамическими адресами, и ваш список устарел.
Проблема 3: VPN работает, но скорость низкая. Это может быть связано с производительностью роутера. Более старые модели Keenetic могут не справляться с шифрованием на высоких скоростях. Попробуйте использовать WireGuard вместо OpenVPN — он быстрее.
Проблема 4: При импорте .bat файла роутер выдаёт ошибку. Убедитесь, что файл имеет расширение .bat, а не .txt. Некоторые браузеры автоматически меняют расширение. Также проверьте, что файл не повреждён.
Проблема 5: После настройки маршрутов пропал доступ к локальным ресурсам. Проверьте, не добавили ли вы маршрут для локальной подсети через VPN. Удалите лишние маршруты или укажите правильный интерфейс.
Проблема 6: VPN-подключение отключается через несколько минут. Для WireGuard убедитесь, что заполнено поле «Проверка активности» (PersistentKeepalive). Без него соединение может разрываться из-за NAT.
Если ничего не помогает, обратитесь к сообществу Keenetic на форуме или к документации.
Ограничения и важные замечания
Раздельная маршрутизация на Keenetic имеет ряд ограничений, о которых стоит знать.
- Производительность. На слабых моделях роутеров (например, Keenetic 4G) одновременная обработка VPN и маршрутизации может снижать скорость. Для тяжёлых задач лучше использовать старшие модели, такие как Ultra или Hero 5G.
- IPv6. Если у вас включён IPv6, трафик по этому протоколу может идти в обход VPN. Рекомендуется отключить IPv6 в настройках подключения провайдера, если вы используете VPN только по IPv4.
- DNS. При использовании VPN убедитесь, что DNS-запросы не утекают. Включите опцию «Игнорировать DNSv4 интернет-провайдера» и укажите свои DNS-серверы, например, 8.8.8.8 и 1.1.1.1.
- Юридические аспекты. Использование VPN для обхода блокировок в России не запрещено, но законодательство может измениться. Следите за актуальными нормами.
- Обновления. Списки IP-адресов сервисов меняются, поэтому маршруты нужно периодически обновлять. Автоматизация возможна, но требует дополнительных усилий.
Несмотря на ограничения, раздельная маршрутизация — мощный инструмент, который делает использование VPN на роутере удобным и эффективным.
Вопросы и ответы
Можно ли настроить раздельную маршрутизацию на любой модели Keenetic?
В теории раздельную маршрутизацию поддерживают многие модели Keenetic, но стабильность работы зависит от производительности устройства. Для больших нагрузок и современных протоколов (WireGuard, VLESS) рекомендуется использовать старшие модели, такие как Keenetic Ultra или Hero 5G. На бюджетных моделях (например, Keenetic 4G) настройка возможна, но скорость может быть ниже.
Как добавить маршрут для конкретного IP-адреса через VPN?
В веб-интерфейсе Keenetic перейдите в раздел «Маршрутизация» → «IPv4 маршруты», нажмите «Добавить маршрут», укажите IP-адрес или подсеть (например, 185.15.172.18/32) и выберите VPN-интерфейс (например, Wireguard0). Сохраните маршрут. Также можно импортировать готовые списки маршрутов из .bat файлов.
Почему не работает команда push "route ... net_gateway" на Keenetic?
На Keenetic команда push "route ... net_gateway" может не работать из-за особенностей реализации маршрутизации. В логах появляется ошибка «gateway is unreachable». Рекомендуется вместо этого добавлять статические маршруты через веб-интерфейс или CLI, указывая интерфейс провайдера напрямую.
Как направить через VPN только определённые устройства?
Для этого можно использовать статические маршруты с указанием источника (опция from в CLI). Например, команда ip route 185.15.172.18 VPN from 192.168.1.100 направит трафик от устройства с IP 192.168.1.100 через VPN. В веб-интерфейсе такая возможность ограничена, поэтому чаще используют маршруты для всех устройств.
Нужно ли отключать IPv6 для корректной работы раздельной маршрутизации?
Да, если ваш VPN работает только по IPv4, рекомендуется отключить IPv6 в настройках подключения провайдера. В противном случае часть трафика (например, к YouTube) может уходить по IPv6 в обход VPN, что приведёт к неработоспособности раздельной маршрутизации.
Как часто нужно обновлять списки IP-адресов для сервисов?
IP-адреса популярных сервисов (YouTube, Instagram, ChatGPT) могут меняться достаточно часто. Рекомендуется проверять актуальность списков раз в несколько недель или использовать автоматические скрипты для обновления. Готовые списки можно найти в репозитории RockBlack-VPN/ip-address.