0

我有一个使用以下命令创建的 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 提供程序创建了一个具有桥接网络接口的虚拟机。

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

但如果我使用 ping 命令:- docker container -> gateway 192.168.1.1 或 - docker container -> external world (google.com): ping not works

建议?

编辑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 应该是谷歌 IP 地址。没有收到回显回复。

4

1 回答 1

2

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

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

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

那很可能仍然行不通...(例如,如果您依赖 DHCP 并且您的 DHCP 服务器使用 macaddresses 而不是客户端 ID)

而您唯一(合理)的解决方案可能是完全放弃wifi并连接设备......(或远离macvlan并使用主机/网桥 - 以最方便的为准)

于 2019-07-06T23:57:56.753 回答