WireGuard PersistentKeepalive: żomm il-mappatura NAT ħajja
Jekk il-konnessjoni maqluba taħdem biss minnufih wara li l-pari jibgħat traffiku, il-mappatura tkun qed tiskadi. Issettja l-keepalive wara r-router, imbagħad aqra t-timeout reali.
Il-kaxxa tad-dar tiftaħ il-mina u tilħaq is-server tal-cloud mingħajr problemi. Is-server tal-cloud jista’ jasal għall-applikazzjoni tad-dar għal minuta jew tnejn wara li l-kaxxa tad-dar tkun bagħtet xi ħaġa l-aħħar, u mbagħad jieqaf. Ma jidher xejn fil-log ta’ WireGuard, l-ebda żball ta’ handshake ma jiġi rrappurtat, u jerġa’ jibda l-mina jsewwih għal ftit. Dan il-mudell hija mappatura li tiskadi, mhux mina miksura, u l-gwida hawn taħt tikkonfermaha qabel ma tinbidel xi ħaġa.
Ikkonferma li l-mudell huwa skadenza waqt l-inattività
Id-dettall li jiddistingwih huwa l-ħin. Jekk il-konnessjoni maqluba taħdem minnufih wara li l-pari tad-dar jibgħat traffiku u tfalli wara intervall kwiet, il-passaġġ huwa sew u l-istat fin-nofs mhuwiex. Jekk qatt ma ħadmet, anki minnufih wara t-traffiku, din hija dijanjożi żbaljata.
sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer
Mexxi l-ewwel tnejn minnufih wara li l-pari tad-dar jibgħat xi ħaġa, stenna ħames minuti u erġa’ mexcihom. Timestamp tal-handshake li jiġġedded skont l-iskeda mingħajr punt tat-tmiem ġdid jgħidlek li l-mina hija ħajja. Dak li nbidel hija l-kapaċità tal-pakketti mhux mitluba li jaslu minn barra, li hija proprjetà tal-passaġġ u mhux tal-mina.
Imbagħad agħmel tentattiv maqlub u osserva l-counturi tat-trasferiment. Jekk in-naħa tal-cloud tibgħat bytes u n-naħa tad-dar ma tirċevix wieħed, il-pakkett ħalla l-cloud u miet fi strument li jżomm l-istat fit-triq. Dik hija l-firma li qed tfittex. Jekk iż-żewġ counturi jiċċaqilqu, il-mina wasslet il-pakkett u l-applikazzjoni hija s-suspettata.
Qiegħed il-keepalive fuq il-pari wara r-router
Keepalives persistenti jżommu mappatura NAT u kwalunkwe stat tal-firewall ħajjin billi jibagħtu pakkett żgħir awtentikat skont l-iskeda. Is-setting tappartjeni lill-magna wara r-router, fl-entrata tagħha għall-pari remot, għax dik hija n-naħa li l-pakkett ħiereġ tagħha joħloq l-istat.
[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25
Għaqqadha mas-sezzjoni tal-pari eżistenti. Iż-żieda ta’ tieni blokk bl-istess ċavetta pubblika mhix mod validu biex iżżid għażliet, u wg-quick mhux se jgħaqqadhom għalik. Il-25 sekonda dokumentati huma eżempju magħżul biex ikun taħt iż-żminijiet UDP komuni, mhux valur bi tifsira speċjali.
It-tqegħid tal-istess direttiva fuq in-naħa tal-cloud ma jgħinx din il-problema. Il-pakketti ta’ dak il-pari diġà ġejjin minn indirizz pubbliku, allura m’hemmx mappatura x’tinżamm fid-direzzjoni li timporta. Iżid traffiku u ma jbiddel xejn.
Aqra t-timers minflok ma taħseb intervall
Il-keepalives jaħdmu għax jaslu aktar spiss milli tiskadi l-istat. Dan jagħmel il-timeout in-numru li verament għandek bżonn, u fuq Linux jinqara fuq l-apparat li jagħmel it-traduzzjoni:
sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820
L-ewwel valur huwa t-timeout għal fluss UDP li ntwera biss f’direzzjoni waħda, u t-tieni japplika ladarba jiġu osservati tweġibiet. It-tnejn huma normalment qosra, u mappatura li ssir siekta ssegwi dak li japplika għall-fluss tiegħek.
Qabbel dak in-numru mal-intervall tiegħek. Keepalive ta’ 25 sekonda taħt timeout ta’ 30 sekonda jaħdem; l-istess keepalive taħt timeout ta’ 15-il sekonda ma jaħdimx. L-ebda ammont ta’ tentattivi mill-ġdid ma jbiddel dik l-aritmetika. Xi routers tal-konsumatur u operaturi mobbli jużaw valuri ħafna iqsar mill-default ta’ Linux, u għalhekk konfigurazzjoni li taħdem fuq netwerk waħda tfalli fuq oħra.
| Observation | What it means | Reasonable response |
|---|---|---|
| Works after traffic, dies when idle | Mapping or firewall state expiring | Lower the keepalive interval |
| Never works, even immediately | No return route, listener or firewall | Stop tuning keepalive |
| Works for hours, then dies once | Carrier-side translation or address change | Check the endpoint and logs together |
Iċċekkja l-listeners u l-firewall separatament
Mappatura ħajja hija meħtieġa u mhix biżżejjed. L-applikazzjoni fuq il-kaxxa tad-dar trid tisma’ fuq l-indirizz it-tajjeb, u l-firewall tal-host irid jippermetti l-pakkett wara li jiġi deċifrat.
sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health
Jekk is-socket hija marbuta biss mal-indirizz tal-interface fiżika u mhux mal-indirizz tal-mina, il-pakketti li jaslu fuq il-mina jiġu skartati qabel ma jiġi kkonsultat il-firewall. Dan il-falliment min-naħa tal-cloud jidher identiku għal problema ta’ mappatura, u jibqa’ ħaj wara kull aġġustament tal-keepalive.
Il-verifika tal-lista permessa hija daqstant importanti fid-direzzjoni l-oħra. Il-pari tal-cloud irid jippermetti l-indirizz tal-mina tad-dar bħala sors jekk se jwieġeb, u l-pari tad-dar irid jippermetti l-indirizz tal-cloud bħala destinazzjoni. Il-pakketti keepalive huma traffiku awtentikat u japplikaw l-istess regoli, u għalhekk keepalive li jidher li jaħdem jista’ jikkoeżisti ma’ applikazzjoni li ma taħdimx.
Irrollja l-bidla u kun af il-limiti tagħha
Applika s-setting, erġa’ ibda l-interface jekk dak huwa l-metodu ta’ aġġornament tiegħek, u mbagħad erġa’ agħmel it-test tal-inattività minflok it-test immedjat. Stenna aktar mit-timeout li qrajt qabel, agħmel talba maqluba u kkonferma li l-counturi ċċaqilqu fiż-żewġ trufijiet.
Innota l-intervall u t-timeout imkejjel ħdejh. Bidla fil-futur fil-firmware tar-router, jew ċaqliq għal konnessjoni mobbli, tista’ tbiddel it-timeout. In-nota hija dik li tippermetti lil xi ħadd jidderiva mill-ġdid il-valur minflok ma jikkupjah. Żewġ numri fuq linja jiffrankaw investigazzjoni sħiħa aktar tard.
Keepalives persistenti jipproteġu l-istat. Ma jiftħux port, ma jżidux entrata mal-lista permessa, u ma jġegħlux listener jidher. Meta l-konnessjoni maqluba ma taħdimx għal kollox, il-ħtija hija waħda minn dawk it-tlieta, u il-bidu mgħaġġel ta’ WireGuard jiddeskrivi s-setting tal-keepalive fl-istess termini dejqa.