成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么?網(wǎng)卡也能虛擬化?

云計算 虛擬化
今天要講的 macvlan 也是其中的一種,準確說這是一種網(wǎng)卡虛擬化的解決方案。因為 macvlan 這種技術能將 一塊物理網(wǎng)卡虛擬成多塊虛擬網(wǎng)卡 ,相當于物理網(wǎng)卡施展了 多重影分身之術 ,由一個變多個。

 01 macvlan 簡介

前面的文章講過了幾種 Linux 虛擬網(wǎng)絡設備:tap/tun、veth-pair、bridge,它們本質上是 Linux 系統(tǒng) 提供的網(wǎng)絡虛擬化解決方案,今天要講的 macvlan 也是其中的一種,準確說這是一種網(wǎng)卡虛擬化的解決方案。因為 macvlan 這種技術能將 一塊物理網(wǎng)卡虛擬成多塊虛擬網(wǎng)卡 ,相當于物理網(wǎng)卡施展了 多重影分身之術 ,由一個變多個。

[[262804]]

 

02 macvlan 的工作原理

macvlan 是 Linux kernel 支持的新特性,支持的版本有 v3.9-3.19 和 4.0+,比較穩(wěn)定的版本推薦 4.0+。它一般是以內核模塊的形式存在,我們可以通過以下方法判斷當前系統(tǒng)是否支持:

  1. # modprobe macvlan 
  2. # lsmod | grep macvlan 
  3. macvlan                 24576 

如果***個命令報錯,或者第二個命令沒有返回,說明當前系統(tǒng)不支持 macvlan,需要升級內核。

macvlan 這種技術聽起來有點像 VLAN,但它們的實現(xiàn)機制是完全不一樣的。macvlan 子接口和原來的主接口是完全獨立的,可以單獨配置 MAC 地址和 IP 地址,而 VLAN 子接口和主接口共用相同的 MAC 地址。VLAN 用來劃分廣播域,而 macvlan 共享同一個廣播域。

通過不同的子接口,macvlan 也能做到流量的隔離。macvlan 會根據(jù)收到包的目的 MAC 地址判斷這個包需要交給哪個虛擬網(wǎng)卡,虛擬網(wǎng)卡再把包交給上層的協(xié)議棧處理。

 

03 四種模式

根據(jù) macvlan 子接口之間的通信模式,macvlan 有四種網(wǎng)絡模式:

  • private 模式
  • vepa(virtual ethernet port aggregator) 模式
  • bridge 模式
  • passthru 模式

默認使用的是 vepa 模式。

3.1 private

這種模式下,同一主接口下的子接口之間彼此隔離,不能通信。即使從外部的物理交換機導流,也會被無情地丟掉。

 

3.2 vepa

這種模式下,子接口之間的通信流量需要導到外部支持 802.1Qbg/VPEA 功能的交換機上(可以是物理的或者虛擬的),經(jīng)由外部交換機轉發(fā),再繞回來。

注: 802.1Qbg/VPEA 功能簡單說就是交換機要支持 發(fā)夾(hairpin) 功能,也就是數(shù)據(jù)包從一個接口上收上來之后還能再扔回去。

 

3.3 bridge

這種模式下,模擬的是 Linux bridge 的功能,但比 bridge 要好的一點是每個接口的 MAC 地址是已知的,不用學習。所以,這種模式下,子接口之間就是直接可以通信的。

 

3.4 passthru

這種模式,只允許單個子接口連接主接口,且必須設置成混雜模式,一般用于子接口橋接和創(chuàng)建 VLAN 子接口的場景。

 

3.5 mactap

和 macvlan 相似的技術還有一種是 mactap。和 macvlan 不同的是,mactap 收到包之后不是交給協(xié)議棧,而是交給一個 tapX 文件,然后通過這個文件,完成和用戶態(tài)的直接通信。

 

04 實踐

在 Linux 系統(tǒng)下,創(chuàng)建 macvlan 的命令形式如下:

  1. ip link add link DEVICE name NAME type { macvlan | macvtap } mode { private | vepa | bridge | 
  2.  
  3. passthru [ nopromisc ] } 

通常,單獨使用 macvlan 毫無意義,一般都是結合 VM 和容器來構建網(wǎng)絡。下面我們就簡單使用 namespace 來看看 Linux 是怎么使用 macvlan 的。

實驗拓撲如下:

 

在我的系統(tǒng)中,以接口 enp0s8 為例創(chuàng)建兩個 macvlan 子接口(使用 bridge 模式),配置 IP 并將其掛到兩個 namespace 中,測試連通性。

  1. # 創(chuàng)建兩個 macvlan 子接口  
  2. ip link add link enp0s8 dev mac1 type macvlan mode bridge 
  3. ip link add link enp0s8 dev mac2 type macvlan mode bridge 
  4.  
  5. # 創(chuàng)建兩個 namespace  
  6. ip netns add ns1 
  7. ip netns add ns2 
  8.  
  9. # 將兩個子接口分別掛到兩個 namespace 中 
  10. ip link set mac1 netns ns1 
  11. ip link set mac2 netns ns2 
  12.  
  13. # 配置 IP 并啟用 
  14. ip netns exec ns1 ip a a 192.168.56.122/24 dev mac1 
  15. ip netns exec ns1 ip l s mac1 up 
  16. ip netns exec ns1 ip a a 192.168.56.123/24 dev mac2 
  17. ip netns exec ns2 ip l s mac2 up 

