Añades una línea para que un perfil PPTP testarudo conecte y, una semana después, el cliente L2TP que llevaba meses funcionando deja de hacerlo. La lectura obvia es que los dos protocolos ahora chocan. Lo más habitual es que ambos clientes arranquen pppd, que los dos lean los mismos valores por defecto y que la línea que añadiste nunca estuviera limitada al perfil que estabas arreglando. El archivo de opciones compartido es el acoplamiento, y los protocolos son inocentes.

Qué hereda un cliente cuando arranca

Un cliente basado en PPP rara vez construye su línea de comandos desde cero. Arranca pppd, que lee los valores por defecto del sistema, luego cualquier archivo de usuario o de terminal y después los argumentos que le pasa el cliente; además, el cliente puede apuntarlo a un archivo de par. Cada una de esas capas puede llevar un plugin, un método de autenticación o una directiva de ruta, y la primera capa que fija una opción protegida puede bloquearla frente a cambios posteriores.

Así que la pregunta útil no es qué VPN está roto, sino qué capa aportó el ajuste. Un cliente que genera sus propios argumentos parece autosuficiente y aun así hereda todo lo que contiene el archivo del sistema.

Atribuye la línea antes de cambiarla

Empieza mirando el proceso que sigue en marcha mientras la conexión está levantada. La línea de comandos muestra qué archivos se pasaron de forma explícita, y todo lo que no aparece ahí vino de una ruta por defecto.

ps -o pid=,args= -C pppd

Si la lista de argumentos contiene un nombre de par, lee ese archivo. Si no lo contiene, el ajuste que persigues vive en una ruta compartida. El manual de pppd enumera el orden en que se leen esos archivos y qué opciones no puede sobrescribir un usuario normal, y por eso a veces una línea posterior no hace absolutamente nada. Una opción protegida, como la ruta de un plugin, no se puede reemplazar con una línea posterior de nivel de usuario, de modo que editar el archivo equivocado no tiene ningún efecto visible.

La línea de plugin que sigue a todos los clientes

Un plugin cargado en el archivo del sistema es el peor de los casos, porque cambia lo que intenta cargar cualquier proceso PPP nuevo, sin importar qué botón pulsó el usuario. El plugin de L2TP es el ejemplo clásico: correcto para un perfil, sin sentido o dañino para un perfil PPTP que parte de los mismos valores por defecto.

Muévelo a un archivo de par que el cliente seleccione, o a los ajustes por conexión propios del cliente cuando los admita. Borrarlo sin más repara al segundo cliente y rompe al primero, y así es como estos problemas viajan entre equipos.

Verifica cada cliente después del traslado

Prueba ambas conexiones desde la misma máquina, una detrás de otra, y lee las opciones negociadas en lugar del diálogo de éxito. El volcado de abajo imprime el conjunto de opciones que pppd ensambló realmente, que es la única lista que importa.

sudo pppd call office debug dump

Repite con el segundo cliente y compara las dos salidas. La opción que moviste debería aparecer en exactamente una de ellas. Si aparece en ambas, el cliente la está regenerando y el arreglo pertenece a ese perfil y no al archivo compartido. Anota dónde vive ahora el ajuste junto a la conexión, para que la siguiente persona no vuelva a descubrir el acoplamiento rompiéndolo otra vez.

Artículos relacionados