1.軟件介紹; 顧名思義,Open vSwitch即開放虛擬交換標準!具體點說,Open vSwitch是在開源的Apache2.0許可下的產品級質量的多層虛擬交換標準!它旨在經過編程擴展,使龐大的網絡自動化(配置、管理、維護),同時還支持標準的管理接口和協議(如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。總的來講,它被設計爲支持分佈在多個物理服務器,例如VMware的vNetwork分佈式vSwitch或思科的Nexus1000V。 那麼什麼是虛擬交換?虛擬交換就是利用虛擬平臺,經過軟件的方式造成交換機部件。跟傳統的物理交換機相比,虛擬交換機一樣具有衆多優勢,一是配置更加靈活。一臺普通的服務器能夠配置出數十臺甚至上百臺虛擬交換機,且端口數目能夠靈活選擇。例如,VMware的ESX一臺服務器能夠仿真出248臺虛擬交換機,且每臺交換機預設虛擬端口便可達56個;二是成本更加低廉,經過虛擬交換每每能夠得到昂貴的普通交換機才能達到的性能,例如微軟的Hyper-V平臺,虛擬機與虛擬交換機之間的聯機速度輕易可達10Gbps。[1] Open vSwitch的特性 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 支持轉發層抽象以容易的定向到新的軟件或者硬件平臺; 2..獲取軟件包; http://openvswitch.org/download/ 3.部署詳細; (1).依賴環境包; yum -y install wget openssl-devel kernel-devel bridge-utils (2).安裝依賴的工具 yum groupinstall "Development Tools" (3).添加一個ovswitch用戶 adduser ovswitch (4).下載並解壓openvswitch源碼 (as ovswitch user) $ su - ovswitch $ mkdir -p ~/rpmbuild/SOURCES $ cd ~/rpmbuild/SOURCES $ wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz $ tar xfz openvswitch-2.3.1.tar.gz (4).咱們須要修改下openvswitch的spec-file文件並使用ceontos內核模塊不哦也那個新建一個 $ sed 's/openvswitch-kmod, //g' openvswitch-2.3.1/rhel/openvswitch.spec > openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec (5).新建一個RPM-file文件方便後面使用,好比後面升級等 $ rpmbuild -bb --nocheck ~/openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec $ exit (6).如今安裝RPM-package (切換到root) yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.3.1-1.x86_64.rpm 若是你沒有禁用SElinux的話你會遇到下面的SELinux問題,你只要啓用openvswitch服務就能夠了 install: cannot change owner and permissions of ‘/etc/openvswitch': No such file or directory and Creating empty database /etc/openvswitch/conf.db ovsdb-tool: I/O error: /etc/openvswitch/conf.db: failed to lock lockfile (No such file or directory) 這是一個修復的方法 # mkdir /etc/openvswitch # semanage fcontext -a -t openvswitch_rw_t "/etc/openvswitch(/.*)?" # restorecon -Rv /etc/openvswitch (7).開啓openvswitch服務 systemctl start openvswitch
1.驗證下是否安裝了openvswitch服務html
安裝參考連接:python
http://www.linuxdown.net/install/soft/2016/0228/4857.htmllinux
(8).建立ovs網橋;docker
ovs-vsctl add-br br0編程
(9).建立gre隧道鏈接對端centos
ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre option:remote_ip=172.16.100.124緩存
(10).添加br0 到本地docker0 使容器流量經過ovs流經tunnel 服務器
[root@centos-minion ~]# brctl addif docker0 br0 網絡
(11).啓動br0和docker 0 網橋;負載均衡
[root@centos-minion ~]# ip link set dev br0 up
[root@centos-minion ~]# ip link set dev docker0 up
(12).添加路由規則;
ip route add 172.17.0.0/16 dev docker0
(13).清除防火牆規則;
iptables -t nat -F ;iptables -F
(14).另一端也須要以上步驟;注意;
ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre option:remote_ip=172.16.100.123
(15).測試docker 通訊;
配置測試ip地址
進行測試通訊測試
minion-1 ping minion-2
minion-1 ping minion-2