Kodukarp avab tunneli ja jõuab pilveserverini probleemideta. Pilveserver jõuab koduse rakenduseni minut või kaks pärast seda, kui kodukarp viimati midagi saatis, ja siis lakkab. WireGuardi logisse ei ilmu midagi, kätlemisviga ei teatata ja tunneli taaskäivitamine parandab selle korraks. See muster on aeguv vastendus, mitte katkine tunnel, ja allolev juhend kinnitab seda enne, kui midagi muudetakse.

Kinnitage, et muster on jõudeolekul aegumine

Eristav detail on ajastus. Kui pöördsuunaline ühendus töötab kohe pärast seda, kui kodune paariline liiklust saadab, ja ebaõnnestub vaikse vahemiku järel, on tee korras ja keskel olev olek mitte. Kui see ei töötanud kunagi, isegi mitte kohe pärast liiklust, on see vale diagnoos.

sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer

Käivitage kaks esimest kohe pärast seda, kui kodune paariline midagi saadab, oodake viis minutit ja käivitage need uuesti. Kätlemise ajatempel, mis uueneb graafiku järgi ilma uue lõpp-punktita, ütleb teile, et tunnel on elus. Muutus see, et soovimata paketid jõuavad nüüd väljastpoolt kohale, mis on tee, mitte tunneli omadus.

Seejärele tehke pöördkatse ja jälgige ülekandeloendureid. Kui pilvepool saadab baite ja kodupool ei saa ühtegi, lahkus pakett pilvest ja suri teel olekut säilitavas seadmes. See on signatuur, mida otsite. Kui mõlemad loendurid liiguvad, toimetas tunnel paketi kohale ja kahtlusalune on rakendus.

Pange keepalive ruuteri taga olevale paarilisele

Püsivad keepalive’id hoiavad NAT-vastenduse ja mis tahes tulemüüri oleku elus, saates graafiku järgi väikese autenditud paketi. Säte kuulub ruuteri taga olevale masinale, selle kaugpaarilise kirjesse, sest see on pool, mille väljuv pakett oleku loob.

[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25

Sulandage see olemasolevasse paarilise jaotisse. Teise ploki lisamine sama avaliku võtmega ei ole valiidne viis valikute lisamiseks ja wg-quick ei sulanda neid teie eest. Dokumenteeritud 25 sekundit on näide, mis on valitud olema tavapäraste UDP-i ajalõppude all, mitte erilise tähendusega väärtus.

Sama direktiivi pilvepoolele panemine ei aita seda probleemi. Selle paarilise paketid saabuvad juba avalikult aadressilt, seega pole olulises suunas säilitatavat vastendust. See lisab liiklust ega muuda midagi.

Lugege taimereid, selle asemel et intervalli arvata

Keepalive’id töötavad, sest need saabuvad sagedamini, kui olek aegub. See teeb ajalõpust numbri, mida te tegelikult vajate, ja Linuxis on see loetav seadmel, mis tõlkimist teeb:

sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820

Esimene väärtus on ajalõpp UDP-voolule, mida on nähtud ainult ühes suunas, ja teine kehtib pärast vastuste täheldamist. Mõlemad on tavaliselt lühikesed ja vaikseks jäänud vastendus järgib seda, mis kehtib teie voolu kohta.

Võrrelge seda numbrit oma intervalliga. Keepalive 25 sekundit 30 sekundi ajalõpu all töötab; sama keepalive 15 sekundi ajalõpu all ei tööta. Mingi korduste arv ei muuda seda aritmeetikat. Mõned tarbijaruuterid ja mobiilioperaatorid kasutavad Linuxi vaikeväärtusest palju lühemaid väärtusi, mistõttu ühes võrgus töötav konfiguratsioon ebaõnnestub teises.

ObservationWhat it meansReasonable response
Works after traffic, dies when idleMapping or firewall state expiringLower the keepalive interval
Never works, even immediatelyNo return route, listener or firewallStop tuning keepalive
Works for hours, then dies onceCarrier-side translation or address changeCheck the endpoint and logs together

Kontrollige kuulajat ja tulemüüri eraldi

Elus vastendus on vajalik ja mitte piisav. Kodukarbis olev rakendus peab kuulama õigel aadressil ja hosti tulemüür peab paketi pärast dekrüpteerimist lubama.

sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health

Kui socket on seotud ainult füüsilise liidese aadressiga, mitte tunneli aadressiga, siis tunnelil saabuvad paketid visatakse kõrvale enne, kui tulemüüri üldse küsitakse. See tõrge näeb pilvepoolelt välja täpselt nagu vastenduse probleem ja peab vastu igale keepalive’i kohandusele.

Lubatud loendi kontroll on teises suunas sama oluline. Pilvepaariline peab lubama koduse tunneli aadressi allikana, kui ta kavatseb vastata, ja kodune paariline peab lubama pilve aadressi sihtkohana. Keepalive’i paketid on autenditud liiklus ja rakendavad samu reegleid, mistõttu töötavana näiv keepalive võib eksisteerida koos rakendusega, mis ei tööta.

Juurutage muudatus ja tundke selle piire

Rakendage säte, taaskäivitage liides, kui see on teie uuendusmeetod, ja korrake seejärel jõudeoleku testi, mitte kohest testi. Oodake kauem kui varem loetud ajalõpp, tehke pöördpäring ja kinnitage, et loendurid liikusid mõlemas otsas.

Kirjutage intervall ja mõõdetud ajalõpp selle kõrvale. Tulevane muudatus ruuteri püsivaras või üleminek mobiilühendusele võib ajalõppu muuta. Märkus on see, mis võimaldab kellelgi väärtuse uuesti tuletada, selle asemel et seda kopeerida. Kaks numbrit ühel real säästavad hiljem terve uurimise.

Püsivad keepalive’id kaitsevad olekut. Need ei ava porti, ei lisa kirjet lubatud loendisse ega pane kuulajat ilmuma. Kui pöördsuunaline ühendus ei tööta üldse, on viga üks neist kolmest, ja WireGuardi kiirstart kirjeldab keepalive’i sätet samades kitsastes terminites.

Seotud artiklid