Един хост в Tailscale отговаря, а друг остава тъмен, или всичко работи, докато публичните сайтове не започнат да съобщават грешна държава. И двете оплаквания идват като „Tailscale е счупен“, и обикновено и двете са грешната конструкция, включена за грешната дестинация. Рутерът за подмрежа излага частна мрежа на tailnet, докато изходният възел променя откъде излиза интернет трафикът. Подреди първо дестинацията, която се проваля, после избери ролята, която я покрива.

Започни от дестинацията, която се провали

Запиши адреса или името, което не е работило, и какъв вид нещо е то. Устройство в частна LAN зад друг обект, услуга в твоя сегмент и публичен сайт са три проблема с маршрутизацията, които случайно споделят един клиент. Разликата не е козметична, защото двете конструкции покриват различни набори от дестинации. Включването на едната не прави нищо за другата и това е целият източник на объркването.

Отбележи и семейството на адреса. Подмрежа, обявена само като IPv4, оставя дестинациите IPv6 по локалния път, което изглежда като частичен отказ, докато някой не сравни двете таблици за маршрутизация. Запиши какъв си очаквал да бъде пътят, за да има после тестът какво да опровергае.

Достигни устройство, което никога не пуска Tailscale

Рутерът обявява конкретни диапазони на tailnet, после препраща пакети между tailnet и частния сегмент, така че устройствата в този сегмент не се нуждаят от собствен клиент. Достигането на NAS в офиса от лаптоп вкъщи е точно този случай. Рутерът е единственият член на tailnet от тази страна.

tailscale up --advertise-routes=10.40.0.0/24 --advertise-exit-node=false
ip route get 10.40.0.55
tailscale status

Обявяването е само първото от три условия. Маршрутът трябва да бъде одобрен за tailnet, клиентът трябва да приеме обявените маршрути, и правило за достъп трябва да разреши връзката. Точно тази верига е причината симптомът толкова често да е, че рутерът работи, а NAS не. Достижим рутер доказва, че тунелът работи; той не доказва нищо за одобрение, приемане от клиента или политика.

Всеки от тези три отказа изглежда различно в административната конзола. Проверявай ги по ред, вместо да сменяш и трите наведнъж, защото втора промяна скрива коя е имала значение.

Изкарай публичния трафик през друга машина

Изходният възел прекарва общия ти интернет трафик през себе си, което е най-близкият аналог на схемата с пълен тунел в други VPN продукти. Той също се нуждае от три отделни съгласия: устройството обявява ролята, администратор я разрешава и клиентът я избира. Присъединяването към tailnet по подразбиране не изпраща нищо през друг член.

tailscale up --advertise-exit-node
tailscale up --exit-node=100.101.102.103 --exit-node-allow-lan-access=false
tailscale status --json | grep -i exitnode

Избирането на изходен възел не дава автоматично достъп до неговата собствена LAN. Опцията за достъп до LAN съществува точно защото това са различни разрешения и да я оставиш изключена е по-безопасното подразбиране. Маршрутите към други ресурси на Tailscale запазват собствената си обработка дори при активен изходен възел. Затова услуга, хоствана в подмрежа, може да продължи да работи, докато публичният интернет път се е променил.

Изходният възел променя и как интернет те вижда, не само колко бързо се усеща. Очаквай геолокацията, каталозите за стрийминг и ограниченията на скоростта да следват адреса на изхода, а не твоя.

Прочети разделянето на три, когато се проваля само един хост

Принтер в твоя сегмент, NAS зад отдалечен рутер за подмрежа и публичен сайт са три дестинации с три различни пътя. Ако точно една от тях се проваля, дефектът принадлежи на пътя на тази дестинация, а не на клиента като цяло. За локалния принтер при използван изходен възел обичайният отговор е настройката за достъп до LAN. За отдалечения NAS провери обявения диапазон, състоянието на одобрение и правилата за достъп в този ред. За публичен сайт провери кой изходен възел е избран и дали клиентът наистина го е приел.

Ако адресът работи, а името не, спри да гледаш маршрутите. Частният DNS се настройва отделно и име, което се решава до грешен адрес, се проваля по начин, който изглежда идентичен на блокиран маршрут. Тествай първо адреса, после името, и двата резултата ще ти кажат кой слой да отвориш.

Потвърди пътя, който мислиш, че си изградил

Проверката е справка за маршрут плюс проверка на адреса, а не ping. Справката казва кой интерфейс би използвала дестинацията, а проверката на адреса казва в кой диапазон всъщност живее дестинацията. Успешният ping казва, че хостът е жив някъде, което не е въпросът. Изпълни и двете, преди да промениш каквато и да е конфигурация.

ip route get 10.40.0.55
ip -6 route show default
tailscale ping 10.40.0.55

Свържи това със собствения изглед на tailnet, който показва дали партньорът е свързан директно или през релей. Пътят през релей също работи и това обяснява оплаквания за закъснение, които нямат нищо общо с маршрута, който си отстранявал. А документацията за рутера за подмрежа покрива стъпката на одобрение, ако не ти е позната. После запиши коя конструкция коя дестинация покрива за твоята мрежа, защото следващият човек, който добави обект, ще зададе същия въпрос.

Подобни статии