Почему белый IP стал проблемой и как VPN решает её
Многие провайдеры, особенно в России, переводят абонентов за CGNAT. Это значит, что у вашего домашнего роутера нет уникального внешнего адреса — вместо него используется общий IP оператора. Входящие соединения из интернета к вашему устройству становятся невозможны: проброс портов настраивать некуда, так как внешний адрес принадлежит провайдеру.
Классические VPN-решения, такие как IPsec или WireGuard, требуют, чтобы хотя бы одна сторона имела белый IP. Иначе узлы не смогут найти друг друга. Однако существуют технологии, которые обходят это ограничение. Одна из них — ZeroTier, программно-определяемая сеть (SD-WAN), которая использует UDP hole punching для установления прямых соединений между устройствами за NAT.
ZeroTier создаёт виртуальную L2-сеть, в которой все участники видят друг друга так, будто подключены к одному коммутатору. Это позволяет организовать удалённый доступ к домашнему NAS, объединить офисы в разных городах или подключить сотрудников к корпоративной сети без необходимости покупать белый IP у провайдера.
ZeroTier на MikroTik: обзор технологии и сценарии применения
ZeroTier — это не просто VPN-туннель, а целая виртуальная сеть. Она эмулирует Ethernet-коммутатор, поддерживает широковещательный трафик и многопутевые соединения. Ключевой механизм — UDP hole punching: узлы обмениваются пакетами через публичные серверы, чтобы согласовать прямое соединение, даже если оба находятся за NAT.
На MikroTik ZeroTier устанавливается как пакет (NPK-файл) и работает на архитектурах ARM и ARM64, начиная с RouterOS 7.1rc2. Стабильной считается версия 7.4.1 и новее. Для x86 и CHR нативного пакета нет — там используют контейнеры.
Основные сценарии использования:
- Домашний доступ: телефон или ноутбук подключается к домашнему роутеру, открывая доступ к NAS, камерам или умному дому.
- Малый офис: несколько сотрудников подключаются к офисному роутеру для работы с 1С, файловым сервером или внутренними сервисами.
- Site-to-site: два MikroTik в разных городах объединяют локальные сети филиалов.
- Гибрид: локальная сеть связывается с облачными серверами через VPN.
ZeroTier особенно удобен, когда нужно быстро подключить новое устройство: достаточно ввести Network ID, и оно появляется в виртуальной сети. Не нужно вручную обмениваться ключами и настраивать firewall для каждого участника.
Подготовка к настройке: требования и выбор оборудования
Прежде чем устанавливать ZeroTier на MikroTik, убедитесь, что ваше устройство поддерживает эту технологию. Официальный пакет доступен только для архитектур ARM и ARM64. Проверить архитектуру можно в меню System → Resources, поле Architecture Name.
Типичные модели с поддержкой пакета:
- ARM: hAP ac², hAP ac³, cAP ac, RB4011.
- ARM64: hAP ax², hAP ax³, RB5009.
Для x86 и CHR придётся использовать RouterOS Container, что требует дополнительной настройки Docker-образов. Это отдельный сценарий, который мы не рассматриваем в этой статье.
Также важно, чтобы на роутере была установлена RouterOS версии 7.1rc2 или новее. Если у вас более старая версия, обновите её через System → Packages.
ZeroTier использует UDP-порт 9993 для исходящих соединений. В большинстве случаев открывать входящие порты не нужно — hole punching справляется сам. Однако если провайдер использует двойной NAT (домашний роутер + CGNAT), прямое соединение может не установиться, и трафик пойдёт через ретранслятор ZeroTier, что снизит скорость.
Создание сети в ZeroTier Central и установка пакета на MikroTik
Первый шаг — зарегистрироваться на my.zerotier.com и создать виртуальную сеть. Бесплатный план Personal позволяет подключить до 10 устройств, что достаточно для большинства домашних и небольших офисных сценариев.
После создания сети вы получите 16-значный Network ID (например, d5e04297a16fa690). Его нужно будет ввести на роутере при подключении. В настройках сети обратите внимание на параметр IPv4 Auto-Assign: он определяет диапазон виртуальных адресов, которые будут выдаваться участникам. По умолчанию это 10.154.0.0/24, но вы можете изменить его под свои нужды.
Установка пакета ZeroTier на MikroTik:
- Скачайте NPK-файл с сайта MikroTik (раздел Extra Packages) под вашу архитектуру.
- Загрузите файл на роутер через WinBox или WebFig (раздел Files).
- Перезагрузите устройство — пакет установится автоматически.
- Включите инстанс ZeroTier командой
/zerotier enable zt1.
Начиная с RouterOS 7.18, можно установить пакет прямо из меню System → Packages, нажав Check For Updates и выбрав zerotier в списке. Это удобнее, так как не требует ручной загрузки файла.
Подключение роутера к сети ZeroTier и настройка firewall
После установки пакета нужно подключить роутер к созданной сети. В терминале выполните:
/zerotier interface add network=Затем авторизуйте устройство в ZeroTier Central: в веб-консоли найдите новое устройство в списке участников и нажмите Allow. После этого роутер получит виртуальный IP-адрес из диапазона, заданного в настройках сети.
Теперь необходимо настроить firewall, чтобы разрешить трафик между виртуальной сетью и локальной. В RouterOS добавьте правило:
/ip firewall filter add chain=input in-interface=zt1 action=accept
/ip firewall filter add chain=forward in-interface=zt1 action=acceptЭто базовые правила. Для более тонкой настройки можно ограничить доступ по IP-адресам или портам. Например, разрешить только SSH-подключения к роутеру или доступ к определённым серверам в локальной сети.
Важно: не забудьте также настроить NAT, если планируете, чтобы устройства из ZeroTier-сети получали доступ в интернет через роутер. Обычно это не требуется, так как VPN используется для доступа к локальным ресурсам.
Маршрутизация и доступ к локальной сети: практические примеры
Когда роутер подключён к ZeroTier, вы можете получить доступ к устройствам в его локальной сети. Для этого нужно настроить маршрутизацию.
Пример: у вас дома сеть 192.168.88.0/24, а ZeroTier выдаёт адреса из 10.154.0.0/24. Чтобы устройство из ZeroTier (например, ноутбук с адресом 10.154.0.5) могло обратиться к NAS с адресом 192.168.88.100, необходимо:
- На роутере добавить маршрут к сети 192.168.88.0/24 через интерфейс zt1.
- На ноутбуке добавить маршрут к 192.168.88.0/24 через шлюз 10.154.0.1 (адрес роутера в ZeroTier).
В RouterOS это делается командой:
/ip route add dst-address=192.168.88.0/24 gateway=10.154.0.1Если вы хотите, чтобы все устройства в ZeroTier-сети автоматически получали доступ к локальной сети, можно включить функцию Managed Routes в ZeroTier Central. Для этого укажите маршрут 192.168.88.0/24 через роутер.
Аналогично настраивается доступ к интернету через роутер, если это необходимо. Однако помните, что весь трафик будет идти через домашний канал, что может снизить скорость.
Продвинутые сценарии: объединение офисов и собственный Moon-сервер
ZeroTier позволяет объединять несколько офисов в единую сеть. Для этого достаточно установить ZeroTier на роутеры в каждом офисе и подключить их к одной сети. Маршрутизация между локальными сетями настраивается аналогично описанной выше.
Если у вас более 10 устройств или вы хотите больше контроля, можно развернуть собственный контроллер ZeroTier (self-hosted) на отдельном сервере. Это даёт независимость от облачной инфраструктуры ZeroTier Inc. и возможность настраивать более гибкие правила.
Также можно использовать Moon-сервер — это узел, который помогает другим устройствам находить друг друга, если прямое соединение не устанавливается. Moon-сервер особенно полезен при сложных NAT или когда узлы находятся в разных странах.
Для настройки Moon-сервера на MikroTik потребуется дополнительная конфигурация, но это оправдано, если вы планируете использовать ZeroTier для критически важных соединений.
Альтернативные VPN-решения без белого IP: WireGuard, OpenVPN и другие
ZeroTier — не единственный способ организовать VPN без белого IP. Рассмотрим альтернативы.
WireGuard — современный протокол, который славится высокой производительностью и простотой настройки. Однако для работы WireGuard требуется, чтобы хотя бы одна сторона имела белый IP. Если у вас нет белого IP, можно использовать промежуточный сервер с белым IP (VPS) в качестве ретранслятора. Это добавляет задержку, но решает проблему.
OpenVPN — более старый, но проверенный протокол. Он также требует белого IP на стороне сервера. Настройка OpenVPN на MikroTik включает создание сертификатов, настройку пула адресов и профилей. Это более трудоёмкий процесс, но он даёт гибкие возможности по аутентификации и шифрованию.
PPTP — устаревший протокол, который не рекомендуется использовать из-за слабой безопасности. Однако он прост в настройке и может работать без белого IP, если использовать ретранслятор.
TURN-серверы — технология, используемая в WebRTC, позволяет обходить NAT, ретранслируя трафик через сервер. Некоторые сервисы, например VK Calls, используют TURN для организации VPN-подключений.
Выбор протокола зависит от ваших задач: если нужна максимальная скорость и простота — WireGuard, если максимальная совместимость — OpenVPN, если нужно обойти сложные NAT — ZeroTier или TURN.
Обход блокировок и белых списков: практические методы
В России в последнее время активно обсуждается внедрение «белых списков» — механизма, при котором доступ разрешён только к определённым ресурсам. Это может серьёзно ограничить работу VPN-сервисов, так как они используют произвольные IP-адреса и порты.
Однако существуют методы обхода, основанные на использовании разрешённых доменов и сервисов. Например, можно настроить VPN-туннель через сервер, который находится в «белом списке», например, через Яндекс.Облако или VK. Для этого используется подмена SNI (Server Name Indication) — поля в TLS-запросе, которое указывает, к какому домену обращается клиент.
На практике это выглядит так: вы настраиваете VPN-клиент (например, VLESS или Hysteria) на подключение к серверу, но в SNI указываете домен из белого списка, например, vk.com. Фильтрация на уровне провайдера видит запрос к vk.com и пропускает его, хотя фактически трафик идёт на ваш VPN-сервер.
Другой метод — использование приложений, которые уже разрешены, например, мессенджеров или облачных сервисов, для передачи данных. Например, можно использовать VK Calls как TURN-сервер для обхода блокировок.
Важно понимать, что такие методы могут нарушать законодательство и условия использования сервисов. Применяйте их с осторожностью и осознанием рисков.
Безопасность и рекомендации по эксплуатации VPN-решений
При использовании VPN без белого IP важно соблюдать меры безопасности, чтобы защитить свои данные и устройства.
- Используйте сильные пароли и двухфакторную аутентификацию для учётных записей ZeroTier Central и роутера.
- Ограничьте доступ к VPN-сети только для доверенных устройств. В ZeroTier Central можно вручную авторизовать каждое устройство.
- Настройте firewall на роутере, чтобы разрешить только необходимый трафик. Например, запретите доступ к административным интерфейсам из VPN-сети.
- Регулярно обновляйте RouterOS и пакеты ZeroTier, чтобы получать исправления уязвимостей.
- Используйте шифрование для чувствительных данных. ZeroTier шифрует трафик по умолчанию, но для дополнительной защиты можно использовать VPN-поверх-VPN.
- Следите за журналами подключений, чтобы вовремя заметить подозрительную активность.
Также рекомендуется использовать отдельные сети для разных целей: например, одна сеть для домашних устройств, другая — для гостевого доступа. Это снижает риск компрометации основных устройств.
Помните, что бесплатные планы ZeroTier имеют ограничения, и при росте числа устройств может потребоваться платная подписка или собственный контроллер.
Вопросы и ответы
Можно ли использовать ZeroTier на роутере с архитектурой x86?
Официальный пакет ZeroTier для RouterOS поддерживает только ARM и ARM64. Для x86 и CHR необходимо использовать RouterOS Container и запускать ZeroTier в Docker-образе. Это более сложный сценарий, требующий настройки контейнеров, но он работоспособен.
Что делать, если прямое соединение ZeroTier не устанавливается из-за CGNAT?
Если UDP hole punching не срабатывает из-за двойного NAT, трафик автоматически пойдёт через ретранслятор ZeroTier. Это снижает скорость, но соединение остаётся рабочим. Для улучшения можно развернуть собственный Moon-сервер, который поможет узлам найти друг друга.
Чем ZeroTier отличается от WireGuard?
ZeroTier — это SD-WAN, создающая виртуальную L2-сеть, где все устройства видят друг друга. WireGuard — это классический VPN-туннель точка-точка. ZeroTier проще в настройке и не требует белого IP, но WireGuard обычно быстрее и легче. Для работы WireGuard нужен белый IP хотя бы на одной стороне.
Как обойти белые списки с помощью подмены SNI?
Подмена SNI заключается в том, что VPN-клиент указывает в TLS-запросе домен из белого списка (например, vk.com), хотя фактически подключается к вашему VPN-серверу. Фильтрация провайдера видит разрешённый домен и пропускает трафик. Это работает, если фильтрация основана только на SNI, без проверки IP-адресов.
Безопасно ли использовать бесплатные VPN-подписки для обхода блокировок?
Бесплатные подписки могут быть небезопасны: они могут собирать ваши данные или содержать вредоносные конфигурации. Рекомендуется использовать проверенные источники или настраивать собственный VPN-сервер. Также помните о юридических рисках обхода блокировок.
Как настроить доступ к локальной сети через ZeroTier на MikroTik?
После подключения роутера к ZeroTier добавьте маршрут к локальной сети (например, 192.168.88.0/24) через интерфейс zt1. На клиентских устройствах также нужно добавить маршрут к локальной сети через виртуальный IP роутера. Либо используйте Managed Routes в ZeroTier Central для автоматической настройки.
Какие порты нужно открыть для ZeroTier?
ZeroTier использует UDP-порт 9993 для исходящих соединений. В большинстве случаев открывать входящие порты не требуется, так как hole punching работает автоматически. Если у вас сложный NAT, может потребоваться проброс порта 9993 на роутере, но это не всегда помогает.