Estoy usando la caja de herramientas de Docker en Windows para el desarrollo relacionado con Docker. Esto funciona bien cuando estoy en la red doméstica o de la oficina, pero no funciona cuando estoy usando anyconnect VPN para conectarme a la red de la oficina. Avíseme si hay una configuración de red que se pueda cambiar para que funcione.
Realmente me gusta OpenConnect (que admite más opciones de configuración que network-manager-openconnect). Incluso las instalaciones horribles que requieren csd-wrapper suelen funcionar bien.
AnyConnect rompe las redes acoplables de una manera extraña y permanecen rotas incluso después de salir de la VPN (incluso si detiene vpnagentd después).
La solución es detener la ventana acoplable, borrar todas sus redes y puentes y solo luego iniciar AnyConnect VPN. Puede iniciar la ventana acoplable después de que finalice la sesión de VPN y volverá a crear todo lo necesario.
Creé un script para solucionar este desafortunado comportamiento que hace exactamente esto:
#!/bin/sh # usage: # vpn.sh [start] # vpn.sh stop if [ "$1" = "stop" ]; then /opt/cisco/anyconnect/vpn/vpn disconnect sudo systemctl stop vpnagentd echo "Cisco VPN stopped" echo "Starting docker" sudo systemctl start docker else echo "Stopping docker" sudo systemctl stop docker bridges=$(sudo brctl show | cut -f1 | tail -n +2) for b in $bridges; do sudo nmcli connection delete $b sudo ip link set dev $b down sudo brctl delbr $b done echo "Starting Cisco VPN" sudo systemctl start vpnagentd /opt/cisco/anyconnect/vpn/vpn connect 'VPN-NAME' fi
Nota: un administrador de VPN puede evitar que use OpenConnect y obligarlo a usar solo Cisco AnyConnect, pero podría tener una mejor experiencia si LocalLanAccess
está habilitado en su perfil de VPN.
Lo siguiente funcionó para mí.
Intente usar OpenConnect en lugar de Anyconnect:
sudo apt install openconnect sudo apt install network-manager-openconnect
y luego (al menos para Ubuntu 16) comente la línea dns=dnsmasq
, para que quede así:
$ cat /etc/NetworkManager/NetworkManager.conf [main] plugins=ifupdown,keyfile,ofono #dns=dnsmasq
Luego agregue una conexión usando NetworkManager a su proveedor de VPN y conéctese. (NetworkManager -> Editar conexiones -> Agregar. Luego seleccione Tipo de conexión para que sea VPN -> Cisco Annyconnect)
Reinicie y vuelva a conectarse, y ahora los contenedores docker deberían tener acceso a Internet.
Docker agrega una entrada de forma predeterminada a la tabla de enrutamiento, que reenvía todo el tráfico con el destino 172.17.XX a través de la dirección de bucle invertido. En su caso, si la dirección IP asignada a su computadora por AnyConnect comienza con 172.17, las dos subredes se superponen y Docker congela la conexión vpn (puede verificarlo mirando su IP asignada por anyconnect y compararla con la tabla de enrutamiento de la ventana acoplable). máquina).
Si ese es el caso, puede cambiar la subred predeterminada utilizada por Docker agregando lo siguiente a %programdata%\docker\config\daemon.json
{ "default-address-pools": [ {"base":"10.10.0.0/16","size":24} ] }
Después de esos cambios de configuración, reinicie el servicio Docker y verifique que se haya configurado el nuevo subconjunto (puede usar netstat -rn
).
Artículo para los pasos en Linux aquí .