Docker网络Macvlan驱动程序:网关不可达

时间:2019-07-05 10:02:40

标签: docker macvlan

我使用以下命令创建了一个macvlan网络:

docker network create -d macvlan --subnet=192.168.1.0/24  --gateway=192.168.1.2  -o parent=wlp2s0 pub_ne 

wlp2s0是笔记本电脑无线接口的名称。 网关是192.168.1.1,子网是192.168.1.0/24

然后我创建了一个容器并将其附加到该网络:

docker run --rm -itd  --network pub_ne  --name myAlpine alpine:latest  sh

此外,我还使用带有桥接网络接口的virtualbox provider创建了一个虚拟机。

如果我使用ping命令:  -docker容器-> vm ubuntu(vm的IP:192.168.1.200):ping有效

但是如果我使用ping命令:  -docker容器->网关192.168.1.1 要么  -docker容器->外部环境(google.com):ping不起作用

建议?

修改1:

在docker主机上,如果我运行tcpdump( tcpdump -i icmp ),我会看到:

    14:53:30.015822 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 29, length 64
14:53:31.016143 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 30, length 64
14:53:32.016426 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 31, length 64
14:53:33.016722 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 32, length 64

其中192.168.1.56是我的docker容器,而216.58.205.142应该是google ip地址。没有收到回音回复。

1 个答案:

答案 0 :(得分:1)

Macvlan不太可能与IEEE 802.11一起使用。

您的wifi接入点和/或主机网络堆栈不会令人兴奋。

您可能想尝试使用ipvlan:将-o ipvlan_mode=l2添加到网络创建调用中,看看是否有帮助。

这可能仍然无法正常工作...(例如,如果您依赖DHCP,而您的DHCP服务器使用macaddress而不是客户端ID)

您唯一(合理的)解决方案可能是完全断开wifi并改为连接设备...(或远离macvlan并使用host / bridge-以最方便的方式为准)