WireGuard-ს შეუძლია ერთდროულად ჰქონდეს ახალი ხელის ჩამორთმევა და არ ჰქონდეს მისამართი, და ეს მდგომარეობა თანმიმდევრულია და არა წინააღმდეგობრივი. ხელის ჩამორთმევა პირის მოვლენაა, მისამართი ინტერფეისს ეკუთვნის, ხოლო მარშრუტი წყვეტს, რომელი ზედა არხით გავა პაკეტი. სამი შრე, სამი მფლობელი და თითოეული შეიძლება გაფუჭდეს, სანამ დანარჩენი ორი ჯანმრთელად გამოიყურება.

მათი ერთ სტატუსად წაკითხვა არის ის, რაც ორწუთიან დიაგნოზს მომსახურებების გადატვირთვაში გატარებულ მთელ შუადღედ აქცევს.

ხელის ჩამორთმევა პირის მოვლენაა და არა მისამართების მოვლენა

WireGuard-ის ხელის ჩამორთმევა ამტკიცებს, რომ კონფიგურირებულმა პირმა სწორი გასაღებით უპასუხა და რომ სესიის გასაღებები აქტუალურია. ის არაფერს ამბობს ინტერფეისზე არსებულ ლოკალურ მისამართზე და არც იმაზე, მიუთითებს თუ არა იქით რომელიმე მარშრუტი. მისამართს ანიჭებს დამხმარე ან ქსელის მენეჯერი, ხოლო პროტოკოლის კონფიგურაცია მხოლოდ პირებსა და გასაღებებს ასახელებს. ამ ორის არევა არის ის, რის გამოც ჯანმრთელი ხელის ჩამორთმევა მუშა გვირაბად იკითხება.

ამიტომ wg show შეიძლება შეატყობინოს წამების ხელის ჩამორთმევაზე ინტერფეისზე, რომელსაც აპლიკაციისგან ერთი პაკეტის მიღებაც არ შეუძლია.

ინტერფეისის ხელახლა შემქმნელ მენეჯერს შეუძლია მისამართი მოაშოროს პირის კონფიგურაციაზე ხელის შეუხებლად, და შემდეგი ხელის ჩამორთმევა მაშინვე წარმატებულია, რადგან გასაღებები არასოდეს შეცვლილა. წარმატებული ხელის ჩამორთმევის შესახებ ჟურნალის ხაზი ზუსტია და ხარვეზთან უკავშირო.

ObservationWhich layer it belongs toWrong conclusion it invites
Handshake a few seconds oldPeer and keysThe tunnel is usable for application traffic
Address present on wg0Interface configurationTraffic actually egresses through it
Route points at wg0Forwarding tableThe outer packet uses the intended uplink

ინტერფეისის მისამართს თავისი მფლობელი ჰყავს

გვირაბის მოწყობილობაზე მისამართი შეიძლება მოვიდეს დამხმარის Address ხაზიდან, ინტერფეისზე მომუშავე DHCP კლიენტიდან, ან დაკავშირების დროს მის შემქმნელ მართვის დემონიდან. რაც არ უნდა იყოს, სწორედ ის კომპონენტი ფლობს მისამართს და თავისი ლოგიკის მიხედვით აღადგენს ან არ აღადგენს მას. მისამართის წაკითხვა მფლობელის დაუსახელებლად გტოვებთ იმის ახსნის გარეშე, თუ რატომ გაქრა.

ორი მფლობელი ერთ ინტერფეისზე კლასიკური ხარვეზია. დამხმარისა და სამუშაო მაგიდის ქსელის მენეჯერის ერთსა და იმავე მოწყობილობაზე გაშვება ქმნის რბოლას, რომელშიც ერთი შლის იმას, რაც მეორემ ახლახან დააყენა, და საბოლოო წერტილი მთელი დროის განმავლობაში პასუხობს.

აირჩიეთ ერთი მფლობელი და ნება დართეთ მეორე ხელსაწყოს დააკვირდეს და არა მართოს. ეს გადაწყვეტილება ჩასაწერად ღირს, რადგან სიმპტომი კვირებში ჩნდება და მისამართის შემთხვევით დაკარგვას ჰგავს.

მარშრუტი ირჩევს ზედა არხს და არა ინტერფეისი

შიდა მარშრუტი, რომელიც wg0-ზე მიუთითებს, წყვეტს, რომ ტრაფიკი გვირაბში შედის. ცალკე გადაწყვეტილება შიფრილ გარე პაკეტებს პირისკენ აგზავნის, და რამდენიმე ზედა არხის მქონე ჰოსტზე ეს გადაწყვეტილება გადაცემის ცხრილიდან და პოლიტიკის წესებიდან მოდის. Wi-Fi როუმინგს შეუძლია გარე გზის შეცვლა შიდა მისამართზე ხელის შეუხებლად.

ამრიგად, მუშა გვირაბი და მიუწვდომელი პირი თავსებადი მდგომარეობებია, ისევე როგორც სწორი პირი და გატეხილი შიდა მარშრუტი. სამი დაკვირვება ერთად, ერთსა და იმავე მომენტში უნდა იქნას აღებული, თორემ შედარებას აზრი არ აქვს.

შეადარეთ სამი მდგომარეობა ერთ გავლაში

სამი მხოლოდ-კითხვის ბრძანება პასუხობს სამ კითხვას იმ თანმიმდევრობით, რომელიც ხარვეზს ყველაზე სწრაფად გამოჰყოფს. გაუშვით ისინი მათ შორის არაფრის შეცვლის გარეშე.

ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer

პირველი აჩვენებს, აქვს თუ არა ინტერფეისს საერთოდ მისამართი, ხოლო მეორე აჩვენებს, რომელ მოწყობილობას გამოიყენებდა კონკრეტული დანიშნულება ახლა. მესამე აცნობებს ბოლო ხელის ჩამორთმევის დროს და ბაიტების მთვლელებს, და სამიდან ერთადერთია, რომელიც პირს აღწერს და არა ლოკალურ ჰოსტს.

წაიკითხეთ მთვლელებიც და დროის ნიშანიც. ხელის ჩამორთმევა, რომელიც გამუდმებით ახლდება, სანამ გადაცემა ბრტყლად რჩება, ნიშნავს, რომ პირი პასუხობს, მაგრამ სასარგებლო არაფერი გადის, რაც მიუთითებს მარშრუტიზაციაზე ან ACL-ზე და არა გასაღებებზე. დროის ნიშანი, რომელიც მისამართის არსებობისას წინსვლას წყვეტს, პირიქით, ზემოთ მიუთითებს. ორივე კითხვა გამოსავლის ერთი და იმავე ხაზიდან მოდის, და არც ერთი არ ჩანს, თუ მხოლოდ ხელის ჩამორთმევის არსებობას ამოწმებთ.

შეასწორეთ ის კონკრეტული მდგომარეობა, რომელიც არასწორია, შემდეგ კი ხელახლა გამოსცადეთ აპლიკაცია და არა გვირაბი. ახალი ხელის ჩამორთმევა პირის შესახებ მტკიცებულებაა, და პირის შესახებ მტკიცებულება არ არის მტკიცებულება იმისა, რომ თქვენი ბრაუზერის შემდეგი მოთხოვნა იპოვის მისამართს, მარშრუტს და მუშა ზედა არხს. wg-quick-ის სახელმძღვანელო ცხადად ამბობს, რომელი მათგანი აყენებს დამხმარეს და რომელი ეკუთვნის პროტოკოლს.

დაკავშირებული სტატიები