WireGuard-ის ნაგულისხმევი მარშრუტის მარყუჟი: იპოვეთ საბოლოო წერტილის გზა
ნაგულისხმევი მარშრუტი გვირაბის საკუთარ დაშიფრულ პაკეტებს ისევ მის შიგნით აგზავნის. წაიკითხეთ საბოლოო წერტილის გზა, დაამატეთ ერთი ჰოსტის მარშრუტი, შემდეგ შეამოწმეთ და დააბრუნეთ.
ინტერფეისი ადის, პარტნიორის კონფიგურაცია სწორად გამოიყურება და არც ერთი ხელის ჩამორთმევა არასოდეს სრულდება. გვირაბის გავლით ნაგულისხმევი მარშრუტის დამატება ის ნაბიჯია, რომელიც ამას ხშირად იწვევს: იგივე მარშრუტების ცხრილი ახლა წყვეტს, სად უნდა წავიდეს გვირაბის საკუთარი დაშიფრული პაკეტები, და პასუხი, რომელსაც ის იძლევა, ისევ გვირაბში ბრუნდება. ვერაფერი ვერ გადაიტანს გარე პაკეტს, რომელიც შიდას გადაიტანდა, ამიტომ კავშირი დაწყებამდე ჩერდება. შესწორება პატარაა, მაგრამ თანმიმდევრობა აქვს და შემოწმება უფრო მნიშვნელოვანია, ვიდრე რედაქტირება.
დაადასტურეთ მარყუჟი სანამ მარშრუტს შეცვლით
წაიკითხეთ პარტნიორის მიმდინარე საბოლოო წერტილის მისამართი და შემდეგ ჰკითხეთ მარშრუტიზაციის სტეკს, სად წავიდოდა ამ მისამართზე გამავალი პაკეტი. თუ პასუხი გვირაბის ინტერფეისს ასახელებს, მარყუჟი დადასტურებულია და მეტი დიაგნოსტიკა არ სჭირდება. შეინახეთ ორივე გამომავალი ცვლილებების ჟურნალში, სანამ რამეს შეეხებით, რადგან შესწორების შემდეგ შედარება იგივე ორი ბრძანებაა. მარყუჟი არ არის დახვეწილი, როცა ერთხელ დაინახავ; სირთულე ისაა, რომ ინტერფეისი ჯანსაღად გამოიყურება, სანამ ეს ხდება.
sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show
ჩართეთ პოლიტიკის წესები ამ ჩანაწერში. ნაგულისხმევი მარშრუტი, რომელიც მთავარ ცხრილში სწორად გამოიყურება, მაინც შეიძლება დამარცხდეს წესთან, რომელიც ნიშნიანი ან უნიშნო ტრაფიკისთვის სხვა ცხრილს ირჩევს, და მარყუჟი კვლავ გამოჩნდება თითქოს რიგში მყოფი მარშრუტების ცხრილით.
წაიკითხეთ საბოლოო წერტილის გზა, არა გვირაბის გზა
საბოლოო წერტილის გზა არის მარშრუტი, რომლითაც დაშიფრული დატაგრამები პარტნიორის საჯარო მისამართამდე მიდიან, და ის გვირაბის გარეთ უნდა დარჩეს მანამ, სანამ გვირაბი არსებობს. გვირაბის გზა არის ყველაფერი, რისი გადატანაც პარტნიორს ნებადართულია. ეს ორი გზა ერთ მარშრუტების ცხრილს იზიარებს და სწორედ ამიტომ შეუძლია ერთ ყველაფრის დამჭერ ჩანაწერს ისინი ერთმანეთში ჩაამსხვრიოს. გვირაბის ტრაფიკის გამოყოფა გვირაბის საკუთარი ტრანსპორტისგან მთელი დიზაინის პრობლემაა და ყოველი მხარდაჭერილი ხელსაწყო მას სადღაც ცოტა სხვაგვარად წყვეტს.
შეამოწმეთ ორივე მისამართის ოჯახი ცალ-ცალკე, თუ ინტერფეისი ორივეს ატარებს. მოქმედი IPv4 გამონაკლისი არაფერს ამბობს იმაზე, არის თუ არა IPv6 საბოლოო წერტილი ჯერ კიდევ მისაწვდომი, და შერეული კონფიგურაცია შეიძლება მოქმედად გამოიყურებოდეს, სანამ პარტნიორის IPv6 მისამართი არ შეირჩევა.
აღადგინეთ საბოლოო წერტილის გზა ერთი თანმიმდევრული ცვლილებით
არსებობს ორი მხარდაჭერილი მიდგომა და მათი შერევა ის გზაა, რომლითაც მოქმედი კონფიგურაცია არაპროგნოზირებადი ხდება. პირველია, ინტერფეისის მფლობელ ხელსაწყოს მთელი გვირაბი მივანდოთ: wg-quick აქვს სპეციალური დამუშავება ნაგულისხმევი პარტნიორის დიაპაზონისთვის, რომელიც აყენებს ცალკე ცხრილს, პოლიტიკის წესებს და სოკეტის ნიშანს, რაც გარე პაკეტებს გვირაბის გარეთ ინახავს. დატოვეთ ეს მექანიზმი ხელუხლებელი, ნაცვლად იმისა, რომ ნახევარი ხელით გაიმეოროთ. კონფიგურაცია, რომელიც ხელით დამატებულ ნაგულისხმევს ურევს უკვე ნიშნებსა და წესებს დამყენებელ მენეჯერს, ხელახალი დაკავშირების შემდეგ მარცხდება, როცა მენეჯერი გადაწერს იმ მდგომარეობას, რომელიც ხელით ნაბიჯმა ჩათვალა.
მეორე ხელით შექმნილი დიზაინია, რომელშიც საბოლოო წერტილი ფიზიკური კარიბჭის გავლით ცხად ჰოსტის მარშრუტს იღებს. დაამატეთ ეს მარშრუტი ნაგულისხმევამდე, შეცვალეთ და არა დაუმატეთ, რომ მოძველებულმა ჩანაწერმა ვერ მოიგოს, და შემდეგ დაადასტურეთ ძებნა.
sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1
შეამოწმეთ და შემდეგ შეინახეთ დაბრუნების გზა
წინ მიმავალი ხელის ჩამორთმევის დროის ნიშა პირველი მტკიცებულებაა და ის უფრო ძლიერია, ვიდრე უბრალოდ არსებული ინტერფეისი. მიჰყევით მას გვირაბის გავლით აპლიკაციის ტესტით, შემდეგ განზრახ ჩამოუშვით ინტერფეისი და დაადასტურეთ, რომ ჰოსტი დაბრუნდება გამოსაყენებელ მდგომარეობაში, ნაცვლად იმისა, რომ შეინარჩუნოს არაფრისკენ მიმანიშნებელი ნაგულისხმევი მარშრუტი. სწორედ ამ უკანასკნელ ნაბიჯს გამოტოვებენ ხალხი და სწორედ ის წყვეტს, დატოვებს თუ არა გადატვირთვა მანქანას კავშირის გარეშე.
sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20
ამ ყველაფრამდე შეინახეთ მიმდინარე მარშრუტიზაციის მდგომარეობა და დარწმუნდით, რომ არსებობს შესვლის გზა, რომელიც გვირაბზე არ არის დამოკიდებული: კონსოლი, ზოლის გარეთ მართვის მისამართი ან ადგილზე მყოფი კოლეგა. დისტანციური მანქანა, რომელიც კარგავს ნაგულისხმევ მარშრუტს, არ აღდგება იმ კავშირით, რომელიც ახლახან დაკარგა, და runbook-ის ყველაზე უსაფრთხო ნაბიჯი პირველ ბრძანებამდე გადადგმული ნაბიჯია.