ZeroTier: различия между версиями
Admin (обсуждение | вклад) Нет описания правки |
Admin (обсуждение | вклад) м Защитил страницу 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. Управление сетью через веб-панель
После создания сети в панели управления вы можете:
- Изменять имя сети и описание.
- Управлять членами сети (одобрять/блокировать).
- Назначать статические IP-адреса устройствам.
- Настраивать маршруты и DNS.
- Включать/отключать правила безопасности.
- 2.1. Назначение статических IP ===
В разделе «Members» выберите устройство, нажмите на его Node ID, и в поле «IP Assignments» добавьте нужный IP (например, 192.168.192.10). Теперь этот узел всегда будет получать этот адрес.
- 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
- Установите пакет
bridge-utils:sudo apt install bridge-utils. - Остановите ZeroTier:
sudo systemctl stop zerotier-one. - Отредактируйте конфигурацию
/var/lib/zerotier-one/local.conf, добавьте:
{
"settings": {
"interfacePrefixBlacklist": ["zt"]
}
}
- Запустите ZeroTier:
sudo systemctl start zerotier-one. - Присоединитесь к сети:
sudo zerotier-cli join <network_id>. - В веб-панели разрешите этому узлу быть мостом (включите опцию «Allow Ethernet Bridging» для этого устройства).
- Создайте сетевой мост, объединяющий физический интерфейс (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
- Настройте 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 |
список пиров (других узлов) |