原理講解:
當我們建立一個交換機(網橋)之後即(ovs-vsctl add-br brname),此時網絡功能不受影響,但是會産生一個虛拟網卡,名字為brname(與網橋名字同名,可以使用 ifconfig brname檢視),之是以會産生一個虛拟網卡,是為了實作接下來的網橋(交換機)功能,有了這個交換機以後,還需要為這個交換機增加端口(port),一個 端口就相當于一個實體網卡,當網卡加入到這個交換機之後,其工作方式就和普通交換機的一個端口的工作方式類似了;
再執行(ovs-vsctl add-port brname port)之後,即網卡加入網橋之後,按照網橋的工作标準工作,則加入的端口(網卡)必須以混雜模式工作,工作在鍊路層,處理2 層的幀,是以這個port就不需要配置IP的(應該沒有見過哪個交換機的端口有IP的吧)
那麼接下來你可能會問,通常的交換機不都是有一個管理接口,通過telnet到交換機上進行配置的,那麼在OVS中建立的虛拟機有沒有該接口呢,有的!上面提到建立交換機brname的時候産生了一個虛拟網口brname,那麼,給這個虛拟網卡配置了ip之後,就相當于給交換機的管理接口配置了IP,對此一個正常的虛拟交換機就搞定了!!
除此之外,與網橋同名的網卡(端口)起到了橋的功能;
ovs主要是用來虛拟化環境中,虛拟機之間的一個虛拟機和外網之間的通信場景,如下一個典型的結構圖:
1 VM執行個體instance産生一個資料包并發送至執行個體内的虛拟網絡接口VNIC,圖中就是instance中的eth0.
2 這個資料包會傳送到實體節點上的VNIC接口,如圖就是vnet接口。
3 資料包從vnet NIC出來,到達橋(虛拟交換機)br100上.
4 資料包經過交換機的處理,從實體節點上的實體接口發出,如圖中實體節點上的eth0.
5 資料包從eth0出去的時候,是按照實體節點上的路由以及預設網關操作的,這個時候該資料包其實已經不受你的控制了。
1、添加網橋br0:
#ovs-vsctl add-br br0
2、列出open vswitch中所有的網橋:
#ovs-vsctl list-br
3、判斷網橋是否存在:
#ovs-vsctl br-exists br0
4、将實體網卡挂接到網橋:
#ovs-vsctl add-port br0 eth0
5、建立虛拟端挂接到網橋中:
#ovs-vsctl add-port br0 my_port_name
eg:ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip = XX.XX.XX.XX
6、列出網橋中所有端口:
#ovs-vsctl list-ports br0
7、列出所有挂接到網卡的網橋:
#ovs-vsctl port-to-br eth0
8、檢視open vswitch的網絡狀态:
#ovs-vsctl show
9、删除網橋上已挂接的網口:
#ovs-vsctl del-port br0 eth0
10、删除網橋:
#ovs-vsctl del-br br0
參見:http://blog.chinaunix.net/uid-20737871-id-4333314.html