您的位置:首页 > 运维架构

分析openvswitch ovs-vsctl 命令与ovsdb-server的交互数据

2017-04-26 00:00 573 查看
ovsdb-server与客户端通过json-rpc通信,参考

https://tools.ietf.org/html/rfc7047#section-1.1(The Open vSwitch Database Management Protocol)

使用strace分析ovs-vsctl 命令系统调用

strace ovs-vsctl list-br

部分输出内容如下,所以ovs-vsctl通过unix socker(/var/run/openvswitch/db.sock)与ovsdb-server通信

socket(AF_UNIX, SOCK_STREAM, 0)

connect(3, {sa_family=AF_UNIX, sun_path="/var/run/openvswitch/db.sock"}, 31) = 0

如何监控unix socket通信数据

没有找到 “通过tcpdump监控unix socket通信数据” 的资料。

下面介绍通过socat监控unix socket通信数据。

1. 启动socat

socat -t100 -v UNIX-LISTEN:/tmp/duplicatesocket,mode=777,reuseaddr,fork UNIX-CONNECT:/var/run/openvswitch/db.sock

2. 执行ovs-vsctl命令时,设置--db参数

ovs-vsctl --db unix:/tmp/duplicatesocket list-br

socat输出结果部分内容

> 2017/04/26 10:04:24.271932  length=56 from=0 to=55
{"id":0,"method":"get_schema","params":["Open_vSwitch"]}< 2017/04/26 10:04:24.273208  length=8192 from=0 to=8191
{"id":0,"result":{"cksum":"2211824403 22535","name":"Open_vSwitch","version":"7.12.1","tables":{"Controller":{"columns":{"connection_mode":{"type":{"min":0,"key":{"type":"string","enum":["set",["in-band","out-of-band"]]}}},"is_connected":{"ephemeral":true,"type":"boolean"},"local_gateway":{"type":{"min":0,"key":"string"}},"enable_async_messages":{"type":{"min":0,"key":"boolean"}},"external_ids":{"type":{"max":"unlimited","min":0,"key":"string","value":"string"}},"other_config":{"type":{"max":"unlimited","min":0,"key":"string","value":"string"}},"status":{"ephemeral":true,"type":{"max":"unlimited","min":0,"key":"string","value":"string"}},"local_netmask":{"type":{"min":0,"key":"string"}},"controller_burst_limit":{"type":{"min":0,"key":{"minInteger":25,"type":"integer"}}},"local_ip":{"type":{"min":0,"key":"string"}},"controller_rate_l


参考

http://www.humbug.in/2013/sniffing-unix-domain-sockets/(Sniffing Unix Domain Sockets)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息