Algúns servizos privados responden a través da VPN mentres o tráfico de internet normal compórtase de forma moi distinta a como o fai no equipo dun compañeiro, e un síntese tentado a concluír que o cliente de Ubuntu está roto. Esa conclusión salta un paso. Unha operación privada que funciona e unha ruta pública distinta son dúas observacións, e a diferenza adoita estar na política de tráfico que instalou cada cliente, non no cliente en si.

Comparar a configuración gardada co estado real da rede require tres comandos e responde á pregunta que as suposicións intentaban responder.

Primeiro o perfil gardado, despois o estado efectivo

Unha conexión OpenVPN importada convértese nun perfil propio de NetworkManager. O ficheiro .ovpn do que provén deixa de ser a fonte de verdade no momento en que remata a importación, así que editar ese ficheiro despois non cambia nada da conexión que está a usar. Este é o primeiro punto onde a comparación falla, e falla en silencio.

nmcli -f connection.id,connection.uuid,ipv4.never-default,ipv4.routes,ipv4.dns connection show office-vpn

Lea o UUID cando os nomes choquen; os nomes duplicados sobreviven a reinstalacións e restauracións de perfís, e pode pasar unha hora editando a copia que non se usa. Os valores que ve describen a intención gardada: se o perfil pode tomar a ruta predeterminada, que rutas se gardaron e que resolutores e dominios de busca solicita. Non describen o que ocorreu ao activarse a conexión, porque un complemento ou un envío do servidor pode engadir estado que o perfil non menciona. Por iso importa o seguinte comando.

Despois mire que fixo realmente o sistema con esa intención, incluídas as regras de política e todas as táboas, non só a principal. As propiedades gardadas son entradas, e as táboas instaladas son o resultado.

ip -4 rule show
ip -4 route show table all

Dous destinos, unha comparación

Escolla un destino privado que funcione e un destino público corrente, e logo pregunte ao núcleo que camiño tomaría cada un. Facelo en ambas as máquinas é o que converte unha diferenza vaga nunha concreta.

ip -4 route get 10.40.0.20
ip -4 route get 203.0.113.20

Os enderezos son exemplos que debe substituír polos seus; o importante é o par, non os números. Compare a interface, o enderezo de orixe e a táboa nomeada en cada saída. Cando a consulta privada nomea o túnel e a consulta pública tamén o nomea, ten un túnel completo e o outro cliente pode ter un dividido, ou ao revés.

Non exixa que os dous clientes impriman un texto idéntico. En OpenVPN, redirect-gateway def1 adoita expresarse como dúas rutas de medio prefixo en lugar dunha predeterminada, e un xestor que as mostra doutro xeito non é por iso incorrecto. Xulgue a cobertura, que é o que mostran as consultas, e non o formato.

Onde os dous clientes difiren lexitimamente

Os valores predeterminados do cliente son decisións de política, e poden non coincidir. Un produto pode preferir un túnel completo, outro pode manter o valor local predeterminado e encamiñar só os prefixos privados, e un terceiro pode seguir o que enviou o servidor. Unha diferenza só é un defecto cando contradí o requisito que se lle deu.

Así que compare cada cliente coa intención aprobada de túnel dividido ou completo, non un co outro. Se o requisito é que o tráfico privado use o túnel e que a ruta local de internet siga sendo local, entón un túnel completo é o erro e un túnel dividido é correcto, sen importar que cliente fixo que. Escriba a intención antes de mirar calquera das configuracións, ou o primeiro cliente que inspeccione converterase en silencio no estándar.

O DNS é un segundo eixe e falla de forma independente. Unha ruta correcta aínda pode enviar consultas a un resolutor que non pode responder pola zona privada, e un resolutor correcto non arranxa unha ruta incorrecta. Comprobe ambos, e trate un nome privado que resolve mentres un enderezo privado non o fai como proba de que as dúas capas se resolven por separado.

Manteña limpa a comparación

Execute un só propietario de conexión á vez. Unha sesión de OpenVPN por liña de comandos que corre xunto ao perfil importado instala as súas propias rutas e o seu propio estado de resolutor, e a mestura resultante non é o comportamento de ningún dos dous clientes. Peche unha antes de medir a outra. Reinicie se non está seguro de que segue mantendo estado, porque unha ruta obsoleta de hai unha hora parecerá exactamente un problema de política.

Manteña tamén todo o demais fixo: o mesmo punto final, a mesma conta, as mesmas versións de software, a mesma rede. Un éxito no portátil Windows dun compañeiro proba outro cliente, outra integración de resolutor e quizais outro perfil de servidor, así que non é evidencia sobre o xestor de Ubuntu.

A referencia de axustes IPv4 de NetworkManager define con precisión never-default e as propiedades gardadas das rutas, o que paga a pena ler antes de cambiar un valor xestionado. E lembre o alcance desta comparación: cobre IPv4 e non di nada sobre a política IPv6 correspondente, que ten os seus propios valores predeterminados e a súa propia forma de sorprendelo.

Artigos relacionados