OpenvSwitch系列之三 ovs-vsctl命令使用


OpenvSwitch的操作命令有若干個,其中比較重要的有

ovs-ovsctl   獲取或者更改ovs-vswitchd的配置信息,此工具操作的時候會更新ovsdb-server中的數據庫

ovs-ofctl     操作交換機里的流表

ovsdb-tool  對ovsdb數據庫操作,不經過ovsdb-server模塊

 

 前面已經介紹過了ovs-ovsctl命令是對交換機上網橋和端口等信息進行配置的命令。這里首先需要說明一下ovs的概念中 ‘橋’ 這個詞的意思就是指交換機。我們說創建一個網橋,其實說的意思就是創建一個交換機。而端口則是指交換機的網口。

查看網橋

使用如下命令能夠查看所有的網橋的信息。記住這是我們學會的第一個命令,也是使用頻率最高的命令。

[root@localhost openvswitch-2.8.1]# ovs-vsctl show
b9da3f20-b407-40fa-8944-df970f4ca3ad    該主機的id
    ovs_version: "2.8.1"    版本信息

因為這是一個剛裝好ovs的機器,所以還沒有任何網橋信息,但是還是有一些信息的。比如這一串數字指的是該主機的id,只在連接了SDN控制器之后才有作用;還有一個交換機的版本信息,這里的版本是2.5.5。

添加網橋

可以很方便的創建網橋,也就是交換機。使用如下命令創建一個名字叫着 br-test的網橋。

[root@localhost ~]# ovs-vsctl add-br  br-test

當創建好網橋之后用第一個學會的命令來看看創建好的網橋

b9da3f20-b407-40fa-8944-df970f4ca3ad
    Bridge br-test
        Port br-test
            Interface br-test
                type: internal
    ovs_version: "2.8.1"

可以看到已經有創建好的網橋br-test了,Bridge br-test 指的是網橋br-test,那么在這個交換機中只有一個網口,是的,這個網口叫着port,即port br-test。為什么我們只創建了網橋並沒有創建端口這里卻有一個呢?其實這個端口就是常見的環回口。在我們的電腦上都有一個叫着localhost的端口,交換機中也會有一個和交換機同名的網口,都是指環回口。

創建port

在上面創建好一個網橋之后默認有一個同名的port,使用下面的命令可以繼續添加port。格式是:ovs-vsctl add-port 網橋名  端口名 。這里端口需要是存在機器上的網卡名。

我的機器上的網卡的信息如下

[root@localhost ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:58:d0:b7:bc  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.220  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::448f:7a09:b3fa:48e0  prefixlen 64  scopeid 0x20<link>
        inet6 2409:8a0c:1c:3050:7c6:7714:febe:63f6  prefixlen 64  scopeid 0x0<global>
        ether 00:0c:29:c5:19:99  txqueuelen 1000  (Ethernet)
        RX packets 216953  bytes 302976430 (288.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 41861  bytes 4911746 (4.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 108  bytes 9847 (9.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 108  bytes 9847 (9.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

因為我的機器上有網卡  ens33  所有可以使用下面的命令向網橋br-test上添加port  ens33。如果想在自己的機器上做這個實驗要把網卡替換成你機器的真實網卡。

[root@localhost ~]# ovs-vsctl add-port br-test ens33
[root@localhost ~]# ovs-vsctl add-port br-test ens33

刪除port

能添加一個port,就能刪除這個port。這是ovs的最基本的操作。

 

 注意:如果刪除port時不指明名字,那么將會刪除全部的port,小心這個操作。

刪除網橋

使用如下命令刪除一個網橋。

[root@localhost ~]# ovs-vsctl del-br br-test

值得注意的是:刪除網橋時如果網橋上有很多端口,那么端口也會被一並刪除。這個很好理解 

再次查看網橋信息

[root@localhost ~]# ovs-vsctl show
b9da3f20-b407-40fa-8944-df970f4ca3ad
    ovs_version: "2.8.1"

網橋連接控制器

這五個命令是ovs最基本的操作命令,下面還有一個連接控制器的命令是為下一篇打好基礎。

ovs交換作為SDN交換機連接到SDN控制器上才能發揮最大的效能。連接控制器的命令如下

[root@localhost ~]# ovs-vsctl add-br br-test
[root@localhost ~]# ovs-vsctl set-controller br-test tcp:172.171.82.31:6633
[root@localhost ~]# ovs-vsctl show 
b9da3f20-b407-40fa-8944-df970f4ca3ad
    Bridge br-test
        Controller "tcp:172.171.82.31:6633"
        Port br-test
            Interface br-test
                type: internal
    ovs_version: "2.8.1"

查看此時網橋的配置信息,在Bridge下出現了一個Controller ,控制器的IP是172.171.82.31,端口是6633,下面還有一個連接成功的狀態:is_connected=True。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM