openvswitch

本文详细介绍Open vSwitch(OVS)的常见操作与管理命令,包括网桥与端口的增删改查、控制器连接与断开、查看网络状态及OpenFlow配置等,为网络虚拟化与SDN实践提供实用指南。

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

ovs-vsctl使用指南:

vos-vsctl命令格式:

usage: ovs-vsctl [OPTIONS] COMMAND [ARG...]

 

常见的OPTIONS有以下组成:

--db=DATABASE :指定连接的数据库,默认是unix:/var/run/openvswitch/db.sock--no-wait: 在使用时不等待ovs-vswitchd的重新配置--retry:不断尝试连接远端服务器--t,-timeout=SECS: 等待ovs-vswitchd的超时时间--dry-run: 尝试运行修修改的配置但是不提交到ovsdb-vswitch数据库--oneline:将打印出的命令一行一行的显示

-h,--help: 显示帮助信息

-V,--version:显示版本信息

 

常用的COMMAND有以下几类:

 

OpenvSwitch的维护命令:

init:初始化ovsdb-vswitch数据库

show:查看数据信息

emer-reset: 重新设置openvswitch的状态

 

OpenvSwitch对桥设备操作相关的命令:

add-br BRIDGE :添加一个桥设备

add-br BRIDGE PARENT VLAN:在PARENT中创建一个桥,并做vlan标记

del-br BRIDGE: 删除一个桥设备

list-br: 查看创建的桥设备

br-exists BRIDGE: 判断新创建的桥是否已经存在

br-to-vlan BRIDGE: 列出桥设备的所有的valn

br-to-parent BRIDGE: 列出当前桥的上一个桥设备

br-set-external-id BRIDGE KEY VALUE: 给桥添加额外的属性,方式为 key vllue格式

br-set-external-id BRIDGE KEY:撤销桥设备额外的信息

br-get-external-id BRIDGE KEY:列出桥设备额外的信息

br-get-external-id BRIDGE :以key-value格式列出桥设备的额外信息

 

OpenvSwitch对端口的操作命令:

list-ports BRIDGE: 列出指定桥设备上的端口

add-ports BRIDGE PORT :添加一个端口到桥设备,此端口可以事先不存在

add-bond BRIDGE PORT IFACE...: 对桥设备做多端口绑定

del-port [BRIDGE] PORT: 删除一个端口或者删除一个指定桥设备上的端口

port-to-br PORT:列出端口所在的桥设备

 

OpenvSwitch对接口操作的命令:

list-ifaces BRIDGE: 列出桥设备上的所有接口

iface-to-br IFACE: 列出接口所在的桥设备

 

OpenvSwitch的控制命令:

get-contorller BRIDGE: 获取桥设备的控制器

del-contorller BRIDGE: 删除桥设备的控制器

set-contorller BRIDGE TARGET...:给桥设备设置一个控制器

get-fail-mode BRIDGE: 显示桥设备错误的模式

del-fail-mode BRIDGE: 删除桥设备错误的模式

set-fail-mode BRIDGE MODE: 设置桥设备失败的模式为MODE

 

OpenvSwitch管理相关的命令:

get-manager: 列出openvswitch的管理者

del-manager:删除openvswitch的管理者

set-manager TARGET....:设置管理者列表为TARGET

 

OpenvSwitch安全相关的命令:

get-ssl:获取ssl的配置信息

del-ssl: 删除ssl的配置信息

set-ssl PRIV-KEY CERT CA-CERT: 配置ssl

 

OpenvSwitch交换相关的命令:

emer-rest: 重新设置未知交换机的状态

 

OpenvSwitch数据库操作相关命令:

listTBL [REC]: 列出TBL的资源记录信息(ovs-vsctl list port )

findTBL CONDITION....:查找相关的资源记录信息

getTBL REC COL[:KEY]:获取TBL的信息

setTBL REC COL[:KEY]=VALUE:设定TBL的额外属性(ovs-vsctl set Port br1 tag=2)

addTBL REC COL [KEY=]VALUE:添加一个[key=]value到TBL

remove TBL REC COL [KEY=]VALUE:删除TBL中的一个key值(ovs-vsctlremove Port br1 tag 2)

clearTBL REC COL: 清除指定TBL的资源记录信息

create TBL COL [:KEY]=VALUE:在TBL中创建一个资源记录信息

destroy TBL REC:销毁一个TBL的REC

wait-until TBL REC [COL[:KEY]=VALUE]:等待TBL资源记录配置完成

 

常用的ARG参数:

