Почему не Tailscale? Кинетик штатно поддерживает ZeroTier. Все хотелки реализуемы даже в рамках ограничений бесплатного тарифа. Tailscale работает поверх протокола WireGuard, который уже блокируется в некоторых регионах, в то время как у ZeroTier нечто кастомное.
Скриншотики в комментах.
Регистрируемся на my.zerotier.com
Создаем сеть: Create A Network
Заходим в её настройки → Advanced → IPv4 Auto-Assign
✅ Auto-Assign from Range
Easy
172.25.*.*
Вверху страницы есть Network ID — записываем и переходим к роутерам.
Важно! Домашние сегменты должны различаться на каждом из роутеров. Если на обоих из них подсети совпадают, а они дефолтно совпадают —
192.168.1.0/24, то нужно поменять хотя бы одну из них. Делается это в админке кинетика → раздел Мои сети и Wi-Fi → имя сегментаВ моём примере будут:
кин1
Подсеть: 192.168.10.0/24
IP-адрес: 192.168.10.1
Zerotier IP: 172.25.10.1
и
кин2
Подсеть: 192.168.20.0/24
IP-адрес: 192.168.20.1
Zerotier IP: 172.25.20.1
На обоих роутерах нужно установить пакет
клиент ZeroTier и желательно обновить KeeneticOS до 4.2.* или новее.Начнём с
кин1.Интерфейса для zerotier клиента пока не нарисовали, поэтому настраивать придётся через консоль, попасть в которую можно, дописав к урлу админки
/a. В моём случае это http://192.168.10.1/a.В консоли создаём новый сетевой интерфейс:
interface ZeroTier0
Приглашение командной строки должно поменяться на
(config-if)>Подключаемся к сети zerotier. Идентификатор сети, заменив идентификатор сети.
zerotier network 0123456789abcdef
Построчно вводим
zerotier accept-routes
zerotier accept-addresses
up
show running-config
Ищем на странице строку
interface ZeroTier0 и убеждаемся, что наблюдается нечто подобное:
"interface ZeroTier0",
" dyndns nobind",
" security-level public",
" ip dhcp client dns-routes",
" zerotier accept-addresses",
" zerotier accept-routes",
" zerotier network-id 0123456789abcdef",
" up",
"!",
Сохраняем конфиг, иначе он слетит после перезагрузки роутера:
system configuration save
Возвращаемся в админку ZeroTier и видим 🚫 «гостя» в нашей сети.
• Открываем его
• Одобряем его: Authorized ✅
• Даём какое-нибудь понятное имя
• Назначаем IP:
172.25.10.1• Сохраняем: Save
После чего проверяем, что
Auth поменялся на ✅, а Last Seen не превышает пары минут.Заходим в админку роутера
Сетевые правила → Межсетевой экран → вкладка ZeroTier0 → Добавить правило:
✅ Включить правило
Действие: Разрешить
IP-адрес источника: Любой
IP-адрес назначения: Любой
Протокол: ICMP
И второе:
✅ Включить правило
Действие: Разрешить
IP-адрес источника: Любой
IP-адрес назначения: Любой
Протокол: IP
Там же в админке кинетика добавляем маршруты до кин2.
Сетевые правила → Маршрутизация → Добавить маршрут:
Тип маршрута: Маршрут до сети
Адрес сети назначения: 192.168.20.0
Маска подсети: 255.255.255.0 (/24)
Адрес шлюза: 172.25.20.1
Интерфейс: ZeroTier0
✅ Добавлять автоматически
❌ Эксклюзивный маршрут
Возвращаемся к параграфу «Начнём с кин1» и проделываем все шаги над вторым роутером. Но с отличием в IP-адресе в админке ZeroTier, а также маршрут теперь должен указывать не на кин2, а на кин1.
Готово!
На данный момент пакеты и пинги уже должны ходить между хостами так, будто это одна сеть. Ну почти. NAT будет работать даже внутри собственной ZeroTier сети, но скорее всего он никак не помешает.
Отключайте NAT только в том случае, если понимаете, зачем это нужно.
Админка роутера → Сетевые правила → Переадресация портов → Добавить правило:
✅ Включить правило
Вход: название сегмента вашей домашней сети
Выход: название интерфейса выхода в интернет
Протокол: TCP/UDP (все порты) и ICMP
Затем Мои сети и Wi-Fi → название домашнего сегмента:
❌ Использовать NAT
Таким образом мы отключили правило, которое NATит вообще всё, заменив на более точечное, которое NATит только выход в интернет.