Docker容器无法在外部网络上通信

Docker容器无法在外部网络上通信

我们有一个托管在 VMware 上的 Docker 主机(虚拟机)。该 docker 主机有两个网络接口。 ens160 和 ens192

  • ens192配置了普通IP地址
  • ens160 配置为没有 IP 地址且混杂模式开启
  • vmware 中的端口组中的混杂模式也处于开启状态
  • IP 转发已启用:net.ipv4.ip_forward=1
  • Dockerhost 上的防火墙已关闭

接口

[root@dockerone ~]# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0   1500      393      0      0 0          1405      0      0      0 BMRU
ens160    1500 16034090      0     89 0          1255      0      0      0 BMPRU
ens192    1500    96324      0      1 0          6352      0      0      0 BMRU
ens160.2  1500    97658      0      0 0           362      0      0      0 BMPRU

网络创建

docker network  create  -d macvlan --subnet=10.200.131.0/24 --gateway=10.200.131.1 -o parent=ens160.231 macvlan231

容器创建

docker run --name alp1 --net=macvlan231 --ip=10.200.131.191 -itd alpine /bin/sh
docker exec -it alp1 sh

docker run --name alp2  --net=macvlan231 --ip=10.200.131.190 -itd alpine /bin/sh
docker exec -it alp2 sh

两个容器可以相互通信,但不能与外界通信。

答案1

啊,明白了...在 VMware 虚拟交换机端口组上,需要启用所有三个:1. 混杂模式 2. MAC 地址更改 3. 伪造传输

相关内容