macvtap介紹
傳統的linux網絡虛擬化技術采用的是tap+bridge方式,將虛擬機連接到虛擬的tap網卡,然后將tap網卡加入到bridge。bridge相當於用軟件實現的交換機,這種解決方案實際上就是用服務器的cpu通過軟件模擬網絡。
傳統的tap+bridge虛擬化網絡技術,這種技術有三個缺點:
1. 每台宿主機內都存在bridge會使網絡拓撲變復雜,相當於增加了交換機的級聯層數;
2. 同一宿主機上的虛擬機之間的流量直接在bridge完成交換,使流量監控、監管困難;
3. bridge是軟件實現的二層交換技術,會加大服務器的負擔。
針對雲計算中的復雜網絡問題,業界主要提出了兩種擴展技術標准:802.1Qbg 與 802.1Qbh。802.1Qbh Bridge Port Extension 主要由Vmware與 Cisco 提出,嘗試從接入層到匯聚層提供一個完整的虛擬化網絡解決方案,盡可能達到軟件定義一個可控網絡的目的。它擴展了傳統的網絡協議,因此需要新的網絡設備支持,成本較高。802.1Qbg Edge Virtual Bridging (EVB) 主要由 HP 等公司聯合提出,嘗試以較低成本利用現有設備改進軟件模擬的網絡。
802.1Qbg 的一個核心概念是 VEPA(Virtual Ethernet Port Aggregator ),簡單來說它通過端口匯聚和數據分類轉發,把宿主機上原來由 CPU 和軟件來做的網絡處理工作轉移到接入層交換機上,減少宿主機CPU 負載,同時使得在一級的交換機上做虛擬機網絡流量監控成為可能,從而更清晰地分割服務器與網絡設備的工作范圍,方便系統的管理。
為支持新的虛擬化網絡技術,Linux 引入了新的網絡設備模型:MACVTAP。MACVTAP 的實現基於傳統的 MACVLAN。和 TAP 設備一樣,每一個 MACVTAP 設備擁有一個對應的 Linux 字符設備,並擁有和 TAP 設備一樣的 IOCTL 接口,因此能直接被 KVM/Qemu使用,方便地完成網絡數據交換工作。引入 MACVTAP 設備的目標是:簡化虛擬化環境中的交換網絡,代替傳統的 Linux TAP 設備加 Bridge 設備組合,同時支持新的虛擬化網絡技術,如 802.1 Qbg。
macvtap設備有三種不同的工作模式:Virtual Ethernet Port Aggregator(VEPA)、Bridge、Private。
-
VEPA
在這種模式下,同一物理網卡下的macvtap設備之間的流量也要發送到外部交換機,再由外部交換機轉發回到服務器,前提是交換機必須支持hairpin模式; -
Bridge
這種模式類似傳統Linux Bridge,同一物理網卡下的macvtap設備可以直接進行以太網幀的交換,不需要外部交換機的介入; -
Private
在Private模式下,同一物理網卡下的macvtap設備互相無法連通,無論外部交換機支不支持hairpin模式。
原文地址:http://chuansong.me/n/2186997
================= End