L'ordinador portàtil es connecta a la VPN de l'oficina i tot el segueix, inclosa la pàgina web d'una impressora i una intranet que només respon a la xarxa local. Una ruta feta a mà ho arregla durant una hora, després la connexió cau, torna, i l'excepció ha desaparegut. No hi ha res malament amb el túnel: Windows manté una única taula d'encaminament, i l'adaptador de VPN reescriu la seva part d'aquesta taula a cada connexió. El que sobreviu és tot el que viu fora de les entrades pròpies de l'adaptador.

Quina entrada pren el túnel

Enregistreu la taula dues vegades, una amb el túnel baixat i una amb ell pujat, i compareu les línies per defecte. Quan el perfil reclama el prefix per defecte, l'entrada de l'adaptador és la fila més ampla de la taula, així que qualsevol excepció ha de ser més estreta que ella. És aritmètica sobre la longitud del prefix, no una afirmació sobre confiança o política. També fixa quina interfície ha de nomenar l'excepció.

Anoteu l'índex d'interfície i la passarel·la local abans de continuar, perquè tots dos canvien quan la màquina s'uneix a una altra xarxa. Les ordres següents els llegeixen de la màquina, no de la memòria.

route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.30

La segona ordre informa de la interfície i el següent salt que aquesta adreça faria servir ara mateix, cosa que val més que llegir quaranta files i endevinar. Executeu-la abans i després de connectar i tindreu la parella que val la pena adjuntar a un registre de canvi. Totes dues sortides forneixen els números emprats a la resta d'aquesta pàgina.

Una ruta d'amfitrió guanya per especificitat

La coincidència del prefix més llarg decideix el guanyador, així que un /32 per la passarel·la física supera la ruta per defecte pel túnel sense tocar el túnel. El trànsit cap a aquesta adreça surt per la interfície local mentre tota la resta conserva el seu camí. El túnel continua portant la ruta per defecte i simplement deixa de ser l'únic candidat per a aquesta destinació. La longitud del prefix és l'única palanca que ofereix la taula, i per a aquesta feina n'hi ha prou.

L'especificitat també descarta la drecera òbvia d'excloure un nom de domini, perquè la taula compara adreces i un nom pot resoldre's a diverses. Resoleu primer l'amfitrió i després decidiu quina de les seves adreces mereix l'excepció.

Per a tot el que segueix, suposeu una connexió anomenada Office, una passarel·la local 10.0.0.1 a la interfície 7, i una destinació a 198.51.100.30. Són marcadors de posició, no valors per defecte, i les ordres anteriors produeixen els valors que la vostra màquina fa servir realment. Guardeu aquesta nota de substitució amb el canvi perquè el següent lector no copiï els números.

Feu que la ruta sobrevisqui a la propera reconnexió

Windows no ofereix cap instrucció d'exclusió en una connexió VPN, així que l'excepció ha de viure a la interfície física, on l'adaptador no la reescriurà. El cmdlet que sembla la resposta fa el contrari: Add-VpnConnectionRoute mou un prefix dins del túnel, que és el cas mirall on un perfil dividit hauria de portar una destinació i deixar la resta en local. Recórrer a ell aquí garanteix que el trànsit que volíeu deixar fora hi entra.

La forma manual és una sola ordre. La seva feblesa és el canvi de xarxa, no la reconnexió.

route -p add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

Això sobreviu a un reinici gràcies a -p i envia una adreça per la interfície 7 mentre el túnel porta tota la resta. Moveu el portàtil a una altra xarxa i tant la passarel·la com l'índex queden obsolets, així que l'entrada falla en silenci. Anoteu qui en és responsable i quan cal eliminar-la.

Un script de connexió és la versió més robusta, perquè torna a afegir l'excepció després de cada connexió en lloc d'esperar que l'entrada hagi sobreviscut. Les dues línies següents pertanyen a allò que engega el túnel, no a un script d'inici de sessió.

rasdial Office
route add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

Allò que aixeca el túnel és el lloc correcte per a la segona línia, i rasdial només torna un cop la connexió està establerta, així que la ruta cau darrere de les entrades pròpies de l'adaptador. Executeu-la de nou després d'una represa, perquè una suspensió pot deixar caure la ruta i deixar el túnel pujat. Si la tasca és la inversa, empènyer un sol prefix dins del túnel mentre la resta queda en local, llavors Add-VpnConnectionRoute és l'eina correcta.

L'encaminament no pot triar un procés

De vegades el requisit és més estret que una destinació: un programa hauria de prendre el camí local mentre tota la resta queda dins del túnel. L'encaminament no pot expressar això, perquè compara adreces i no processos. El patró viable empeny el problema al llançador.

Manteniu el perfil fora de la ruta per defecte i inicieu aquest únic programa lligat a l'adreça de la interfície local, així l'excepció es converteix en l'ordre d'inici i el túnel conserva el que ja gestionava. No canvia res a la taula d'encaminament, i per això sobreviu a les reconnexions. També vol dir que el túnel no ha de posseir la ruta per defecte d'entrada, així que és un disseny diferent i no un pedaç sobre l'anterior.

La seva feblesa és operativa i no tècnica. El programa s'ha d'iniciar sempre a través de l'embolcall, i si falta el lligam després d'una represa, agafa en silenci qualsevol camí que ofereixi la taula. Això és tolerable per a un navegador que obriu deliberadament i inacceptable per a qualsevol cosa que no ha de sortir mai del túnel.

Les connexions per usuari tampoc ho resolen. Windows pot limitar una connexió a un compte mentre la taula d'encaminament continua sent de tota la màquina, així que una connexió limitada a un compte que tingui una ruta per defecte encara redirigeix tots els processos de la màquina, incloses altres sessions. L'abast només es fa real quan l'abast de la ruta coincideix amb el compte. Dues persones que comparteixen un portàtil comparteixen per tant una taula, i la segona hereta el túnel que hagi iniciat la primera.

Confirmeu que l'excepció ha sobreviscut a una reconnexió

Proveu el canvi tal com fallarà: desconnecteu, reconnecteu, obriu una aplicació nova, i després demaneu una adreça que ha de quedar local i una que ha d'usar el túnel. Compareu totes dues amb Find-NetRoute en estat connectat.

Si el prefix falta de la taula després d'una reconnexió, viu a l'objecte equivocat i no al format equivocat. Moveu-lo a la interfície física i repetiu la prova. Guardeu les dues sortides d'ordres amb el registre de canvi, perquè una instantània de l'estat de treball respon més endavant a més preguntes que un paràgraf d'explicació. La propera persona voldrà saber què ha produït la connexió, no què preteníeu que produís.

Articles relacionats