本文将教大家使用MacVLAN来实现Docker跨宿主机互联的具体步骤。Docker以前的版本不支持直接配置宿主机所在网段ip并跟其直接互通的功能,当然也可以借助一些第三方工具,如pipework把这些琐碎的过程封装起来。Docker从1.12开始支持了overlay和macvlan网络,macvlan已经可以直接支持了使用宿主机所在网段资源。
Macvlan工作原理
1.Macvlan是Linux内核支持的网络接口。要求的Linux内核版本是v3.9–3.19和4.0+。
2.通过为物理网卡创建Macvlan子接口,允许一块物理网卡拥有多个独立的MAC地址和IP地址。虚拟出来的子接口将直接暴露在底层物理网络中。从外界看来,就像是把网线分成多股,分别接到了不同的主机上一样。
3.Macvlan有四种工作模式:Private、VEPA、Bridge和Passthru。最常用和默认的模式是Bridge模式。
4.物理网卡收到包后,会根据收到包的目的MAC地址判断这个包需要交给哪个虚拟网卡。
5.如果配合Network Namespace 使用,可以构建这样的网络:
MacVLAN可以工作在四种模式下: