如何進行macvlan網絡結構分析

如何進行macvlan網絡結構分析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

采用H5響應式網站+css3國際標準網站建設,讓網站自動適應用戶使用終端設備,PC、平板、手機等,一個網址適應,一套內容統(tǒng)一戰(zhàn)略,節(jié)約企業(yè)資源。創(chuàng)新互聯還提供網站后期營銷如:軟文平臺、賣鏈接、廣告投放等。一般建站公司不為企業(yè)填充資料,更談不上內容策劃,結果導致網站界面優(yōu)秀,內容卻十分空泛或整體不協(xié)調,內容策劃、內容填充請交給我們。

macvlan 網絡結構分析

macvlan 不依賴 Linux bridge,brctl show 可以確認沒有創(chuàng)建新的 bridge。

查看一下容器 bbox1 的網絡設備

除了 lo,容器只有一個 eth0,請注意 eth0 后面的 @if4,這表明該 interface 有一個對應的 interface,其全局的編號為 4。根據 macvlan 的原理,我們有理由猜測這個 interface 就是主機的 enp0s9,確認如下:

可見,容器的 eth0 就是 enp0s9 通過 macvlan 虛擬出來的 interface。容器的 interface 直接與主機的網卡連接,這種方案使得容器無需通過 NAT 和端口映射就能與外網直接通信(只要有網關),在網絡上與其他獨立主機沒有區(qū)別。當前網絡結構如圖所示:

用 sub-interface 實現多 macvlan 網絡

macvlan 會獨占主機的網卡,也就是說一個網卡只能創(chuàng)建一個 macvlan 網絡,否則會報錯:

但主機的網卡數量是有限的,如何支持更多的 macvlan 網絡呢?

好在 macvlan 不僅可以連接到 interface(如 enp0s9),也可以連接到 sub-interface(如 enp0s9.xxx)。

VLAN 是現代網絡常用的網絡虛擬化技術,它可以將物理的二層網絡劃分成多達 4094 個邏輯網絡,這些邏輯網絡在二層上是隔離的,每個邏輯網絡(即 VLAN)由 VLAN ID 區(qū)分,VLAN ID 的取值為 1-4094。

Linux 的網卡也能支持 VLAN(apt-get install vlan),同一個 interface 可以收發(fā)多個 VLAN 的數據包,不過前提是要創(chuàng)建 VLAN 的 sub-interface。

比如希望 enp0s9 同時支持 VLAN10 和 VLAN20,則需創(chuàng)建 sub-interface enp0s9.10 和 enp0s9.20。

在交換機上,如果某個 port 只能收發(fā)單個 VLAN 的數據,該 port 為 Access 模式,如果支持多 VLAN,則為 Trunk 模式,所以接下來實驗的前提是:

enp0s9 要接在交換機的 trunk 口上。不過我們用的是 VirtualBox 虛擬機,則不需要額外配置了。

如果大家想了解更多 Linux VLAN 實踐,可參看 CloudMan 《每天5分鐘玩轉 OpenStack》中的相關章節(jié)。

下面演示如何在 enp0s9.10 和 enp0s9.20 上創(chuàng)建 macvlan 網絡。

首先編輯 host1 和 host2 的 /etc/network/interfaces,配置 sub-

auto enp0s9

iface enp0s9 inet manual

auto enp0s9.10

iface enp0s9.10 inet manual

vlan-raw-device enp0s9

auto enp0s9.20

iface enp0s9.20 inet manual

vlan-raw-device enp0s9

然后啟用 sub-interface:

ifup enp0s9.10

ifup enp0s9.20


創(chuàng)建 macvlan 網絡:

docker network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=enp0s9.10 mac_net10

docker network create -d macvlan --subnet=172.16.20.0/24 --gateway=172.16.20.1 -o parent=enp0s9.20 mac_net20


在 host1 中運行容器:

docker run -itd --name bbox1 --ip=172.16.10.10 --network mac_net10 busybox

docker run -itd --name bbox2 --ip=172.16.20.10 --network mac_net20 busybox


在 host2 中運行容器:

docker run -itd --name bbox3 --ip=172.16.10.11 --network mac_net10 busybox

docker run -itd --name bbox4 --ip=172.16.20.11 --network mac_net20 busybox

關于如何進行macvlan網絡結構分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯行業(yè)資訊頻道了解更多相關知識。

名稱欄目:如何進行macvlan網絡結構分析
網頁鏈接:http://muchs.cn/article24/johice.html

成都網站建設公司_創(chuàng)新互聯,為您提供App開發(fā)、商城網站、自適應網站小程序開發(fā)、服務器托管品牌網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

營銷型網站建設