OVSDB模式:本模式下网络管理员被赋予极大权力,做为OVSDB管理员,可以编制一个OVSDB服务器驻留程序,它可以在vSwtich文件系统中保存一个永久性的文件。
网络项目管理员可以编制一个OVSDB的流程控制图,它可以实现在OVS上的配置。这是在运用OpenFlow协议和 ovs-vswitchd进程来独立控制平台并实例化。
OVSDB监测方法:OVSDB规范中有很多种方法。总有一天我们将会涉及到其中的某些检测方法。有一个检测方法的原理是将推出请求表和列,并且从OVSDB返回值中返回相关的配置。
在你发送了初始检测要求之后,OVSDB将会在开放的通道以注释的形式发送返回值给你。回复的键值是“new”和“old”。这意味着作为管理者的你现在需要更新你对这个网络元素的缓存配置。这对保持网络良好状态正常运行是至关重要的,当涉及实时显示网络状态和估算元素时更是让人惊异。
1、 测试拓扑结构
以下是由Mininet创建的一个简单的拓扑图,如图14:
图 14 实验拓扑图
在mininet CLI中,只需要Open vSwitch启用远程管理功能。以下提供两种选择方法:
被动侦听管理模式:控制器使用一个连接服务(ovs-vsctl客户端)监听指定端口。
mininet@mininet-vm:/\>sudoovs-vsctl set-manager ptcp:6640
mininet@mininet-vm:/\>sudoovs-vsctl show
OVS客户端显示如图15所示:
图 15OVS客户端显示
活跃管理模式:在一个活跃的管理控制器上设置一个OVS元素,控制器负责监听功能。
mininet@mininet-vm:/\>sudo ovs-vsctl set-manager tcp:192.168.254.128:6640
mininet@mininet-vm:/\>sudo ovs-vsctl show
OVS客户端将显示如图16所示:
图 16OVS客户端显示
在这两种场景中,发送者为了建立一个持久的连接而发送回应请求。此连接每5秒刷新一次,如果请求超时则断开连接。OVS开关将每5秒使用回应请求初始化OVSDB初始化管理通道。
2、 OVS实验测试
Mininet拓扑包含以下部分:
其拓扑使用脱机开关、数据平台、OVS网桥构建。OVS补丁端口和虚拟以太网端口用于数据平台互连。
运行主机。
开始运转两台交换机和两台主机。
mininet@mininet-vm:/\>sudomn --controller=remote,ip=127.0.0.1 --topo=linear,2
mn用于启动Mininet,--topo用于指定openflow网络拓扑,MiniNet实现了四种openflow网络拓扑:tree,single,linear和minimal。
这时,应该可以看到拓扑图了。
拓扑图如图17所示:
图 17 网络拓扑图
使用电脑浏览器打开http://10.20.200.211:8080,单击“添加网关IP地址”按钮,添加配置“10.0.0.254/24”如图18。
图 18 网关配置
定义网关代理地址后,可以在主机1和主机2之间使用ping指令进行测试。
Mininet>pingall
结果如图19所示:
图 19 主机ping指令测试
我们通过OpenDaylight OVSDB插件有2种选择方式发送管理命令:1、首选使用REST-API 2、仅供调试/故障排除:内部OSGi命令。
连接到OVSDB-SERVER
REST :
sudoput http://10.20.200.211:8080/controller/nb/v2/connectionmanager/nod e/MINI1/address/127.0.0.1/port/6640/
OSGi cli:
osgi>ovsconnect MINI1 127.0.0.1 6640
理论结果为:
connecting to ovsdb server : 127.0.0.1:6640...
Node Name: OVS|MINI1
实验实际结果截图如图20:
图 20 实验结果图
观察OVSDB表中的网桥
REST中输入:
sudoGET http://localhost: 8080/controller/nb/v2/connectionnmanager /bridge/OVS /MINI1
或在OSGiCLI输入:
osgi>getBridgeDomains "OVS|MINI1"
理论结果为
Existing Bridges: [s1, s2, br1]
实际结果如图21:
图 21 实验结果图
删除S1和S2的连接
把交换机S1和S2之间的连接切断,方案如图22所示:
图 22 连接切断实验方案
在REST接口输入:
sudoDELETE http://localhost:8080/controller/nb /v2/networkconfig/ bridgedomain/port/OVS/MINI1/s1/s1-eth2
或使用OSGicli:使用CLI的删除端口调用OVSDB的ConfigurationService.java文件。
deletePort"OVS|MINI1" s1 s1-eth2
deletePort"OVS|MINI1" s2 s2-eth2
deletePort"OVS|MINI1" s1 s1-eth1
deletePort"OVS|MINI1" s2 s2-eth1
OVSDB客户端输出(ovs-vsctl显示)如图23:
图 23OVSDB客户端输出显示
现在尝试用主机1PING主机2,这将会失败。因为该链接已经被拆除。
mininet>pingpair h1 h2
理论结果如下:
h1 ->
X
h2 -> X
Results: 100% dropped (2/2 lost)
实验所得结果截图如图24:
图 24 链接拆除实验结果
接下来添加端口到S1和S2
addPort"OVS|MINI1" s1 s1-eth1
addPort"OVS|MINI1" s2 s2-eth1
addPort"OVS|MINI1" s1 s1-eth2
addPort"OVS|MINI1" s2 s2-eth2
然后再次试图PING所有主机:
mininet>pingall
理论结果如下:
Ping: testing ping reachability
h1 -> h2
h2 -> h1
Results: 0% dropped (0/2 lost)
实验所得结果截图如图25:
图 25 链接添加实验结果
(一) 实验结果
经实验证明,可用OVSDB服务完成物理交换机的连接、转发、控制路由等功能。删除S1和S2的虚拟连接后,h1和h2无法ping通,丢包率为100%。而当S1和S2的虚拟连接重新建立时,ping h1和h2时,丢包为0%,链路重新ping通。
OVS是用软件形式实现功能的虚拟交换机,当前可以和主流的KVM、Xen等多种虚拟化平台相结合,从而提供灵活多变的网络互连功能。经实验说明,虽然是软件定义的虚拟交换机,但是其工作原理与实际物理的交换机相类似。
OVSDB是作为管理Open vSwitch数据库的管理协议引入到OpenDaylight项目开发中,并在项目开发和研究过程中发挥重要作用。其对Open vSwitch数据库和OpenFlow功能插件的支持,使其成为OpenDaylight中不可或缺的重要一环。对未来SDN的全面功能实现和网络新格局的诞生提供技术和应用支持。