Docker Macvlan Network
- Macvlan Network:屬於Docker的網絡驅動。
- Macvlan Network:Docker主機網卡接口邏輯上分為多個子接口,每個子接口標識一個VLAN。容器接口直接連接Docker主機網卡接口,通過路由策略轉發到另一台Docker主機。
- Macvlan Network :macvlan最大的優勢,它支持能去連接子接口,linux 網卡子接口最大 4094個。
工作原理解析
1、兩邊節點分別創建macvlan網絡,並創建子網段。
2、docker0網卡會通過NET去訪問外網。
3、容器內的eth0是由macvlan所在物理接口ens33創建的一個邏輯網口。
4、當節點1向節點2發送數據包時,容器內的子網網卡會向它的網關發送一個mac地址請求。
5、虛擬網關接受請求后會先查詢本地的路由表查找發送目標,如果找不到它會轉交給eth1來發ARP送廣播,來獲取目標IP地址是多少。
6、節點2收到ARP廣播后它會查找本地是否存在目標IP地址,通過IP來獲取自定IP的mac地址。
7、獲取mac地址后它會轉發給eth0真機網卡,然后通過宿主級網卡發送給節點1的外網網卡,然后再轉給容器內網卡。