Hver af disse rapporter lyder ens og betyder noget forskelligt: den bærbare klager over en adressekonflikt, men kun nogle gange, og mest mens VPN'en er oppe. Tre separate fejl giver den meddelelse: en egentlig duplikat på dit eget link, et overlap hvor fjernnetværket bruger dit LAN-område og intet duplikeres, og en tunnel der gav én adresse til to parter. Reparationen er forskellig i hvert tilfælde, og den forkerte flytter symptomet i stedet for at fjerne det. Så afgør, hvilket tilfælde du har, før du redigerer noget.

Tre fejl med samme fejlmeddelelse

En duplikat betyder, at to maskiner på samme segment begge gør krav på én adresse. Kernen opdager det, fordi svaret på dens egen sonde kommer fra en anden MAC, og hvad der sker derefter afhænger af stakken: Linux logger det, Windows deaktiverer grænsefladen og skriver en post i System-loggen, og en DHCP-klient kan afvise tilbuddet.

Et overlap duplikerer ingen adresse overhovedet. Dit LAN er 192.168.1.0/24, kontornetværket er også 192.168.1.0/24, og nu peger ruten til kontoret på adresser, der også er din printer og dit NAS. Intet er i konflikt i ARP-forstand; pakken går blot til den forkerte enhed på et af de to netværk.

En puljekollision er tunnelens egen fejl. To parter blev konfigureret med eller tildelt den samme tunneladresse, så serveren kan ikke skelne dem, når den sender returtrafik. En af de to klienter ser et fungerende handshake og ingen data, hvilket læses som et routingproblem og ikke er det.

Test 1: er duplikatet på dit eget segment?

Begynd med at liste, hvad din maskine faktisk har, ikke hvad du husker at have konfigureret. En VPN-adapteradresse er privat for tunnelen og er ikke den samme som den adresse, hjemmesider ser, så en delt offentlig udgang er ikke en konflikt.

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

På Windows kommer de samme oplysninger fra ipconfig /all og Get-NetIPAddress, med nabo-cachen i arp -a. Hvis den omstridte adresse er på den fysiske adapter, og klagen vises uden VPN'en kører, er VPN'en tilskuer, og du bør stoppe med at fejlfinde den.

For at bevise en duplikat i stedet for at gætte, undersøg adressen fra en enhed, der ikke ejer den. arping -D sender sonden med en nul kilde-adresse, så et svar fra en uventet MAC beviser, at en anden vært allerede svarer på den adresse.

sudo arping -D -I eth0 -c 3 192.168.1.50

Find derefter ejeren via netværksadministratoren i stedet for selv at vælge en anden adresse. Statiske tildelinger, der kun lever i nogens noter, printere med fast adresse og reservationer på DHCP-serveren er de sædvanlige syndere, og en enhed der er slukket, ejer stadig sin lease.

Test 2: overlapper de to netværk?

Sammenlign det præfiks, tunnelen giver dig, med præfikserne på dine egne grænseflader. Hvis fjernområdet er lig dit LAN eller indeholder det, er fejlen overlap, og det afslørende er, at en vært, der kan nås uden VPN'en, forsvinder, eller at din egen printer svarer på en kontoradresse.

ip route get 192.168.1.10
ip -br addr show

Ruteopslaget fortæller dig, hvilken grænseflade kernen ville bruge, og det svar er hele diagnosen. Hvis det siger tunnelen for en adresse, der tilhører din lokale printer, har du et overlap, og ingen leasefornyelse ændrer det.

Der er tre ærlige veje ud, og kun én er normalt tilgængelig for dig. Fjernsiden kan maskere trafik for det overlappende subnet, så din klient kun ser serverens tunneladresse. Tunnelen kan bære et smallere fjernpræfiks, der ikke kolliderer med dit LAN. Eller klienten kan route efter kilde-adresse med politikregler, hvilket virker, men er skrøbeligt og svært at give videre til en kollega.

Omnummerering af kontornetværket er sjældent din beslutning. At omnummerere dit eget LAN for at undgå kollisionen er en større ændring, end de fleste forventer, når printere, kameraer og statiske værter er involveret.

Test 3: udleverede tunnelen én adresse to gange?

WireGuard har ingen adressepulje. Hver part identificeres ved sin offentlige nøgle og ved præfikserne i AllowedIPs, så en duplikat opstår, når den samme tunneladresse skrives i to partsposter, eller det samme nøglepar installeres på to maskiner.

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

Trafiktællere er den nyttige kolonne her: en part, der viser et nyligt handshake men ingen overførsel, er enten fejladresseret eller overskygget af en anden post, der gør krav på samme præfiks. Sæt et præfiks på præcis én part, og giv hver enhed sit eget nøglepar.

OpenVPN har en pulje, og den almindelige kollision er en delt klientprofil med en fast linje --ifconfig kopieret til en anden maskine. Så anmoder begge klienter om den samme tunneladresse, og serveren accepterer den session, den behandler først. Udtømning af puljen med --duplicate-cn giver et lignende resultat, når flere sessioner af ét certifikat konkurrerer om én post.

For dette skal du læse serverloggen i stedet for klientloggen. Serveren ved, hvilken session der har taget hvilken adresse, og gentagne adresser der er synlige som advarsler, der aldrig når klienten.

Ret ved kilden, og kontroller derefter begge enheder

Rækkefølgen betyder noget. Ret først en LAN-duplikat, fordi en klient, der ikke kan holde en adresse, heller ikke kan holde en tunnel. Ret derefter provisioning på VPN-siden, fordi en klient-side ændring af en puljetildeling fortrydes ved næste forbindelse. Tag til sidst duplikerede identiteter: separate nøglepar på WireGuard, separate certifikater eller i det mindste separate profiler på OpenVPN.

På klienten er den mekaniske del kort. Frigiv og forny en DHCP-lease, eller bed om, at adressen ændres på serveren til en reservation. Skriv ikke en tilfældig adresse, der ser fri ud.

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

Verificér derefter fra begge ender, ikke fra én. Bekræft gatewayen, derefter den tjeneste, du faktisk har brug for, derefter forbind igen og gentag. Hvis to enheder var involveret, kontroller begge: flytning af én adresse efterlader den anden med forældede nabo-poster eller en gammel lease, der dukker op igen senere.

Hvad du ikke skal gøre på vejen

Bring ikke symptomet til tavshed. Registrering af duplikatadresser er det, der forhindrer dig i at tage en adresse, der allerede er i brug, og at slå den fra gør en synlig konflikt til periodisk pakketab, som er meget sværere at spore. Det samme gælder accept af en certifikatadvarsel fra en uventet vært: det er slet ikke et adresseproblem, og at klikke igennem skjuler en anden fejl.

Ændr heller ikke selv adresseringen af et administreret netværk. Notér den oprindelige indstilling, spørg ejeren, når adressen tildeles centralt, og hold ændringen lille nok til at kunne rulles tilbage. RFC 5227-reglerne for registrering af adressekonflikter forklarer, hvad en korrekt sonde beviser, hvilket er værd at vide, før du kalder en konflikt ægte.

Relaterede artikler