Open vSwitch流表管理

任務目的

1、瞭解Open vSwitch流表的基本概念。
2、掌握流表的基本命令,學會添加、刪除、查看流表,爲後續實驗做準備。

任務環境

 

設備名稱 軟件環境 硬件環境
交換機 Ubuntu 14.04命令行版
Open vSwitch 2.3.1
CPU:1核 內存:2G 磁盤:20G


注:系統默認的賬戶爲root/root@openlab,openlab/user@openlab。

任務內容

1、學習Open vSwitch流表的基本概念。
2、學習常用的流表命令,進行流表的添加、刪除、查看等操作。

實驗原理

OpenFlow是用於管理交換機流表的協議,ovs-ofctl是Open vSwitch提供的命令行工具。在沒有配置OpenFlow控制器的模式下,用戶可以使用ovs-ofctl命令通過OpenFlow協議連接Open vSwitch來創建、修改或刪除Open vSwitch中的流表項,並對Open vSwitch的運行狀況進行動態監控。ovs-ofctl關於流表管理的常用命令如下表所示。

對於add-flow、add-flows和mod-flows這3個命令,還需要指定要執行的動作actions=[target],[target]…,一個流規則中可能有多個動作,按照指定的先後順序執行。
常見的流表操作如下表所示。

在OpenFlow白皮書中,Flow被定義爲某個特定的網絡流量。例如,一個TCP連接就是一個Flow,或者從某個IP地址發出來的數據包,都可以被認爲是一個Flow。支持OpenFlow協議的交換機應該包括一個或多個流表,流表中的條目包含:數據包頭的信息、匹配成功後要執行的指令和統計信息。當數據包進入OVS後,會將數據包和流表中的流表項進行匹配,如果發現了匹配的流表項,則執行該流表項中的指令集。相反,如果數據包在流表中沒有發現任何匹配,OVS會通過控制通道把數據包發到OpenFlow控制器中。在OVS中,流表項作爲ovs-ofctl的參數,採用如下的格式:字段=值,如果有多個字段,可以用逗號或空格分開,一些常用的字段列舉如下表所示。

實驗步驟

一、實驗環境檢查

步驟1 登錄交換機,執行以下命令,查看鏡像中原有的網橋,如下圖所示。

ovs-vsctl show

步驟2 執行以下命令,刪除當前網橋,並進行確認,如下圖所示。

ovs-vsctl del-br br-sw
ovs-vsctl show

二、流表管理

步驟1 執行以下命令,添加網橋,並查看虛擬交換機的基本信息,如下圖所示。

# ovs-vsctl add-br br0
# ovs-ofctl show br0


由上圖可知,可以查看到交換機dpid、流表數量、性能參數、動作參數、MAC地址等信息。

步驟2 執行以下命令,查看虛擬交換機上各端口的狀態,如下圖所示。

# ovs-ofctl dump-flows br0


由上圖可知,輸出的結果中包含了各端口上收到的數據包數,字節數,丟包數,錯誤數據包數等。

步驟3 執行以下命令,添加一條流表項,設置流表項生命週期爲1000s,優先級爲17,入端口爲3,動作是output:2。

# ovs-ofctl add-flow br0 idle_timeout=1000,priority=17,in_port=3,actions=output:2

說明:這條流表項的作用是將端口3接收到的數據包從端口2輸出。

步驟4 執行以下命令,查看交換機上所有流表信息,如下圖所示。

# ovs-ofctl dump-flows br0

步驟5 執行以下命令,刪除入端口爲3的的流表項,刪除後,再次查看流表信息,如下圖所示。

# ovs-ofctl del-flows br0 in_port=3
# ovs-ofctl dump-flows br0

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