Všetky tieto hlásenia znejú rovnako a znamenajú niečo iné: notebook sa sťažuje na konflikt adresy, ale len niekedy, a väčšinou pri zapnutom VPN. Tri rôzne poruchy vytvárajú to hlásenie: skutočný duplikát na vašom vlastnom prepojení, prekrytie, kde vzdialená sieť používa váš rozsah LAN a nič nie je duplikované, a tunel, ktorý pridelil jednu adresu dvom peerom. Oprava je v každom prípade iná a nesprávna presúva príznak namiesto toho, aby ho odstránila. Rozhodnite sa preto, ktorý prípad máte, skôr než čokoľvek zmeníte.

Tri poruchy s jedným chybovým hlásením

Duplikát znamená, že dva počítače v tom istom segmente si nárokujú jednu adresu. Jadro si to všimne, pretože odpoveď na jeho vlastnú sondu prichádza z inej adresy MAC, a čo sa stane ďalej, závisí od zásobníka: Linux to zapíše do logu, Windows vypne rozhranie a zapíše záznam do systémového logu a klient DHCP môže ponuku odmietnuť.

Prekrytie neduplikuje žiadnu adresu. Vaša LAN je 192.168.1.0/24, kancelárska sieť je tiež 192.168.1.0/24, a teraz trasa do kancelárie ukazuje na adresy, ktorými sú aj vaša tlačiareň a váš NAS. Nič nie je v konflikte v zmysle ARP; paket jednoducho ide na nesprávne zariadenie v jednej z dvoch sietí.

Kolízia vo fonde je chyba samotného tunela. Dvaja peeri boli nakonfigurovaní s rovnakou adresou tunela alebo im bola pridelená, takže server ich pri odosielaní spätnej prevádzky nedokáže rozlíšiť. Jeden z dvoch klientov vidí fungujúci handshake a žiadne dáta, čo vyzerá ako problém s routovaním, ale nie je.

Test 1: sedí duplikát vo vašom vlastnom segmente?

Začnite tým, že vypíšete, čo váš počítač skutočne má, nie to, čo si pamätáte, že ste nastavili. Adresa adaptéra VPN je súkromná pre tunel a nie je tou istou adresou, ktorú vidia webové stránky, takže zdieľaný verejný výstup nie je konflikt.

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

V systéme Windows pochádzajú rovnaké informácie z ipconfig /all a Get-NetIPAddress, s vyrovnávacou pamäťou susedov v arp -a. Ak je sporná adresa na fyzickom adaptéri a hlásenie sa objaví bez bežiaceho VPN, VPN je len pozorovateľ a mali by ste ho prestať riešiť.

Aby ste duplikát dokázali, a nie hádali, otestujte adresu zo zariadenia, ktoré ju nevlastní. arping -D odošle sondu s nulovou zdrojovou adresou, takže odpoveď z neočakávanej MAC dokazuje, že iný host už za túto adresu odpovedá.

sudo arping -D -I eth0 -c 3 192.168.1.50

Potom nájdite vlastníka cez správcu siete, namiesto toho, aby ste si sami vybrali inú adresu. Statické priradenia, ktoré žijú len v niekoho poznámkach, tlačiarne s pevnou adresou a rezervácie na serveri DHCP sú obvyklí vinníci a vypnuté zariadenie stále vlastní svoj prenájom.

Test 2: prekrývajú sa obe siete?

Porovnajte prefix, ktorý vám dáva tunel, s prefixmi na vlastných rozhraniach. Ak sa vzdialený rozsah rovná vašej LAN alebo ju obsahuje, poruchou je prekrytie a prezradí to, že host dostupný bez VPN stmavne, alebo že vaša vlastná tlačiareň odpovedá na kancelársku adresu.

ip route get 192.168.1.10
ip -br addr show

Vyhľadanie trasy vám povie, ktoré rozhranie by jadro použilo, a tá odpoveď je celá diagnóza. Ak pre adresu, ktorá patrí vašej lokálnej tlačiarni, ukáže tunel, máte prekrytie a žiadne obnovovanie prenájmu to nezmení.

