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

ორი რიცხვი, რომლებიც საპირისპირო ბოლოებს აღწერენ

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

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

სად იცვლება წყაროს ნომერი გასვლისას

აიღეთ გამოგონილი IPv4 მაგალითი: კლიენტი მთარგმნელი მარშრუტიზატორის უკან, სერვერი ერთი 'UDP' მსმენელით და ერთი დატაგრამა, რომელიც ორივეს კვეთს. ცხრილი ასახელებს თითოეულ ბოლოს და რა ხდება მასთან, ნაცვლად იმისა, რომ პაკეტი სამ დაკვირვების წერტილში გაიმეოროს.

EndpointWhat stays fixedWhat changes on reconnectWho owns it
Server listenerThe service port and the address the profile namesNothing; the listener does not follow the clientThe server operator
Client socketThe destination it dialsThe local source port, chosen per socketThe client, or its operating system
Translated sourceUsually the public address of the routerThe port, and sometimes the address after a network switchThe NAT device or the upstream carrier

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

წაიკითხეთ სამი ბოლო თავად ჰოსტებიდან

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

ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194

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

რას ცვლის ხელახალი დაკავშირება და რას არა

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

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

მონიშნეთ ფენები ცალ-ცალკე ჩანაწერში

გვირაბის შიგნით მეორე საუბარია საკუთარი პორტებით. გვირაბის მიერ გადატანილ HTTPS მოთხოვნას დანიშნულება TCP 443 აქვს, ხოლო გარე დაშიფრული კავშირი იყენებს UDP 1194-ს, ამიტომ გარე წყაროს პორტის შეცვლა შიდა სერვისში არაფერს ცვლის.

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

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

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