ორი /1 პრეფიქსი ფარავს ზუსტად იმავე IPv4 მისამართებს, რასაც ერთი /0, და ეს თანასწორობა მოქმედებს მხოლოდ თანამოქალაქის დაშვებული პრეფიქსების სიის შიგნით. ის წყვეტს მოქმედებას იმ მომენტში, როცა კონფიგურაციის ხელსაწყო წყვეტს, როგორ მოახდინოს მარშრუტიზაცია, რადგან Linux-ის wg-quick ნაგულისხმევ პრეფიქსს განიხილავს როგორც განსაკუთრებულ შემთხვევას და არა როგორც არითმეტიკას. განსაკუთრებული განშტოება აყენებს ცალკე ცხრილს, ორ პოლიტიკის წესს, სოკეტის ნიშანს და უკუგზის პარამეტრებს, რომლებსაც ნახევარი მარშრუტების წყვილი არასოდეს იღებს. ამიტომ, როცა რედაქტირების შემდეგ პროქსი ან ბრაუზერი წყვეტს მუშაობას, პრეფიქსები ცვლილების ყველაზე ნაკლებად საინტერესო ნაწილია.

პრეფიქსების სია მთელი კონფიგურაცია არ არის

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

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

რას ამატებს ნაგულისხმევი განშტოება მარშრუტის გარდა

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

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

სად იყოფა ორი განლაგება

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

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

წაიკითხეთ წესები და ნიშნები რედაქტირებამდე

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

ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints

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

გამოშვებამდე ივარჯიშეთ გვირაბის დაკარგვაზე

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

sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1

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

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