On va la ruta a OpenVPN: al client o al servidor?
Una ruta nua a la configuració del servidor canvia el servidor, no el client. Trieu el fitxer del client, un push global o un push per a un client, i comproveu què ha arribat.
Afegiu route 10.60.0.0 255.255.255.0 a la configuració del servidor, reinicieu, torneu a connectar un portàtil i la subxarxa continua sense ser abastable des d’aquell portàtil. La línia s’ha acceptat, el servei s’ha iniciat netament i res del registre no sembla incorrecte. El que ha passat és que la ruta s’ha instal·lat a la màquina que heu editat: la passarel·la ara creu que pot arribar a aquell prefix, mentre que al client no se li ha dit res. La ubicació és tota la qüestió, i hi ha quatre llocs on pot viure la mateixa línia.
Els quatre llocs i qui rep cadascun
Una ruta es pot afegir amb la configuració pròpia del client, oferir a tots els clients mitjançant un push global, oferir a un sol client mitjançant un fitxer específic de client, o escriure al context d’encaminament propi del servidor.
Aquests quatre casos fan servir una sintaxi gairebé idèntica i produeixen resultats completament diferents. Els tres primers afecten què envia un client al túnel; el quart afecta com arriba el servidor a una xarxa, cosa útil quan el mateix servidor necessita un camí i perjudicial quan es confon amb una distribució.
Decidiu quin dels quatre voleu abans d’escriure la línia i, després, confirmeu el destinatari.
| Placement | Effect | Receiver |
|---|---|---|
| Client profile route | Installed by the client at connect | That client only |
Global push "route ..." | Sent to every client that accepts pushed options | All pulling clients |
| Client-specific push | Sent to the matching client context | One identity |
| Server config route, no push | Added to the server's own table | The gateway itself |
Per què la ruta nua al servidor sorprèn la gent
La configuració del servidor és on els administradors miren primer, i una directiva de ruta allà es llegeix com una afirmació sobre la xarxa VPN. No ho és. OpenVPN la tracta com una instal·lació local de ruta a la màquina on s’executa el dimoni, que és exactament el mateix tipus de canvi que faríeu amb ip route i després oblidaríeu.
La distribució requereix que la ruta s’enviï amb push, i el push requereix que el client estiri. Un client iniciat amb les opcions estirades desactivades ignora completament l’oferta. Comproveu els dos extrems d’aquesta encaixada abans de reescriure el fitxer del servidor, perquè el registre del servidor no es queixarà: des del seu costat, l’oferta s’ha enviat. A més, una ruta acceptada només arriba a la propera connexió, mai a la sessió en què ja esteu.
Quan veieu les dues operacions com a separades, la fallada deixa de ser misteriosa: el servidor arriba al prefix, el client no, i les dues afirmacions són certes alhora.
Fitxers per client i la identitat amb què coincideixen
El fitxer específic d’un client es nomena segons la identitat que el servidor ha autenticat, que per defecte és el nom comú del certificat. Un nom de connexió amigable en un client d’escriptori no és aquest valor, i una discordança produeix un fitxer que mai no es llegeix.
Comproveu el directori que el servidor fa servir realment i, després, confirmeu que el nom del fitxer coincideix exactament amb la identitat autenticada, incloent-hi majúscules i minúscules.
grep -n 'client-config-dir' /etc/openvpn/server/server.conf
ls -l /etc/openvpn/ccd/Dins d’aquest fitxer la ruta encara s’ha d’enviar amb push, perquè el context per client és un conjunt d’opcions aplicades a la sessió d’aquell client, no una taula d’encaminament local. Una ruta nua allà té el mateix problema que una ruta nua al fitxer global.
El fitxer propi del client i l’eina que en té cura
Una ruta col·locada a la configuració del client s’instal·la quan aquell client es connecta i s’elimina quan es desconnecta, que és el cicle de vida correcte per a una destinació estàtica.
Si el perfil el gestiona un gestor de xarxa, pot importar aquestes opcions una vegada i després conservar la seva pròpia còpia. Editar el fitxer baixat després no canvia res, i això és una causa habitual de "la ruta hi és però no s’aplica".
Comproveu el perfil actiu en lloc del fitxer que heu baixat, i comproveu la configuració importada que mostra el gestor. Després connecteu-vos i pregunteu al sistema quina ruta fa servir una adreça concreta, en lloc de suposar que el túnel ha guanyat perquè la ruta existia en un fitxer de text.
Verifiqueu al client i després comproveu el camí de tornada
Pregunteu la destinació a la taula d’encaminament pròpia del client, no a la del servidor. Una consulta per a un sol amfitrió dins del prefix n’hi ha prou per mostrar la interfície i el salt següent que s’utilitzaran.
ip route get 10.60.0.10Si la consulta apunta al túnel, la distribució ha funcionat i el problema restant és en un altre lloc. Si apunta a la passarel·la per defecte, la ruta no s’ha instal·lat, l’ha filtrada una opció del costat del client o pertany a un perfil que el client no utilitza.
Suposeu que la distribució ha funcionat i encara no respon res: llavors comproveu el reenviament a la passarel·la, la ruta de tornada de l’altre costat i qualsevol tallafoc entremig. Una ruta tria un camí, no atorga accés.