570 likes | 891 Views
網路虛擬化. Network Virtualization. 教材. 湯秉翰 著( 2013 ), 雲端網頁程式設計- Google App Engine 應用實作 ( 第二版 ) , 博碩文化, ISBN 978-986-201-824-8 (書號 PG31356 ) 鍾葉青、鍾武君 著( 2013 ), 雲端計算, 東華書局, ISBN 9789861579030 (書號 CL009 )
E N D
網路虛擬化 Network Virtualization
教材 湯秉翰 著(2013), 雲端網頁程式設計-Google App Engine應用實作(第二版), 博碩文化, ISBN 978-986-201-824-8 (書號 PG31356) 鍾葉青、鍾武君 著(2013), 雲端計算, 東華書局, ISBN 9789861579030 (書號 CL009) 許清榮、林奇暻、買大誠 著(2012), 掌握Hadoop翱翔雲端-Windoop應用實作指南, 博碩文化, ISBN 978-986-201-673-2 (書號 PG21241) 鍾葉青、李冠憬、許慶賢、賴冠州 著(2011), 雲端程式設計: 入門與應用實務, 東華書局, ISBN 9789861578125 (書號 CL008)
大綱 網路虛擬化簡介 外部網路虛擬化 內部網路虛擬化 Open vSwitch
電腦網路 • 什麼是電腦網路? • 電腦裝置透過網路設備建立互相連結的通道 • 能讓使用者之間的進行通訊並且共享資源
網路基礎設計 • 階層式網路架構 • 不同層級各司其職 • 優化可拓展性 • 改善可管理性 • 增進網路可用性
網路基礎設計 網路核心層 交換器分送層 存取層
網路協定 • 主導電腦間傳輸的規則與流程 • 用於識別設備、傳輸安全性、錯誤檢查及重新傳送的通訊標準 • 所有電腦裝置必須採用一致的方法進行溝通 • 如何編碼/解碼 • 如何封裝/解封裝 • 如何辨認錯誤 • 如何處理錯誤發生或通訊失敗
網路模型 ISO/OSI 模型 Internet TCP/IP 模型 應用層 應用層 表現層 會議層 傳輸層 傳輸層 網路層 網際網路層 資料鏈結層 網路介面層 實體層 實體層
網路拓撲 星狀拓樸 環狀拓樸 匯流排拓樸
網路類型 • 區域網路 LAN • 一群有距離限制的電腦和設備所組成的網路 • 每個裝置的網路卡明確規定了傳輸速率、訊息結構以及網路拓樸 • 網路作業系統轉送、管理通訊並協調網路資源 • 廣域網路 WAN • 電腦與設備跨越了遼闊的距離所形成的網路 • 透過交換器或者專線的方式傳送 • 大幅提高網路通訊的商業價值
封包交換 Packet Switching 訊息/資料被切成固定長度或不同長度的封包 每一個封包都被編號,並且沿著不同路徑傳送到目的地 封包在目的地被重組 即使部分網路路徑被破壞了,也能持續地收送訊息
網路架構 連結兩個網路 透過閘道器(Gateway)在兩個不同網段間進行轉發
網路架構 連結多個網路 多個網段與閘道器形成較複雜的網路
網路架構 子網路 子網路 連結多個網路 路由器 路由器 路由器 路由器 子網路 子網路 透過能將封包轉送的路由器(Router)所形成的網路
網路架構 閘道器 閘道器 連結多個網路 路由器 路由器 路由器 路由器 閘道器 閘道器 路由器與閘道器互相組合而成的網路
網路架構 子網路 ISP 網際網路 連結多個網路 子網路 ISP 簡單的網際網路示意圖
網路虛擬化Network Virtualization • 什麼是網路虛擬化? • 以軟體方式來有效地結合與管理軟/硬體網路資源及網路功能 • 實體網路資源的子集合,也稱為虛擬網路(VN) • SP(Service Provider) 透過 InP(Infrastructure Provider) 提供的介面,將一個或多個InPs所提供的網路資源組合成虛擬網路 (VNs) • SPs 所建立的虛擬網路也可以將一部分提供給其他 SPs 的虛擬網路使用
網路虛擬化Network Virtualization SP: Service Provider 服務提供者 InP: Infrastructure Provider 基礎設施提供者 VN:Virtual Network 虛擬網路 SP2 VN2 遞迴 SP1 VN1 InP1 InP2
網路虛擬化Network Virtualization • 特性 • 可延展性 Scalability • 易於擴展需要的資源 • 可動態創建或刪除虛擬網路連線 • 恢復性 Resilience • 從故障中復原 • 發生問題的時候,透過備用的連線重新傳送封包 • 安全性 Security • 增加路徑及使用者間的獨立性 • 搭配防火牆一起運作 • 可用性 Availability • 任何時間皆可使用網路資源
兩種類型 • 外部網路虛擬化 • External Network Virtualization • 將多個物理網路整合成一個虛擬單元(邏輯網路) • 或者將一個物理網路切分為多個虛擬單元 • 內部網路虛擬化 • Internal Network Virtualization • 在單一系統上,提供類似網路的功能給所需的軟體容器(虛擬機器)
不同層級的外部網路虛擬化 • 第一層 • 很少虛擬化實作在此實體層 • 第二層 • 使用標籤(Tag)加入MAC位址的封包以達到虛擬化 • 例如:VLAN • 第三層 • 使用隧道(Tunnel)技術形成虛擬的網路 • 例如:VPN • 第四層以上 • 建置疊蓋式網路(Overlay Network)供應用程式使用 • 例如:Peer-to-Peer (P2P)
不同層級的內部網路虛擬化 • 第一層 • 超級監督者(Hypervisor)通常不對實體層做網路虛擬化 • 第二層 • 在超級監督者裡實作第二層的虛擬網路裝置 • 例如:虛擬交換器 • 第三層 • 在超級監督者裡實作第三層的虛擬網路裝置 • 例如:路由器 • 第四層以上 • 通常實作在賓客作業系統(Guest OS)中 • 應用程式可以有自己的選擇
外部網路虛擬化 • 實作對象 • 網路裝置 Device • 針對實體的裝置進行虛擬化 • 資料路徑 Data Path • 著重路由的路徑進行虛擬化 • 通訊協定 Protocol • 透過傳輸的協定進行虛擬化
Data Path Router Switch
網路裝置虛擬化Device Virtualization • 層級二方法 • 將實體的交換器切分成多個邏輯網段
網路裝置虛擬化Device Virtualization • 層級三方法 • 層級三方法 • 虛擬路由及轉發技術 (Virtual Routing and Forwarding , VRF) • 允許同時有多個路由實例存在一張路由表上,並且共存於相同的路由器中
資料路徑虛擬化Data Path Virtualization • Hopto hop • 針對單一hop資料路徑的虛擬化
資料路徑虛擬化Data Path Virtualization • Hopto cloud • 讓虛擬化隧道能支援多重hop的資料路徑 • 通常搭配通訊協定達到網路虛擬化的目的
通訊協定虛擬化 • 802.1Q • 實作hop to hop資料路徑虛擬化 • GRE(Generic Routing Encapsulation) • 用隧道技術封裝各種網路協定的虛擬化 • MPLS(Multiprotocol Label Switch) • 利用標籤交換(Tag Switching)達到網路虛擬化
802.1Q • IEEE 802.1標準 • 不封裝原本乙太網路的訊框 • 在來源MAC位址與EtherTypes或長度欄位間加入一個32位元區段 • ETYPE(2B): Protocol identifier • Dot1Q Tag(2B): VLAN number, Priority code
CE: Customer Edge router PE: Provider Edge router
GRE 建置隧道 • GRE是由CISCO發展的隧道協定 • 可封裝各種網路層協定 • 無狀態的性質 • 端點不需要儲存狀態資訊
MPLS 利用標籤交換提高網路傳輸速度的技術 整合IP 與ATM網路技術的優點 可以指定封包轉送的先後順序
內部網路虛擬化 • 內部網路虛擬化 • 透過超級監督者創建一個在黑盒子中運作的網路 • 改善單一系統的整體效率 • 虛擬機在邏輯上是彼此互相連接,可以傳遞資料 • 如何連結實體網路? • 透過具有交換器功能的內部橋接器或虛擬交換器
內部橋接器 KVM系統 • KVM本身專注於CPU及記憶體的虛擬化,IO虛擬化是由QEMU計畫完成的 • 在QEMU中,虛擬機器的網路介面是藉由虛擬網路轉接器以及Linux橋接器的搭配,使其能連結到實體機器 • 運作方式: • TUN/TAP驅動程式實作虛擬網路轉接器,而虛擬機器藉此網路轉接器連結到實體機器 • 虛擬網路轉接器會連結到Linux橋接器 • 扮演虛擬交換器的角色
TUN/TAP驅動程式 • TUN(network TUnnel)和TAP(network TAP)都是虛擬化網路核心的驅動程式 • TAP模擬一個乙太網路設備,可以操作第二層封包,如乙太網路訊框 • TUN模擬一個網路層的裝置,可以操作第三層的封包,如IP封包 • 字元裝置驅動程式 • 使封包可以在核心空間以及使用者空間傳遞 • 網路驅動程式 • 處理來自TCP/IP 的封包
運作流程圖 資料處理(OpenVPN) 實體網路卡驅動進程 TUN/TAP驅動進程 Socket網路通訊 使用者空間 核心空間 字元裝置 傳輸控制協定/網際網路協定 乙太網路封包 虛擬網路卡 實體網路卡 實體網路連結
Linux橋接器 Linux橋接器是一種轉送的技術,用於封包交換的計算機網路 不像路由,橋接的方法沒辦法讓我們知道網路中某個特定位址的地點在哪 橋接器的方法是透過檢查所收到封包標中的來源位址以及流量去確定未知裝置的地點 橋接器扮演了連接OSI第二層不同邏輯分段的角色
TAP/TUN 驅動程式 + Linux 橋接器 虛擬機器 虛擬機器 10.0.0.1 10.0.0.2 使用者空間 TAP 驅動 TAP 驅動 核心空間 傳輸控制協定/ 網際網路協定 10.0.0.254 傳輸控制協定/ 網際網路協定 橋接器 虛擬網路卡 虛擬網路卡 實體網路卡 實體網路連結
虛擬交換器Virtual Switch • 運作模式與實體乙太網路交換器十分相像 • 透過軟體模擬網路交換器的功能 • 偵測有哪些虛擬機連接到它的虛擬埠,將網路封包傳遞到正確的虛擬機器上面 • 可切割成不同的虛擬區域網路 • 可動態地配置虛擬環境中的網路架構
虛擬交換器 -Xen系統 • 客戶端作業系統會載入修改後的網路介面驅動程式 • 因為Xen採用半虛擬化技術 • 修改後的網路介面驅動程式和Dom0的虛擬交換器溝通 • 如同TAP在傳統網路的作法 • Xen的虛擬交換器,可以用Linux 橋接器或用其他最佳化方法一起運作來實作
Xen系統的網路架構圖 賓客區域1 驅動域 後端驅動程式 封包資料 賓客區域2 前端驅動 乙太網路橋接器 賓客區域 …… 超級監督者 分頁瀏覽 虛擬中斷 網路卡驅動 驅動控制 超級監督者 中斷分派 控制+資料 封包資料 硬體中斷 網路卡 中央處理器/記憶體/硬碟/其他裝置
效能議題 • 分頁重新映射 • 超級監督者重新映射記憶體分頁給記憶體映射IO • 內文切換 • 每當傳送封包時,引發一次從客戶端到Domain 0的內文切換 • 軟體橋接器管理 • Linux 橋接器是純軟體的實作 • 中斷處理 • 當中斷發生時,再次引發內文切換 區域0(宿主作業系統) 區域U (賓客作業系統) 橋接器 (虛擬交換器) 虛擬網路卡 虛擬網路卡 驅動程式 超級監督者 實體網路卡
軟體改善方式 大又有效的最大傳輸單位(MTU) 較少的封包 每單位位元的額外成本較少
軟體改善方式 區域0(宿主作業系統) 區域U (賓客作業系統) 區域0(宿主作業系統) 區域U (賓客作業系統) 橋接器 (虛擬交換器) 橋接器 (虛擬交換器) 虛擬網路卡 虛擬網路卡 虛擬網路卡 虛擬網路卡 驅動程式 驅動程式 超級監督者 超級監督者 實體網路卡 實體網路卡
硬體改善方式 • 藉由硬體改善Xen的效能 • 使用CDNA (Concurrent Direct Network Access) 硬體轉接器 • 將資料和中斷,與驅動程式隔開 • 超級監督者負責虛擬的中斷及分配內文給客戶端作業系統