Toate aceste rapoarte sună la fel și înseamnă lucruri diferite: laptopul se plânge de un conflict de adresă, dar doar uneori și mai ales cât timp VPN-ul este pornit. Trei defecte separate produc acel mesaj: un duplicat real pe legătura ta, o suprapunere în care rețeaua remote folosește intervalul LAN-ului tău și nimic nu este duplicat, și un tunel care a dat o adresă la doi peers. Reparația diferă în fiecare caz, iar cea greșită mută simptomul în loc să îl elimine. Așa că decide ce caz ai înainte de a modifica ceva.

Trei defecte care împart un mesaj de eroare

Un duplicat înseamnă că două mașini din același segment revendică amândouă o adresă. Kernelul observă pentru că răspunsul la propria sondă vine de la un MAC diferit, iar ce se întâmplă în continuare depinde de stivă: Linux îl înregistrează, Windows dezactivează interfața și scrie o intrare în jurnalul de sistem, iar un client DHCP poate refuza oferta.

O suprapunere nu duplică nicio adresă. LAN-ul tău este 192.168.1.0/24, rețeaua biroului este și ea 192.168.1.0/24, iar acum ruta către birou indică adrese care sunt și imprimanta și NAS-ul tău. Nimic nu este în conflict în sens ARP; pachetul merge pur și simplu la dispozitivul greșit într-una din cele două rețele.

O coliziune în pool este vina tunelului însuși. Doi peers au fost configurați cu sau au primit aceeași adresă de tunel, așa că serverul nu îi poate deosebi când trimite trafic de retur. Unul dintre cei doi clienți vede un handshake funcțional și niciun fel de date, ceea ce pare o problemă de rutare și nu este.

Testul 1: este duplicatul în propriul tău segment?

Începe prin a lista ce are mașina ta de fapt, nu ce îți amintești că ai configurat. Adresa unui adaptor VPN este privată pentru tunel și nu este aceeași cu adresa pe care o văd site-urile web, așa că o ieșire publică partajată nu este un conflict.

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

În Windows aceleași informații vin din ipconfig /all și Get-NetIPAddress, cu cache-ul de vecini în arp -a. Dacă adresa disputată este pe adaptorul fizic și reclamația apare fără ca VPN-ul să ruleze, VPN-ul este doar spectator și ar trebui să nu îl mai depanezi.

Ca să dovedești un duplicat în loc să ghicești, sondează adresa de pe un dispozitiv care nu o deține. arping -D trimite sonda cu o adresă sursă zero, așa că un răspuns de la un MAC neașteptat dovedește că alt host răspunde deja pentru acea adresă.

sudo arping -D -I eth0 -c 3 192.168.1.50

Apoi găsește proprietarul prin administratorul de rețea în loc să alegi singur altă adresă. Atribuirile statice care există doar în notițele cuiva, imprimantele cu adresă fixă și rezervările de pe serverul DHCP sunt vinovații obișnuiți, iar un dispozitiv oprit își deține în continuare lease-ul.

Testul 2: se suprapun cele două rețele?

Compară prefixul pe care ți-l dă tunelul cu prefixele de pe interfețele tale. Dacă intervalul remote este egal cu LAN-ul tău sau îl conține, defectul este suprapunerea, iar semnul revelator este că un host accesibil fără VPN se stinge, sau că propria imprimantă răspunde pe o adresă de birou.

ip route get 192.168.1.10
ip -br addr show

Interogarea rutei îți spune ce interfață ar folosi kernelul, iar acel răspuns este întreaga diagnoză. Dacă spune tunelul pentru o adresă care aparține imprimantei tale locale, ai o suprapunere și nicio reînnoire de lease nu o schimbă.

Există trei ieșiri oneste, iar de obicei doar una îți este disponibilă. Partea remote poate masca traficul pentru subrețeaua suprapusă, astfel încât clientul tău vede doar adresa de tunel a serverului. Tunelul poate transporta un prefix remote mai îngust care nu se ciocnește cu LAN-ul tău. Sau clientul poate ruta după adresa sursă cu reguli de politică, ceea ce funcționează, dar este fragil și greu de predat unui coleg.

Renumerotarea rețelei biroului rar este decizia ta. Renumerotarea propriului LAN ca să eviți coliziunea este o schimbare mai mare decât se așteaptă majoritatea oamenilor odată ce intră în joc imprimante, camere și hosturi statice.

Testul 3: a dat tunelul o adresă de două ori?

WireGuard nu are pool de adrese. Fiecare peer este identificat prin cheia sa publică și prin prefixele din AllowedIPs, așa că un duplicat apare când aceeași adresă de tunel este scrisă în două intrări de peer sau aceeași pereche de chei este instalată pe două mașini.

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

Contoarele de trafic sunt coloana utilă aici: un peer care arată un handshake recent, dar niciun transfer, este fie adresat greșit, fie umbrit de o altă intrare care revendică același prefix. Pune un prefix pe exact un peer și dă fiecărui dispozitiv propria pereche de chei.

OpenVPN are un pool, iar coliziunea obișnuită este un profil de client partajat cu o linie --ifconfig fixă copiată pe o a doua mașină. Ambii clienți cer atunci aceeași adresă de tunel, iar serverul acceptă sesiunea pe care o procesează prima. Epuizarea pool-ului cu --duplicate-cn produce un rezultat similar când mai multe sesiuni ale unui certificat concurează pentru o singură intrare.

Citește jurnalul serverului, nu pe cel al clientului, pentru asta. Serverul știe ce sesiune a revendicat ce adresă, iar adresele repetate se văd acolo ca avertismente care nu ajung niciodată la client.

Repară la sursă, apoi reverifică ambele dispozitive

Ordinea contează. Remediază mai întâi un duplicat din LAN, pentru că un client care nu poate păstra o adresă nu poate ține nici un tunel. Apoi remediază provisioning-ul din partea VPN, pentru că o modificare făcută în client la o atribuire din pool este anulată la următoarea conectare. În final, ocupă-te de identitățile duplicate: perechi de chei separate pe WireGuard, certificate separate sau cel puțin profiluri separate pe OpenVPN.

Pe client partea mecanică este scurtă. Eliberează și reînnoiește un lease DHCP, sau cere ca adresa să fie schimbată pe server pentru o rezervare. Nu tasta o adresă aleatorie care pare liberă.

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

Apoi verifică de la ambele capete, nu de la unul. Confirmă gateway-ul, apoi serviciul de care ai nevoie cu adevărat, apoi reconectează-te și repetă. Dacă au fost implicate două dispozitive, verifică-le pe amândouă: mutarea unei adrese lasă celălalt cu intrări de vecini învechite sau cu un lease vechi care reapare mai târziu.

Ce să nu faci pe drum

Nu estompa simptomul. Detectarea adreselor duplicate este ce te oprește să iei o adresă deja folosită, iar dezactivarea ei transformă un conflict vizibil în pierdere intermitentă de pachete, mult mai greu de urmărit. Același lucru este valabil pentru acceptarea unui avertisment de certificat de la un host neașteptat: nu este deloc o problemă de adresă, iar clickul prin el ascunde alt defect.

Nici nu schimba singur adresarea unei rețele administrate. Notează setarea originală, întreabă proprietarul când adresa este atribuită central, și ține schimbarea suficient de mică încât să poată fi reversibilă. Regulile de detectare a conflictelor de adrese din RFC 5227 explică ce dovedește o sondă corectă, ceea ce merită știut înainte să declari un conflict real.

Articole similare