La VPN per UDP s'atura en repòs: el tallafoc va oblidar el vostre flux
Un tallafoc pot descartar una assignació UDP inactiva mentre el client encara mostra una sessió. Mesureu l'aturada, trobeu el temporitzador més curt i trieu una solució.
La VPN es connecta, funciona una estona i després deixa de passar trànsit mentre el client encara mostra una sessió. Reconectar-ho ho arregla, cosa que fa que sembli un error del client. Normalment és un tallafoc o un dispositiu NAT que ha descartat una assignació UDP inactiva i no té ni idea que el túnel encara existeix.
El símptoma és prou consistent per diagnosticar-lo: apareix després d'inactivitat, no sota càrrega.
Com es veu una aturada per inactivitat
Mesureu-ho en lloc de descriure-ho. Anoteu quanta estona el túnel queda inactiu abans que el trànsit s'aturi, si un paquet de sortida nou el reanima i si la interfície del client encara conserva la seva adreça. Si una petició nova del client funciona però una resposta a un flux existent no, l'assignació és la sospitosa. Si no funciona res fins que reconecteu, l'estat de sessió del client també s'ha perdut.
Tots dos estan relacionats amb la inactivitat i necessiten solucions diferents.
Anoteu els temps abans de canviar res. Un informe que diu que s'atura després d'uns deu minuts d'inactivitat és verificable, mentre que un informe que diu que cau a l'atzar no ho és. Aquesta diferència decideix si perseguiu un temporitzador o un canvi d'encaminament.
Trobeu el dispositiu que ha oblidat
Diversos dispositius poden mantenir estat per al mateix flux: el router local, un traductor aigües amunt, una frontera de núvol i el tallafoc de l'amfitrió. Cadascun té el seu temporitzador i guanya el més curt. Una interrupció de cinc minuts normalment vol dir que un dispositiu està configurat molt per sota dels altres.
No doneu per fet que el valor per defecte documentat és el temps d'espera del vostre camí. És el valor per defecte d'un sol dispositiu.
- Router domèstic: sovint minuts, de vegades molt menys.
- NAT al núvol o balancejador de càrrega: consulteu el temps d'espera d'inactivitat documentat específicament per a UDP.
- Tallafoc de l'amfitrió: els temporitzadors de seguiment de netfilter s'apliquen per flux.
Comproveu els temporitzadors al camí real
A Linux, els temporitzadors de seguiment de netfilter són visibles i ajustables: sysctl net.netfilter.nf_conntrack_udp_timeout i net.netfilter.nf_conntrack_udp_timeout_stream. El segon s'aplica quan ja s'ha vist trànsit en tots dos sentits, i per això un túnel establert pot sobreviure a una sonda simple.
RFC 4787 estableix el comportament d'UDP NAT i els mínims recomanats. És la referència que cal citar quan el valor per defecte d'un proveïdor sembla inusualment curt.
Keepalive i reconnexió són eines diferents
Un keepalive manté viva una assignació; una reconnexió reconstrueix una sessió morta. Resolen fallades diferents i no són paràmetres de velocitat intercanviables. El paràmetre de WireGuard PersistentKeepalive envia un paquet a un interval fix per mantenir oberta la vinculació NAT. L'opció d'OpenVPN keepalive fa la mateixa feina a la seva manera. Cap dels dos ajuda si el dispositiu del mig ja ha oblidat el flux i descarta les dues direccions.
Les sondes extremadament freqüents afegeixen feina sense arreglar la frontera equivocada.
Verifiqueu amb una petició nova, no amb una recàrrega de pàgina
Després de canviar un temporitzador o afegir un keepalive, repetiu l'escenari d'inactivitat exactament com abans. Després feu una petició realment nova des de l'aplicació coberta. Una pestanya del navegador ja carregada pot mostrar-se des de la memòria cau i no dir-vos res.
Si l'aturada continua, moveu-vos un salt cap enfora i comproveu la taula d'estat d'aquell dispositiu.