Macvlan 有以下特点:
- 可让使用者在同一张实体网卡上设定多个 MAC 地址。
- 承上,带有上述设定的 MAC 地址的网卡称为子接口(
sub interface
);而实体网卡则称为父接口(parent interface
)。 parent interface
可以是一个物理接口(eth0),可以是一个 802.1q 的子接口(eth0.10),也可以是bonding
接口。- 可在 parent/sub interface 上设定的不只是 MAC 地址,IP 地址同样也可以被设定。
sub interface
无法直接与parent interface
通讯 (带有 sub interface 的 VM 或容器无法与 host 直接通讯)。- 承上,若 VM 或容器需要与 host 通讯,那就必须额外建立一个
sub interface
给 host 用。 - sub interface 通常以
mac0@eth0
的形式来命名以方便区別
简单来说 传统的虚拟网卡 docker使用的网卡
bond 是网卡聚合负载均衡
brctl 是桥接 创建网桥
host是直接使用主机的端口
那么有一些docker本身的部署过程种由于存在一定协议 涉及到协议的alg或者http设计到重定向等。此时无论是brctl还是host模式都不是很好用。当然你可以说是docker本身设计问题。
在这个情况下macvlan就有存在的意义了
macvlan说人话来说就是给你机器的mac生成多个虚拟mac 工作模式类似在网卡抓包根据mac地址进行分别给到不同的docker 使得docker存在不同的ip是真正的host模式。
开启macvlan则在后台docker network可以看到相关信息
如果你的docker重新安装过或者等等不可抗拒因素 在unraid的docker页面无法选择
那么说明docker没有开macvlan功能 。该功能要在docker启动时候指定。或者后面再输入命令开启
注意该选项要在docker启动前开启
最后看一下这3种类型的设备再docker总览下的表现
host则是和主机公用端口
br0则是新建macvlan可以理解成单独的设备
bridge则是传统的docker网口直接映射
Comments | NOTHING