Quando a VPN está ativa, todo o tráfego parece ser encapsulado através do csctun0.
Usando um VirtualBox eu sou capaz de configurar uma "ponte de rede" para a eth0, o que parece ignorar completamente as manipulações feitas pelo software da Cisco. O VirtualBox conecta-se diretamente à minha rede local e acessa os dispositivos da rede local e a internet diretamente.
Eu quero alcançar o mesmo com contêineres do Docker, mas a ponte do Docker parece funcionar de forma diferente.
O que é necessário para permitir que um contêiner Docker contorne o encapsulamento da Cisco como um VirtualBox?
Editar: Eu tentei usar "macvlan" e segui as instruções http://hicu.be/docker-networking-macvlan-bridge-mode-configuration mas falha quando tento enviar pings para o gateway local:
# docker exec -ti container0 ping -c 4 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: Destination Host Unreachable
64 bytes from 10.0.0.1: Destination Host Unreachable
64 bytes from 10.0.0.1: Destination Host Unreachable
64 bytes from 10.0.0.1: Destination Host Unreachable
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
fonte
Respostas:
Por que você não impede que a VPN assuma toda a sua conexão? Basta desativar o uso do gateway padrão na rede remota para a conexão VPN e o Docker deve funcionar corretamente por padrão (via eth0).
Além disso, você pode usar o comando de roteamento para ditar a rota tomada em diferentes cenários (exemplo: quando a VPN está ativa).
fonte