Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
   RSS
Добавление Tailscale на Unifi USG и настройка site-to-site VPN, UniFi Network
 
Недавно у меня возникли проблемы со скоростью по умолчанию IPSec site-to-site VPN между двумя USG, и я решил сменить VPN. В интернете можно найти инструкции по установке wireguard на USG, но учитывая гибкость tailscale, я решил попробовать его. Есть довольно хорошие инструкции по установке tailscale на EdgeRouter — https://gist.github.com/lg/6f80593bd55ca9c9cf886da169a972c3 от пользователя lg, которые в теории должны работать и для USG. Однако есть небольшая проблема с прямым следованием этим инструкциям, так как USG использует старый способ запуска служб и не поддерживает systemctl. Я потратил несколько часов, пытаясь запустить tailscaled как сервис, но в итоге сдался и вместо того, чтобы разбираться дальше, решил попробовать другой подход. Я изменил скрипт от lg (ссылка выше), чтобы запускать tailscaled как фоновой процесс, который открывает tun и затем инициирует соединение tailscale. Вот что я сделал:

Откройте веб-браузер и перейдите на www.tailscale.com, создайте нового пользователя, если еще не сделали этого. Далее ssh на ваш USG и выполните sudo su.  
Установите MIPS-версию tailscale, следуя инструкциям lg из ссылки выше (пункт 1 из его списка).  
Создайте и отредактируйте скрипт tailscale.sh, выполнив vi tailscale.sh в домашнем каталоге (можно создать где угодно, главное знать где), и вставьте туда следующий код:  
#!/bin/sh  
ln -s /config/tailscale /usr/bin/tailscale  
ln -s /config/tailscaled /usr/sbin/tailscaled  
mkdir -p /var/lib/tailscale/  
touch /config/auth/tailscaled.state  
chmod 0400 /config/auth/tailscaled.state  
ln -s /config/auth/tailscaled.state /var/lib/tailscale/tailscaled.state  
sudo tailscaled > /dev/null 2>&1 &  
disown  
sudo tailscale up --advertise-routes=192.168.X.0/24 --accept-routes  

Где 192.168.X.0/24 — это внутренний LAN-сегмент за вашим USG, к которому вы хотите получить доступ с других хостов в tailscale-сети (скажем, вы хотите видеть все свои компьютеры, NAS, хабы и т. п. из локальных сетей на телефоне, подключенном к той же tailscale-сети). Можно пропустить опцию “--advertise-routes=192.168.X.0/24”, если вы не хотите открывать внутренние сети, или добавить несколько подсетей/VLAN, разделяя их запятыми (подробнее: https://tailscale.com/kb/1019/subnets).

Далее:  
5. Выполните chmod +x tailscale.sh, чтобы сделать скрипт исполняемым (при условии, что вы находитесь в каталоге со скриптом).  
6. Выполните mkdir /config/scripts/post-config.d, чтобы создать каталог post-config.d (если он еще не существует), и скопируйте туда скрипт tailscale.sh командой cp tailscale.sh /config/scripts/post-config.d/. Это нужно, потому что tailscaled мы не запускаем как сервис, а как фоновый процесс, который надо запускать после каждой перезагрузки или провиженинга (и который должен сохраняться даже после обновлений системы).  
7. Запустите скрипт командой ./tailscale.sh. Если вы подключаете USG к tailscale впервые, будет нужно пройти аутентификацию — скопируйте ссылку, которая появится, вставьте ее в браузер и войдите с учетными данными tailscale (из пункта 1). Теперь можно проверить, что все запущено, выполнив tailscale status. Если все нормально, вы увидите все хосты в вашей tailscale-сети, их IP-адреса и открытые ими сети.  
8. Вернитесь в браузер, откройте tailscale.com (если закрыли) и админ-консоль. Если все в порядке, вы должны увидеть ваш USG как новый хост. Нажмите три точки справа, отключите истечение срока ключа и примите маршруты подсетей, которые вы открываете, нажав “review subnet routes” и включив нужные подсети.

Это все, что нужно сделать, чтобы один USG установил постоянный туннель к вашей tailscale-сети, который будет работать после перезагрузок, провиженинга и обновлений.

Если у вас два объекта, управляемых USG, можно построить tailscale/wireguard-туннель между ними, установив tailscale на обоих USG, следуя описанным выше инструкциям для каждого. Единственная разница — внутренние сети, которые каждый из USG открывает. Например, USG1 открывает 192.168.X1.0/24, а USG2 — 192.168.X2.0/24; тогда нужно в скрипте соответственно изменить последнюю строку. После этого нужно добавить статический маршрут в каждом USG, чтобы остальные хосты в локальной сети знали, как найти устройства в другой сети.

Для этого зайдите в соответствующий Unifi Controller через веб-интерфейс, выберите сайт, где располагается один из USG, и перейдите в раздел routing & firewall. Там добавьте новый статический маршрут: к примеру, находясь на сайте USG1, создайте маршрут для сети 192.168.X2.0/24, указывая в качестве следующего перехода IP-адрес tailscale USG1 (который можно посмотреть в админ-консоли tailscale). Аналогично для USG2 — добавьте маршрут для сети 192.168.X1.0/24 с next hop, равным IP tailscale USG2. После провиженинга USG обе локальные сети смогут видеть друг друга, как если бы вы настроили автоматический IPSec site-to-site VPN, но с преимуществом более быстрой и безопасной связи, и при этом оба USG могут управляться разными Unifi контроллерами.
Страницы: Пред. 1 2
Ответы
 
pelowj, ты уверен, что правильно настраиваешь маршруты в tailscale? Например, я запускаю tailscale на удалённом USG с помощью sudo tailscale up --advertise-routes=192.168.1.0/24 --accept-routes. Я принял этот маршрут в админ-консоли Tailscale через «review route settings». Если всё правильно настроено на локальном USG, когда я выполняю ip route show table 52, я вижу маршруты ко всем подключённым устройствам И 192.168.1.0/24 dev tailscale0 scope link — это маршрут к сети за удалённым USG. Что касается скорости site-to-site VPN, у меня она около 10-20 Мбит/с (что близко к скорости загрузки на одном из моих сайтов с подключением d750Mbps/u30Mbps). В другой сети tailscale без USG я видел гораздо более высокие скорости, так что не могу сказать, ограничена ли скорость линией или это связано с возможностями USG. Если смотреть на загрузку CPU и памяти tailscaled (ps aux | grep tail), то CPU может подниматься до 40-50% на обычном USG и 20-30% на USG Pro, так что, возможно, он упирается в пределы возможностей USG.
Страницы: Пред. 1 2
Читают тему (гостей: 1)