SDN开发环境搭建之ryu+ovs+mininet

首先简单解释本文的几个名词

第一个SDN,就是软件定义的网络,通过控制层与数据转发层分析,实现可编程的网络

ryu,这个是日本人写的一个sdn控制器,这个翻译是龙的意思,大概和网络流量flow管理有某种关系

ovs是一个软交换机,支持openflow协议

mininet是一个网络模拟器,屌丝玩SDN没有那么多机器,那么mininet是个很好的模拟器,功能很强大

ok

下面开始环境搭建

1.ovs安装

如果ubuntu直接apt-get install安装即可

centos如如果想安装最新版,源码安装是个好办法

	# 编译openvswitch源码
	yum install -y openssl-devel rpm-build
	wget http://openvswitch.org/releases/openvswitch-2.5.0.tar.gz
	mkdir -p ~/rpmbuild/SOURCES
	cp openvswitch-2.5.0.tar.gz ~/rpmbuild/SOURCES/
	tar xzf openvswitch-2.5.0.tar.gz
	rpmbuild -bb --without check openvswitch-2.5.0/rhel/openvswitch.spec
	# 安装生成的软件包
	yum localinstall -y rpmbuild/RPMS/x86_64/openvswitch-2.5.0-1.x86_64.rpm
	/etc/init.d/openvswitch start

2.mininet安装

sudo apt-get install mininet

3.安装ryu,

你可以通过pip install直接安装ryu  (pip install  ryu)

也可以通过源码安装,python setup.py install


当一切都安装好了之后调试环境

启动mn

sudo mn --controller remote,ip=192.168.56.102,port=6633
启动mn创建默认拓扑,并把sdn控制器指向自己ryu,这里我们测试OpenFlow13

设置openflow协议,默认是openflow11,我们用现在最流行的13

sudo ovs-vsctl set Bridge s1 protocols=OpenFlow13


最后启动我们的app,如下图所示:

 sudo ryu-manager --verbose simple_switch_13.py 



此时,交换机上面还没有任何流表

 sudo ovs-ofctl -O Openflow13 dump-flows s1

但当我们在网络中发包以后sdn控制器就开始下发流表了

如下图所示:

此时流表如下所示:


这个流表的内容很简单,就不赘述,再看一下app里面记录的日志


从日志可以看出,交换机第一次不知如何操作的时候就发送packet-in询问ryu控制器。至此sdn的开发环境搭建完成。




你可能感兴趣的:(网络)