Настройка выборочного роутинга через Tailscale Exit Node
-
Всем привет!
В продолжении темы ping сети Tailscale хотел бы поделиться как у меня получилось настроить выборочный роутинг сайтов через Exit Node в Tailscale сети, так как нигде, включая англоязычные сайты, этой информации нет.
Опустим простое действие по установке Tailscale на PFSense по этому поводу есть много гайдов.
Предподготовка. Настройка возможности прямого подключения к нодам, тут все описано в документации в офф. сайте Tailscale.com - pfSense settings to enable direct connections. Статус подключений можно проверить в консоли PFSense через команду в консоли
tailscale status
или в GUI PFSense VPN -> Tailscale -> Status.Если в статусе видим примерно такое:
active; direct XX.XXX.XXX.XXX:41641, tx 5022632 rx 6353916
Значит подключение прямое, следовательно скорость будет гораздо выше, чем когда статус relay.
По ссылке выше выше внесите доп. правило в NAT outbound ОБЯЗАТЕЛЬНО. Скрин всё же добавлю)
192.168.125.0
- тут должна быть ваша LAN сеть, у меня она такая.Далее, выборочный роутинг будет проходить по стандартной схеме - отправляем выборочные сайты ходить через Gateway (Exit node Tailscale), который надо создать. Для этого идем в Interfaces -> Assignments и добавляем интерфейс:
Заходим в интерфейс (OPT1) и заполняем настройки:
IP адрес берем тот, что в статусе TS присвоился PFSense, маска 10 (по документации TS они назначают IP из приватной сети 100.64.0.0/10), нажимаем Save, Apply и далее тут же "Add a new gateway". Оговорка, здесь предполагаем, что ранее вы уже создали какую либо выходную ноду, гайды можно найти на офф сайте: Exit nodes. Вписываем IP выходной ноды:
Дефолтным его не делаем, так как мы будем пускать туда трафик по Alias списку. Можно по желанию зайти в System -> Routing -> TSGW и вписать Monitor IP (у меня это IP моей выходной ноды):
После этого, я думал, что всё должно заработать, но нет, пока не осознал, что Tailscale запущен без флага --exit-node=100.x.x.x (gateway который вписывали ранее), кстати, разрабы могли бы добавить эту функцию в GUI. Чтобы всё получилось надо пойти в косоль (SSH) и запустить команду вида tailscale up --reset --exit-node=100.x.x.x --accept-routes. Этим мы скажем, что выходная нода будет нужный нам gateway. Чтобы этот процесс автоматизировать после перегрузки создадим простой скрипт:
nano /usr/local/etc/rc.d/tailscale-node.sh
#!/bin/sh sleep 3 tailscale up --reset --exit-node=100.X.X.X --accept-routes
(если nano не установлено, то сначала
pkg install nano -y
)Делаем файл исполняемым:
chmod +x /usr/local/etc/rc.d/tailscale-node.sh
Можно тут же его выполнить:
sh /usr/local/etc/rc.d/tailscale-node.sh
Готово, теперь самое простое, идем в Firewall -> Aliases добавляем сайт к примеру myip.ru:
Идем Firewall -> Rules -> LAN добавляем правило:
Источник - LAN сеть, направление - Single host or alias и список в нашем случае unblock (писать ручками)
Далее, Save, Apply. Готово, после можно зайти на сайт myip.ru и убедиться, что там стоит адрес IP вашей выходной ноды.
-
-
Добрый.
@timotheos
Супер, спасибо!