因为我就是个爱好者,也没啥文化,都是自己试出来的,如果有愿意当我老师的,加我吧!由于linux知识和网络知识的匮乏,我并不能理解macvlan到底是个什么,我按照我的理解来说就是在实体网络接口上建立了一个虚拟接口,但是又是直接穿透到实体网络接口的,好处就是实体网络接口所在的网络环境认为macvlan是一个实际存在的网络设备,如果实体网络环境中有DHCP服务器就会给macvlan分配一个IP地址。
最早研究这个是因为网心邀请测试魔方,在魔方的指令中只看到了host模式,因为……不可以让人顺着IP和mac地址找到我的设备,那么必须要有一种可以让对方找不到的方式运行。网心技术明确告诉我不可以运行在IPVLAN模式,到底行不行,我还没试,晚点儿试试。所以我就试着找方法,之前的环境是黑群(其它相关内容翻我之前的帖子)。最后试出了MACVLAN是可以跑的。
sudo docker network create -d macvlan --subnet=172.16.4.0/24 --gateway=172.16.4.254 -o parent=enp8s0 host4
--subnet=(实体网络的网段)到底是/24 还是/23需要根据自身网络环境写,否则可以创建,容器也能运行,就是没用。
--gateway=(实体网络的网关,如果网关是在.1可以不用这个参数。这里我绕了弯,之前看到的资料没有这个,在网关还是.1的环境中,成功跑了,前面写过一个没有这个参数的帖子。后面我所在的网络环境变了,一直试可以跑,但是就是无法进入18888界面,去看容器都是正常的,结果就是没有18888界面无法绑定。我也不懂为啥我所在的神奇网络环境网关是.254 指定后就一切正常了。为了安全还是写上吧)
parent=实体网络接口,如何查看用ifconfig -a 去看
host4 给你的macvlan起个名字而已。
|
|