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

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

    Russian
    3
    4
    282
    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 вашей выходной ноды.

      werterW 1 Reply Last reply Reply Quote 3
      • T Timotheos referenced this topic on
      • werterW
        werter @Timotheos
        last edited by

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

        1 Reply Last reply Reply Quote 0
        • A alite-ha referenced this topic
        • A
          alite-ha
          last edited by alite-ha

          Hello @Timotheos
          Is your guide still correct?

          Since assigning the interface made my pfSense box not rebooting correctly and asking for interface configuration? Furthermore did you manage to get Subnet Routing and using an Exit node to work?

          The Video of Christian McDonald where he shows the package also mentions to not assign the interface here: https://youtu.be/Fg_jIPVcioY?t=1182

          Getting official support in the Tailscale Package for using an Exit Node would be really great!

          Thanks.

          T 1 Reply Last reply Reply Quote 0
          • T
            Timotheos @alite-ha
            last edited by

            @alite-ha Hi! The guide is still correct, and yes it is I believe a bug with the assignment Tailscale interface to pFsense where it's not working after rebooting (you have to reassign all from the beginning which is annoying). But selective routing via Exit Node works with interface assignment only, cuz when you create a Firewall rule where you need to choose the gateway it's only possible when it exists, right?

            Speaking of Subnet routing it works out if the box with no issues. You have any problems?

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