iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
1
Data Technology

基於雲端Iaas基礎平台OpenStack結合Kubernetes,BlockChain,Spark,SDN系列 第 23

Openvswitch 介紹

Openvswitch

一種虛擬交換器,可用來作為L2switch,切割網域,QoS或是流量監控,同時支持openFlow協定。

Bridge:對應物理的交換器,作用是根據規則做Packet轉發
Port:接收Packet的接口,可以根據Flow把Packet送到其他Port,包含Normal、Internal、Patch、Tunnel類型
Fail mode:當和Controller 連接失敗時
standalone:作為一般L2/L3交換器
secure:一定要連上 controller 才處理封包

架構


ovsdb-server 管理ovsdb。
ovsdb 存放vswitch相關資料,EX:Bridge,Port,Interface,Flow Table,QoS,sFlow config
ovs-vswitch ovs daemon 用來控制 vswitch

ovs各元件

ovs-dpctl : 管理ovs datapath,大部分資訊都是透過 netlink 反應出
ovs-vsctl : 對 ovsdb 操作,bridge,interface 新增,刪除,查詢,操作指令比較具有語意,會幫你轉化成 ovsdb 看的懂的語法
ovs-ofctl : openflow switch 管理工具,可以操作與 openflow 相關的設定
ovs-appctl : ovs-vswithd 的管理工具,可以跟 ovs-vswitchd 程序溝通,ex:ofproto/trace 可用來追蹤封包flow
ovs-docker : 提供與 docker container 的連接

安裝 (on ubuntu 16.04)

sudo apt-get install openvswitch-switch

Command

新增一個Bridge

ovs-vsctl add-br br0 

將 interface 綁定 Bridge br0 並設定type=internel ,若此網卡存在則不需設定

ovs-vsctl add-port br0 interface -- set interface  interface type=internel

查看 switch 的狀態,

ovs-vsctl show 

新增Flow Entry

#若是沒有符合的條件,則丟棄封包
ovs-ofctl add-flow br0 "table=0,priority=0,actions=drop"

查詢Bridge Flow Entry

ovs-ofctl dump-flows br0

綁定container至ovs

#建立一個container
docker run -itd --name=c1 --network=none busybox 
#綁定至ovs 
ovs-docker add-port br0 t2  c2 --ipaddress=10.0.0.1/24  

查看 Bridge br0 轉發表

ovs-appctl fdb/show br0

查看 Bridge br0 [port] 的流量

ovs-ofctl dump-ports br0 [port]

查看 Log

ovsdb-tool show-log -m

參考資料
http://openvswitch.org/


上一篇
OpenFlow 協定介紹
下一篇
Mininet 網路拓樸模擬
系列文
基於雲端Iaas基礎平台OpenStack結合Kubernetes,BlockChain,Spark,SDN24

1 則留言

0
starcity1003
iT邦新手 4 級 ‧ 2018-04-07 19:14:48

這篇對我很有幫助,謝謝哦!

我要留言

立即登入留言