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

ორი კონვერტი, ერთი ფიზიკური კავშირი

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

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

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

უყურეთ ერთი მოთხოვნის მოგზაურობას

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

ip route get 203.0.113.7
ip -brief addr show
ip -4 addr show dev wg0

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

შემდეგ შეხედეთ კონვერტის შიგნიდან პირველ ხტომას და შეადარეთ ის გარეთა პირველ ხტომას:

traceroute -n -m 3 203.0.113.7
sudo tcpdump -ni wg0 -c 5

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

სამი მისამართი და საიტი მხოლოდ ერთს ხედავს

ადამიანები ამას გამუდმებით ურევენ და ეს არეულობა ყალბი გაჟონვის ანგარიშებს წარმოშობს. ეს სხვადასხვა ველებია სხვადასხვა თავსართში, სხვადასხვა სიცოცხლის ხანგრძლივობით.

AddressWhere it appearsWho can see it
Endpoint addressOuter header, the peer you connect toYour access network and the path to it
Inner tunnel addressInside the envelope, on the virtual interfaceThe peer, and anything the peer routes to
Exit addressSource of the packet that reaches the websiteThe website and its upstream

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

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

სად იხსნება კონვერტი და რა გადაურჩება მას

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

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

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

შეამოწმეთ გზა, რომელიც აპლიკაციამ რეალურად გაიარა

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

getent hosts example.com
ip route get "$(getent hosts example.com | awk '{print $1; exit}')"
ss -tnp state established '( dport = :443 )'

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

RFC 4301 უსაფრთხოების არქიტექტურა აღწერს ამ შეფუთვის IP დონის ვერსიას IPsec-ისთვის და დონეების იგივე ლოგიკა მოქმედებს WireGuard-სა და OpenVPN-ზე. როცა შეძლებთ შიდა პაკეტისა და გარე პაკეტის ცალკე ობიექტებად ჩვენებას, გვირაბის ქცევის უმეტესობა წყვეტს იდუმალებას და იქცევა მარშრუტიზაციის ცხრილად, რომლის წაკითხვაც შეგიძლიათ.

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