Docker網絡-MACVLAN

macvlan驅動程序是久經考驗的真正網絡虛擬化技術的新實現。 Linux實現非常輕巧,因爲它們沒有使用Linux橋接器進行隔離,而只是與Linux以太網接口或子接口相關聯,以實現網絡之間的分隔以及與物理網絡的連接。

 MACVLAN提供了許多獨特的功能。由於具有非常簡單和輕巧的體系結構,因此具有積極的性能含義。 MACVLAN驅動程序提供端口和容器之間的直接訪問,而不是端口映射。它還允許容器接收物理網絡子網上的可路由IP地址。

 macvlan驅動程序使用父接口的概念。該接口可以是物理接口(例如eth0),用於802.1q VLAN標記的子接口(例如eth0.10(代表VLAN 10的.10),甚至可以是將兩個以太網接口捆綁爲一個邏輯接口的綁定主機適配器。

 在MACVLAN網絡配置過程中,需要一個網關地址。網關必須位於網絡基礎結構提供的主機外部。 MACVLAN網絡允許在同一網絡上的容器之間進行訪問。如果沒有在主機外部進行路由,則無法在同一主機上的不同MACVLAN網絡之間進行訪問。

 

 在此示例中,我們將MACVLAN網絡綁定到主機上的eth0。 我們將兩個容器連接到mvnet MACVLAN網絡,並顯示它們可以在它們之間進行ping操作。 每個容器在192.168.0.0/24物理網絡子網上都有一個地址,並且它們的默認網關是物理網絡中的接口。

#Creation of MACVLAN network "mvnet" bound to eth0 on the host 
$ docker network create -d macvlan --subnet 192.168.0.0/24 --gateway 192.168.0.1 -o parent=eth0 mvnet


#Creation of containers on the "mvnet" network
$ docker run -itd --name c1 --net mvnet --ip 192.168.0.3 busybox sh
$ docker run -it --name c2 --net mvnet --ip 192.168.0.4 busybox sh
/ # ping 192.168.0.3
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.052 ms

使用MACVLAN的VLAN中繼

衆所周知,將802.1q中繼到Linux主機對於許多操作而言都是痛苦的。 它需要更改配置文件才能通過重新引導保持持久性。 如果涉及網橋,則需要將物理NIC移入網橋,然後網橋將獲得IP地址。 macvlan驅動程序通過創建,銷燬和主機重新啓動來完全管理MACVLAN網絡的子接口和其他組件。

 

 使用子接口實例化macvlan驅動程序時,它允許VLAN中繼到主機並在L2處分段容器。 macvlan驅動程序會自動創建子接口並將其連接到容器接口。 結果,每個容器將位於不同的VLAN中,除非在物理網絡中路由流量,否則它們之間將無法進行通信。

#Creation of  macvlan10 network that will be in VLAN 10
$ docker network create -d macvlan --subnet 192.168.10.0/24 --gateway 192.168.10.1 -o parent=eth0.10macvlan10


#Creation of  macvlan20 network that will be in VLAN 20
$ docker network create -d macvlan --subnet 192.168.20.0/24 --gateway 192.168.20.1 -o parent=eth0.20 macvlan20


#Creation of containers on separate MACVLAN networks
$ docker run -itd --name c1--net macvlan10 --ip 192.168.10.2 busybox sh
$ docker run -it --name c2--net macvlan20 --ip 192.168.20.2 busybox s

在前面的配置中,我們使用macvlan驅動程序創建了兩個單獨的網絡,這些網絡被配置爲使用子接口作爲其父接口。 macvlan驅動程序創建子接口,並將它們連接在主機的eth0和容器接口之間。 必須將主機接口和上游交換機設置爲switchport模式中繼,以便標記VLAN穿越接口。 可以將一個或多個容器連接到給定的MACVLAN網絡,以創建通過L2分段的複雜網絡策略。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章