Openv Switch 完全使用手冊

裝載自http://sdnhub.cn/index.php/openv-switch-full-guide/

1 什么是OpenvSwitch

OpenvSwitch,簡稱OVS是一個(gè)虛擬交換軟件,主要用于虛擬機(jī)VM環(huán)境咏窿,作為一個(gè)虛擬交換機(jī)化漆,支持Xen/XenServer, KVM, and VirtualBox多種虛擬化技術(shù)苗缩。OpenvSwitch還支持多個(gè)物理機(jī)的分布式環(huán)境。

在這種某一臺物理機(jī)器的虛擬化環(huán)境中侨拦,一個(gè)虛擬交換機(jī)(vswitch)主要有如下兩個(gè)作用:

傳遞虛擬機(jī)VM之間的流量

以及實(shí)現(xiàn)VM和外界網(wǎng)絡(luò)的通信粱挡。

如下圖所示:

整個(gè)OVS代碼用C寫的赠幕。目前有以下功能:

Standard 802.1Q VLAN model with trunk and access ports

NIC bonding with or without LACP on upstream switch

NetFlow, sFlow(R), and mirroring for increased visibility

QoS (Quality of Service) configuration, plus policing

GRE, GRE over IPSEC, VXLAN, and LISP tunneling

802.1ag connectivity fault management

OpenFlow 1.0 plus numerous extensions

Transactional configuration database with C and Python bindings

High-performance forwarding using a Linux kernel module

2 OpenvSwitch的組成

OVS的核心組件包括 ovsdb-server,ovs-vswitchd询筏,ovs kernel module榕堰。如下圖所示:

運(yùn)行原理:

內(nèi)核模塊實(shí)現(xiàn)了多個(gè)“數(shù)據(jù)路徑(DataPath)”(類似于網(wǎng)橋),每個(gè)都可以有多個(gè)“vports”(類似于橋內(nèi)的端口)嫌套。每個(gè)數(shù)據(jù)路徑也通過關(guān)聯(lián)流表(flow table)來設(shè)置操作逆屡,而這些流表中的流都是用戶空間在報(bào)文頭和元數(shù)據(jù)的基礎(chǔ)上映射的關(guān)鍵信息,一般的操作都是將數(shù)據(jù)包轉(zhuǎn)發(fā)到另一個(gè)vport踱讨。當(dāng)一個(gè)數(shù)據(jù)包到達(dá)一個(gè)vport魏蔗,內(nèi)核模塊所做的處理是提取其流的關(guān)鍵信息并在流表中查找這些關(guān)鍵信息。當(dāng)有一個(gè)匹配的流時(shí)它執(zhí)行對應(yīng)的操作痹筛。如果沒有匹配莺治,它會將數(shù)據(jù)包送到用戶空間的處理隊(duì)列中(作為處理的一部分,用戶空間可能會設(shè)置一個(gè)流用于以后遇到相同類型的數(shù)據(jù)包可以在內(nèi)核中執(zhí)行操作)帚稠。細(xì)節(jié)如下圖所示:

除了核心組件谣旁,還包括一些管理工具,詳細(xì)介紹如下:

ovs-vswitchd:OVS守護(hù)進(jìn)程是OVS的核心部件滋早,實(shí)現(xiàn)交換功能蔓挖,和Linux內(nèi)核兼容模塊一起,實(shí)現(xiàn)基于流的交換(flow-based switching)馆衔。它和上層 controller 通信遵從 OPENFLOW 協(xié)議瘟判,它與 ovsdb-server 通信使用 OVSDB 協(xié)議,它和內(nèi)核模塊通過netlink通信角溃,它支持多個(gè)獨(dú)立的 datapath(網(wǎng)橋)拷获,它通過更改flow table 實(shí)現(xiàn)了綁定和VLAN等功能。

ovsdb-server:OVS輕量級的數(shù)據(jù)庫服務(wù)器减细,用于整個(gè)OVS的配置信息匆瓜,包括接口,交換內(nèi)容未蝌,VLAN 等等驮吱。ovs-vswitchd 根據(jù)數(shù)據(jù)庫中的配置信息工作。它于 manager 和 ovs-vswitchd 交換信息使用了OVSDB(JSON-RPC)的方式萧吠。

