Ryu内置控制器性能测试模块

我们在使用控制器的时候,有时候会想知道Packet In的速率。借鉴于Ryu拓扑发现模块的设计思路,我们可以把测量Packet In速率也作为一个模块。测量Packet In速率算是测量控制器性能的一种方式,扩展一下,我们可以在这个模块里添加其他用于测量控制器性能的功能。这里我们参考全球SDN测试认证中心发布的白皮书[1],可以添加一些里面的功能。模块设计思路在ryu/ryu目录下创建packet_目录,里面包含如下核心文件:dump.py作为应用文件,将packet_in.py里的Packe »

RYU多控制器通信

随着SDN控制平面不断扩展,单一的控制器很难满足需求,这时候部署多个控制器是势在必行的,一旦部署了多控制器,如何使它们协同工作就成了亟待解决的问题。Ryu是基于Python的控制器,不像java类型的控制器一样带有集群功能,不过好在比java方便,本篇文章就介绍一下如何利用C/S架构进行多控制器之间的通信。设计原理因为控制器一旦运行,就要占用一个TCP端口,如果跟其他控制器直接通信,需要再占用其他端口,如果控制器数量很多,那么控制器全互联的代价很大,配置也很不方便。为了解决这个问题,我们设置一 »

man man 分类:Ryu,SDN 标签:none

Ryu利用组表实现组播

组播是现代网络中非常重要的组成部分,当我们需要发送数据给多台主机的时候,如果采用单播的方式,我们需要发送多个数据包,而采用广播又会使得网络中的每个终端都必须接收数据,所以组播应运而生,组播的特点就是组播源只需要发送一次数据包,而且只有一组特定的主机会接收数据包,不想接收的主机是收不到的。要利用Ryu实现组播,需要考虑以下几点:1.获取,管理组播组成员的信息。2.寻找组播源去往组播组成员的最佳路径。在Ryu里已经提供了用于管理组成员和寻路的库ryu/lib/igmplib.py本文将基于这个库来 »

man man 分类:Ryu 标签:none

Ryu代码解析-DNS欺骗

  软件定义网络利用控制器对网络的控制,实现一些传统网络中难以实现的功能,控制器在这个网络中扮演一个上帝的角色,上一篇文章里已经介绍了控制器可以实现代理应答,本次要介绍的是利用控制器和python来对数据包内容进行解析,实现DNS欺骗。原理解析  主机在进行域名解析的时候,先向DNS服务器发送DNS Request报文,而后DNS服务器回复一个Reply报文,主机接收此报文即可完成解析。既然控制器可以造出ICMP应答报文,也能造出DNS回复报文。 »

man man 分类:Ryu 标签:none

Ryu代码解析-代理响应和欺骗

  在SDN中最重要的就是控制器,控制器的代码决定了整个网络的特点,Ryu提供了很多协议的数据包代码,我们可以根据这些代码对网络中的数据包进行修改,达到我们想要的效果。  Ping是我们经常用到的一个命令,我们用它来检测网络连通性,如果收到了目标IP的应答消息,我们就认为Ping成功了。  据此我们可以编写一个程序,来实现主机不管ping什么地址,我们都可以给它应答。  下面先放代码:import »

man man 分类:Ryu 标签:none