Networking 当Cisco AnyConnect安全移动客户端提供VPN隧道时,使用Docker直接访问eth0

Networking 当Cisco AnyConnect安全移动客户端提供VPN隧道时,使用Docker直接访问eth0,networking,docker,ubuntu-14.04,vpn,cisco,Networking,Docker,Ubuntu 14.04,Vpn,Cisco,当VPN处于活动状态时,所有流量似乎都通过csctun0进行隧道传输 使用VirtualBox,我可以建立一个到eth0的“网络桥”,它似乎完全忽略了Cisco软件的操作。VirtualBox直接连接到我的本地网络,并直接访问本地网络设备和internet 我想用Docker容器实现同样的效果,但Docker桥的工作方式似乎有所不同 有什么必要让Docker容器像VirtualBox一样绕过Cisco的隧道 编辑: 根据@NetworkMeister的建议,我尝试使用“macvlan”,并按照上

当VPN处于活动状态时,所有流量似乎都通过csctun0进行隧道传输

使用VirtualBox,我可以建立一个到eth0的“网络桥”,它似乎完全忽略了Cisco软件的操作。VirtualBox直接连接到我的本地网络,并直接访问本地网络设备和internet

我想用Docker容器实现同样的效果,但Docker桥的工作方式似乎有所不同

有什么必要让Docker容器像VirtualBox一样绕过Cisco的隧道

编辑: 根据@NetworkMeister的建议,我尝试使用“macvlan”,并按照上的说明操作,但在尝试向本地网关发送ping时失败:

# 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

Docker的默认网桥网络允许您将容器NAT到物理网络中


要从VirtualBox实现您所知的“桥接网络”,请使用,或者,如果您是最前沿的,您可以尝试目前处于实验阶段的。Docker的默认桥接网络允许您将容器NAT到物理网络中


要从VirtualBox实现您所知的“桥接网络”,请使用,或者,如果您是最前沿的,您可以尝试目前处于实验阶段的方法。

一个(难看的)解决方案是使用
--net=host运行docker容器。这样,docker容器就没有网络接口,并且与任何物理机器都具有相同的网络访问权限,它应该可以工作。

一个(丑陋的)解决方案是使用
--net=host运行docker容器。这样,您的docker容器就没有网络接口,并且具有与任何物理机器相同的网络访问权限,它应该可以工作。

我尝试运行pipework,但没有工作。思科的客户似乎正在控制路由和dns查找等事情。docker的macvlan驱动程序也会出现类似的问题。据我所知,名称结果同样基于主机系统,Cisco的vpn客户端再次阻止了这种方式:
容器默认使用主机的DNS设置,因此无需配置DNS服务器。如果您绝对需要容器从DHCP服务器获取IP数据,则macvlan驱动程序目前不是您正在寻找的解决方案。使用管道。
我尝试运行管道,但不起作用。思科的客户似乎正在控制路由和dns查找等事情。docker的macvlan驱动程序也会出现类似的问题。据我所知,名称结果同样基于主机系统,Cisco的vpn客户端再次阻止了这种方式:
容器默认使用主机的DNS设置,因此无需配置DNS服务器。如果您绝对需要容器从DHCP服务器获取IP数据,则macvlan驱动程序目前不是您正在寻找的解决方案。使用管道。
基本上,这就是问题所在;网络访问与主机上的访问相同,所有内容都通过csctun0进行传输。如果无法更改集装箱中的路线:
root@container0:/#route del default
->
SIOCDELRT:不允许操作
好的,您的意思是,即使在您的计算机上,当VPN打开时,您也不能
ping-c 4 10.0.0.1
?如果是这样的话,它与docker根本没有关系。这可能是一个误解。可以从主机系统发送ping,但不能在docker来宾系统中发送ping。即使您
docker运行--net=host
?当您使用--net=host时,您没有docker接口,因此基本上它应该可以工作,这就是问题所在;网络访问与主机上的访问相同,所有内容都通过csctun0进行传输。如果无法更改集装箱中的路线:
root@container0:/#route del default
->
SIOCDELRT:不允许操作
好的,您的意思是,即使在您的计算机上,当VPN打开时,您也不能
ping-c 4 10.0.0.1
?如果是这样的话,它与docker根本没有关系。这可能是一个误解。可以从主机系统发送ping,但不能在docker来宾系统中发送ping。即使您
docker运行--net=host
?当您使用--net=host时,您没有docker接口,因此基本上它应该可以工作