注: enp0s8 的 IP 是 192.168.56.110/24,配置的子接口 IP 也必須是同一網(wǎng)段的。

完了兩個子接口 ping 一下:

  1. root@ubuntu:~# ip netns exec ns1 ip a show mac1 
  2. 9: mac1@if3: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1 
  3. link/ether 2e:6e:d9:08:c5:05 brd ff:ff:ff:ff:ff:ff link-netnsid 0 
  4. inet 192.168.56.122/24 scope global mac1 
  5. valid_lft forever preferred_lft forever 
  6. inet6 fe80::2c6e:d9ff:fe08:c505/64 scope link 
  7. valid_lft forever preferred_lft forever 
  8. root@ubuntu:~# ip netns exec ns1 ping 192.168.56.123 
  9. PING 192.168.56.123 (192.168.56.123) 56(84) bytes of data. 
  10. 64 bytes from 192.168.56.123: icmp_seq=1 ttl=64 time=0.052 ms 
  11. 64 bytes from 192.168.56.123: icmp_seq=2 ttl=64 time=0.028 ms 
  12. ^C 
  13. --- 192.168.56.123 ping statistics --- 
  14. 2 packets transmitted, 2 received, 0% packet loss, time 1000ms 
  15. rtt min/avg/max/mdev = 0.028/0.040/0.052/0.012 ms 

可以看到,能夠 ping 通,如果把上面的 mode 換成其他模式就行不通了,這個就留給大家去實驗了(默認是 vepa 模式)。

另外,在 docker 中,macvlan 是一種較為重要的跨主機網(wǎng)絡模型,這塊的內容就留作下篇文章再做講解了。

05 總結

macvlan 是一種網(wǎng)卡虛擬化技術,能夠將一張網(wǎng)卡虛擬出多張網(wǎng)卡。

macvlan 的四種通信模式,常用模式是 bridge。

思考一下:

  • macvlan bridge 和 bridge 的異同點?
  • 還有一種類似的技術,多張?zhí)摂M網(wǎng)卡共享相同 MAC 地址,但有獨立的 IP 地址,這是什么技術?

本文轉載自微信公眾號「 Linux云計算網(wǎng)絡(ID:cloud_dev)」,公眾號主要專注在 Linux、云計算、網(wǎng)絡方面的技術分享,可以通過以下二維碼關注。轉載本文請聯(lián)系 Linux云計算網(wǎng)絡 公眾號。

責任編輯:武曉燕 來源: Linux云計算網(wǎng)絡
相關推薦

2011-09-14 09:42:17

虛擬化ROI

2010-01-13 17:56:56

交換機故障

2011-02-16 14:49:17

虛擬機

2013-07-22 14:10:46

2011-03-25 09:47:25

虛擬機VirtualBox

2023-09-08 08:42:01

數(shù)據(jù)場景項目

2021-02-04 20:32:46

虛擬化服務器硬件

2021-09-01 07:21:40

ArrayPool源碼Bucket

2015-04-22 09:13:24

網(wǎng)卡VLANVLAN配置

2009-09-16 10:30:16

創(chuàng)建高可用虛擬機

2015-07-02 10:09:23

存儲虛擬化軟件定義存儲云平臺

2009-01-18 09:19:00

DHCPVlANIP

2021-11-11 11:31:54

擺動序列數(shù)字

2015-09-25 16:18:36

2011-07-11 09:42:42

虛擬化

2012-08-06 15:43:54

虛擬化

2011-08-31 09:00:46

存儲虛擬化虛擬化

2022-02-21 14:32:20

數(shù)字化轉型AI算法

2019-04-02 14:55:12

Linux虛擬網(wǎng)卡

2011-07-13 10:32:09

開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜成人免费视频 | 国产一区91精品张津瑜 | 精品国产乱码久久久久久蜜柚 | 精品久久国产视频 | 亚洲一区自拍 | 国产精品不卡一区 | 日韩免费1区二区电影 | 精品福利视频一区二区三区 | 狠狠操av| 精品视频一区二区三区在线观看 | 欧美一级在线 | 福利视频网址 | 爱爱视频在线观看 | 亚洲精品久久久一区二区三区 | 亚洲aⅴ精品 | 欧美一区二区免费 | 99久久精品免费看国产免费软件 | 一区二区欧美在线 | 99热国产精品 | 日本视频中文字幕 | 日韩欧美高清 | 欧美亚州综合 | www.天天操.com| 日韩中文在线 | 精品一区二区三区免费视频 | 97视频人人澡人人爽 | 91一区| 一区二区三区视频在线 | 欧美日韩高清 | 日韩一级电影免费观看 | 999久久久 | 免费精品国产 | 久久91av | k8久久久一区二区三区 | 精品亚洲一区二区三区四区五区 | 成人欧美一区二区三区在线播放 | 亚洲区一 | 久久国产精品色av免费观看 | 91热在线| 可以免费观看的av片 | 国产乱人伦精品一区二区 |