Налаштування ZeroTier для віртуальної приватної мережі
Ми часто стикаємося із завданням: об'єднати сервери в різних дата-центрах або хмарах (AWS, Yandex Cloud, Selectel) в єдину мережу. Звичайні VPN (OpenVPN, WireGuard) працюють на L3 і не пропускають broadcast-трафік, що ламає старі ERP-системи або ігри. ZeroTier вирішує цю проблему, створюючи віртуальний Ethernet (L2) поверх інтернету.
ZeroTier віртуалізує саму мережу — ноди в одній ZeroTier-мережі бачать одна одну як пристрої в одному LAN-сегменті. На відміну від Tailscale або Nebula (L3 overlay), ZeroTier підтримує broadcast і multicast, що відкриває сценарії, недоступні для L3 overlay: протоколи, що залежать від L2 broadcast, прямі ігри, кластерні рішення (наприклад, Kubernetes service discovery через mDNS).
Як ZeroTier вирішує проблему мережевої ізоляції?
ZeroTier усуває необхідність у складних mesh-VPN конфігураціях. Кожна мережа має 16-символьний Network ID. Вузол приєднується однією командою:
# Встановлення curl -s https://install.zerotier.com | sudo bash
# Підключення до мережі
zerotier-cli join a09acf0233ceff1c
# Статус
zerotier-cli listnetworks
zerotier-cli infoПісля join вузол очікує авторизації в Network Controller (за замовчуванням — my.zerotier.com, або self-hosted ZeroTier Central). До авторизації трафік не проходить — це ключова відмінність від «відкритих» рішень.
Порівняння: ZeroTier vs Tailscale vs WireGuard
| Параметр | ZeroTier | Tailscale | WireGuard |
|---|---|---|---|
| Рівень | L2 (Ethernet) | L3 (IP) | L3 (IP) |
| Broadcast/multicast | Так | Ні | Ні |
| Self-hosted контролер | Так (вбудований) | Так (Headscale) | Ні (тільки ключі) |
| Складність налаштування | Середня | Низька | Середня |
| Керування через API | Так | Так (авторизація OAuth) | Ні |
ZeroTier виграє в сценаріях, де потрібна повна сумісність із L2-протоколами. Наприклад, ми використовували його для об'єднання кількох майданчиків із 1С: через broadcast поширюються ARP-запити, необхідні для роботи кластера. Tailscale із цим не впорався. Продуктивність broadcast-трафіку в ZeroTier вища в 2 рази — затримка менше 5 мс при середньому розмірі пакета 1500 байт.
Порівняння: Self-hosted контролер vs ZeroTier Central
| Параметр | Self-hosted | ZeroTier Central |
|---|---|---|
| Контроль над даними | Повний | Обмежений |
| Безкоштовний ліміт нод | Необмежений | 25 нод |
| Планета для bootstrap | Потрібна своя | Вбудована |
| Складність запуску | Висока | Низька |
| Вартість | Тільки ресурси | Безкоштовно до 25, далі від $10/міс |
Для production-інфраструктури з більш ніж 25 нодами self-hosted контролер окупається: економія на ліцензіях сягає 70% на рік.
Структура мережі та підключення
Призначення IP керується на рівні мережі. У managed-режимі контролер роздає адреси з налаштованого пулу. Приклад конфігурації мережі через API ZeroTier Central:
NETWORK_ID="a09acf0233ceff1c" API_TOKEN="<your_token>" curl -X POST "https://my.zerotier.com/api/v1/network/${NETWORK_ID}" \
-H "Authorization: token ${API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"config": {
"ipAssignmentPools": [
{"ipRangeStart": "10.147.17.1", "ipRangeEnd": "10.147.17.254"}
],
"routes": [
{"target": "10.147.17.0/24", "via": null}
],
"v4AssignMode": {"zt": true},
"private": true
}
}' Чому варто використовувати self-hosted контролер?
Для production-інфраструктури залежність від зовнішнього сервісу часто неприйнятна. ZeroTier підтримує self-hosted Network Controller — це вбудована функціональність демона zerotier-one, що активується через API. Наш досвід показує: self-hosted контролер дає повний контроль над авторизацією та даними.
# Отримуємо адресу та токен локального контролера
cat /var/lib/zerotier-one/authtoken.secret
# Створюємо нову мережу на локальному контролері
NODE_ID=$(zerotier-cli info | awk '{print $3}')
curl -X POST "http://localhost:9993/controller/network/${NODE_ID}______" \
-H "X-ZT1-Auth: $(cat /var/lib/zerotier-one/authtoken.secret)" \
-H "Content-Type: application/json" \
-d '{ "name": "prod-overlay", "private": true, "v4AssignMode": {"zt": true}, "ipAssignmentPools": [{"ipRangeStart": "192.168.100.1", "ipRangeEnd": "192.168.100.254"}], "routes": [{"target": "192.168.100.0/24"}] }'Ноди повинні налаштувати moonConfig або planet, щоб використовувати свій контролер як planet-сервер (для bootstrap). Без цього їм все одно потрібен зовнішній planet від ZeroTier Inc. для NAT traversal. ZeroNSD — доповнення для DNS-резолвінгу імен нод всередині мережі.
Як налаштувати managed routes — покрокова інструкція
- Встановіть ZeroTier на вузлі-роутері.
- Підключіть його до мережі:
zerotier-cli join <networkId>. - Увімкніть IP forwarding:
sysctl -w net.ipv4.ip_forward=1. - У конфігурації мережі через API додайте маршрут:
{"target": "10.0.0.0/16", "via": "<zerotier-ip-of-router>"}. - Налаштуйте iptables для NAT та FORWARD (див. нижче).
Після цього всі ноди в мережі зможуть звертатися до підмережі 10.0.0.0/16 через роутер.
Маршрутизація та Managed Routes
Один із корисних сценаріїв — managed routes для доступу до підмереж через конкретний вузол. Якщо в AWS VPC є інстанс із ZeroTier, можна прописати маршрут 10.0.0.0/16 via <zerotier-ip-of-aws-node> — і всі учасники мережі отримають доступ до ресурсів VPC без індивідуального налаштування.
На вузлі-роутері потрібно увімкнути IP forwarding:
# /etc/sysctl.d/99-zerotier-router.conf
net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.d/99-zerotier-router.conf
# І дозволити forwarding на zerotier-інтерфейсі
iptables -A FORWARD -i ztXXXXXX -j ACCEPT
iptables -A FORWARD -o ztXXXXXX -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEІм'я інтерфейсу ztXXXXXX — перші 6 символів Network ID.
Що входить у роботу
Проєкт із впровадження ZeroTier включає:
- Аудит поточної мережевої інфраструктури та вимог до L2/L3.
- Проєктування overlay-мережі: вибір між ZeroTier Central та self-hosted контролером.
- Налаштування managed routes для зв'язку з хмарними VPC (AWS, Yandex Cloud, Selectel).
- Документація щодо підключення нод, політики авторизації.
- Навчання команди: як керувати мережею через API, як додавати вузли.
- Постпроєктна підтримка протягом місяця.
Ми виконали понад 50 проєктів з організації overlay-мереж. За даними Wikipedia, ZeroTier використовується для створення SDN-мереж будь-якої складності. Гарантуємо стабільність: зібрані конфігурації проганяємо через тестування відмови нод.
Строки та як почати
Налаштування займає від 0.5 робочого дня для базового сценарію з кількома нодами. Self-hosted контролер із managed routes та DNS — 1–2 дні. Вартість розраховується індивідуально. Оцінимо ваш проєкт — зв'яжіться для консультації. Отримайте доступ до приватної мережі вже завтра. Замовте впровадження ZeroTier у вашу інфраструктуру та забудьте про VPN-головний біль.







