Точки выхода и подсети
Устройство в 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
Флаги --advertise-* нужно указывать при каждом запуске tuna mesh up. Запуск без них, как и tuna mesh down, снимает объявленные точку выхода и подсети.
Кто может пользоваться
Доступом к точке выхода и подсетям управляет владелец устройства в разделе Mesh → Точки выхода → Разрешения. Ваши собственные устройства могут пользоваться ими всегда.
Остальным доступ выдаётся так:
- Разрешить всей команде — пользоваться может любое устройство команды;
- Разрешить конкретному устройству — индивидуальное разрешение;
- Запретить конкретному устройству — запрет действует даже при включённом «Разрешить всей команде».
Кнопка Деанонсировать снимает с устройства точку выхода или подсети. Администратор команды не выдаёт разрешения за владельца, но может принудительно снять точку выхода или подсеть в разделе Команда → Точки выхода.
Точки выхода других участников, к которым у вас есть доступ, собраны на вкладке Чужие точки выхода.
Как выйти через точку выхода
Укажите устройство при запуске сети:
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
Правила доступа действуют и на трафик через точку выхода: запрет на подсеть закроет её и через точку выхода.