El xifratge comença en una frontera, i aquesta frontera és una decisió d'encaminament que el punt final pren abans que cap paquet sigui encapsulat. Una xarxa que mai no veu les vostres claus pot donar igualment a la vostra màquina una ruta que li agrada més que la del mateix túnel. Aquí es confonen dos errors: llegir un paquet que ja és dins del túnel i desviar un paquet que mai no hi va ser posat.

La distinció importa perquè el segon error és més barat de preparar i molt més fàcil de passar per alt. Es manifesta com una petició que va sortir per la interfície equivocada mentre el client encara informava d'una connexió saludable.

Dues maneres com una xarxa us pot afectar

Un paquet que arriba al túnel té la càrrega oculta a cada salt que travessa, i aquesta protecció es manté fins i tot quan el camí us sorprèn. Un paquet que no arriba mai al túnel és una petició ordinària de la vostra adreça, enviada allà on apuntava la taula d'encaminament. El primer error necessita un xifratge trencat o un parell compromès, mentre que el segon només necessita un missatge de configuració en què la vostra màquina hagi decidit confiar. Aquesta asimetria és per què la meitat de l'encaminament mereix una revisió pròpia.

L'equip que hi ha al camí no necessita les vostres claus per influir en el segon cas. Només necessita que el vostre punt final accepti una ruta, un resolutor o una regla de política que en produeixi una.

expected:  app -> tunnel device -> encapsulation -> internet
observed:  app -> wlan0        -> plaintext     -> internet

D'on pot venir una ruta abans que existeixi el túnel

DHCP reparteix més que una concessió d'adreça. L'opció de ruta estàtica sense classes pot portar prefixos de destinació i salts següents, i RFC 3442 analitza les conseqüències de seguretat d'una adreça d'encaminador incorrecta: trànsit desviat, una denegació de servei o un observador instal·lat al camí. Un client que accepta aquestes rutes abans que el túnel estigui aixecat pot acabar amb un camí preferit que no té res a veure amb el vostre proveïdor.

Res d'això no fa universal la injecció de rutes. El client ha d'acceptar l'opció, el prefix ha de cobrir el trànsit que us importa, el salt següent triat ha de ser abastable i la política d'aplicació ha de permetre que el paquet surti per aquell camí. Traieu-ne qualsevol i la mateixa resposta és innòcua. És també per això que dues màquines en una mateixa xarxa es poden comportar de manera diferent, ja que no executen el mateix client, la mateixa política ni tan sols la mateixa família d'adreces.

IPv6 mereix una passada pròpia, perquè els anuncis d'encaminador porten una ruta per defecte amb un codi diferent del de l'opció DHCPv4. Una prova que només inspecciona la taula v4 no ho ha cobert.

Comproveu el camí que el nucli tria realment

Les consultes de ruta tenen resposta, així que pregunteu-les en lloc de deduir-ho d'un llum d'estat. Les ordres següents mostren la ruta i la font triades per a una destinació, a més de les regles que poden prevaler sobre la taula principal. Executeu-les mentre esteu connectats i de nou després de reconnectar, perquè una renovació de la concessió pot canviar la resposta.

ip route get 203.0.113.10
ip route show table all | grep -E '^(default|203\.0\.113)'
ip rule show
resolvectl query example.com

Llegiu la sortida buscant dues coses: la interfície que s'anomena a la ruta i l'adreça d'origen triada. Una ruta de túnel anomena el dispositiu de túnel, una ruta filtrada anomena el físic, i la diferència es veu sense desxifrar res. Si la resposta canvia entre execucions, guardeu les dues sortides i compareu les regles que les van produir.

No us atureu a la ruta per defecte. Una excepció d'aplicació, un prefix de túnel dividit o una segona regla de política poden portar una destinació concreta al voltant del túnel mentre la ruta per defecte encara hi apunta.

Decidiu on ha de viure l'aplicació

Tres condicions decideixen si l'aplicació al costat del client és suficient o si cal alguna cosa fora. Si el client instal·la i defensa rutes per a cada família d'adreces que feu servir, un túnel que posseeix la ruta per defecte sol ser suficient. Si la màquina ha d'arribar a recursos locals mentre tota la resta es queda dins del túnel, aquestes excepcions s'han d'enumerar i posseir en lloc de deixar-les al que anunciï la xarxa d'accés. I si la plataforma pot lligar el trànsit a una interfície per aplicació, aquest lligam és una garantia més forta que una ruta que qualsevol cosa pot prevaler.

Triï el que triï, escriviu la decisió allà on viu la configuració. Una regla que existeix perquè algú la va escriure durant un incident no sobreviurà al proper reinici, així que manteniu les excepcions locals i d'arrencada estretes i anoteu per què existeix cadascuna.

Torneu a executar les ordres de consulta després de cada actualització del client i de cada canvi de xarxa, i compareu-ho amb l'última sortida enregistrada. La taula d'encaminament és la frontera d'aplicació, així que tracteu-la com a tal.

Articles relacionats