Yksi WireGuard-vertaislaite välittää liikennettä ja toinen tekee kättelyn mutta ei koskaan tavoita mitään tunnelin takana. Toimiva vertaislaite kertoo, että rajapinta, UDP-portti ja palvelimen avain ovat todennäköisesti kunnossa. Se ei kerro mitään toisen vertaislaitteen AllowedIPs-asetuksista, sen sisäisestä lähdeosoitteesta tai niiden välisistä edelleenohjaussäännöistä. Käy lista järjestyksessä läpi ja pysähdy ensimmäiseen vaiheeseen, jonka ehto ei täyty.

Vaihe 1: Kirjoita muistiin reitti, jonka paketin pitäisi kulkea

Kaksi asiakasta samassa keskitimessä eivät tavoita toisiaan automaattisesti. Keskitin–haara-rakenteessa palvelin vastaanottaa paketin wg0-rajapinnalla ja sen on välitettävä se takaisin wg0:sta toiselle vertaislaitteelle, mikä vaatii IP-edelleenohjauksen ja edelleenohjaussäännön. Suorassa vertaisverkko-rakenteessa kumpikin osapuoli tarvitsee toisen päätepisteen ja toisen tunneliosoitteen AllowedIPs-asetuksen sisään. Päätä, mitä rakennetta vianetsit, ennen kuin luet mitään kokoonpanoa.

Odotettu reitti kertoo myös, mistä katsoa. Jos paketin pitäisi ylittää keskitin, epäonnistuva hyppy on joko lähettäjän AllowedIPs, keskitimen edelleenohjaus tai vastaanottajan AllowedIPs. Jos sen pitäisi mennä suoraan, keskitin on merkityksetön ja molempien vertaislaitteiden päätepistekentät ratkaisevat.

Vaihe 2: Vertaa AllowedIPs-asetusta molemmilla puolilla, älä vain toisella

WireGuard käyttää AllowedIPs-asetusta sekä reititystauluna että käyttöoikeusluettelona. Lähetyksessä kohdeosoite etsitään vertaislaitteen AllowedIPs-asetuksesta tunnelin valitsemiseksi; vastaanotossa sisäisen lähdeosoitteen on osuttava lähettävän vertaislaitteen AllowedIPs-asetuksen sisään, muuten paketti hylätään. Puuttuva alue kummalla tahansa puolella tuottaa saman oireen: siirto toimii, hyötykuorma katoaa.

Lue elävää tilaa tiedoston sijaan, koska uudelleenlataus on saattanut epäonnistua hiljaa: sudo wg show wg0 allowed-ips. Palvelimella epäonnistuvan vertaislaitteen merkinnän on sisällettävä sen tunneliosoite, esimerkiksi 10.90.0.3/32. Asiakkaalla palvelinvertaislaitteen merkinnän on sisällettävä testaamasi kohde, oli se sitten keskitimen tunneliosoite tai etäaliverkko. Päällekkäiset alueet tekevät hausta monitulkintaisen ja voivat valita vertaislaitteen, jota et tarkoittanut, joten pidä ne erillään.

Vaihe 3: Tarkista sisäinen lähdeosoite

Asiakas, joka reitittää osoitteen 10.90.0.3 wg0:n kautta mutta lähettää paketteja Wi-Fi-osoitteestaan, hylätään vastaanottajan toimesta, koska lähde ei vastaa vertaislaitteen AllowedIPs-asetusta. Vahvista, minkä ydin todella valitsee komennolla ip route get 10.90.0.3 from 10.90.0.2, ja vahvista tunnelirajapinnalle annettu osoite komennolla ip -brief addr show wg0.

Vastaanottavalla Linux-isännällä käänteisen reitin suodatus on toinen portti. Tiukka rp_filter rajapinnalla, joka omistaa paluureitin, voi pudottaa tunneliliikennettä, jonka paluureitti ei vastaa rajapintaa, jolta se saapui. Tarkista voimassa oleva arvo ennen sen poistamista käytöstä; monissa topologioissa oikea korjaus on reitti, ei löysennetty suodatin.

Vaihe 4: Käy läpi keskitimen edelleenohjaus ja paluureitti

Jos keskitimen on välitettävä liikennettä vertaislaitteiden välillä, ydin tarvitsee net.ipv4.ip_forward=1, ja palomuurin on hyväksyttävä välitetty yhteys: sisään wg0:lla, ulos wg0:lta, lähettäjän tunneliosoitteesta vastaanottajan osoitteeseen. Yleinen vika on syötesääntö, joka hyväksyy UDP 51820:n mutta edelleenohjaussääntöä ei ole], jolloin kättely onnistuu ja hyötykuorma kuolee. Listaa voimassa olevat säännöt komennolla sudo nft list ruleset tai palomuurinhallintasi vastaavalla.

Tarkista sitten vastaus. Kohdeisännällä on oltava paluureitti lähettäjälle, joko keskitimen tai oman yhdyskäytävän kautta. Jos keskitin tekee myös NATin tunnelialiverkolle, vahvista, että käännös koskee välitettyä yhteyttä ja että vastaus saapuu keskitimelle ennen tilan vanhenemista. Yksisuuntainen vika, joka näyttää avainongelmalta, on usein juuri tämä paluureitti.

Erota lopuksi kättely datasta. Vertaislaite, joka suorittaa kättelyn mutta jumittuu suurissa siirroissa, kärsii yleensä MTU- tai MSS-ongelmasta juuri kyseisellä reitillä, ei AllowedIPs-ongelmasta. Testaa ensin pienellä pingillä, sitten täysikokoisella, ja vertaa kahta vertaislaitetta.

Vaihe 5: Muuta yhtä asiaa ja pidä toimiva vertaislaite ehjänä

Tee yksi ainoa muutos epäonnistuvalla reitillä ja testaa molemmat vertaislaitteet uudelleen. Jokaisen vertaislaitteen AllowedIPs-asetuksen korvaaminen arvolla 0.0.0.0/0 on nopein tapa rikkoa jo toiminut vertaislaite, koska se muuttaa reitityspäätöksen kaikelle kyseisen rajapinnan liikenteelle. Muokkaa yhtä merkintää, lataa uudelleen ja lue elävä tila takaisin.

Kirjaa, mikä reitti onnistui, mikä epäonnistui ja kunkin tarkka komentotuloste. Tämä vertailu on arvokkaampi kuin yleinen ilmoitus siitä, että VPN on rikki, ja se on ensimmäinen asia, jonka seuraava henkilö kysyy.

Aiheeseen liittyvät artikkelit