任務目的
1、瞭解網橋的基本概念以及工作原理。
2、掌握網橋相關的基本命令,學會添加、刪除、查看網橋,爲後續實驗做準備。
任務環境
設備名稱 | 軟件環境 | 硬件環境 |
---|---|---|
交換機 | Ubuntu 14.04命令行版 Open vSwitch 2.3.1 |
CPU:1核 內存:2G 磁盤:20G |
注:系統默認的賬戶爲root/root@openlab,openlab/user@openlab。
任務內容
1、學習網橋相關的基本概念。
2、學習常用的網橋命令,進行網橋和端口的添加、刪除、查看等操作。
實驗原理
在網絡中,交換機和橋概念類似,Open vSwitch是一個虛擬交換軟件,也就是說,Open vSwitch實現了網橋的功能。學習Open vSwitch的第一步要弄清楚網橋的概念。網橋是連接兩個局域網的設備,工作在數據鏈路層,根據MAC地址來轉發幀。在Open vSwitch中創建一個網橋後,此時網絡功能不受影響,但是會產生一個虛擬網卡,之所以會產生一個虛擬網卡,是爲了實現接下來的網橋(交換機)功能。有了這個網橋以後,還需要爲這個網橋增加端口(port),一個端口就是一個物理網卡,當網卡加入到這個網橋之後,其工作方式就和普通交換機的一個端口的工作方式類似了。以下是一個網橋的具體信息:
root@localhost:~# ovs-vsctl show
bc12c8d2-6900-42dd-9c1c-30e8ecb99a1b
Bridge "br0"
Port "eth0"
Interface "eth0"
Port "br0"
Interface "br0"
type: internal
ovs_version: "1.4.0+build0"
上述信息顯示了一個名爲br0的橋(交換機),這個交換機有兩個接口,一個是eth0,一個是br0。
上面說到,創建橋的時候會創建一個和橋名字一樣的接口,並自動作爲該橋的一個端口,那麼這個虛擬接口的作用,一方面是可以作爲交換機的管理端口,另一方面也是基於這個虛擬接口實現了橋的功能。Open vSwitch的內核模塊實現了多個“數據路徑”,每個都可以有多個vports。每個數據路徑也通過關聯流表(flow table)來設置操作,而這些流表中的流都是用戶空間在報文頭和元數據的基礎上映射的關鍵信息,一般的操作都是將數據包轉發到另一個vport。當一個數據包到達一個vport,內核模塊所做的處理是提取其流的關鍵信息並在流表中查找這些關鍵信息,當有一個匹配的流時它執行對應的操作,如果沒有匹配,它會將數據包送到用戶空間的處理隊列中,作爲處理的一部分,用戶空間可能會設置一個流用於以後碰到相同類型的數據包可以在內核中執行操作。
ovs-vsctl關於網橋管理的常用命令如下:
命令 | 含義 |
---|---|
init | 初始化數據庫(前提數據分組爲空) |
show | 打印數據庫信息摘要 |
add-br BRIDGE | 添加新的網橋 |
del-br BRIDGE | 刪除網橋 |
list-br | 打印網橋摘要信息 |
list-ports BRIDGE | 打印網橋中所有port摘要信息 |
add-port BRIDGE PORT | 向網橋中添加端口 |
del-port [BRIDGE] PORT | 刪除網橋上的端口 |
get-controller BRIDGE | 獲取網橋的控制器信息 |
del-controller BRIDGE | 刪除網橋的控制器信息 |
set-controller BRIDGE TARGET | 向網橋添加控制器 |
實驗步驟
一、實驗環境檢查
步驟1 登錄交換機,執行ovs-vsctl show命令,查看鏡像中原有的網橋,如下圖所示。
步驟2 執行以下命令刪除當前網橋,並進行確認,如下圖所示。
# ovs-vsctl del-br br-sw
# ovs-vsctl show
二、添加網橋和端口
步驟1 執行以下命令添加名爲br0的網橋。
# ovs-vsctl add-br br0
步驟2 執行以下命令,列出Open vSwitch中所有網橋,如下圖所示。
# ovs-vsctl list-br
步驟3 執行以下命令,將物理網卡掛接到網橋br0上,如下圖所示。
# ovs-vsctl add-port br0 eth0
說明:port和bridge是多對一的關係,也就是說一個網橋上可以掛接多個物理網卡。
步驟4 執行以下命令,列出掛接到網橋br0上的所有網卡,如下圖所示。
# ovs-vsctl list-ports br0
步驟5 執行以下命令,列出掛接到eth0網卡上的所有網橋,如下圖所示。
# ovs-vsctl port-to-br eth0
步驟6 執行以下命令,查看Open vSwitch的網絡狀態,如下圖所示。
# ovs-vsctl show
三、刪除網橋和端口
步驟1 執行以下命令,刪除掛接到網橋br0上的網卡eth0。
$ ovs-vsctl del-port br0 eth0
步驟2 執行以下命令,查看open vswitch的網絡狀態,如下圖所示。
# ovs-vsctl show
由上圖可知,刪除eth0後網橋br0依舊存在。
步驟3 執行如下命令,刪除網橋br0,並進行確認,如下圖所示。
# ovs-vsctl del-br br0
說明:如果不刪除eth0直接刪除br0,br0及掛接到br0上的端口會被一併刪除。