SDN 下用ODL实现QoS保障(4)-OVS与ODL交互
2017-11-08 19:12
411 查看
1.OVS与ODL之间的交互的两种协议
ODL连接OVS主要有两种协议:OpenFlow,OVSDBOpenflow方式下,ODL作为OVS的controller,来给OVS下发流表。OVSDB方式下,ODL作为OVS的manager,用来配置OVS,包括创建bridge和port等。在生产环境中,这两中协议一般配合使用。Ovsdb-server服务处理OVSDB协议,ovs-vswitchd服务处OpenFlow协议。
摘自 SDNLAB-基于OpenDaylight和OVSDB搭建VxLAN网络
2.OpenFlow协议
在 SDN 下用ODL实现QoS保障(2)-创建网络拓扑这篇文章里面,ODL连接OVS使用的就是OpenFlow1.3版本的协议。因此,OVS 与 ODL已经通过OpenFlow协议连接在一起。
下面就是探索如何把OVS与ODL通过OVSDB协议连接起来。
3.OVSDB协议介绍
这个协议主要是用来配置OVS使用。举个例子,在实现QoS的时候,往往会用到给交换机端口下队列这种情况,在仅仅依靠OpenFlow协议无法实现上述功能,但OVSDB协议对此具有良好的支持,因此,OVSDB协议是OpenFlow1.3协议的良好补充。因此这两种协议经常在一起使用。4.ODL与OVS通过OVSDB协议连接
ODL与OVS的连接共分为两种方式,主动连接与被动连接。在介绍这两种连接方式之前,回想一下,在第一篇博客,我们在安装ODL组件的时候,可以看到我们可以看到,我们已经安装了用来支持OVSDB相关的组件了。
在安装OVS相关的组件之后,ODL系统在启动的时候会监听主机的6640端口,这就是用来支持OVSDB的端口。
如果你的主机的这个端口未开放的话,重新安装一下ODL组件就行。
4.1 主动连接
主动连接就是OVS主动连接到作为manager的ODL服务器。连接方式很简单,在系统的命令行下输入 ovs-vsctl set-manager tcp:127.0.0.1:6640
因为在我的实验环境下,OVS 与 ODL处于同一个主机里面,所以直接填写了本地环回地址,否则这里面的IP地址部分应该填写ODL所在的主机的IP地址,切记!
此时,在ODL所在主机里面访问:
http://127.0.0.1:8181/restconf/operational/network-topology:network-topology/topology/ovsdb:1
应该出现类似于这样的页面:
4.2 被动连接
顾名思义,被动连接跟主动连接相反,是由ODL服务器主动连接到OVS服务器,这时OVS是被动等待连接的,那么就出现了一个问题,ODL服务器怎么知道OVS服务器在哪?设置OVS为被动连接:sudo ovs-vsctl set-manager ptcp:6641
这时候端口为什么要设置成6641呢,不能设置成6640,因为我们的OVS与ODL搭建在了同一个主机里面了,主机端口6640被ODL占用了,否则正常情况下还是得设置成6640的。
接下来我们要告诉ODL关于OVS的相关信息,就是OVS的IP地址与端口信息,这样ODL就能连上OVS了。
在这里我们要借助一个工具-psotman,下载地址如下,我打算直接在Ubuntu里面使用,因此下载Linux版本。
安装包下回来,解压后直接用就行了。
发送以下请求使得ODL去连接OVS
URL=http://127.0.0.1:8181/restconf/config/network-topology:network-topology/topology/ovsdb:1/
Action=POST
Content =
{ "network-topology:node":[ { "node-id": "ovsdb://127.0.0.1:6641", "connection-info": { "ovsdb:remote-port": 6641, "ovsdb:remote-ip": "127.0.0.1" } } ] }
要怎么发送上面这个请求呢?
设置请求方式以及URL设置认证方式
设置Body
请求发送完成后,在Ubuntu命令行输入 ovs-vsctl show,应该看到如下内容:
postman发送如下请求
URL=http://127.0.0.1:8181/restconf/operational/network-topology:network-topology/topology/ovsdb:1
Action=GET
应该看到如下结果:
4.3 总结
可以看到还是主动模式简单一点,接下来的实验在主动模式下开展。4.4 一些补充
如果你要删除OVS的manager,在系统命令行下输入命令 ovs-vsctl del-manager相关文章推荐
- SDN 下用ODL实现QoS保障(3)-OVS相关命令介绍
- SDN 下用ODL实现QoS保障(2)-创建网络拓扑
- SDN 下用ODL实现QoS保障(6)-基于Java获取拓扑的封装
- SDN 下用ODL实现QoS保障(5)-获取拓扑
- SDN 下用ODL实现QoS保障(1)-环境搭建
- 使用expect实现shell自动交互
- Android中使用开源框架EventBus3.0实现Fragment之间的通信交互
- VC与JavaScript交互(一) ———— 如何实现
- web前端——ajax提交后台controller实现前端后台交互(3) 传多个参数 ,后台controller接收处理
- 如何正确实现PHP与Javascript交互
- Java 中使用rhno引擎,运行JavaScript脚本,实现变量的交互、引入、传递
- 802.11基本传输方式-信道竞争机制及QoS的实现机制
- 关于如何用jquery的ajax来实现数据的交互
- Android 利用WebViewJavascriptBridge 实现js和java的交互(一)
- Spring MVC+Maven 实现同一项目的前端和后台交互
- 实现和IE浏览器交互的几种方法的介绍(一)
- 关于http和serverlet实现服务器和客户端的交互
- 利用expect命令实现Shell自动化交互的方法详解
- 用Pexpect与SSH交互(实现了参数化输入以及命令行shell交互的形式)