VPN-ის მისამართზე მიბმული აპლიკაცია მაინც არასწორ მარშრუტს იყენებს
VPN-ის მისამართზე მიბმული სოკეტი ჩვეულებრივ ნაგულისხმევ მარშრუტს მიჰყვება. პოლიტიკის წესების დამატებამდე შეამოწმეთ მისამართის კუთვნილება და წყაროზე დაფუძნებული ძებნა.
აპლიკაცია ებმება VPN-ის მისამართზე, და კავშირი მაინც ჩვეულებრივი ნაგულისხმევი მარშრუტით გადის. მიბმაში არაფერი ჩავარდნილა; მან ზუსტად ის გააკეთა, რასაც მიბმა აკეთებს. სოკეტის ლოკალურ მისამართზე მიბმა ირჩევს წყაროს იმ მისამართს, რომელსაც ბირთვი თავსართში დებს. ის არ აყენებს მარშრუტს და არ ქმნის პოლიტიკის წესს, რომელიც ამ წყაროს მქონე პაკეტებს კონკრეტულ გვირაბში გაგზავნიდა.
ამ სახელმძღვანელოს დარჩენილი ნაწილი ის შემოწმების რიგია, რომელსაც ვიყენებ, თითოეული დაკვირვების მომცემი ბრძანებით.
რას წყვეტს სინამდვილეში მიბმა
მიბმა ანიჭებს ლოკალურ მისამართს სოკეტს. შემდეგ ბირთვი ასრულებს იმავე მარშრუტის ძებნას, რომელსაც სხვაგვარად შეასრულებდა, თუ პოლიტიკის წესი არ შეცვლის, რომელ ცხრილს კითხულობს ეს ძებნა.
ამიტომ პაკეტი შეიძლება გავიდეს VPN-ის წყაროს მისამართით ფიზიკურ ინტერფეისზე. მეორე მხარეს ის მოდის კერძო დიაპაზონიდან, რომელსაც ქსელი ამ გზაზე არასდროს ელოდა, დაბრუნების ტრაფიკს უკან დასაბრუნებელი მარშრუტი არ აქვს და კავშირი ჩერდება ან ახლდება.
Linux-ის IP სოკეტების ცნობარი აღწერს მიბმის სემანტიკას. მარშრუტიზაციის ნახევარი ცხოვრობს ip-rule-სა და ip-route-ში და ეს ცალკე სახელმძღვანელოებია მიზეზის გამო.
დარწმუნდით, რომ მისამართი ამ სახელთა სივრცეს ეკუთვნის
მისამართი, რომელზეც შეგიძლიათ მიბმა, უნდა არსებობდეს ინტერფეისზე იმ ქსელური სახელთა სივრცის შიგნით, სადაც აპლიკაცია მუშაობს. პარტნიორის მისამართი, კარიბჭის მისამართი ან მისამართი, რომელიც მხოლოდ სხვა სახელთა სივრცეში არსებობს, მისაბმელი არ არის და გამოძახება მარცხდება EADDRNOTAVAIL-ით.
ip -br addr show
ip netns identify <pid>
ss -tanp | grep <port>გაუშვით ეს სამი აპლიკაციის იმავე კონტექსტში: იგივე სახელთა სივრცე და, თუ შეგიძლიათ, იგივე მომხმარებელი. ძველი net30 დიაგრამა არ არის მტკიცებულება იმისა, თუ რომელი მისამართი მიანიჭა თქვენმა მიმდინარე ტოპოლოგიამ კლიენტს. წაიკითხეთ ინტერფეისი, რომელიც რეალურად აქტიურია.
წაიკითხეთ ძებნა ამ წყაროსა და დანიშნულებისთვის
ერთი ბრძანება პასუხობს კითხვას, რომელსაც მიბმამ არ უპასუხა:
ip route get 203.0.113.10 from 10.8.0.2
ip rule showპირველი ხაზი ბეჭდავს მარშრუტს, რომელსაც პაკეტი ამ წყაროდან ამ დანიშნულებამდე გაივლის, გამავალი ინტერფეისისა და სასურველი წყაროს ჩათვლით. თუ ის ასახელებს ფიზიკურ ინტერფეისს, მიბმა და მარშრუტი ეწინააღმდეგება ერთმანეთს და პაკეტი გავა ისეთი წყაროთი, საითაც გზა ვერ დაბრუნდება.
შემდეგ ip rule show გეტყვით, აირჩევდა თუ არა რომელიმე წესი სხვა ცხრილს. აქ პრიორიტეტებს მნიშვნელობა აქვს, რადგან პირველი შესაბამისი წესი იმარჯვებს და თქვენი წესის ზემოთ ყველაფრის დამჭერი წესი თქვენს წესს უხილავს ხდის.
დააყენეთ პოლიტიკის წესი მხოლოდ მაშინ, თუ ეს დიზაინია
წყაროზე დაფუძნებული მარშრუტიზაცია განზრახ დიზაინია და არა ერთი აპლიკაციის შეკეთება. თუ პოლიტიკის მფლობელს სურს, რომ გვირაბის ქვექსელის ტრაფიკმა გვირაბი გამოიყენოს, წესი მის კონფიგურაციას ეკუთვნის და არა თქვენს ლეპტოპზე ერთჯერად ბრძანებას.
სამუშაო ფორმაა ცალკე ცხრილი გვირაბის გავლით ნაგულისხმევი მარშრუტით, პლუს წესი, რომელიც VPN-ის წყაროს დიაპაზონს ამ ცხრილში აგზავნის. დაამატეთ ის გამონაკლისები, რომლებიც დიზაინს სჭირდება, რადგან მხოლოდ გვირაბის ნაგულისხმევის შემცველი ცხრილი დაიჭერს დანიშნულებებს, რომლებიც ლოკალური უნდა დარჩეს ან ფიზიკური გზით იყოს მისაწვდომი.
ip route add default dev tun0 table 100
ip rule add from 10.8.0.2 table 100 priority 100
ip route get 203.0.113.10 from 10.8.0.2გააუქმეთ ip rule del-ით და ip route flush table 100-ით. ამ გზით დამატებული ყველაფერი ქრება გადატვირთვისას, თუ მენეჯერი არ ჩაწერს მას, რაც ერთდროულად უსაფრთხოების თვისებაა და მიზეზი იმისა, რომ ერთადერთი ასლი თქვენი shell-ის ისტორიაში არ შეინახოთ.
გადაამოწმეთ სამი დაკვირვებით
ჩაწერეთ წყარო, რომელიც აპლიკაციამ მოითხოვა, მარშრუტი, რომელიც ძებნამ აირჩია და წყარო, რომელიც სერვერმა რეალურად ნახა.
ეს სამი შეიძლება არ დაემთხვეს და ყოველი შეუთანხმებლობა სხვა ადგილას მიუთითებს. გვირაბის ინტერფეისზე ჩაჭერა ამტკიცებს, რომ პაკეტი სწორი წყაროთი გავიდა. ფიზიკურ ინტერფეისზე ჩაჭერა ამტკიცებს, რომ ის არასწორი გზით გავიდა. მხოლოდ სერვერის მხრიდან ხედვა ამტკიცებს გზას თავიდან ბოლომდე.
თუ აპლიკაცია გთავაზობთ მოწყობილობაზე მიბმის ვარიანტს ან თითო აპლიკაციის მარშრუტიზაციის რეჟიმს, განიხილეთ ის როგორც სხვა მექანიზმი სხვა შეზღუდვებით. მსგავსი იერის პარამეტრები ყველა არ მიდის ბირთვის იმავე გადაწყვეტილებამდე.