Open vSwitch即開放虛擬交換標準,是在開源的Apache2.0許可下的產品級質量的多層虛擬交換標準,旨在通過編程擴展,使龐大的網絡自動化(配置、管理、維護),同時還支持標準的管理接口和協議(如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。
Open vSwitch的優點
Open vSwitch可以作為一個在管理程序上運行的軟開關,也可以作為開關控制堆棧。它已經被移植到多種虛擬化平臺和交換芯片。
Open vSwitch的特性
Open vSwitch是一種開源軟件,專門管理多租賃公共云計算環境,為網絡管理員提供虛擬VM之間和之內的流量可見性和控制。
Open vSwitch項目由網絡控制軟件創業公司Nicira Networks支持,旨在用虛擬化解決網絡問題,與控制器軟件一起實現分布式虛擬交換技術。這意味著,交換機和控制器軟件能夠在多個服務器之間創建集群網絡配置,從而不需要在每一個VM和物理主機上單獨配置網絡。這個交換機還支持VLAN中繼,通過NetFlow、sFlow和RSPAN實現可見性,通過OpenFlow協議進行管理。它還有其他一些特性:嚴格流量控制,它由OpenFlow交換協議實現;遠程管理功能,它能通過網絡策略實現更多控制。
1 支持通過NetFlow sFlow IPFIX, SPAN, RSPAN, 和 GRE-tunneled鏡像使虛擬機內部通訊可以被監控;
2 支持LACP (IEEE 802.1AX-2008)(多端口綁定)協議;
3 支持標準的 802.1Q VLAN模型以及 trunk模式;
4 支持 BFD 和 802.1ag 鏈路狀態監測;
5 支持STP (IEEE 802.1D-1998);
6 支持細粒度的Qos;
7 支持HFSC系統級別的流量控制隊列;
8 支持每虛擬機網卡的流量的流量控制策略;
9 支持基于源MAC負載均衡模式、主備模式、L4哈希模式的多端口綁定;
10 支持OpenFlow協議(包括許多虛擬化的增強特性);
11 支持IPV6;
12 支持多種隧道協議((GRE, VXLAN, IPsec, GRE and VXLAN over IPsec);
13 支持通過C或者Python接口遠程配置;
14 支持內核態和用戶態的轉發引擎設置;
15 支持多列表轉發的發送緩存引擎;
16 支持轉發層抽象以容易的定向到新的軟件或者硬件平臺;
Open vSwitch運行原理
內核模塊實現了多個“數據路徑”(類似于網橋),每個都可以有多個“vports”(類似于橋內的端口)。每個數據路徑也通過關聯一下流表(flow table)來設置操作,而這些流表中的流都是用戶空間在報文頭和元數據的基礎上映射的關鍵信息!一般的操作都是將數據包轉發到另一個vport!
當一個數據包到達一個vport,內核模塊所做的處理是提取其流的關鍵信息并在流表中查找這些關鍵信息。當有一個匹配的流時它執行對應的操作。如果沒有匹配,它會將數據包送到用戶空間的處理隊列中(作為處理的一部分,用戶空間可能會設置一個流用于以后碰到相同類型的數據包可以在內核中執行操作)。
Open vSwitch實現的嚴密流量控制很大部分上是通過OpenFlow交換協議實現的。OpenFlow使網絡控制器軟件能夠通過網絡訪問一個交換機或路由器的數據路徑。網絡管理員可以使用這個技術在一臺PC上遠程控制數據管理,這樣他們就能夠進行精細的路由和交換控制,并實現復雜的網絡策略。
有了Open vSwitch中的這些遠程管理功能,多租賃云計算的集成商和供應商就能夠向客戶提供在一臺PC上持續管理各自虛擬網絡、應用和策略的功能。
Open vSwitch安裝
http://openvswitch.org/releases/下載最新版本
mkdir -p ~/rpmbuild/SOURCES
cp openvswitch-2.7.0.tar.gz ~/rpmbuild/SOURCES/
cd ~/rpmbuild/SOURCES
tar -xvf openvswitch-2.7.0.tar.gz
cd openvswitch-2.7.0/
rpmbuild -bb --without check rhel/openvswitch.spec
yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.7.0-1.x86_64.rpm
systemctl enable openvswitch.service
systemctl start openvswitch.service