博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OVS常用操作「转」
阅读量:4610 次
发布时间:2019-06-09

本文共 8065 字,大约阅读时间需要 26 分钟。

原文地址:http://www.cnblogs.com/puremans/p/6562392.html

OVS常用操作:

1.添加网桥:ovs-vsctl add-br 交换机名 

2.删除网桥:ovs-vsctl del-br 交换机名 
3.添加端口:ovs-vsctl add-port 交换机名 端口名(网卡名) 
4.删除端口:ovs-vsctl del-port 交换机名 端口名(网卡名) 
5.连接控制器:ovs-vsctl set-controller 交换机名 tcp:IP地址:端口号 
6.断开控制器:ovs-vsctl del-controller 交换机名 
7.列出所有网桥:ovs-vsctl list-br 
8.列出网桥中的所有端口:ovs-vsctl list-ports 交换机名 
9.列出所有挂接到网卡的网桥:ovs-vsctl port-to-br 端口名(网卡名) 
10.查看open vswitch的网络状态:ovs-vsctl show 
11.查看 Open vSwitch 中的端口信息(交换机对应的 dpid,以及每个端口的 OpenFlow 端口编号,端口名称,当前状态等等):ovs-ofctl show 交换机名 
12.修改dpid:ovs-vsctl set bridge 交换机名 other_config:datapath-id=新DPID 
13.修改端口号:ovs-vsctl set Interface 端口名 ofport_request=新端口号 
14.查看交换机中的所有 Table:ovs-ofctl dump-tables ovs-switch 
15.查看交换机中的所有流表项:ovs−ofctl dump−flows ovs-switch 
16.删除编号为 100 的端口上的所有流表项:ovs-ofctl del-flows ovs-switch “in_port=100” 
17.添加流表项(以“添加新的 OpenFlow 条目,修改从端口 p0 收到的数据包的源地址为 9.181.137.1”为例): 
ovs-ofctl add-flow ovs-switch “priority=1 idle_timeout=0,in_port=100,actions=mod_nw_src:9.181.137.1,normal” 
18.查看 OVS 的版本信息:ovs-appctl –version 
19.查看 OVS 支持的 OpenFlow 协议的版本:ovs-ofctl –version

match部分:

flow有很多syntax, 一半来说actions之前都是match的部分,常用的一般是

in_port: switch的端口dl_src:  源mac地址dl_dst: 目的mac地址 nw_src: 源IP nw_dst: 目的ip dl_type: 以太网协议类型 0x0806是arp packet 0x0800是ip packet nw_proto: 协议类型,需要和dl_type一起使用,比如dl_type是0x0800,nw_proto=1就表示icmp packet tp_src: tcp udp源端口 tp_dst: tcp udp目的端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
ip     Same as dl_type=0x0800.icmp    Same as dl_type=0x0800,nw_proto=1. tcp    Same as dl_type=0x0800,nw_proto=6. udp   Same as dl_type=0x0800,nw_proto=17. arp    Same as dl_type=0x0806. rarp   Same as dl_type=0x8035.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

actions:

output:port 

controller(key=value) 送到controller作为packet-in 消息,括号内的key value pair可以是: 
reason=reason ,reason 可以是action,no_match,invalid_ttl 
id=controller-id 默认是0,特殊的controller会有一个16位的id

mod_dl_src:mac      Sets the source Ethernet address to mac.mod_dl_dst:mac      Sets the destination Ethernet address to mac.mod_nw_src:ip      Sets the IPv4 source address to ip. mod_nw_dst:ip       Sets the IPv4 destination address to ip. mod_tp_src:port      Sets the TCP or UDP source port to port. mod_tp_dst:port     Sets the TCP or UDP destination port to port.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

完整设定:

查表

ovs-vsctl list bridge ovs-br

關於 Brdige 及 Port

新增 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設定 port 為 internal    ovs-vsctl set Interface eth0 type=internal

關於 Controller

設定 Controller    ovs-vsctl set-controller ovs-br tcp:1.2.3.4:6633設定 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

關於 STP (Spanning Tree Protocol)

開啟 STP    ovs-vsctl set bridge ovs-br stp_enable=true關閉 STP    ovs-vsctl set bridge ovs-br stp_enable=false查詢 STP 設定值    ovs-vsctl get bridge ovs-br stp_enable設定 Priority    ovs−vsctl set bridge br0 other_config:stp-priority=0x7800設定 Cost    ovs−vsctl set port eth0 other_config:stp-path-cost=10移除 STP 設定    ovs−vsctl clear bridge ovs-br other_config

關於 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 支援設定    ovs-vsctl clear bridge ovs-br protocols

關於 VLAN

