OVS常用命令整理


Open vSwitch中有多個命令,分別有不同的作用,大致如下:

  • ovs-vsctl用於控制ovs db
  • ovs-ofctl用於管理OpenFlow switch 的 flow
  • ovs-dpctl用於管理ovs的datapath
  • ovs-appctl用於查詢和管理ovs daemon

1 控制管理類

1)查看網橋和端口:

ovs-vsctl show

2)創建一個網橋:

ovs-vsctl add-br br0

3)添加/刪除一個端口:

ovs-vsctl add-port br0 eth1ovs-vsctl del-port br0 eth1

4)設置/清除網橋的openflow協議版本:

ovs-vsctl set bridge br0 protocols=OpenFlow13ovs-vsctl clear bridge br0 protocols

5)查看某網橋當前流表:

ovs-ofctl dump-flows br0ovs-ofctl -O OpenFlow13 dump-flows br0ovs-appctl bridge/dump-flows br0

6)設置/刪除控制器:

ovs-vsctl set-controller br0 tcp:127.0.0.1:6653ovs-vsctl del-controller br0

7)查看接口統計:

ovs-ofctl dump-ports br0

2 流表項操作

1)添加普通流表項:

ovs-ofctl add-flow br0 in_port=1, actions=outport:2

2)按匹配項來刪除流表項:

ovs-ofctl del-flows br0 "in_port=1"

3)刪除全部流表項:

ovs-ofctl del-flows br0

3 指令動作

1)動作為從指定接口轉發出去:

ovs-ofctl add-flow br0 in_port=1,actions=output:2

2)動作為指定group(group id為已創建的group table):

ovs-ofctl add-flow br0 in_port=1,actions=group:1

3)動作為normal(轉為L2/L3處理流程):

ovs-ofctl add-flow br0 in_port=1,actions=normal

4)動作為flood(從所有物理接口轉發出去,除了入接口和已關閉flooding的接口):

ovs-ofctl add-flow br0 in_port=1,actions=flood

5)動作為all(從所有物理接口轉發出去,除了入接口):

ovs-ofctl add-flow br0 in_port=1,actions=all

6)動作為local(一般是轉發給本地網橋):

ovs-ofctl add-flow br0 in_port=1,actions=local

7)動作為in_port(從入接口轉發回去):

ovs-ofctl add-flow br0 in_port=1,actions=in_port

8)動作為controller(以packet-in消息上送給控制器):

ovs-ofctl add-flow br0 in_port=1,actions=controller

9)動作為drop(丟棄數據包操作):

ovs-ofctl add-flow br0 in_port=1,actions=drop

4 操作meter表

1)查看當前設備對meter的支持:

ovs-ofctl -O OpenFlow13 meter-features br0

2)查看meter表:

ovs-ofctl -O OpenFlow13 dump-meters br0

3)查看meter統計:

ovs-ofctl -O OpenFlow13 meter-stats br0

4)創建meter表

# 限速類型以kbps(kilobits per second)計算,超過20kb/s則丟棄
ovs-ofctl -O OpenFlow13 add-meter br0 meter=1,kbps,band=type=drop,rate=20
# 同上,增加burst size參數
ovs-ofctl -O OpenFlow13 add-meter br0 meter=2,kbps,burst,band=type=drop,rate=20,burst_size=256
# 同上,增加stats參數,對meter進行計數統計
ovs-ofctl -O OpenFlow13 add-meter br0 meter=3,kbps,burst,stats,band=type=drop,rate=20,burst_size=256
# 限速類型以pktps(packets per second)計算,超過1000pkt/s則丟棄
ovs-ofctl -O OpenFlow13 add-meter br0 meter=4,pktps,band=type=drop,rate=1000

5)刪除meter表

# 刪除全部meter表
ovs-ofctl -O OpenFlow13 del-meters br0
# 刪除meter id=1
ovs-ofctl -O OpenFlow13 del-meter br0 meter=1

6)創建流表:

ovs-ofctl -O OpenFlow13 add-flow br0 in_port=1,actions=meter:1,output:2

5 操作group表

1)查看當前設備對group的支持:ovs-ofctl -O OpenFlow13 dump-group-features br0

2)查看group表:ovs-ofctl -O OpenFlow13 dump-groups br0

3)創建group表

# 類型為all
ovs-ofctl -O OpenFlow13 add-group br0 group_id=1,type=all,bucket=output:1,bucket=output:2,bucket=output:3
# 類型為select
ovs-ofctl -O OpenFlow13 add-group br0 group_id=2,type=select,bucket=output:1,bucket=output:2,bucket=output:3
# 類型為select,指定hash方法(5元組,OpenFlow1.5+)
ovs-ofctl -O OpenFlow15 add-group br0 group_id=3,type=select,selection_method=hash,fields=ip_src,bucket=output:2,bucket=output:3

4)刪除group表:

ovs-ofctl -O OpenFlow13 del-groups br0 group_id=2

5)創建流表:

ovs-ofctl -O OpenFlow13 add-flow br0 in_port=1,actions=group:2

參考:https://blog.csdn.net/rocson001/article/details/73163041


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM