我们有一个托管在 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. 伪造传输