設定 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設定 Vlan trunk    ovs-vsctl add-port ovs-br eth0 trunk=3,4,5,6設定已 add 的 port 為 access port, vlan id 9    ovs-vsctl set port eth0 tag=9ovs-ofctl add-flow 設定 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:3ovs-ofctl add-flow 拿掉 vlan tag    ovs-ofctl add-flow ovs1 in_port=3,dl_vlan=100,actions=strip_vlan,output:1    two_vlan exampleovs-ofctl add-flow pop-vlan    ovs-ofctl add-flow ovs-br in_port=3,dl_vlan=0xffff,actions=pop_vlan,output:1

關於 GRE Tunnel

設定 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

關於 Dump flows

Dumps OpenFlow flows 不含 hidden flows (常用)    ovs-ofctl dump-flows ovs-brDumps OpenFlow flows 包含 hidden flows    ovs-appctl bridge/dump-flows ovs-brDump 特定 bridge 的 datapath flows 不論任何 type    ovs-appctl dpif/dump-flows ovs-brDump 在 Linux kernel 裡的 datapath flow table (常用)    ovs-dpctl dump-flows [dp]Top like behavior for ovs-dpctl dump-flows    ovs-dpctl-top

XenServer 開啓 OpenvSwitch 方式

檢查開啟與否    service openvswitch status開啓    xe-switch-network-backend openvswitch關閉    xe-switch-network-backend bridge

關於 Log

查詢 log level list    ovs-appctl vlog/list設定 log level (以 stp 設定 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}

關於 Fallback

Controller connection: false 的時候, 會自動調成 legacy switch mode    ovs-vsctl set-fail-mode ovs-br standalone無論 Controller connection status 為何, 都必須通過 OpenFlow 來進行網路行為 (default)    ovs-vsctl set-fail-mode ovs-br secure移除    ovs-vsctl del-fail-mode ovs-br查詢    ovs-vsctl get-fail-mode ovs-br

關於 sFlow

查詢    ovs-vsctl list sflow新增    Set sFlow刪除    ovs-vsctl -- clear Bridge ovs-br sflow

關於 NetFlow

查詢    ovs-vsctl list netflow新增    Set NetFlow刪除    ovs-vsctl -- clear Bridge ovs-br netflow

設定 Out-of-band 和 in-band

查詢    ovs-vsctl get controller ovs-br connection-modeOut-of-band    ovs-vsctl set controller ovs-br connection-mode=out-of-bandIn-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

關於 ssl

查詢    ovs-vsctl get-ssl設定    ovs-vsctl set-ssl sc-privkey.pem sc-cert.pem cacert.pem    OpenvSwitch Lab 6$ TLS SSL刪除    ovs-vsctl del-ssl

關於 SPAN

詳細設定

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 # 關於 Table查 table ovs-ofctl dump-tables ovs-br

關於 Group Table

參考 hwchiu - Multipath routing with Group table at mininet

建立 Group id 及對應的 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, 詳細規格使用 Group Table    ovs-ofctl -O OpenFlow13 add-flow ovs-br in_port=4,actions=group:5566

關於 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=9VNI flow by flow    ovs-vsctl set interface vxlan type=vxlan option:remote_ip=140.113.215.200 option:key=flow ofport_request=9設定 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

關於 OVSDB Manager

參考 OVSDB Integration:Mininet OVSDB Tutorial

Active Listener 設定    ovs-vsctl set-manager tcp:1.2.3.4:6640Passive Listener 設定    ovs-vsctl set-manager ptcp:6640

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

其它

查詢 OpenvSwitch 版本    ovs-ofctl -V查詢下過的指令歷史記錄    ovsdb-tool show-log [-mmm]

 

 
 

转载于:https://www.cnblogs.com/hwy89289709/p/7344326.html

你可能感兴趣的文章
【PHP】Windows下配置用mail()发送邮件
查看>>
Nhibernate和EF的区别
查看>>
基于java spring框架开发部标1078视频监控平台精华文章索引
查看>>
人类简史
查看>>
java 设计模式学习
查看>>
【Python使用】使用pip安装卸载Python包(含离线安装Python包)未完成???
查看>>
一语道破项目管理知识体系五大过程组
查看>>
C# 备份、还原、拷贝远程文件夹
查看>>
在windows环境下运行compass文件出现的错误提示解决方案
查看>>
CSS常用样式--font
查看>>
恩如氏--蜗牛精华补水蚕丝面膜
查看>>
大工具-收藏
查看>>
codevs3027 线段覆盖 2
查看>>
markdown
查看>>
【leetcode】107-Binary Tree Level Order Traversal II
查看>>
Jquert data方法获取不到数据,显示为undefined。
查看>>
ssm项目中 数据库和资源的备份
查看>>
HDU5950【矩阵快速幂】
查看>>
在线C++编译器
查看>>
C#中各种serialization的比较
查看>>