VMWare Workstation 配置docker多macvlan网络方法
VMWare Workstation 配置docker多macvlan网络方法
答案就是.....换VirtualBox
噗...
VMWare Workstation host-only网络,三台虚机gw, host1, host2
根据https://www.cnblogs.com/CloudMan6/p/7383919.html说明,在三台虚机上建立两个macvlan网络,vlan id为10和20
现在是
同host、同vlan下的容器可以互通ping,这好理解,都走enp0s8.10接口(vlan id 10)
但是不同host,同vlan下的容器,ping不通,应该是c1--->(host1)enp0s8.10---->802.1Q封装VLAN TAG---->(host1)enp0s8--->VMWare虚拟交换机--->(host2)enp0s8--->解VLAN TAG--->(host2)enp0s8.1--->c3
不同host,不同vlan下的容器,按说明配置了第三台host的两块虚拟vlan网卡作为网关,配了iptables规则,也是ping不通。
一顿测试发现,c1 ping c3时,(host1)enp0s 可以抓到带VLAN TAG的ICMP包,宿主机Windows在host-only网络的网卡抓包,能抓到不带VLAN TAG的ICMP包(开了混杂模式),但是host2、同一host-only网络的其他host都抓不到该ICMP包。
c1 ping c3因为属于同一vlan,不走网关,c1 ping c4,不同vlan需要过网关才行,发现网关也ping不同,抓包发现网关所在所在虚机gw,也是抓不到该icmp包。
所以我怀疑是VMWare Workstation host-only虚拟交换机对带有VLAN TAG的数据包支持不好?或者不支持?表现为向虚拟交换机的某个port发送带有VLAN TAG的数据包,虚拟交换机并没有转发这个包,其他host也就收不到这个包了。
谷歌半天没找到所以然,,,,
完了我看教程用的virtualbox,就换一下试试,果然行。。。。