ZeroTier: различия между версиями

Материал из wiki
Нет описания правки
м Защитил страницу ZeroTier ([Редактирование=Разрешено только администраторам] (бессрочно) [Переименование=Разрешено только администраторам] (бессрочно))
 
(нет различий)

Текущая версия от 12:28, 4 августа 2026

ZeroTier: расширенные сценарии и интеграция

ZeroTier — это программное обеспечение для создания виртуальных частных сетей (SD-WAN), которое объединяет устройства из любой точки мира в одну безопасную сеть, как если бы они находились в одной локальной сети. В базовых статьях (Linux, Windows, macOS) мы рассмотрели установку и присоединение к сети. В этой статье мы углубимся в продвинутую настройку: маршрутизацию, мосты, настройку DNS, работу с Docker и интеграцию с VPN.

1. Архитектура ZeroTier

ZeroTier строит оверлейную сеть на основе peer-to-peer соединений. Каждый узел (node) имеет уникальный 10-значный идентификатор (Node ID). Сети идентифицируются по 16-значному идентификатору (Network ID). Управление сетями осуществляется через веб-панель (my.zerotier.com) или через API.

Ключевые понятия:

  • **Network ID** — идентификатор вашей частной сети.
  • **Node ID** — идентификатор каждого устройства.
  • **Flow Rules** — правила фильтрации трафика в сети.
  • **Managed Routes** — маршруты, которые ZeroTier автоматически добавляет на клиентские устройства.

2. Управление сетью через веб-панель

После создания сети в панели управления вы можете:

  1. Изменять имя сети и описание.
  2. Управлять членами сети (одобрять/блокировать).
  3. Назначать статические IP-адреса устройствам.
  4. Настраивать маршруты и DNS.
  5. Включать/отключать правила безопасности.
      1. 2.1. Назначение статических IP ===

В разделе «Members» выберите устройство, нажмите на его Node ID, и в поле «IP Assignments» добавьте нужный IP (например, 192.168.192.10). Теперь этот узел всегда будет получать этот адрес.

      1. 2.2. Управление доступом ===

Вы можете разрешить или запретить доступ к сети для каждого устройства индивидуально, а также настроить правила фильтрации трафика (например, запретить ICMP или разрешить только определённые порты).

3. Маршрутизация между сетями (Managed Routes)

ZeroTier позволяет маршрутизировать трафик между вашей виртуальной сетью и другими сетями (например, локальной сетью офиса или подсетями VPN).

3.1. Добавление маршрута

В настройках сети перейдите в «Managed Routes» → «Add Route». Укажите:

  • **Target** — целевую подсеть (например, 192.168.1.0/24).
  • **Via** — IP-адрес узла ZeroTier, который будет служить шлюзом (например, 192.168.192.2 — адрес вашего сервера в ZeroTier).

Теперь все устройства в ZeroTier-сети будут знать, как достичь подсети 192.168.1.0/24 через узел с IP 192.168.192.2.

3.2. Включение IP-форвардинга на узле-шлюзе

На узле, который выступает шлюзом, нужно включить пересылку пакетов и настроить NAT (если требуется доступ в интернет).

На Linux выполните:

sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1

Чтобы сохранить навсегда, раскомментируйте net.ipv4.ip_forward=1 в /etc/sysctl.conf.

Настройте правила iptables для NAT (если целевая сеть не имеет прямого маршрута обратно):

sudo iptables -t nat -A POSTROUTING -s 192.168.192.0/24 -o eth0 -j MASQUERADE

Замените eth0 на ваш внешний интерфейс.

4. Создание моста (Bridge) с локальной сетью

Если вы хотите, чтобы устройства в ZeroTier были частью вашей физической локальной сети (получали IP-адреса от вашего DHCP-сервера), используйте режим моста.

4.1. Настройка на Linux

  1. Установите пакет bridge-utils: sudo apt install bridge-utils.
  2. Остановите ZeroTier: sudo systemctl stop zerotier-one.
  3. Отредактируйте конфигурацию /var/lib/zerotier-one/local.conf, добавьте:
{
  "settings": {
    "interfacePrefixBlacklist": ["zt"]
  }
}
  1. Запустите ZeroTier: sudo systemctl start zerotier-one.
  2. Присоединитесь к сети: sudo zerotier-cli join <network_id>.
  3. В веб-панели разрешите этому узлу быть мостом (включите опцию «Allow Ethernet Bridging» для этого устройства).
  4. Создайте сетевой мост, объединяющий физический интерфейс (eth0) и интерфейс ZeroTier (обычно ztXXXXXXXXXX):
sudo ip link add name br0 type bridge
sudo ip link set eth0 master br0
sudo ip link set ztXXXXXXXXXX master br0
sudo ip link set br0 up
  1. Настройте IP-адрес на мосту (например, через DHCP или статически).

Теперь устройства, подключённые к ZeroTier, будут получать IP-адреса из того же пула, что и локальные компьютеры.

4.2. Настройка на Windows и macOS

На Windows и macOS мост обычно настраивается через графический интерфейс сетевых подключений, объединяя адаптеры ZeroTier и физический Ethernet в один мост.

5. Настройка DNS в ZeroTier

ZeroTier позволяет централизованно управлять DNS-резолвингом для всех устройств в сети.

В настройках сети (веб-панель) в разделе «DNS» укажите:

  • **Domain** — основное доменное имя (например, myzt.local).
  • **Servers** — IP-адреса DNS-серверов (можно указать ваш локальный DNS или публичный, например, 8.8.8.8).
  • **Search Domains** — дополнительные домены для поиска.

После сохранения клиенты ZeroTier будут использовать эти настройки (при условии, что в их настройках сети разрешено применение DNS через ZeroTier). На Linux это требует ручного управления через resolvectl или systemd-resolved.

Пример для Linux:

sudo resolvectl dns ztXXXXXXXXXX 192.168.192.1
sudo resolvectl domain ztXXXXXXXXXX myzt.local

6. ZeroTier в Docker

Запуск ZeroTier в контейнере удобен для маршрутизации или мостов без установки на хост.

6.1. Запуск контейнера ZeroTier

Используйте официальный образ:

docker run -d --name zerotier \
  --cap-add NET_ADMIN --cap-add SYS_ADMIN \
  --device /dev/net/tun \
  --net host \
  zerotier/zerotier:latest

Присоединитесь к сети:

docker exec zerotier zerotier-cli join <network_id>

Для сохранения состояния (идентификатора узла) монтируйте том /var/lib/zerotier-one:

docker run -d --name zerotier \
  -v zerotier_data:/var/lib/zerotier-one \
  --cap-add NET_ADMIN --cap-add SYS_ADMIN \
  --device /dev/net/tun \
  --net host \
  zerotier/zerotier:latest

6.2. Использование контейнера как шлюза

Вы можете запустить контейнер с включённым IP-форвардингом и настроить его как маршрутизатор для других контейнеров или внешних сетей. Для этого используйте параметры --cap-add и настройте iptables внутри контейнера.

7. Интеграция ZeroTier с VPN (OpenVPN/WireGuard)

ZeroTier может работать совместно с классическими VPN для создания гибридной сети. Например, вы можете поднять OpenVPN-сервер на узле ZeroTier и маршрутизировать трафик через него.

Пример: на узле с ZeroTier запустите WireGuard, который будет принимать подключения из интернета и перенаправлять их в ZeroTier-сеть. Настройте маршруты на WireGuard-клиентах так, чтобы они знали о ZeroTier-подсети.

Альтернативно, вы можете использовать ZeroTier как транспорт для WireGuard, чтобы избежать проблем с NAT (но это обычно избыточно).

8. Управление через API

ZeroTier предоставляет REST API для автоматизации. Используйте токен доступа из веб-панели.

Пример получения списка сетей:

curl -H "Authorization: Bearer <токен>" https://api.zerotier.com/api/v1/network

Автоматизировать добавление/удаление устройств можно с помощью скриптов.

9. Безопасность и рекомендации

  • Всегда используйте закрытые сети (с опцией «Private»), чтобы новые устройства не могли подключиться без вашего одобрения.
  • Назначайте статические IP для критически важных узлов.
  • Ограничьте доступ к панели управления ZeroTier (my.zerotier.com) через двухфакторную аутентификацию.
  • Для особо чувствительных данных используйте шифрование на уровне приложений (например, HTTPS для Nextcloud).
  • Регулярно проверяйте список членов сети и удаляйте неиспользуемые устройства.
  • При работе с мостами будьте осторожны: неправильные настройки могут вызвать конфликты IP или петли в сети.

10. Полезные команды

Команда Назначение
sudo zerotier-cli status статус демона
sudo zerotier-cli listnetworks список подключённых сетей
sudo zerotier-cli join <network_id> присоединиться к сети
sudo zerotier-cli leave <network_id> покинуть сеть
sudo zerotier-cli set <network_id> allowManaged=1 включить управляемые маршруты
sudo zerotier-cli get <network_id> ip показать IP-адрес в сети
sudo zerotier-cli peers список пиров (других узлов)

См. также

  • Linux – установка ZeroTier на Linux
  • Windows – установка на Windows
  • macOS – установка на macOS
  • Docker – контейнеризация ZeroTier
  • NAS – доступ к NAS через ZeroTier
  • Nextcloud – доступ к Nextcloud через ZeroTier
  • VPN – сравнение с классическими VPN