ovs-dpctl:一個(gè)工具左冬,用來配置交換機(jī)內(nèi)核模塊,可以控制轉(zhuǎn)發(fā)規(guī)則纸型。

ovs-vsctl:主要是獲取或者更改ovs-vswitchd的配置信息拇砰,此工具操作的時(shí)候會更新ovsdb-server中的數(shù)據(jù)庫梅忌。

ovs-appctl:主要是向OVS守護(hù)進(jìn)程發(fā)送命令的,一般用不上除破。 a utility that sends commands to running Open vSwitch daemons (ovs-vswitchd)

ovsdbmonitor:GUI工具來顯示ovsdb-server中數(shù)據(jù)信息牧氮。(Ubuntu下是可以使用apt-get安裝,可以遠(yuǎn)程獲取OVS數(shù)據(jù)庫和OpenFlow的流表)

ovs-controller:一個(gè)簡單的OpenFlow控制器

ovs-ofctl:用來控制OVS作為OpenFlow交換機(jī)工作時(shí)候的流表內(nèi)容瑰枫。

ovs-pki:OpenFlow交換機(jī)創(chuàng)建和管理公鑰框架踱葛;

ovs-tcpundump:tcpdump的補(bǔ)丁,解析OpenFlow的消息光坝;

brocompat.ko : Linux bridge compatibility module

openvswitch.ko : Open vSwitch switching datapath

一些用用的OVS命令示例:

sudo ovs-vsctl show

sudo ovs-vsctl add-br mybridge

sudo ovs-vsctl del-br mybridge

sudo ovs-vsctl add-port mybridge port-name

sudo ovs-vsctl del-port mybridge port-name

sudo ovs-vsctl list Bridge/Port/Interface/...

sudo ovs-appctl fdb/show mybridge

sudo ovs-ofctl show mybridge

sudo ovs-ofctl dump-flows mybridge

sudo ovs-ofctl add-flow mybridge dl_src=02:a2:a2:a2:a2:a2,dl_dst=02:b2:b2:b2:b2:b2,in_port=2,dl_type=0x0800,nw_src=10.0.0.1,nw_dst=10.0.0.2,actions=output:6

sudo ovs-ofctl del-flows mybridge dl_src=02:a2:a2:a2:a2:a2,dl_dst=02:b2:b2:b2:b2:b2,in_port=2,dl_type=0x0800,nw_src=10.0.0.1,nw_dst=10.0.0.2

sudo ovs-ofctl add-flow dp0 in_port=2,actions=output:6

# This will delete all the flow entries in the flow table

sudo ovs-ofctl del-flows mybridge

3 OpenvSwitch和其他vswitch

這里其他的vswitch,包括VMware vNetwork distributed switch以及思科的Cisco Nexus 1000V尸诽。

VMware vNetwork distributed switch以及思科的Cisco Nexus 1000V這種虛擬交換機(jī)提供的是一個(gè)集中式的控制方式,教馆。而OVS則是一個(gè)獨(dú)立的vswitch逊谋,他運(yùn)行在每個(gè)實(shí)現(xiàn)虛擬化的物理機(jī)器上,并提供遠(yuǎn)程管理土铺。

OVS提供了兩種在虛擬化環(huán)境中遠(yuǎn)程管理的協(xié)議:

一個(gè)是OpenFlow,通過流表來管理交換機(jī)的行為胶滋,

一個(gè)是OVSDB management protocol,用來暴露sietch的port狀態(tài)悲敷。

4 概念及工作流程

4.1 vswitch究恤、Bridge、Datapath

在網(wǎng)絡(luò)中后德,交換機(jī)和橋都是同一個(gè)概念部宿,OVS實(shí)現(xiàn)了一個(gè)虛擬機(jī)的以太交換機(jī),換句話說瓢湃,OVS也就是實(shí)現(xiàn)了一個(gè)以太橋理张。那么,在OVS中绵患,給一個(gè)交換機(jī)雾叭,或者說一個(gè)橋,用了一個(gè)專業(yè)的名詞落蝙,叫做DataPath织狐!

要了解OVS如何工作,首先需要知道橋的概念:

網(wǎng)橋也叫做橋接器筏勒,連接兩個(gè)局域網(wǎng)的設(shè)備移迫,網(wǎng)橋工作在數(shù)據(jù)鏈路層,將兩個(gè)LAN連接管行,根據(jù)MAC地址來轉(zhuǎn)發(fā)幀厨埋,可以看成一個(gè)“低層的路由器”(路由器工作在網(wǎng)絡(luò)層,根據(jù)IP地質(zhì)進(jìn)行轉(zhuǎn)發(fā))病瞳。

網(wǎng)橋的工作原理

網(wǎng)橋處理包遵循以下幾條規(guī)則:

在一個(gè)接口上接收到的包不會再往那個(gè)接口上發(fā)送此包揽咕。

每個(gè)接收到的包都要學(xué)習(xí)其源MAC地址悲酷。

如果數(shù)據(jù)包是多播或者廣播包(通過2層MAC地址確定)則要向接收端口以外的所有端口轉(zhuǎn)發(fā)套菜,如果上層協(xié)議感興趣亲善,則還會遞交上層處理。

如果數(shù)據(jù)包的地址不能再CAM表中找到逗柴,則向接收端口以外的其他端口轉(zhuǎn)發(fā)蛹头。

如果CAM表中能找到,則轉(zhuǎn)發(fā)給相應(yīng)端口戏溺,如果發(fā)送和接收都是統(tǒng)一端口渣蜗,則不發(fā)送。

注意旷祸,網(wǎng)橋是以混雜模式工作的耕拷。關(guān)于網(wǎng)橋更多,請查閱相關(guān)資料托享。

OVS中的bridge

上面骚烧,說到,一個(gè)橋就是一個(gè)交換機(jī)闰围。例如赃绊,在OVS中:

root@localhost:~# ovs-vsctl add-br br0

root@localhost:~# ifconfig br0

br0? ? Link encap:Ethernet? HWaddr 1a:09:56:ea:0b:49

inet6 addr: fe80::1809:56ff:feea:b49/64 Scope:Link

UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1

RX packets:1584 errors:0 dropped:0 overruns:0 frame:0

TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:316502 (316.5 KB)? TX bytes:468 (468.0 B)

當(dāng)我們創(chuàng)建了一個(gè)交換機(jī)(網(wǎng)橋)以后,此時(shí)網(wǎng)絡(luò)功能不受影響羡榴,但是會產(chǎn)生一個(gè)虛擬網(wǎng)卡碧查,名字就是網(wǎng)橋的名稱(br-int),之所以會產(chǎn)生一個(gè)虛擬網(wǎng)卡校仑,是為了實(shí)現(xiàn)接下來的網(wǎng)橋(交換機(jī))功能忠售。有了這個(gè)交換機(jī)以后,還需要為這個(gè)交換機(jī)增加端口(port)迄沫,一個(gè)端口稻扬,就是一個(gè)物理網(wǎng)卡,當(dāng)網(wǎng)卡加入到這個(gè)交換機(jī)之后邢滑,其工作方式就和普通交換機(jī)的一個(gè)端口的工作方式類似了腐螟。

root@localhost:~# ovs-vsctl add-port br0 port

這里要特別注意,網(wǎng)卡加入網(wǎng)橋以后困后,要按照網(wǎng)橋的工作標(biāo)準(zhǔn)工作乐纸,那么加入的一個(gè)端口就必須是以混雜模式工作,工作在鏈路層摇予,處理2層的幀汽绢,所以這個(gè)port就不需要配置IP了。(你沒見過哪個(gè)交換的端口有IP的吧)

那么接下來你可能會問侧戴,通常的交換機(jī)不都是有一個(gè)管理接口宁昭,可以telnet到交換機(jī)上進(jìn)行配置吧跌宛,那么在OVS中創(chuàng)建的虛擬交換機(jī)有木有這種呢,有的积仗!上面既然創(chuàng)建交換機(jī)brname的時(shí)候產(chǎn)生了一個(gè)虛擬網(wǎng)口 br-int疆拘,那么,你給這個(gè)虛擬網(wǎng)卡配置了IP以后寂曹,就相當(dāng)于給交換機(jī)的管理接口配置了IP哎迄,此時(shí)一個(gè)正常的虛擬交換機(jī)就搞定了。

