Navigation

    Netgate Discussion Forum
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search

    Настройка выборочного роутинга через Tailscale Exit Node

    Russian
    2
    2
    96
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Timotheos last edited by Timotheos

      Всем привет!

      В продолжении темы 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 ОБЯЗАТЕЛЬНО. Скрин всё же добавлю)

      Снимок экрана 2023-02-20 в 10.59.56.png
      192.168.125.0 - тут должна быть ваша LAN сеть, у меня она такая.

      Далее, выборочный роутинг будет проходить по стандартной схеме - отправляем выборочные сайты ходить через Gateway (Exit node Tailscale), который надо создать. Для этого идем в Interfaces -> Assignments и добавляем интерфейс:

      1.png

      Заходим в интерфейс (OPT1) и заполняем настройки:
      Снимок экрана 2023-02-20 в 10.14.29.png

      IP адрес берем тот, что в статусе TS присвоился PFSense, маска 10 (по документации TS они назначают IP из приватной сети 100.64.0.0/10), нажимаем Save, Apply и далее тут же "Add a new gateway". Оговорка, здесь предполагаем, что ранее вы уже создали какую либо выходную ноду, гайды можно найти на офф сайте: Exit nodes. Вписываем IP выходной ноды:

      Снимок экрана 2023-02-20 в 10.21.42.png

      Дефолтным его не делаем, так как мы будем пускать туда трафик по Alias списку. Можно по желанию зайти в System -> Routing -> TSGW и вписать Monitor IP (у меня это IP моей выходной ноды):

      Снимок экрана 2023-02-20 в 10.28.39.png

      После этого, я думал, что всё должно заработать, но нет, пока не осознал, что 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:

      Снимок экрана 2023-02-20 в 10.39.38.png

      Идем Firewall -> Rules -> LAN добавляем правило:

      Снимок экрана 2023-02-20 в 10.41.38.png

      Источник - LAN сеть, направление - Single host or alias и список в нашем случае unblock (писать ручками)

      Снимок экрана 2023-02-20 в 10.41.47.png

      Далее, Save, Apply. Готово, после можно зайти на сайт myip.ru и убедиться, что там стоит адрес IP вашей выходной ноды.

      werter 1 Reply Last reply Reply Quote 2
      • Referenced by  T Timotheos 
      • werter
        werter @Timotheos last edited by

        Добрый.
        @timotheos
        Супер, спасибо!

        1 Reply Last reply Reply Quote 0
        • First post
          Last post