Open vSwitch 工作原理

2021-09-08 17:33:00 字數 1426 閱讀 8350

open vswitch中許多網路上的概念與平時接觸到的不同,這裡介紹一下open vswitch中用到的一些名詞及概念。

packet (資料報)

網路**的最小資料單元,每個包都來自某個埠,最終會被發往乙個或多個目標埠,**資料報的過程就是網路的唯一功能。

bridge (網橋)

open vswitch中的網橋對應物理交換機,其功能是根據一定流規則,把從埠收到的資料報**到另乙個或多個埠。

port (埠)

埠是收發資料報的單元。open vswitch中,每個埠都屬於乙個特定的網橋。埠收到的資料報會經過流規則的處理,發往其他埠;也會把其他埠來的資料報傳送出去。open vswitch支援的埠有以下幾種:

inte***ce (iface/介面)

介面是open vswitch與外部交換資料報的元件。乙個介面就是作業系統的一塊網絡卡,這塊網絡卡可能是open vswitch生成的虛擬網絡卡,也可能是物理網絡卡掛載在open vswitch上,也可能是作業系統的虛擬網絡卡(tun/tap)掛載在open vswitch上。

flow (流)

流定義了埠之間資料報的交換規則。每條流分為匹配和動作兩部分,匹配部分選擇哪些資料報需要可以通過這條流處理,動作決定這些匹配到的資料報如何**。流描述了乙個網橋上,埠到埠的**規則。比如我可以定義這樣一條流:

當資料報來自埠a,則發往埠b

來自埠a就是匹配部分,發往埠b就是動作部分。

流的定義可能非常複雜,比如:

當資料報來自埠a,並且其源mac是aa:aa:aa:aa:aa:aa,並且其擁有vlan tag為a,並且其源ip是a.a.a.a,並且其協議是tcp,其tcp源埠號為a,則修改其源ip為b.b.b.b,發往埠b

datapath

由於流可能非常複雜,對每個進來的資料報都去嘗試匹配所有流,效率會非常低,所以有了datapath這個東西。datapath是流的乙個快取,會把流的執行結果儲存起來,當下次遇到匹配到同一條流的資料報,直接通過datapath處理。考慮到**效率,datapath完全是在核心態實現的,並且預設的超時時間非常短,大概只有3秒左右。

當open vswitch的乙個介面收到資料報後,會由下圖所描述的流程處理:

收到資料報後,會交給datapath核心模組處理,當匹配到對應的datapath會直接輸出,如果沒有匹配到,會交給使用者態的ovs-vswitchd查詢flow,使用者態處理後,會把處理完的資料報輸出到正確的埠,並且設定新的datapath規則,後續資料報可以通過新的datapath規則實現快速**。

拋開流的管理,open vswitch的工作原理非常簡單,下次會介紹使用open vswitch提供的管理工具,搭建乙個網路,並且除錯其中的流與datapath。

Open vSwitch的相關原理與配置

在前面我們介紹了傳統裝置與sdn裝置的設計區別,這裡首先總結這兩種裝置的工作方式 所有裝置執行相同的協議,通過協議資訊交流生成 表。這裡就具體的裝置來說 1 hub 集線器 基於物理埠進行 所採用的策略就是洪氾 flood 2 l2 switch 二層交換機 基於mac位址進行 能夠將mac位址與埠...

openwrt編譯 openvswitch功能新增

這篇文章主要介紹openwrt的編譯燒錄工作,主要是想在openwrt上新增openvswitch的功能 使用的openwrt版本是attitude adjustment 12.09 廢話不多說,直接開始安裝流程。1 環境準備 對於trunk版本的openwrt,官方給定軟體套件裡已經包含了open...

玩轉OpenVswitch 簡介

一 ovs簡介 openvswitch是乙個優秀的開源軟體交換機,支援主流的交換機功能,比如二層交換 網路隔離 qos 流量監控等,而其最大的特點就是支援openflow,openflow定義了靈活的資料報處理規範。為使用者提供l1 l4包處理能力。ovs支援多種linux虛擬化技術,包括xen k...