root@localhost:~# ip address add 192.168.1.1/24 dev br0

最后隆圆,我們來看看一個(gè)br的具體信息:

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"

首先漱挚,這里顯示了一個(gè)名為br0的橋(交換機(jī)),這個(gè)交換機(jī)有兩個(gè)接口,一個(gè)是eth0渺氧,一個(gè)是br0旨涝,上面說到,創(chuàng)建橋的時(shí)候會創(chuàng)建一個(gè)和橋名字一樣的接口侣背,并自動(dòng)作為該橋的一個(gè)端口白华,那么這個(gè)虛擬接口的作用,一方面是可以作為交換機(jī)的管理端口秃踩,另一方面也是基于這個(gè)虛擬接口衬鱼,實(shí)現(xiàn)了橋的功能。

#### OpenvSwitch的典型工作流程

這一部分以一個(gè)簡單的例子憔杨,說明在虛擬化環(huán)境中OpenvSwitch的典型工作流程鸟赫。

前面已經(jīng)說到,OVS主要是用來在虛擬化環(huán)境中消别。實(shí)現(xiàn)虛擬機(jī)之間通信以及一個(gè)虛擬機(jī)和外網(wǎng)之間通信抛蚤,如下是一個(gè)典型的結(jié)構(gòu)圖:

那么,通常情況下的工作流程如下:

VM實(shí)例 instance 產(chǎn)生一個(gè)數(shù)據(jù)包并發(fā)送至實(shí)例內(nèi)的虛擬網(wǎng)絡(luò)接口 VNIC寻狂,圖中就是 instance 中的 eth0.

這個(gè)數(shù)據(jù)包會傳送到物理機(jī)上的VNIC接口岁经,如圖就是vnet接口。

數(shù)據(jù)包從 vnet NIC 出來蛇券,到達(dá)橋(虛擬交換機(jī)) br100 上.

數(shù)據(jù)包經(jīng)過交換機(jī)的處理缀壤,從物理節(jié)點(diǎn)上的物理接口發(fā)出,如圖中物理機(jī)上的 eth0 .

數(shù)據(jù)包從 eth0 出去的時(shí)候纠亚,是按照物理節(jié)點(diǎn)上的路由以及默認(rèn)網(wǎng)關(guān)操作的塘慕,這個(gè)時(shí)候該數(shù)據(jù)包其實(shí)已經(jīng)不受你的控制了。

一般 L2 switch 連接 eth0 的這個(gè)口是一個(gè) trunk 口, 因?yàn)樘摂M機(jī)對應(yīng)的 VNET 往往會設(shè)置 VLAN TAG, 可以通過對虛擬機(jī)對應(yīng)的 vnet 打 VALN TAG 來控制虛擬機(jī)的網(wǎng)絡(luò)廣播域. 如果跑多個(gè)虛擬機(jī)的話, 多個(gè)虛擬機(jī)對應(yīng)的 vnet 可以設(shè)置不同的 vlan tag, 那么這些虛擬機(jī)的數(shù)據(jù)包從 eth0(4)出去的時(shí)候, 會帶上TAG標(biāo)記. 這樣也就必須是 trunk 口才行.

6 OVS簡單應(yīng)用實(shí)例

6.1 創(chuàng)建物理機(jī)到物理機(jī)的網(wǎng)絡(luò)拓?fù)?/p>

root@localhost:~# ovs-vsctl add-br br0

root@localhost:~# ovs-vsctl add-port br0 eth0

root@localhost:~# ovs-vsctl add-port br0 eth1

6.2 創(chuàng)建虛擬機(jī)到虛擬機(jī)的網(wǎng)絡(luò)拓?fù)?/p>

使用KVM虛擬化蒂胞。

root@localhost:~# ovs-vsctl add-br br0

root@localhost:~# cat /etc/ovs-ifup

