ავტორიზებული ხართ ZeroTier-ში, მაგრამ მისამართი არ არის? ორი ცალკე პარამეტრი
წევრის დამტკიცება და მისთვის მისამართის მიცემა ორი ცალკე პარამეტრია. IP-ის გამოგონებამდე წაიკითხეთ პული, მინიჭების რეჟიმი და კლიენტის გამოყენებული მდგომარეობა.
ZeroTier წევრს OK-ად აჩვენებს, ქსელი შეერთებულია და მაინც არ არის მისამართი, რომელზეც ping გაიგზავნება. ეს კომბინაცია ხარვეზად ჩანს და ჩვეულებრივ გაყოფილი კონფიგურაციაა: წევრის დამტკიცება ერთი გადამრთველია, ხოლო მისთვის მისამართის მიცემა მეორე. ქსელს შეუძლია მოწყობილობა მიიღოს და არასოდეს მიუნიჭოს არაფერი, რადგან მისამართების პული ან მინიჭების რეჟიმი არასოდეს დაყენებულა.
წაიკითხეთ ორივე მხარე, სანამ რომელიმეს შეცვლით. პასუხი ორ ადგილას ჩანს და მათგან მხოლოდ ერთია კონტროლერზე.
ავტორიზაცია და მინიჭება სხვადასხვა გადამრთველია
ავტორიზაცია პასუხობს, შეიძლება თუ არა ამ კვანძმა ქსელში მონაწილეობა. მისამართის მინიჭება პასუხობს, რას აძლევს ქსელი მას მონაწილეობის შემდეგ, და ეს პასუხი მოდის მისამართების პულიდან და მინიჭების რეჟიმიდან. არც ერთი პარამეტრი არ გულისხმობს მეორეს. ერთი ნებართვაა, მეორე კი განაწილება.
კონტროლერის კონფიგურაცია ჩვეულებრივ შეიცავს მართულ მარშრუტს, მისამართების დიაპაზონს და რეჟიმს, რომელიც წყვეტს, გამოიყენება თუ არა ავტომატური მინიჭება. სხვა გარემოდან ქსელის ID-ის კოპირება მოაქვს წევრობას და არაფერს ამ კონფიგურაციიდან.
ამიტომ მოწყობილობა წევრების სიაში ჯანსაღად შეიძლება გამოიყურებოდეს, სანამ მისი მინიჭებული მისამართის სვეტი ცარიელი რჩება. კონტროლერმა ის მიიღო და მისაცემი არაფერი აქვს. ორივე განაცხადი ერთდროულად ჭეშმარიტია.
| 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}'
შეადარეთ ორი გამომავალი ერთი და იმავე ქსელის ID-ისთვის და არა ოპერაციული სისტემის საკუთარ სიაში მოცემული ფიზიკური ადაპტერებისთვის. სტრიქონი, რომელიც OK-ს აცხადებს ცარიელი მისამართების სიმრავლით, ადასტურებს მინიჭების ხარვეზს და არა კავშირის გაუმართაობას. არასწორი სტრიქონის წაკითხვა ამ შეცდომის მეორე ნახევარია.
ACCESS_DENIED სტატუსი ავტორიზაციაზე მიუთითებს, და ეს სხვა შეკეთებაა. თუ ბრძანება საერთოდ ვერ კითხულობს ლოკალურ ავთენტიფიკაციის ტოკენს, პრობლემა ლოკალური ნებართვებია და არა კონტროლერის უარი, და შესწორება იმ მანქანაზეა, რომლის წინაც ზიხართ.
როცა კლიენტი უგულებელყოფს იმას, რასაც კონტროლერი აგზავნის
კლიენტს აქვს საკუთარი პარამეტრები, რომლებიც წყვეტენ, გამოიყენება თუ არა მართული კონფიგურაცია. პროფილი, რომელიც გამორთავს მართულ მისამართებს, მართულ მარშრუტებს ან ნაგულისხმევი მარშრუტის დამუშავებას, გადააგდებს იმას, რასაც ქსელი აგზავნის, და წევრების სია კონტროლერის მხრიდან მაინც სწორად გამოიყურება.
ეს დროშები მხოლოდ ლოკალურ კვანძზე მოქმედებს. მათი შეცვლა არ ცვლის იმას, რასაც სხვა წევრები იღებენ, და არ არეგულირებს არასოდეს განსაზღვრულ პულს.
ამრიგად, დიაგნოზს ორი ტოტი აქვს: ან კონტროლერს მისაცემი მისამართი არ აქვს, ან კლიენტმა უარი თქვა მიცემულზე. ისინი სხვადასხვა შეკეთებამდე მიდიან სხვადასხვა მანქანაზე. JSON გამომავალი განასხვავებს მათ, რადგან მისამართი ან არ არის ქსელის კონფიგურაციაში, ან არის და აკლია კლიენტის გამოყენებულ მდგომარეობაში.
რა გამოვასწოროთ მისამართის გამოგონების ნაცვლად
თვითნებური სტატიკური მისამართის აკრეფა მაცდური მესამე ვარიანტია და ყველაზე ცუდი. შემთხვევითი მისამართი შეიძლება დაეჯახოს სხვა კვანძს, აღმოჩნდეს ქსელის გავრცელებული მარშრუტების გარეთ, ან მოხვდეს დიაპაზონში, რომელსაც firewall-ის წესები სხვანაირად ეპყრობა. ის ასევე მალავს დაკარგულ პულს ყველასგან, ვინც შემდეგ ქსელს შეხედავს. ამის ნაცვლად გაასწორეთ მინიჭება და მიეცით კონტროლერსა და კლიენტს შეთანხმების საშუალება შედეგზე.
ჰკითხეთ ადმინისტრატორს, რა უნდა გასცეს ქსელმა, შემდეგ შეამოწმეთ, რომ პული ფარავს განზრახ დიაპაზონს და მინიჭების რეჟიმი ჩართულია. ცვლილების შემდეგ ხელახლა შეუერთდით, იმის ნაცვლად რომ დაელოდოთ კლიენტის დამოუკიდებლად მყისიერ გადასვლას ახალ კონფიგურაციაზე.
როგორც კი მისამართი გამოჩნდება, გამოსცადეთ ის, რაც სინამდვილეში გჭირდებოდათ: პირი, სერვისი ან ქვექსელი კარიბჭის მიღმა. წევრის მიღმა LAN-ზე მისვლა მოითხოვს მარშრუტიზაციას და გადაგზავნას წევრობის მიღმა, ხოლო ზოგადი ინტერნეტ წვდომა მოითხოვს გასასვლელ კვანძს, ასე რომ მუშა მისამართი ამ ტესტის დასაწყისია და არა დასასრული.