通过ovsdb向交换机上下发配置,有相关的api文档么,我想配置端口以untagged模式加入vsi,但是找不到使用socket发送配置的命令。
(0)
最佳答案
Open vSwitch (OVS)是一个开源的虚拟交换机,ovsdb是OVS的数据库管理协议,用于管理OVS的配置和状态信息。通过ovsdb可以向交换机上下发配置,包括端口的untagged模式加入VSI。
要使用ovsdb向交换机上下发配置,需要使用ovsdb的API。ovsdb的API支持多种编程语言,如C、Python、Java等。以下是使用Python实现向交换机下发配置的示例代码:
import json
import socket
# 配置信息
cOnfig= {
"op": "update",
"table": "Port",
"where": [["name", "==", "eth0"]],
"row": {"tag": ["vlan10"], "vlan_mode": "access"}
}
# ovsdb服务器地址和端口
host = "127.0.0.1"
port = 6640
# 创建socket连接
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
# 发送配置信息
request = {"method": "transact", "params": ["Open_vSwitch", json.dumps([config])]}
s.sendall(json.dumps(request).encode())
# 接收响应信息
respOnse= s.recv(1024)
print(response.decode())
# 关闭socket连接
s.close()
上述代码中,首先定义了要下发的端口配置信息(这里以eth0端口为例),包括操作类型、表名、匹配条件、配置内容等。然后指定ovsdb服务器的地址和端口,创建socket连接,将配置信息通过socket发送给ovsdb服务器,接收服务器返回的响应信息并打印,最后关闭socket连接。
需要注意的是,ovsdb的API比较复杂,需要了解ovsdb的数据模型和操作语义。建议先学习ovsdb的基本概念和使用方法,再尝试使用API向交换机下发配置
(0)
非常感谢,我大概理解了要传递的参数和传递的方式,可是对H3c交换机,我通过{"method":"list_dbs", "params":[], "id": 0} 发现只有一个db:hardware_vtep db;这个db里面select到的数据没有端口tag配置相关的信息(access /trunk),可能需要相关的API文档说明哪个字段的含义
交换机没有api
(0)
嗯是的, 我参考openstack的l2_gw,它通过socket可以在配置交换机上的vxlan,改的是ovsdb的内容。我但是只能打印它改变的表项,其他命令不知道怎么修改,比如 xconnect vsi vtepxxx access-mode ethernet
嗯是的, 我参考openstack的l2_gw,它通过socket可以在配置交换机上的vxlan,改的是ovsdb的内容。我但是只能打印它改变的表项,其他命令不知道怎么修改,比如 xconnect vsi vtepxxx access-mode ethernet
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
非常感谢,我大概理解了要传递的参数和传递的方式,可是对H3c交换机,我通过{"method":"list_dbs", "params":[], "id": 0} 发现只有一个db:hardware_vtep db;这个db里面select到的数据没有端口tag配置相关的信息(access /trunk),可能需要相关的API文档说明哪个字段的含义