#!/bin/sh

switch='br0'

/sbin/ifconfig? $1 0.0.0.0 up

ovs-vsctl add-port ${switch} $1

root@localhost:~# cat /etc/ovs-ifdown

#!/bin/sh

switch= 'br0'

ovs-vsctl del-port ${sw/sbin/ifconfig? $1 0.0.0.0 down

itch} $1

root@localhost:~# kvm -m 512 -net nic,macaddr=00:11:22:33:44:55 -net \

tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown-drive \

file=/path/to/disk-image,boot=on

root@localhost:~# kvm -m 512 -net nic,macaddr=11:22:33:44:55:66 -net \

tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown-drive \

file=/path/to/disk-image,boot=on

7.Misc

7.1 查表

ovs-vsctl list bridge ovs-br

7.2 關(guān)于 Brdige 及 Port

創(chuàng)建 Brdige

ovs-vsctl add-br ovs-br

在 ovs-br 上添加 interface

ovs-vsctl add-port ovs-br eth0

(1) + (2) 的可以合并為:

ovs?vsctl add?br ovs-br -- add?port ovs-br eth0

刪除 Bridge

ovs-vsctl del-br ovs-br #如果不存在, 會有error log

ovs-vsctl --if-exists del-br ovs-br

更改 ofport (openflow port number)為100:

ovs-vsctl add-port ovs-br eth0 -- set Interface eth0 ofport_request=100

設(shè)置 port 為 internal

ovs-vsctl set Interface eth0 type=internal

7.3 關(guān)于Controller

設(shè)置 Controller

ovs-vsctl set-controller ovs-br tcp:1.2.3.4:6633

設(shè)置 multi controller

ovs-vsctl set-controller ovs-br tcp:1.2.3.4:6633 tcp:5.6.7.8:6633

查詢 Controller

ovs-vsctl show

如果有成功連到 controller 則提示 is_connected:true, 反之未連上:

ovs-vsctl get-controller ovs-br

移除 Controller

ovs-vsctl del-controller ovs-br

7.4 關(guān)于 STP (Spanning Tree Protocol)

開啟 STP

ovs-vsctl set bridge ovs-br stp_enable=true

關(guān)閉 STP

ovs-vsctl set bridge ovs-br stp_enable=false

查詢 STP 配置信息

ovs-vsctl get bridge ovs-br stp_enable

設(shè)置 Priority

ovs?vsctl set bridge br0 other_config:stp-priority=0x7800

設(shè)置 Cost

ovs?vsctl set port eth0 other_config:stp-path-cost=10

移除 STP 設(shè)置

ovs?vsctl clear bridge ovs-br other_config

7.5 關(guān)于 Openflow Version

支持 OpenFlow Version 1.3

ovs-vsctl set bridge ovs-br protocols=OpenFlow13

支持 OpenFlow Version 1.3 1.2

ovs-vsctl set bridge ovs-br protocols=OpenFlow12,OpenFlow13

移除 OpenFlow 支持設(shè)置

ovs-vsctl clear bridge ovs-br protocols

7.6 關(guān)于 VLAN

設(shè)置 VLAN tag

ovs-vsctl add-port ovs-br vlan3 tag=3 -- set interface vlan3 type=internal

移除 VLAN

ovs-vsctl del-port ovs-br vlan3

查詢 VLAN

ovs-vsctl show

ifconfig vlan3

設(shè)置 Vlan trunk

ovs-vsctl add-port ovs-br eth0 trunk=3,4,5,6

設(shè)置已 add 的 port 為 access port, vlan id 9

ovs-vsctl set port eth0 tag=9

ovs-ofctl add-flow 設(shè)置 vlan 100

ovs-ofctl add-flow ovs-br in_port=1,dl_vlan=0xffff,actions=mod_vlan_vid:100,output:3

ovs-ofctl add-flow ovs-br in_port=1,dl_vlan=0xffff,actions=push_vlan:0x8100,set_field:100-\>vlan_vid,output:3

ovs-ofctl add-flow 拿掉 vlan tag

ovs-ofctl add-flow ovs1 in_port=3,dl_vlan=100,actions=strip_vlan,output:1

two_vlan example

ovs-ofctl add-flow pop-vlan

ovs-ofctl add-flow ovs-br in_port=3,dl_vlan=0xffff,actions=pop_vlan,output:1

7.7 關(guān)于 GRE Tunnel

設(shè)置 GRE tunnel

ovs?vsctl add?port ovs-br ovs-gre -- set interface ovs-gre type=gre options:remote_ip=1.2.3.4

查詢 GRE Tunnel

ovs-vsctl show

7.8 關(guān)于 Dump flows

Dumps OpenFlow flows 不含 hidden flows (常用)

ovs-ofctl dump-flows ovs-br

Dumps OpenFlow flows 包含 hidden flows

ovs-appctl bridge/dump-flows ovs-br

Dump 特定 bridge 的 datapath flows 不論任何 type

ovs-appctl dpif/dump-flows ovs-br

Dump 在 Linux kernel 裡的 datapath flow table (常用)

ovs-dpctl dump-flows [dp]

Top like behavior for ovs-dpctl dump-flows

ovs-dpctl-top

7.9 XenServer 開啟 OpenvSwitch 方式

檢查是否啟動(dòng)openvswitch服務(wù):

service openvswitch status

啟動(dòng)服務(wù)

xe-switch-network-backend openvswitch

關(guān)閉服務(wù)

xe-switch-network-backend bridge

7.10 關(guān)于 Log

查詢 log level list

ovs-appctl vlog/list

設(shè)置 log level (以 stp 設(shè)置 file 為 dbg level 為例)

ovs-appctl vlog/set stp:file:dbg

ovs-appctl vlog/set {module name}:{console, syslog, file}:{off, emer, err, warn, info, dbg}

7.11 關(guān)于 Fallback

Controller connection: false 的時(shí)候, 會自動(dòng)調(diào)成 legacy switch mode

ovs-vsctl set-fail-mode ovs-br standalone

無論 Controller connection status 為何, 都必須通過 OpenFlow 進(jìn)行網(wǎng)絡(luò)行為 (default)

ovs-vsctl set-fail-mode ovs-br secure

移除

ovs-vsctl del-fail-mode ovs-br

查詢

ovs-vsctl get-fail-mode ovs-br

7.12 關(guān)于 sFlow

查詢

ovs-vsctl list sflow

新增

Set sFlow 缺

刪除

ovs-vsctl -- clear Bridge ovs-br sflow

7.13關(guān)于 NetFlow

查詢

ovs-vsctl list netflow

新增

Set NetFlow 缺

刪除

ovs-vsctl -- clear Bridge ovs-br netflow

7.14 設(shè)置 Out-of-band 和 in-band

查詢

ovs-vsctl get controller ovs-br connection-mode

Out-of-band

ovs-vsctl set controller ovs-br connection-mode=out-of-band

In-band (default)

ovs-vsctl set controller ovs-br connection-mode=in-band

移除 hidden flow

ovs-vsctl set bridge br0 other-config:disable-in-band=true

7.15 關(guān)于 ssl

查詢

ovs-vsctl get-ssl

設(shè)置

ovs-vsctl set-ssl sc-privkey.pem sc-cert.pem cacert.pem

OpenvSwitch Lab 6$ TLS SSL : http://roan.logdown.com/posts/208707-openvswitch-lab-6-ssl

刪除

ovs-vsctl del-ssl

7.16 關(guān)于 SPAN

詳細(xì)設(shè)置

ovs-vsctl add-br ovs-br

ovs-vsctl add-port ovs-br eth0

ovs-vsctl add-port ovs-br eth1

ovs-vsctl add-port ovs-br tap0 \

-- --id=@p get port tap0 \

-- --id=@m create mirror name=m0 select-all=true output-port=@p \

-- set bridge ovs-br mirrors=@m

將 ovs-br 上 add-port {eth0,eth1} mirror 至 tap0

刪除

ovs-vsctl clear bridge ovs-br mirrors # 關(guān)於 Table

查 table ovs-ofctl dump-tables ovs-br

7.17 關(guān)于 Group Table

