Перейти к основному содержимому

Точки выхода и подсети

Устройство в mesh может раздавать доступ дальше, в интернет или в локальную сеть.

  • Точка выхода пропускает через себя интернет-трафик других устройств. Через неё можно выходить в сеть с IP-адреса офиса или сервера в нужной стране.
  • Подсети открывают доступ к локальной сети за устройством: к принтерам, NAS и серверам офиса. Ставить клиент на каждый хост не нужно.

Раздавать могут устройства на Linux и macOS на тарифах «Профи» и «Легенда». Пользоваться точками выхода и подсетями можно на любом тарифе и любой ОС, если владелец устройства дал доступ.

На устройстве, через которое пойдёт трафик, выполните:

tuna mesh up --advertise-exit-node

Точка выхода сразу появится в разделе Mesh → Точки выхода с типом Полная. Служба tunad сама включит пересылку пакетов и NAT. Если пересылку блокирует Docker, firewalld или ufw, tunad попробует её разрешить, а если не сможет, предупредит об этом в выводе tuna mesh status.

Как раздать подсети​

Перечислите подсети через запятую:

tuna mesh up --advertise-routes=192.168.10.0/24,10.20.0.0/16

Подсети не должны пересекаться с адресами mesh. Весь интернет (0.0.0.0/0) так раздать нельзя, для этого есть --advertise-exit-node. Хосты в локальной сети видят соединения с адреса раздающего устройства, поэтому прописывать на них обратный маршрут не нужно.

Подсети подключаются у других устройств автоматически, флаги не нужны. Проверьте строку Subnet routes в выводе tuna mesh status, а дальше обращайтесь к хостам по их локальным адресам:

ssh admin@192.168.10.15
warning

Флаги --advertise-* нужно указывать при каждом запуске tuna mesh up. Запуск без них, как и tuna mesh down, снимает объявленные точку выхода и подсети.

Кто может пользоваться​

Доступом к точке выхода и подсетям управляет владелец устройства в разделе Mesh → Точки выхода → Разрешения. Ваши собственные устройства могут пользоваться ими всегда.

Раздел «Точки выхода»: office-gw раздаёт две подсети, prod-db-1 — полную точку выхода, доступ «только владелец»

Остальным доступ выдаётся так:

  • Разрешить всей команде — пользоваться может любое устройство команды;
  • Разрешить конкретному устройству — индивидуальное разрешение;
  • Запретить конкретному устройству — запрет действует даже при включённом «Разрешить всей команде».
Окно «Индивидуальные разрешения»: переключатель «Разрешить всей команде» и выдача разрешения или запрета устройству

Кнопка Деанонсировать снимает с устройства точку выхода или подсети. Администратор команды не выдаёт разрешения за владельца, но может принудительно снять точку выхода или подсеть в разделе Команда → Точки выхода.

Точки выхода других участников, к которым у вас есть доступ, собраны на вкладке Чужие точки выхода.

Как выйти через точку выхода​

Укажите устройство при запуске сети:

tuna mesh up --exit-node=prod-db-1

Подходят имя устройства, имя с .tuna или его Mesh IP. Если у вас нет доступа, CLI ответит exit-node access not granted by owner. Локальная сеть, в которой вы находитесь, по-прежнему работает напрямую.

Через точку выхода можно пустить не весь трафик:

ФлагЧто делает
--exit-node-country-include=ruчерез точку выхода идёт только трафик в одну страну
--exit-node-country-exclude=ruтрафик в одну страну идёт напрямую, остальной — через точку выхода
--exit-node-routes-include=<CIDR,...>дополнительные подсети через точку выхода
--exit-node-routes-exclude=<CIDR,...>подсети, которые идут напрямую
--fallback-to-directесли точка выхода недоступна дольше паузы, трафик пойдёт напрямую, а потом вернётся сам
--fallback-to-direct-grace=60sпауза перед переходом на прямое подключение, от 10 секунд до 10 минут

Флаги стран принимают один код страны и работают только вместе с --exit-node. Указать оба флага сразу нельзя. Список кодов покажет tuna mesh countries.

tuna mesh up --exit-node=prod-db-1 --exit-node-country-exclude=ru --fallback-to-direct

Правила доступа действуют и на трафик через точку выхода: запрет на подсеть закроет её и через точку выхода.