ფიქსირებულ UDP პორტებს შეუძლიათ პორტების გადამისამართების გვერდის ავლა, მაგრამ არა ყველა NAT-ის
მდგომარეობის მქონე ფაირვოლი პარტნიორის პაკეტს დაბრუნების ტრაფიკად იღებს, როცა ორივე ბოლო ერთ პორტს აფიქსირებს. აქ ჩანს, როდის მუშაობს ეს და რა წყვეტს მას ჩუმად.
ორი სახლის როუტერი, არც ერთი გადამისამართებული პორტი და VPN, რომელიც ხანდახან მაინც უკავშირდება. UDP ამას იძლევა, რადგან ფაირვოლი მიიღებს პაკეტს, რომელსაც შეუძლია შეუსაბამოს მანქანის მიერ უკვე დაწყებულ ნაკადს. ეს პირობითი ხრიკია და არა ფუნქცია, და პირობების ჩამოთვლა ადვილია, როცა იცი, რას ადარებს ფაირვოლი. სწორედ ეს არის მიზეზი, რომ ერთი და იგივე პროფილები სხვადასხვა ქსელში სხვადასხვაგვარად იქცევიან.
შედარება, რომელსაც ფაირვოლი აკეთებს
ყოველი გამავალი დატაგრამა ქმნის ხანმოკლე ჩანაწერს: წყაროს მისამართი, წყაროს პორტი, დანიშნულების მისამართი, დანიშნულების პორტი. ყველაფერი, რაც მოდის და ემთხვევა ჩანაწერს, განიხილება პასუხად და გადის. შემავალი წესებს აქ რაიმე როლი არ აქვს.
ამიტომ კითხვა არ არის, უშვებს თუ არა ფაირვოლი პარტნიორს შიგნით. კითხვა ის არის, ჰგავს თუ არა პარტნიორის პაკეტი იმ პასუხს, რომელსაც ჩანაწერი ელოდება. შეცვალეთ ამ ოთხნაწილიანი ოთხეულის ერთი ველი და პაკეტი უცხოდ იქცევა. ამიტომაც შეიძლება მომუშავე კონფიგურაცია გატყდეს, როცა მხოლოდ პორტის ნომერი იცვლება, და ამიტომაც შეიძლება ერთი და იგივე პორტი ერთ როუტერზე იმუშაოს და შემდეგზე ჩავარდეს.
დააფიქსირეთ ლოკალური წყაროს პორტი და იგივე ნომერი გამოჩნდება გაცვლის ორივე მხარეს. ეს არის მთელი მექანიზმი, და ეს ხსნის, რატომ არის ხრიკი მყიფე და არა იდუმალი.
თითო პორტის დაფიქსირება თითო ბოლოში
OpenVPN-ის ნაგულისხმევი UDP პორტი არის 1194, და lport ადგენს წყაროს პორტს, საიდანაც აგზავნის. დააფიქსირეთ ორივე პარტნიორი და თითოეულის გამავალი ოთხეული მიუთითებს პორტზე, რომელზეც მეორე უსმენს:
# peer A
lport 1194
remote 198.51.100.20 1194
# peer B
lport 1194
remote 203.0.113.10 1194
ეს მუშაობს მხოლოდ მანამ, სანამ მათ შორის არც ერთი როუტერი არ გადაწერს წყაროს პორტს. როცა პაკეტები დაჭერაში ჩნდება, მაგრამ გვირაბი არ ადის, გადაწერა პირველი ეჭვმიტანილია.
სად წყვეტს ოთხეული შესაბამისობას
NAT, რომელიც დანიშნულების მიხედვით ასახავს, თითოეულ პარტნიორს განსხვავებულ გარე პორტს აძლევს. მისამართი, რომელიც თქვენს პარტნიორს უთხრეს გამოსაყენებლად, არ არის ის მისამართი, რომელიც აღწევს მას, ამიტომ შემავალი პაკეტი არაფერს ემთხვევა და ჩუმად იშლება.
ოპერატორის დონის თარგმნა, შრეებად დაწყობილი NAT და პორტების რანდომიზაცია ყველა ერთნაირად მთავრდება. ასევე ნებისმიერი შუამავალი ყუთი, რომელიც პორტებს გადაწერს და მისამართებს ხელს არ ახლებს.
ნაკადური ტრანსპორტები უარეს მდგომარეობაში არიან. TCP-ის ხელის ჩამორთმევა ნაბიჯ-ნაბიჯ თვალიშვილდება, ამიტომ TCP-ზე დაფუძნებული VPN ამ გზით საერთოდ ვერ გაიხვრეტება და გზაზე სადღაც მსმენელი სჭირდება.
ჩვეულებრივ ერთი მხარე პირველი ცვივა
პრაქტიკაში ორი ქსელი იშვიათად იქცევა ერთნაირად. ერთმა როუტერმა შეიძლება წინასწარმეტყველებადი ასახვა მისცეს, მეორემ კი დანიშნულების მიხედვით პორტები, და შედეგია კონფიგურაცია, რომელიც ორ სახლს შორის მუშაობს და მობილური ქსელიდან ჩავარდება. ერთმანეთის საწინააღმდეგო მოხსენებები ჩვეულებრივ ორ სხვადასხვა როუტერის წყვილს აღწერს. არც ერთი ავტორი არ ცდება და არც ერთი შედეგი არ განზოგადდება.
სანამ პროფილებს შეეხებით, გაარკვიეთ, რომელმა მხარემ ჩამოაგდო პაკეტი. ორივე ბოლოში დაჭერა ერთ ცდაში წყვეტს ამას: დატაგრამები, რომლებიც A-ს ტოვებენ და B-ს არასდროს აღწევენ, ნიშნავს, რომ ნაკადი გზაში გადაწერეს, ხოლო დატაგრამები, რომლებიც B-ს აღწევენ უპასუხოდ, ნიშნავს, რომ ფაირვოლმა ისინი დაკავშირებულად არ მიიღო.
საჯარო IPv6 მისამართების მქონე ორი პარტნიორი მთელ პრობლემას გვერდს უვლის. თარგმნის გარეშე შესადარებელი არაფერია, ამიტომ პარტნიორების დამამხილებელი ფაირვოლის წესი საკმარისია და დიზაინი წყვეტს როუტერის ქცევაზე დამოკიდებულებას.
როდის შევწყვიტოთ ცდა
საჯარო მისამართის მქონე ჰოსტი საიმედო პასუხია. მას შეუძლია ორივე პარტნიორისთვის გვირაბის დაბოლოება, ან უბრალოდ დაეხმაროს მათ ერთმანეთის მიმდინარე გარე მისამართის აღმოჩენაში, და ორივე განლაგება მუშაობს, რაც არ უნდა გააკეთონ NAT-ებმა. მართული გადაფენა იმავე კოორდინაციას იძლევა, თუ პოლიტიკა იძლევა.
არც ერთ მათგანს გამორთული ფაირვოლი არ სჭირდება. დაცვის გამორთვა პირდაპირი კავშირის მოსაგებად უგულებელყოფს იმ მიზეზს, რის გამოც პირდაპირი ცდა მიმზიდველი იყო, და მანქანას ღიად ტოვებს ტესტის მთელი ხანგრძლივობით.
ჯერ პირდაპირი განლაგება სცადეთ, შემდეგ ჩაწერეთ, რაც დაინახეთ. NAT-ის ქცევა და ის დაჭერა, რომელმაც ის აჩვენა, უფრო ღირებულია, ვიდრე პორტების წყვილი, რომელიც საბოლოოდ გამოიყენეთ, რადგან შემდეგი ქსელი სხვა იქნება. OpenVPN 2.6-ის სახელმძღვანელო დოკუმენტირებს lport და იმ remote პარამეტრებს, რომლებზეც ეს დამოკიდებულია.