Аўтарызаваны ў ZeroTier, але без адраса? Дзве асобныя налады
Ухваленне ўдзельніка і выдача яму адраса — дзве розныя налады. Прачытайце пул, рэжым прызначэння і ўжыты стан кліента, перш чым выдумляць IP.
ZeroTier паказвае ўдзельніка як OK, сетка далучана, а адраса для ping усё няма. Такое спалучэнне ўспрымаецца як памылка і звычайна азначае раздвоеную канфігурацыю: ухваленне ўдзельніка — адзін перамыкач, а выдача адраса — другі. Сетка можа прыняць прыладу і ніколі нічога ёй не прызначыць, бо пул адрасоў або рэжым прызначэння не быў настроены.
Прачытайце абодва бакі, перш чым змяняць хоць адзін з іх. Адказ бачны ў двух месцах, і толькі адно з іх — на кантролеры.
Аўтарызацыя і прызначэнне — розныя перамыкачы
Аўтарызацыя адказвае, ці можа гэты вузел удзельнічаць у сетцы. Прызначэнне адраса адказвае, што сетка дае яму пасля ўдзелу, і гэты адказ паходзіць з пула адрасоў плюс рэжым прызначэння. Ні адна налада не вынікае з другой. Адна — гэта дазвол, другая — размеркаванне.
Канфігурацыя кантролера звычайна змяшчае кіраваны маршрут, дыяпазон адрасоў і рэжым, які вырашае, ці выкарыстоўваецца аўтаматычнае прызначэнне. Капіраванне ідэнтыфікатара сеткі з іншага асяроддзя прыносіць членства і нічога з гэтай канфігурацыі.
Таму прылада можа выглядаць здаровай у спісе ўдзельнікаў, пакуль яе слупок прызначанага адраса застаецца пустым. Кантролер яе прыняў і не мае чаго даць. Абодва сцвярджэнні праўдзівыя адначасова.
| Layer | What it decides | Where it is configured |
|---|---|---|
| Membership | Whether the node may join | Member authorization on the network |
| Pool | Which addresses exist to hand out | Network address range |
| Assignment mode | Whether they are handed out automatically | Network v4/v6 assignment settings |
Чытанне фактычнага стану ўдзельніка
Спытайце кліент, што ён насамрэч атрымаў, а не што меў на ўвазе кантролер. Звычайны спіс паказвае слупкі стану і адраса, а форма JSON паказвае канфігурацыю сеткі, якую кліент ужыў, уключаючы кіраваныя адрасы і маршруты.
zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'
Параўнайце два вынікі для таго ж ідэнтыфікатара сеткі, а не для фізічных адаптараў, якія з'яўляюцца ва ўласным спісе аперацыйнай сістэмы. Радок, які паведамляе OK з пустым наборам адрасоў, пацвярджае прабел у прызначэнні, а не збой сувязі. Чытанне не таго радка — другая палова гэтай памылкі.
Стан ACCESS_DENIED паказвае назад на аўтарызацыю, і гэта іншы рамонт. Калі каманда ўвогуле не можа прачытаць лакальны токен аўтэнтыфікацыі, праблема ў лакальных дазволах, а не ў адмове кантролера, і выпраўленне — на машыне, за якой вы сядзіце.
Калі кліент ігнаруе тое, што дасылае кантролер
У кліента ёсць уласныя налады, якія вырашаюць, ці ўжываецца кіраваная канфігурацыя. Профіль, які адключае кіраваныя адрасы, кіраваныя маршруты або апрацоўку маршруту па змаўчанні, адкіне тое, што дасылае сетка, а спіс удзельнікаў з боку кантролера ўсё яшчэ будзе выглядаць правільным.
Гэтыя сцягі тычацца толькі лакальнага вузла. Іх змена не мяняе таго, што атрымліваюць іншыя ўдзельнікі, і не выпраўляе пул, які ніколі не быў вызначаны.
Такім чынам, дыягназ мае дзве галіны: у кантролера няма адраса, каб даць, або кліент адмовіўся ад таго, што яму далі. Яны вядуць да розных рамонтаў на розных машынах. Вынік JSON адрознівае іх, бо адрас або адсутнічае ў канфігурацыі сеткі, або прысутнічае і адсутнічае ва ўжытым стане кліента.
Што выправіць замест выдумвання адраса
Увод адвольнага статычнага адраса — спакуслівы трэці варыянт і найгоршы. Выпадковы адрас можа сутыкнуцца з іншым вузлом, апынуцца па-за маршрутамі, якія распаўсюджвае сетка, або трапіць у дыяпазон, які правілы файрвола апрацоўваюць інакш. Ён таксама хавае адсутны пул ад таго, хто наступным паглядзіць на сетку. Выпраўляйце прызначэнне, і хай кантролер і кліент дамовяцца пра вынік.
Спытайце адміністратара, што сетка павінна выдаваць, затым праверце, што пул пакрывае патрэбны дыяпазон і рэжым прызначэння ўключаны. Далучыцеся нанова пасля змены, а не чакайце, што кліент адразу сам дабярэцца да новай канфігурацыі.
Калі адрас з'явіцца, праверце тое, што вам насамрэч было трэба: партнёра, сэрвіс або падсетку за шлюзам. Доступ да LAN за ўдзельнікам патрабуе маршрутызацыі і перасылкі звыш членства, а агульны доступ у інтэрнэт патрабуе вузла выхаду, таму працоўны адрас — гэта пачатак такога тэсту, а не яго канец.