VMwareでホストされているDockerホスト(仮想マシン)があります。 Dockerホストには2つのネットワークインターフェイスがあります。 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
2つのコンテナは互いに通信できますが、外部世界とは通信できません。
答え1
ああ、わかりました... VMware仮想スイッチポートグループでは、3つすべてを有効にする必要があります。 1. 無差別モード 2. MAC アドレスの変更 3. 偽造送信