ZeroTier паказвае ўдзельніка як OK, сетка далучана, а адраса для ping усё няма. Такое спалучэнне ўспрымаецца як памылка і звычайна азначае раздвоеную канфігурацыю: ухваленне ўдзельніка — адзін перамыкач, а выдача адраса — другі. Сетка можа прыняць прыладу і ніколі нічога ёй не прызначыць, бо пул адрасоў або рэжым прызначэння не быў настроены.

Прачытайце абодва бакі, перш чым змяняць хоць адзін з іх. Адказ бачны ў двух месцах, і толькі адно з іх — на кантролеры.

Аўтарызацыя і прызначэнне — розныя перамыкачы

Аўтарызацыя адказвае, ці можа гэты вузел удзельнічаць у сетцы. Прызначэнне адраса адказвае, што сетка дае яму пасля ўдзелу, і гэты адказ паходзіць з пула адрасоў плюс рэжым прызначэння. Ні адна налада не вынікае з другой. Адна — гэта дазвол, другая — размеркаванне.

Канфігурацыя кантролера звычайна змяшчае кіраваны маршрут, дыяпазон адрасоў і рэжым, які вырашае, ці выкарыстоўваецца аўтаматычнае прызначэнне. Капіраванне ідэнтыфікатара сеткі з іншага асяроддзя прыносіць членства і нічога з гэтай канфігурацыі.

Таму прылада можа выглядаць здаровай у спісе ўдзельнікаў, пакуль яе слупок прызначанага адраса застаецца пустым. Кантролер яе прыняў і не мае чаго даць. Абодва сцвярджэнні праўдзівыя адначасова.

LayerWhat it decidesWhere it is configured
MembershipWhether the node may joinMember authorization on the network
PoolWhich addresses exist to hand outNetwork address range
Assignment modeWhether they are handed out automaticallyNetwork v4/v6 assignment settings

Чытанне фактычнага стану ўдзельніка

Спытайце кліент, што ён насамрэч атрымаў, а не што меў на ўвазе кантролер. Звычайны спіс паказвае слупкі стану і адраса, а форма JSON паказвае канфігурацыю сеткі, якую кліент ужыў, уключаючы кіраваныя адрасы і маршруты.

zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'

Параўнайце два вынікі для таго ж ідэнтыфікатара сеткі, а не для фізічных адаптараў, якія з'яўляюцца ва ўласным спісе аперацыйнай сістэмы. Радок, які паведамляе OK з пустым наборам адрасоў, пацвярджае прабел у прызначэнні, а не збой сувязі. Чытанне не таго радка — другая палова гэтай памылкі.

Стан ACCESS_DENIED паказвае назад на аўтарызацыю, і гэта іншы рамонт. Калі каманда ўвогуле не можа прачытаць лакальны токен аўтэнтыфікацыі, праблема ў лакальных дазволах, а не ў адмове кантролера, і выпраўленне — на машыне, за якой вы сядзіце.

Калі кліент ігнаруе тое, што дасылае кантролер

У кліента ёсць уласныя налады, якія вырашаюць, ці ўжываецца кіраваная канфігурацыя. Профіль, які адключае кіраваныя адрасы, кіраваныя маршруты або апрацоўку маршруту па змаўчанні, адкіне тое, што дасылае сетка, а спіс удзельнікаў з боку кантролера ўсё яшчэ будзе выглядаць правільным.

Гэтыя сцягі тычацца толькі лакальнага вузла. Іх змена не мяняе таго, што атрымліваюць іншыя ўдзельнікі, і не выпраўляе пул, які ніколі не быў вызначаны.

Такім чынам, дыягназ мае дзве галіны: у кантролера няма адраса, каб даць, або кліент адмовіўся ад таго, што яму далі. Яны вядуць да розных рамонтаў на розных машынах. Вынік JSON адрознівае іх, бо адрас або адсутнічае ў канфігурацыі сеткі, або прысутнічае і адсутнічае ва ўжытым стане кліента.

Што выправіць замест выдумвання адраса

Увод адвольнага статычнага адраса — спакуслівы трэці варыянт і найгоршы. Выпадковы адрас можа сутыкнуцца з іншым вузлом, апынуцца па-за маршрутамі, якія распаўсюджвае сетка, або трапіць у дыяпазон, які правілы файрвола апрацоўваюць інакш. Ён таксама хавае адсутны пул ад таго, хто наступным паглядзіць на сетку. Выпраўляйце прызначэнне, і хай кантролер і кліент дамовяцца пра вынік.

Спытайце адміністратара, што сетка павінна выдаваць, затым праверце, што пул пакрывае патрэбны дыяпазон і рэжым прызначэння ўключаны. Далучыцеся нанова пасля змены, а не чакайце, што кліент адразу сам дабярэцца да новай канфігурацыі.

Калі адрас з'явіцца, праверце тое, што вам насамрэч было трэба: партнёра, сэрвіс або падсетку за шлюзам. Доступ да LAN за ўдзельнікам патрабуе маршрутызацыі і перасылкі звыш членства, а агульны доступ у інтэрнэт патрабуе вузла выхаду, таму працоўны адрас — гэта пачатак такога тэсту, а не яго канец.

Падобныя артыкулы