參考hwchiu – Multipath routing with Group table at mininet

建立 Group id 及對應(yīng)的 bucket

ovs-ofctl -O OpenFlow13 add-group ovs-br group_id=5566,type=select,bucket=output:1,bucket=output:2,bucket=output:3

type 共有 All, Select, Indirect, FastFailover, 詳細(xì)規(guī)格:http://flowgrammable.org/sdn/openflow/message-layer/groupmod/#GroupMod_1.3

使用 Group Table

ovs-ofctl -O OpenFlow13 add-flow ovs-br in_port=4,actions=group:5566

7.18 關(guān)于 VXLAN

參考rascov – Bridge Remote Mininets using VXLAN

建立 VXLAN Network ID (VNI) 和指定的 OpenFlow port number, eg: VNI=5566, OF_PORT=9

ovs-vsctl set interface vxlan type=vxlan option:remote_ip=x.x.x.x option:key=5566 ofport_request=9

VNI flow by flow

ovs-vsctl set interface vxlan type=vxlan option:remote_ip=140.113.215.200 option:key=flow ofport_request=9

設(shè)置 VXLAN tunnel id

ovs-ofctl add-flow ovs-br in_port=1,actions=set_field:5566->tun_id,output:2

ovs-ofctl add-flow s1 in_port=2,tun_id=5566,actions=output:1

7.19 關(guān)于 OVSDB Manager

參考OVSDB Integration:Mininet OVSDB Tutorial

Active Listener 設(shè)置

ovs-vsctl set-manager tcp:1.2.3.4:6640

Passive Listener 設(shè)置

ovs-vsctl set-manager ptcp:6640

7.20 OpenFlow Trace

Generate pakcet trace

ovs-appctl ofproto/trace ovs-br in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02 -generate

7.21 其它

查詢 OpenvSwitch 版本

ovs-ofctl -V

查詢指令歷史記錄

ovsdb-tool show-log [-mmm]

[參考]

http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=FAQ;hb=HEAD

http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=README;hb=HEAD

http://openvswitch.org/support/config-cookbooks/vlan-configuration-cookbook/

http://roan.logdown.com/posts/191801-set-openvswitch

http://roan.logdown.com/posts/208707-openvswitch-lab-6-ssl

http://flowgrammable.org/sdn/openflow/message-layer/groupmod/#GroupMod_1.3

http://www.areteix.net/blog/2013/08/network-flow-monitoring-with-open-vswitch/

http://blog.scottlowe.org/2014/11/21/removing-ovs-configuration-settings/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末图呢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛤织,老刑警劉巖赴叹,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異指蚜,居然都是意外死亡乞巧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門姚炕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摊欠,“玉大人丢烘,你說我怎么就攤上這事柱宦。” “怎么了播瞳?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵掸刊,是天一觀的道長。 經(jīng)常有香客問我赢乓,道長忧侧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任牌芋,我火速辦了婚禮蚓炬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘躺屁。我一直安慰自己肯夏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布犀暑。 她就那樣靜靜地躺著驯击,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耐亏。 梳的紋絲不亂的頭發(fā)上徊都,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機(jī)與錄音广辰,去河邊找鬼暇矫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛择吊,可吹牛的內(nèi)容都是我干的李根。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼干发,長吁一口氣:“原來是場噩夢啊……” “哼朱巨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枉长,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤冀续,失蹤者是張志新(化名)和其女友劉穎琼讽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洪唐,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钻蹬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凭需。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片问欠。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粒蜈,靈堂內(nèi)的尸體忽然破棺而出顺献,到底是詐尸還是另有隱情,我是刑警寧澤枯怖,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布注整,位于F島的核電站,受9級特大地震影響度硝,放射性物質(zhì)發(fā)生泄漏肿轨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一蕊程、第九天 我趴在偏房一處隱蔽的房頂上張望椒袍。 院中可真熱鬧,春花似錦藻茂、人聲如沸驹暑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岗钩。三九已至,卻和暖如春肖油,著一層夾襖步出監(jiān)牢的瞬間兼吓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工森枪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留视搏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓县袱,卻偏偏與公主長得像浑娜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子式散,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容