პოლიტიკის წესი ნიშნიან პაკეტებს გამოყოფილ ცხრილში აგზავნის, და ჩვეულებრივი მოლოდინია, რომ VPN მარშრუტის დაკარგვა მათ ბლოკავს. მექანიზმი სხვა რამეს აკეთებს. როცა ცხრილში შესაბამისი მარშრუტი არ არის, ძებნა შემდეგ წესზე გრძელდება გაჩერების ნაცვლად, და main ცხრილი კვლავ ინახავს ჩვეულებრივ ნაგულისხმევ მარშრუტს uplink-ისთვის. შედეგია კონფიგურაცია, რომელიც fail-closed-ად გამოიყურება და fail-open-ად იქცევა.

არაფერი არ არის გატეხილი; პოლიტიკაზე დაფუძნებული მარშრუტიზაცია ასეა განსაზღვრული.

ძებნა გრძელდება, როცა ცხრილში არაფერია

100:   from all fwmark 0x36 lookup 42
110:   from all fwmark 0x36 lookup default
32766: from all lookup main

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

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

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

100:   from all fwmark 0x36 lookup 42
110:   from all fwmark 0x36 prohibit
32766: from all lookup main

ტერმინალური წესი შეიძლება მოჰყვეს VPN ძებნას ცარიელი ცხრილის ძებნის ნაცვლად. იმავე ნიშნით, prohibit მოქმედება, რომელიც 42 ცხრილის წესის შემდეგ არის მოთავსებული, ამთავრებს ძებნას, როცა ეს ცხრილი არაფერს იძლევა, და აბრუნებს ადმინისტრაციულ უარყოფას main ცხრილს კიდევ ერთი შანსის მიცემის ნაცვლად. Unreachable და blackhole ასევე ტერმინალურია, გამომგზავნისთვის განსხვავებული შეცდომის ქცევით.

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

შეამოწმეთ რეალური ნიშნით და ინტერფეისით

ip -4 rule show
ip -4 route show table 42
ip -4 route get 198.51.100.20 from 10.44.0.2 iif lan0 mark 0x36

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

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

ორი წარუმატებლობის მდგომარეობა, არა ერთი

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

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

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

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