Existujú tri čestné cesty von a zvyčajne je pre vás dostupná len jedna. Vzdialená strana môže maskovať prevádzku pre prekrývajúcu sa podsiete, takže váš klient vidí len adresu tunela servera. Tunel môže prenášať užší vzdialený prefix, ktorý nekoliduje s vašou LAN. Alebo môže klient smerovať podľa zdrojovej adresy pomocou pravidiel politiky, čo funguje, ale je krehké a ťažké odovzdať kolegovi.

Prečíslovanie kancelárskej siete je len zriedka na vás. Prečíslovanie vlastnej LAN, aby ste sa vyhli kolízii, je väčšia zmena, než väčšina ľudí čaká, keď do hry vstúpia tlačiarne, kamery a hosty so statickými adresami.

Test 3: pridelil tunel jednu adresu dvakrát?

WireGuard nemá fond adries. Každý peer je identifikovaný svojím verejným kľúčom a prefixmi v AllowedIPs, takže duplikát sa objaví, keď sa rovnaká adresa tunela zapíše do dvoch záznamov peerov alebo sa rovnaký pár kľúčov nainštaluje na dva počítače.

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

Počítadlá prevádzky sú tu užitočný stĺpec: peer, ktorý ukazuje nedávny handshake, ale žiadny prenos, je buď nesprávne adresovaný, alebo ho zatláča iný záznam nárokujúci si rovnaký prefix. Priraďte prefix presne jednému peerovi a dajte každému zariadeniu vlastný pár kľúčov.

OpenVPN fond má a bežnou kolíziou je zdieľaný klientsky profil s pevným riadkom --ifconfig skopírovaný na druhý počítač. Obaja klienti potom žiadajú rovnakú adresu tunela a server prijme tú reláciu, ktorú spracuje prvú. Vyčerpanie fondu s --duplicate-cn prináša podobný výsledok, keď niekoľko relácií jedného certifikátu súťaží o jeden záznam.

Pre toto čítajte log servera, nie log klienta. Server vie, ktorá relácia si ktorú adresu nárokovala, a opakujúce sa adresy sú tam viditeľné ako varovania, ktoré sa ku klientovi nikdy nedostanú.

Opravte príčinu a potom skontrolujte obe zariadenia

Na poradí záleží. Najprv opravte duplikát v LAN, pretože klient, ktorý nevie udržať adresu, neudrží ani tunel. Potom opravte prideľovanie na strane VPN, pretože klientska úprava pridelenia z fondu sa pri ďalšom pripojení vráti. Nakoniec sa zaoberajte duplikovanými identitami: samostatné páry kľúčov na WireGuard, samostatné certifikáty alebo aspoň samostatné profily na OpenVPN.

Na klientovi je mechanická časť krátka. Uvoľnite a obnovte prenájom DHCP alebo požiadajte o zmenu adresy na serveri pre rezerváciu. Nepíšte náhodnú adresu, ktorá vyzerá voľná.

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

Potom overte z oboch koncov, nie z jedného. Potvrďte bránu, potom službu, ktorú skutočne potrebujete, a následne sa znova pripojte a zopakujte to. Ak boli zapojené dve zariadenia, skontrolujte obe: presun jednej adresy nechá to druhé so zastaranými záznamami susedov alebo so starým prenájmom, ktorý sa neskôr vráti.

Čo na tejto ceste nerobiť

Neutlmujte príznak. Detekcia duplicitných adries je to, čo vám bráni zabrať adresu, ktorá sa už používa, a jej vypnutie premení viditeľný konflikt na občasnú stratu paketov, ktorá sa sleduje oveľa ťažšie. To isté platí pre prijatie varovania o certifikáte od neočakávaného hosta: to vôbec nie je problém s adresou a kliknutie cez neho skrýva inú poruchu.

Nemeňte sami ani adresovanie spravovanej siete. Zapíšte pôvodné nastavenie, opýtajte sa vlastníka, keď sa adresa prideľuje centrálne, a udržte zmenu dosť malú na to, aby sa dala vrátiť. Pravidlá detekcie konfliktov adries podľa RFC 5227 vysvetľujú, čo správna sonda dokazuje, čo sa oplatí vedieť, kým konflikt vyhlásite za skutočný.

Súvisiace články