连接主数据库的方法:

tcp:IP:PORT: 指定连接远端数据库使用tcp协议,以及远端主数据库的ip地址跟端口

ssl:IP:PORT: 指定连接远端数据库使用ssl协议,以及远端主数据库的ip地址跟端口

unix:FILE:使用socket套接字连接主数据库

 

备用数据库的连接方法:

ptcp:IP:PORT: 指定连接远端数据库使用tcp协议,以及远端备用数据库的ip地址跟端口

pssl:IP:PORT: 指定连接远端数据库使用ssl协议,以及远端备用数据库的ip地址跟端口

punix:FILE:使用socket套接字连接备用数据库

 

PKI配置:

-p,--private-key=FILE: 指定私有秘钥的位置

-c,--certificate=FILE:指定证书的位置

-C,ca-cert=FILE:指定对端证书的

<think>好的,我需要回答用户关于Open vSwitch(OVS)的安装、配置及使用说明。首先,根据用户提供的引用内容,我需要整理相关的步骤和命令,并确保符合系统级指令的要求,比如正确使用LaTeX格式和生成相关问题。 首先,安装部分。用户提到了在Ubuntu/Kali上安装的命令,比如使用apt安装openvswitch-switch[^4]。需要明确写出安装步骤,包括更新系统和安装包。同时,引用中的注意事项,比如默认路径和SSL支持的问题[^1][^2],也要包含进去。 接下来是配置部分。用户提到了创建虚拟交换机、添加端口、设置Trunk等操作[^4][^3]。需要详细说明这些命令的使用方法,比如ovs-vsctl add-br、ovs-vsctl add-port等。Trunk端口的配置需要特别说明VLAN标签的设置。 然后是基本使用,包括查看交换机信息、端口状态以及删除交换机的命令。这部分需要简明扼要,列出常用命令和示例。 注意事项方面,需要强调默认路径的重要性,SSL支持的选项,以及权限问题[^2]。这些是用户可能遇到的问题,提前说明能帮助避免错误。 最后,生成相关问题。根据用户之前的问题,可能涉及高级配置、不同系统的差异、OVS与Docker/Kubernetes的集成,以及网络隔离方案等。这些问题应该覆盖用户可能进一步探索的方向。 在整理过程中,要确保所有数学表达式用$...$格式,独立公式用$$...$$,但当前内容中数学公式较少,可能主要集中在配置命令的参数部分,但用户提供的引用中没有涉及数学公式,所以可能不需要特别处理。同时,保持回答结构清晰,分步骤说明,并正确添加引用标识。</think>### Open vSwitch 安装配置及使用说明 #### 一、安装步骤 1. **更新系统包列表** ```bash sudo apt update -y ``` 2. **安装 Open vSwitch** ```bash sudo apt install -y openvswitch-switch # 默认安装路径为系统目录(如/usr/share) ``` - 若需启用 SSL 支持,需在编译时添加相关选项[^2];否则后续命令中需省略 `--private-key`、`--certificate` 等参数。 --- #### 二、基础配置 1. **创建虚拟交换机** ```bash sudo ovs-vsctl add-br br0 # 创建名为 br0 的虚拟交换机 ``` 2. **添加物理网卡到交换机** ```bash sudo ovs-vsctl add-port br0 eth0 # 将物理网卡 eth0 绑定到 br0 ``` 3. **配置 Trunk 端口(支持多 VLAN)** ```bash sudo ovs-vsctl set port eth0 trunks=10,20 # 允许 VLAN 10 和 20 通过 ``` 4. **设置 Access 端口(单 VLAN)** ```bash sudo ovs-vsctl set port eth1 vlan_mode=access # 设置 eth1 为 Access 模式 sudo ovs-vsctl set port eth1 tag=30 # 分配 VLAN 30 ``` --- #### 三、基本使用命令 | 功能 | 命令示例 | 说明 | |--------------------|----------------------------------|-------------------------------| | 查看交换机列表 | `ovs-vsctl show` | 显示所有交换机及端口信息 | | 查看端口状态 | `ovs-ofctl show br0` | 显示交换机 br0 的端口详情 | | 删除虚拟交换机 | `ovs-vsctl del-br br0` | 移除 br0 及其所有端口配置 | --- #### 四、注意事项 1. **路径问题** - 若手动编译 OVS,需确保脚本与工程目录同级[^1]。 2. **SSL 支持** - 若未编译 SSL,相关命令参数需省略。 3. **权限要求** - 所有 `ovs-vsctl` 命令需 `sudo` 权限。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值