Cuando conectamos usando el cliente Cisco Anyconnect para conectar por VPN perderemos la conexión tanto de las máquinas de WSL2 como posiblemente otro tipo de máquinas virtuales (virtualbox)
Para solventarlo:
1) En el caso de las máquinas en WSL2 desactivaremos que se generé automáticamente el resolv y pondremos manualmente los servidores DNS
/etc/wsl.conf
generateResolvConf = false
/etc/resolv.conf
nameserver <MiservidorDNS>
nameserver 1.1.1.1
nameserver 8.8.8.8
En el caso de la ugr (Universidad de Granada) el servidor DNS es 150.214.204.10
2) Cada vez que conectemos a la VPN deberemos ejecutar lo siguiente. En windows abiremos una terminal Powershell como administrador y pondremos:
Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 6000
Deberéamos recuperar la conexión.
Si queremos automatizar el proceso podemos automatizar una tarea. La forma más sencilla es seguir el script de github.
- Arrancamos un powershell con permisos de administrador
- Descargamos el archivo .\CreateScheduledTask.ps1 o clonamos el repositorio (git clone https://gist.github.com/a512496243d2d996a50f63f6b2b6de7d.git)
- Ejecutamos (tenemos que estar como administradores):
Get-Content .\CreateScheduledTask.ps1 | PowerShell.exe -noprofile -
Esto creara un archivo en nuestro profile (C:\Users\TUUSAURIO) llamada UpdateAnyConnectInterfaceMetric.ps1 con el contenido del comando. Y adicionalmente una tarea que ejecutará dicho script cuandose produzca el evento 2039 de conexión del anyconnect con nuestraVPN
Fuentes:
- Post original https://gist.github.com/machuu/7663aa653828d81efbc2aaad6e3b1431
- Script para crear la tarea https://gist.github.com/Shterneregen/a512496243d2d996a50f63f6b2b6de7d