Dos llocs mòbils sense ports d'entrada: construïu un concentrador que funcioni
Quan cap dels dos llocs accepta connexions IPv4 entrants, feu que tots dos iniciïn la connexió cap a un concentrador accessible. Executeu els passos d'encaminament, reenviament i alternativa en aquest ordre.
Dos llocs amb enllaços mòbils tenen el mateix problema en les dues direccions: cap no pot acceptar una connexió IPv4 no sol·licitada, així que cap pot fer de servidor en un túnel directe. L'arquitectura que funciona posa un tercer agent accessible al mig: cada lloc marca cap a fora i el mig només reenvia el trànsit que aproveu. Aquest mig pot ser un encaminador que opereu vosaltres o un producte que presenta els parells, i això no és el mateix. Els passos de sota estan ordenats perquè cada un produeixi una prova abans que el següent en depengui.
No es pot trucar a cap dels dos llocs, així que tots dos han de trucar cap a fora
Confirmeu la restricció abans de dissenyar-hi al voltant. Si l'operador dona una adreça privada a la interfície WAN, cap reenviament de port a l'encaminador del propi lloc el farà accessible, perquè la traducció passa més amunt. Una adreça IPv6 pública pot existir al mateix enllaç i canviar el disseny del tot, i per això la comprovació cobreix les dues famílies. Anoteu la resposta per a cada lloc, perquè els dos rares vegades tenen restriccions idèntiques encara que comparteixin operador.
El cas mòbil habitual sembla una adreça del rang traduït de l'operador amb una ruta per defecte que hi passa. No és una avaria per reparar; és la raó per la qual existeix el concentrador. El que busqueu és qualsevol adreça a què un tercer pugui arribar sense que el lloc hagi parlat primer.
Dues ordres responen la pregunta d'adreçament del lloc que teniu al davant. Executeu-les a l'encaminador del lloc, no en un portàtil que hi ha darrere:
ip -4 addr show scope global
ip -6 addr show scope globalQui presenta els parells i qui porta els paquets
Presentació i transport són feines separades que els productes sovint agrupen sense fer visible la línia. Un mecanisme de trobada ajuda dos parells a trobar un camí candidat; un relé porta els seus paquets quan no hi ha camí directe. Comprar un servei que presenta parells no us dona un encaminador, i aquesta diferència decideix si el disseny necessita un concentrador o no.
La travessa té el seu propi vocabulari, i les paraules descriuen rols, no garanties. L'especificació ICE descriu candidats i comprovacions de connectivitat, STUN descriu una manera d'aprendre sobre la traducció d'adreces, i TURN descriu transport retransmès per a aplicacions que l'implementen. Cap d'aquests mecanismes no apareix en una passarel·la convencional perquè l'heu apuntat a una adreça de descobriment. Verifiqueu la travessa com a capacitat del producte i assumiu el relé fins que una prova demostri el contrari.
Una ruta per lloc, propietat d'un parell
El concentrador necessita un túnel per lloc, un prefix LAN diferent darrere de cada un i una ruta per a cada prefix que n'anomeni el propietari. A l'exemple el concentrador és 10.61.0.1, el lloc A és 10.61.0.11 amb LAN 10.60.10.0/24, i el lloc B és 10.61.0.12 amb LAN 10.60.20.0/24. Cada ruta de sota apunta al parell que posseeix el prefix, no a la interfície del túnel:
ip route add 10.60.10.0/24 via 10.61.0.11 dev wg0
ip route add 10.60.20.0/24 via 10.61.0.12 dev wg0
sysctl net.ipv4.ip_forward
ip route get 10.60.20.55 from 10.60.10.77El reenviament ha d'estar activat, o els paquets s'aturen al concentrador sense cap error que assenyali la causa. L'última ordre respon la pregunta real, perquè demana quin camí prendria un paquet de la LAN del lloc A a la LAN del lloc B amb l'origen inclòs a la consulta. Tracteu una consulta que anomena la interfície del túnel com a prova i una que cau a la ruta per defecte com una ruta que falta, no com un misteri. Després limiteu el trànsit deliberadament, perquè un concentrador que reenvia entre tots els parells converteix dos llocs en una xarxa plana i la política d'accés que creieu tenir deixa d'aplicar-se.
Decidiu també on acaba el xifratge. Quan el concentrador té les dues terminacions del túnel, l'operador d'aquella màquina i la seva càrrega de treball entren al model de confiança i disponibilitat, i la seva amplada de banda passa a formar part del camí.
Manteniu cada mapatge viu a través de l'operador
Cada lloc inicia el seu túnel i cada un ha de mantenir viu el mapatge de traducció o l'operador l'oblida. Un missatge de manteniment al costat que inicia conserva aquest mapatge entre encaixades de mans. Limiteu els prefixos permesos a l'adreça del concentrador i a la LAN remota, perquè un parell compromès no pugui reclamar un prefix que no posseeix:
[Peer]
PublicKey = <hub public key>
Endpoint = 192.0.2.10:51820
AllowedIPs = 10.61.0.1/32, 10.60.20.0/24
PersistentKeepalive = 25Reflectiu el bloc a l'altre lloc amb el seu propi prefix remot, i resistiu el desig de permetre tot el rang del túnel. Una encaixada de mans que s'atura i reprèn des d'un port d'origen nou és la signatura d'un mapatge caducat, i les marques de temps de l'encaixada són la prova que va passar. Un interval més curt que el temps d'espera de l'operador evita el caducament en lloc de reparar-lo després. Quan l'operador canvia el comportament de traducció, espereu que aquests temps canviïn amb ell.
Proveu les dues direccions, després proveu la recuperació
La verificació té direcció, així que un ping d'A a B prova la meitat del disseny i res sobre la ruta de tornada. Comproveu el camí de resposta amb la mateixa consulta conscient de l'origen al concentrador, i després repetiu la prova des de l'altre costat. Les encaixades de mans noves també formen part de la prova, perquè un túnel inactiu una hora pot estar provant un mapatge vell:
wg show wg0 latest-handshakes
ping -c 3 10.60.20.55
traceroute -n 10.60.20.55Després proveu la fallada que espereu, no l'èxit que voleu. Reinicieu l'enllaç d'un lloc i confirmeu que el túnel torna sense que cap persona toqui cap dels dos extrems, perquè un disseny que necessita un operador després de cada canvi de l'operador no està acabat. Anoteu el camí principal, l'alternativa IPv6 quan n'hi hagi, i el comportament quan el concentrador no estigui disponible. El concentrador ja forma part del vostre model de disponibilitat, així que anoteu-ho en lloc de descobrir-ho durant una caiguda.