Не пингуются адреса Tailscale сети
-
Всем привет!
Есть следующая конфигурация:
Есть Lenovo ThinkCentre M720 с одним LAN портом, который подключен к управляемому коммутатору (в моем случае это Keenetic Giga). На мини-компьютер установлен Proxmox - с PFSense VM - в котором установлен Tailscale.
Сеть идет след. образом - WAN порт на свитче настроен как LAN и входит в VLAN 120. В Proxmox в VM PFSense добавлен интерфейс vmbr0 с VLAN 120, соответственно этот интерфейс в фаерволе настроен как WAN и получает IP от моего провайдера.
На свитче (keenetic) есть ещё одна LAN сеть с которой соединяются внешние устройства - ноуты, телефоны и т.п. VLAN 125 (DHCP выключен, настроена только статика, чтобы заходить на свитч), он также прокинут в PFSense как устройство vmbr0 tag 125, а в в самом фаерволе этот интерфейс настроен как LAN с включенным DHCP 192.168.125.0/24 старт со 3-его IP (но это не суть).
При таком сценарии - pfsense работает как обычный роутер, получает WAN IP от провайдера, и раздает IP для LAN сети, интернет работает. Через Package Manager поставил Tailscale, который прекрасно поднялся, но есть проблема, пинговать любые устройства в сети Tailnet я могу только с админки PFSense, с внешнего устройства подключенного по LAN сети с PFSense пинги не проходят и нет доступа ни на одно устройство. Трассировка на Tailscale IP обрывается на шлюзе PFSense. Пробовал в настройках файрвола выставить на сеть Tailscale и LAN ALLOW ANY PROTOCOL, но ничего не помогает. При чем из сети Tailscale я могу пинговать мой PFSense по его IP Tailnet без проблем. Подскажите, где проблема?
-
Добрый день
Так как никаких картинок настроек Вы не предоставили , то приходится гадать
Я лично предполагаю , что причин для такой ситуации может быть 21 . Неверно настроены правила на LAN / Tailscale интерфейсах
или
2. Неверно настроена таблица маршрутизации ( из админки PF с какого интерфейса проходят пинги ? ) -
@konstanti привет!
Прошу прощения, привожу конкретику.
Так выглядит PFSense:
Пока в тестовом варианте PFSense на WAN получает 192.168.120.5, который натится за пока ещё основным роутером Keenetic. DCHP включен на PFSense и раздаёт сеть 192.168.125.0/24 начиная с 3-его IP-шника.Настройки на Keenetic:
4 порт соединен с Lenovo на котором Proxmox/VM. Порт легирован VLAN 120, 125. Настройки на скринах.
Настройки Proxmox:
Я могу спокойно пинговать IP из Tailscale сети находясь в консоли PFSence:
Таблица маршрутов говорит - сеть 100.64.x.x -> tailscale0:
Теперь подключаясь к LAN сети PFSence со своего компьютера пинг не идёт:
Таблица маршрутов:
На самом деле достаточно стандартная.Трассировка рвется на шлюзе PFSense'а:
Что интересно, что когда я в PFSense добавляю Tailscale как отдельный интерфейс через Interfaces -> Interface Assignments:
Как пинги с моего ноута в сеть TS сразу проходят:
Казалось бы - можно выдохнуть, НО после перегрузки PFSense все настройки слетают, т.е. ОС заново просит меня заасайнить какой интерфейс относится к WAN, LAN, прописывать ли VLAN и т.п., TS интерфейс также пропадает. При этом, если я не добавляю интерфейс TS в систему, то после перегрузки настройки WAN/LAN не слетают. Я так понял, что в целом и по хорошему мне не нужно в GUI PFSense добавлять самому интерфейс TS, чтобы всё заработало, проблема в другом. + я экспериментировал с классическим WireGuard подключением, там все работает из коробки, т.е. со своего ноута я могу спокойно достучаться до сети WG без танцев с бубном. Есть идеи? :)
-
Допёр сам путём упорного гугления:
решения описаны тут: git 1 и git 2 и тут tailscale docs
Было бы проще, если в Tailscale для PFSense работала команда с флагом: --snat-subnet-routes=false, но это пока в работе.
Если кому понадобится, конечные настройки:
После этого пинги на сеть Tailnet пошли. НО, всё мне до сих пор не понятно, почему при добавлении TS как отдельного интерфейса после перегрузки PFSense настройки интерфейсов пропадают после перегрузки. Нашёл похожую тему тут: netgate где сказано - "This can happen when one of the configured interfaces is not present." Что не совсем понятно
-
Добрый.
@timotheos
Спасибо за решение.Зы. Вирт. машина на pve создана с ОЧ неоптимальными параметрами на Вашем скрине:
0. Сам прокс не на zfs (компрессия, COW etc).- Machine не q35.
- Тип диска не scsi.
- Не вкл discard для диска ВМ (гуглим про trim).
- Скорее всего на самом хосте не используется ovs вместо linux bridge.
Надумаете как сделать правильно, пишите в ЛС :)
-
Привет! Спасибо за комментарий.
-
Сам прокс не на zfs (компрессия, COW etc)". - у меня только один SSD на Lenovo (пока) и всего 16Gb оперативной памяти, потому не ZFS.
-
"Machine не q35" - думаю, скоро закажу отдельную NIC на 4 порта по 2,5Gbps, поэтому ставил по дефолту, но в целом можно и поменять, что сделал :)
-
Тип диска не scsi - поменял на SCSI, так как когда я добавлял TS интерфейс отдельно, думал, есть какая-то корреляция с записью данных, когда при ребуте PFSense всё сбрасывалось. Кстати, есть идеи, почему так происходит?
-
Не вкл discard для диска ВМ (гуглим про trim). - включил, спасибо :)
-
Скорее всего на самом хосте не используется ovs вместо linux bridge. - да, я оставил LInux Bridge с VLAN Aware, так как не вижу преимуществ перед OVS, может я не прав.
Раз уж тут зашёл разговор - есть идеи как форвардить трафик с LAN сети заблокированных сайтов на Tailscale IP exit node ? Смотрел в правилах Firewall можно выбрать Gateway, через который пойдет траффик, но тут это работает не совсем так.
-
-
-
-
-
-
-
@timotheos
Возвращаясь к связке прокс+пф.
0. 16 гб хватит (аппетиты zfs larc гибко настраиваются - не верьте "сказкам"). Один диск также не помеха - при установке выбрать zfs raid0 (stripe). После покупки 2-го диска можно прямо на горячую собрать raid1.-
Не оч понял, но похожих проблем у меня не было.
-
Поискать в гугле по 'ovs vs linux bridge'. Навскидку, это смена vlan на лету - ovs это умеет.
SDN на проксе тоже на ovs строится:
https://pve.proxmox.com/pve-docs/chapter-pvesdn.html
https://tech2rue.sussudio.ovh/guide-installation-fonctionnalites-sdn/
-