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

როცა დაკავშირებაა პრობლემა

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

ეს პარამეტრები პროტოკოლებს შორისაც არ არის ურთიერთშენაცვლებადი. IKEv2-ის მკვდარი პარტნიორის პოლიტიკა, OpenVPN-ის ping ტაიმერი და WireGuard-ის keepalive ერთ კითხვას პასუხობენ სამი განსხვავებული სინტაქსითა და სამი განსხვავებული ნაგულისხმევი მნიშვნელობით, ამიტომ რიცხვის მათ შორის კოპირება რეგულირების სამოსში გამოწყობილი ვარაუდია.

როცა ურთიერთობა წავიდა

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

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

რას არ ამტკიცებს არც ერთი

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

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

პირდაპირი ტრაფიკის დაბლოკვა ცალკე გადაწყვეტილებაა

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

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

დაწერეთ პოლიტიკა და არა მხოლოდ რიცხვი

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

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

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