ხელის ჩამორთმევა ახალია wg show-ში, ბოლო წერტილი სწორია, გასაღებები არასდროს შეცვლილა — და ping მაინც ამბობს, რომ პირამდე მარშრუტი არ არის. გვირაბის ქვექსელი ერთი საათის წინ შეცვალეთ. ეს სიმპტომი პრეფიქსის შეუთანხმებლობის ნიშანია და არა გასაღების პრობლემა: WireGuard-მა ხელის ჩამორთმევა დაასრულა და შემდეგ მონაცემები გადააგდო, რადგან წყაროს მისამართი აღარ ემთხვევა იმას, რასაც მიმღები პირი მიიღებს. ქვექსელის შეცვლის განსახორციელებლად ორი გონივრული გზა არსებობს და ისინი სხვადასხვა ადგილას ფარცხდება.

ცვლილების განხორციელების ორი გზა და თითოეულის ფასი

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

A: renumber in placeB: parallel interface
DowntimeThe reload window, per hostNone if peers are added to both
RollbackRe-apply the previous filesPoint peers back at the old interface
RiskHalf-applied change: new address, old rangesTwo live interfaces with overlapping intent
EffortSmall, if the deployment has one ownerHigher, and needs a cleanup step
FitsTwo or three peers you controlMany peers, remote sites, or no maintenance window

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

რა უნდა მოძრაობდეს ერთად თქვენს მხარეს

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

შეადარეთ კონფიგურირებული ცოცხალს, ნაცვლად იმისა, რომ რომელიმეს დაეყრდნოთ:

wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5

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

მომუშავე ინტერფეისისთვის გამოიყენეთ რედაქტირებული ფაილი გვირაბის დანგრევის გარეშე:

wg syncconf wg0 <(wg-quick strip wg0)

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

რა უნდა მოძრაობდეს ერთად შორეულ მხარეს

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

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

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

მოძველებული ასლები, რომლებიც თქვენს რედაქტირებას დიდხანს ცოცხლობს

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

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

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

არჩევანი ორს შორის და გადართვის შემოწმება

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

ორივე ვარიანტში ცვლილება დასრულებულია, როცა ოთხი შემოწმება გადის: ხელის ჩამორთმევა ახალია, ახალი პრეფიქსის დანიშნულების მარშრუტის ძებნა გვირაბს ასახელებს, რამდენიმე ასეული ბაიტის ტვირთი ორივე მიმართულებით გადადის, და იგივე ძალაშია ჰოსტის ან მენეჯერის გადატვირთვის შემდეგ. ოფიციალური wg(8) სახელმძღვანელო არის ცნობარი იმისა, თუ რას ნიშნავს AllowedIPs თითოეული მიმართულებით, და ღირს მისი ხელახლა წაკითხვა სანამ დიაპაზონს გააფართოებთ სიმპტომის გასაქრობად.

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

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