წყაროზე დაფუძნებული მარშრუტიზაცია ორი VPN აუზისთვის: რას ტოვებს თქვენი წესი
from ფორმის წესი ემთხვევა კლიენტის მისამართს მანამ, სანამ SNAT გადაწერს მას, ხოლო გეითვეიდან ტესტი არც ერთს არ ემთხვევა. შეასრულეთ ლოკაპი თითო აუზისთვის და სამაგიეროდ წაიკითხეთ პრიორიტეტები.
ორი კლიენტური აუზი, ერთი გეითვეი და გეგმა ტრივიალურად გამოიყურება: ერთი წესი პირველ აუზს სწრაფი აპლინკით აგზავნის, მეორე მეორე აუზს პარტნიორის გვირაბით. შემდეგ წესები ადგილზეა და მეორე აუზი მაინც ნაგულისხმევი მარშრუტით გადის. წესი არ არის გატეხილი. პაკეტის წყარო არ არის ის, რასაც ავტორი ლოკაპის მომენტში ელოდა, რადგან თარგმნა და ლოკაპი ერთი და იმავე პაკეტის მოგზაურობის სხვადასხვა წერტილში ხდება, და რიგი საპირისპიროა იმ გონებრივი სქემისა, რომელსაც უმეტესობა ხატავს.
ლოკაპი ხდება მაშინ, სანამ წყარო გადაიწერება
VPN კლიენტიდან გადაგზავნილი პაკეტისთვის ბირთვი ფიქსირებულ თანმიმდევრობას ასრულებს. ის გვირაბის ინტერფეისზე მოდის, გადის prerouting-ში, სადაც conntrack და DNAT ცხოვრობენ, შემდეგ მიიღება მარშრუტიზაციის გადაწყვეტილება, შემდეგ გადაგზავნა, შემდეგ postrouting, სადაც SNAT ბოლოს გამოიყენება. from ფორმის წესი სწორედ ამ მარშრუტიზაციის გადაწყვეტილების დროს განიხილება, ანუ ის ხედავს კლიენტის თავდაპირველ მისამართს და არა თარგმნილს.
ამრიგად, masquerade წესის დამატება არ ცვლის, რომელი პოლიტიკა ემთხვევა გამავალ ნაკადს. იცვლება ის, რასაც შორეული მხარე ხედავს, და შესაბამისად, რომელი დაბრუნების გზა არსებობს. ეს ორი განსხვავებული შედეგია და ცვლილებების განხილვები მუდმივად ურევს მათ. გამოყავით ისინი და დიზაინი ჩვეულებრივ წუთში ცხადი ხდება.
სწორედ პასუხის მიმართულებით ჩნდება თარგმნილი მისამართი წესებში. გეითვეიზე დაბრუნებული პაკეტი მიმართულია თარგმნილ მისამართზე, და თუ გაქვთ დანიშნულების ან იმ ინტერფეისის მიხედვით აგებული პოლიტიკის წესები, საიდანაც ის შემოვიდა, სწორედ იმ მნიშვნელობას შეადარებთ. იგივე კავშირი, ჭეშმარიტების განსხვავებული წყარო თითოეულ მიმართულებაში.
| Stage | Source the kernel sees | What it means for your rule |
|---|---|---|
| Prerouting | Client address, 172.31.7.42 | Where marks and DNAT are applied |
| Routing decision | Still 172.31.7.42 | This is where from rules match |
| Postrouting | Becomes 198.51.100.9 | What the far end and its return route see |
ამიტომ განსხვავებული წყაროს მქონე ორ აუზს ნამდვილად სჭირდება განსხვავებული ცხრილები და დიზაინი სწორია. რასაც ზემოთ მოცემული ცხრილი გამორიცხავს, არის ის მოკლე გზა, როცა გამართვა ხდება იმის ყურებით, თუ რა მიიღო შორეულმა საიტმა და მისგან წესის გამოტანით.
გეითვეიდან ტესტი არ არის აუზის ტესტი
ტრაფიკი, რომელსაც თავად გეითვეი ქმნის, არასოდეს გადის prerouting-ში, რადგან ინტერფეისზე არ ჩამოსულა. ის მარშრუტიზდება გამომავალ გზაზე, წყაროდ თავად გეითვეის მისამართი, და კლიენტის დიაპაზონზე აგებული from წესი არ დაემთხვევა. ამ სფეროში ყოველი ბილეთი, რომელიც ამბობს, რომ ყუთიდან მუშაობს, კლიენტიდან კი არა, სწორედ ამ ფაქტის გამეორებაა.
მოახდინეთ კლიენტის იმიტაცია დაახლოების ნაცვლად. მარშრუტიზაციის ლოკაპს შეიძლება პირდაპირ ჰკითხოთ, წყაროსა და შემავალი ინტერფეისის მიცემით:
ip route get 198.51.100.9 from 172.31.7.42 iif tun0
ip route get 198.51.100.9 from 172.31.8.42 iif tun0
ip route show table 201
გაუშვით ის თითო აუზზე ერთხელ. თუ ორივე ბრძანება ერთსა და იმავე ინტერფეისს აბრუნებს, წესები აუზებს არ ჰყოფს, და მიზეზი ან გამოტოვებული წესია, ან უფრო მაღალი პრიორიტეტის წესი, რომელიც ორივეს ემთხვევა. თუ ისინი სხვადასხვა ინტერფეისს აბრუნებენ, მაგრამ კლიენტი მაინც იჭრება, ხარვეზი ლოკაპის შემდეგ არის და შეგიძლიათ წესების ყურება შეწყვიტოთ.
პრიორიტეტი და არა მდებარეობა ფაილში
წესები ფასდება პრიორიტეტის ზრდადი რიგით და მთავარია რიცხვი და არა ის რიგი, რომლითაც აკრიფეთ. local ცხრილი პრიორიტეტ 0-ზეა, main ცხრილი 32766-ზე, ხოლო ნაგულისხმევი წესი 32767-ზე, ამიტომ ნაგულისხმევი პრიორიტეტით დამატებული წესი სიის ბოლოსთან ხვდება და თითქმის ყველაფერთან აგებს.
ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201
გამოხატული პრიორიტეტი განზრახ რიგს ხილვადს ხდის ფაილში და განხილვისას. ის ასევე ხელს უშლის მოგვიანებით დამატებულს ჩუმად გადაახტეს არსებულ წესს, რაც ყველაზე გავრცელებული მიზეზია იმისა, რომ მომუშავე პოლიტიკა შეწყვეტს მუშაობას დაუკავშირებელი ცვლილების შემდეგ.
შესაბამისი წესი, რომელიც არასრულ ცხრილზე მიუთითებს, მეორე ხაფანგია. თუ ცხრილი 201 შეიცავს ნაგულისხმევ მარშრუტს, მაგრამ არა მარშრუტს დანიშნულებისკენ, პაკეტი იშლება ან არასწორ ადგილას იგზავნება, და წესი იზოლირებულად სრულიად სწორად გამოიყურება. წაიკითხეთ ცხრილი და არა მხოლოდ წესი. წესი მაჩვენებელია, ცარიელი ცხრილი კი არაფრისკენ მაჩვენებელი.
დაბრუნების გზა მაინც უნდა არსებობდეს
წყაროს პოლიტიკა ირჩევს გასასვლელს. ის არ ქმნის დაბრუნების გზას. თუ მეორე აუზი პარტნიორის გვირაბით გადის, პარტნიორმა უნდა იცოდეს, როგორ მიაღწიოს 172.31.8.0/24-ს, ან გეითვეისკენ დაბრუნების მარშრუტით, ან თარგმნილი მისამართების მიღებით, რომლებიც მან უკვე იცის.
ამ ორს შორის არჩევანი ხილული შედეგების მქონე დიზაინის გადაწყვეტილებაა. კლიენტის დიაპაზონის უკან მარშრუტიზაცია ინარჩუნებს თითოეული კლიენტის იდენტობას პარტნიორთან და მოითხოვს, რომ მან მიიღოს თქვენი პრეფიქსი. თარგმნა მალავს აუზს ერთი მისამართის უკან და მოითხოვს, რომ პარტნიორმა მხოლოდ ის მისამართი მიიღოს, იმ ფასად, რომ თქვენი და მისი ჟურნალები აღარ თანხმდებიან იმაზე, თუ ვინ დაუკავშირდა.
რაც არ უნდა აირჩიოთ, ჩაწერეთ ის აუზის განსაზღვრების გვერდით. დაბრუნების მარშრუტი, რომელიც მხოლოდ ვიღაცის მეხსიერებაში არსებობს, ზუსტად ისეთი რამაა, რაც გადარჩება მანამ, სანამ პარტნიორი ფაიერვოლს შეცვლის, და შემდეგ აღდგენას ერთი დღე სჭირდება.
ნუ დაიჭერთ თავად გეითვეის გვირაბს პოლიტიკაში
კლიენტებისთვის დაწერილი წესები ვრცელდება გეითვეის მიერ შექმნილ ტრაფიკზეც, თუ არ გამორიცხავთ მას. ნიშანზე ან გამომავალ ინტერფეისზე აგებულმა ფართო წესმა შეიძლება დაიჭიროს გეითვეის საკუთარი კავშირი პარტნიორთან, და მაშინ გვირაბი, რომელიც პოლიტიკას ატარებს, პოლიტიკით მარშრუტიზდება. ეს ქმნის მარყუჟს ან გაწყვეტას, რომელიც პროვაიდერის ხარვეზს ჰგავს.
შეზღუდეთ ყოველი წესი რაც შეიძლება ვიწროდ: წყაროს პრეფიქსი, შემავალი ინტერფეისი და, სადაც მხარდაჭერილია, ნიშანი, რომელსაც მხოლოდ კლიენტის პაკეტები ატარებს. შემდეგ ყოველი წესის ცვლილების შემდეგ შეამოწმეთ გეითვეის საკუთარი კავშირი, რადგან ხარვეზი თვითმიმართულია და კლიენტის ტესტში არ ჩანს.
ip-rule-ის სახელმძღვანელოს გვერდი აღწერს სელექტორისა და პრიორიტეტის სემანტიკას. შეუთავსეთ ის თითო აუზის ლოკაპის ტესტს და დიზაინი შემოწმებადი გახდება, რაც განსხვავებაა წელიწადს გამძლე პოლიტიკურ მარშრუტიზაციასა და იმას შორის, რომლის შეხებაც ყველას ეშინია.