您的位置:首页 > 其它

SDN 下用ODL实现QoS保障(4)-OVS与ODL交互

2017-11-08 19:12 411 查看

1.OVS与ODL之间的交互的两种协议

ODL连接OVS主要有两种协议:OpenFlow,OVSDB

Openflow方式下,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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: