WireGuard lähettää dataa mutta ei saa mitään takaisin: kumpi puoli?
Nouseva lähetyslaskuri on suunta, ei diagnoosi. Päätä, jäikö pyyntö tunnelista lähtemättä vai eikö vastaus palannut koskaan, ennen kuin muutat mitään.
Lähetyslaskurit, jotka nousevat vastaanottolaskurin pysyessä nollassa, kuvaavat suuntaa, eivät diagnoosia. Sama lukema näkyy, kun vertaiskone ei koskaan saanut kättelyä valmiiksi, kun kohde valitsi väärän vertaiskoneen, kun kaukana olevalla puolella ei ole paluureittiä ja kun suodatin pudottaa vastauksen matkalla kotiin. Jokainen näistä korjataan eri paikassa.
Työtä lyhentävä vertailu on tunnelista koskaan lähtemättömän pyynnön ja koskaan takaisin tulemattoman vastauksen välillä. Yksi tallennus oikealla rajapinnalla ratkaisee niiden välillä.
Laskurit kuvaavat määrää, eivät vian suuntaa
WireGuardin laskurit kirjaavat, mitä rajapinta luovutti vertaiskoneelle ja mitä se siltä vastaanotti. Ne eivät kerro, mikä kohde, mikä vertaiskone tai kumpi vaihdon puoli epäonnistui. Taustaliikenne tekee summista vielä vähemmän valaisevia, sillä osa tavuista voi olla yhteydenpitosignaaleja tai asiaankuulumattomia virtoja. Lue niitä merkkinä siitä, että rajapinta on aktiivinen, ja lakkaa sitten kohtelemasta niitä todisteena.
Hyödyllinen ensimmäinen tosiasia on, onko kättely ajantasainen. Ilman sitä tälle vertaiskoneelle ei salattu mitään, eikä vastaanottolaskurilla ole syytä liikkua.
Vertaiskoneen valinta vai vastauksen reitti: kaksi selitystä
Ensimmäinen selitys on, ettei paketti koskaan saavuttanut aiottua vertaiskonetta, koska reitti osoitti muualle tai vertaiskoneen sallitut etuliitteet eivät kattaneet kohdetta. Toinen on, että paketti saapui ja vastaus ei voinut palata, mikä on reititysongelma kauempana päässä. Taulukko erottaa ne sen mukaan, mitä havaitsisit kussakin pisteessä.
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
Lue taulukkoa ylhäältä. Puuttuva kättely ohjaa sinut avaimiin, päätepisteisiin ja ulompaan reittiin, koska muuta tutkittavaa ei vielä ole. Ajantasainen kättely, jossa pyyntö näkyy palvelimella, siirtää ongelman paluusuuntaan, jossa kohteen oma reititystaulu ratkaisee. Pyyntö, joka ei koskaan ilmesty palvelimelle, on valintaongelma, ja molempien vertaiskoneiden sallitut etuliitteet ovat ensimmäinen vertailtava asia.
Kaksi näistä neljästä rivistä korjataan asiakkaassa ja kaksi palvelimessa. Tieto siitä, kummassa parissa olet, on suurin osa työstä.
Mihin vastaukset katoavat
Vastaus lähtee kohteesta, saapuu palvelimen tunnelirajapinnalle ja salataan sille vertaiskoneelle, jonka sallitut osoitteet vastaavat asiakkaan sisäistä osoitetta. Jos tämä vastaavuus epäonnistuu, vastaus hylätään hiljaisesti, mikä asiakkaan puolelta näyttää täsmälleen verkkohäiriöltä. Jos vastaus on salattu ja asiakkaan oma suodatin hylkää sen, oire on jälleen sama. Molemmat tapaukset tarvitsevat tallennuksen, eivät laskuria.
Tämän virheen vahvin muoto on palvelin, joka välittää paketteja asiakkaan puolesta mutta jolla ei ole paluureittiä asiakkaan sisäiseen alueeseen. Se hyväksyy pyynnön, lähettää vastauksen oletusyhdyskäytäväänsä kohti, eikä tunneli näe sitä koskaan. Palvelimelle lisätty laaja käännössääntö piilottaa tämän vian sen sijaan, että korjaisi reitin.
Testaa yhtä kohdetta päästä päähän
Valitse yksi kohde vertaiskoneen alueelta ja testaa sitä, kun kättely on todistettavasti ajantasainen. Alla olevat komennot lukevat vertaiskoneen tilan, valitun reitin ja vaihdon molemmat puolet. Suorita tallennus rajapinnalla, jota salatut paketit todella käyttävät.
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
Tallennus, joka näyttää pyynnön tunnelirajapinnalla ilman mitään paluuta, on palvelimen puolen vastaus, ja kohteen reititystaulu on seuraava katsottava paikka. Jos mitään ei ilmesty lainkaan, paketti kulki toista reittiä, joten paikallinen reitti on epäilty. Molemmissa tallennuksissa näkyvä vaihto ilman edistystä sovelluksessa siirtää kysymyksen paketin kokoon tai suodattimeen, jota rajapinnan tilastot eivät koskaan näytä. Pidä testissä yksi kohde ja yksi asiakas, sillä toinen muuttuja muuttaa todisteen jälleen vaikutelmaksi.
Jos nimet epäonnistuvat sallitun osoitteen toimiessa, vastaus on DNS:ssä eikä tunnelissa. Jos vain suuret siirrot juuttuvat, tutki paketin kokoa erikseen.