Overview

MACVLAN (Media Access Control Virtual Loacl Area Network) 允許你在主機的一個網卡(Network Interface Card, NIC)上配置多個虛擬的網卡,這些網卡有自己獨立的 MAC 地址,也可以配置 IP 地址進行通訊,並將這些地址分配給 Container 使用,使 Container 在網路上顯示為實體地址 (Physical Address ) 而不是虛擬地址 (Virtual Address),希望能讓某些只能連到物理設備的應用程序能夠正常運作。

Docker daemon 通過 Container 的 MAC 地址連線到 Container。在 Maclvan 下的虛擬機器 (Virtual Machine, VM) 或 Container 的網路與 Host 都在同一個網段中,共享同一個廣播域 (Broadcast Domain)。

以下為設定 Macvlan 後的網路架構:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/20618d88-e73d-4e5a-ba51-650a7b159482/Untitled.png

Bridge Mode v.s. Macvlan Mode

Bridge

Bridge 有以下特點:

下方是一個在 Linux Host 上,多個 VM 使用 Bridge 相互通訊的狀況:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fc7729f0-cde6-423b-8fca-1056085ce155/Untitled.png

Macvlan

Macvlan 有以下特點: