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

სამი ხარვეზი ერთი შეცდომის შეტყობინებით

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

გადაფარვა არცერთ მისამართს არ აორმაგებს. თქვენი LAN არის 192.168.1.0/24, ოფისის ქსელიც 192.168.1.0/24-ია, და ახლა ოფისისკენ მიმავალი მარშრუტი მიუთითებს მისამართებზე, რომლებიც ასევე თქვენი პრინტერი და თქვენი NAS-ია. ARP-ის გაგებით არაფერია კონფლიქტში; პაკეტი უბრალოდ არასწორ მოწყობილობაზე მიდის ორი ქსელიდან ერთში.

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

ტესტი 1: დუბლიკატი თქვენს სეგმენტშია?

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

ip -br addr
ip neigh
ip route show table all | grep -E 'wg|tun|ppp'

Windows-ში იგივე ინფორმაცია მოდის ipconfig /all-დან და Get-NetIPAddress-დან, ხოლო მეზობლების ქეში arp -a-შია. თუ სადავო მისამართი ფიზიკურ ადაპტერზეა და ჩივილი VPN-ის გარეშე ჩნდება, VPN დამკვირვებელია და უნდა შეწყვიტოთ მისი დიაგნოსტიკა.

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

sudo arping -D -I eth0 -c 3 192.168.1.50

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

ტესტი 2: გადაფარავს თუ არა ორი ქსელი ერთმანეთს?

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

ip route get 192.168.1.10
ip -br addr show

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

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

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

ტესტი 3: გვირაბმა ერთი მისამართი ორჯერ გასცა?

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

wg show all allowed-ips
wg show wg0 latest-handshakes
wg show wg0 transfer

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

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

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

გამოასწორეთ წყაროში, შემდეგ ხელახლა შეამოწმეთ ორივე მოწყობილობა

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

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

sudo dhclient -r eth0 && sudo dhclient eth0
ipconfig /release && ipconfig /renew

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

რა არ უნდა გააკეთოთ გზაში

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

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

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