Floodlight+Mininet搭建OpenFlow(五):复杂网络

按照我的计划,接下来在这个平台上我应该做:

1 多个Switch(DataPath)的测试.

2 多个OpenFlow控制端controller的测试.

其中,2包括两点,第一是一个OpenFlow网络中可以有多个同一号的控制端不,比如,一个OpenFlow网络中同时有多个Floodlight存在(这一点是OpenFlow 1.2标准定义,但是我们在使用Floodlight中发现Floodlight会载入多controller模块,所以这个功能需要测试);第二点是,OpenFlow网络中允许不同款的控制端存在否,比如一个OpenFlow网络中同时有Floodlight和POX,他们之间遵循OpenFlow1.2标准多控制端的规定,整个网络依然正常,这也是SDN一个很有意思的问题.下面开始说说具体的实验吧.

开始前说一下,因为换了Arch Linux,所以搭建环境的时候折腾了一下,参见:

 

一 多Switch支持

Mininet可以通过python API来自定义创建拓扑,参考:

http://yuba.stanford.edu/foswiki/bin/view/OpenFlow/MininetWalkthrough

这个网络很简单:

host <— >switch — switch <— >host,两个switch连接controller.

sudo mn –custom ~/mininet/custom/topo-2sw-2host.py –topo mytopo –controller=<ip> –port=6633

发现网络时成功的.直接用dpctl看看两个交换机信息.

floodlight@localhost:~$ dpctl dump-flows tcp:127.0.0.1:6634
stats_reply (xid=0x7751f38d): flags=none type=1(flow)
floodlight@localhost:~$ dpctl show tcp:127.0.0.1:6634
features_reply (xid=0xc0c5bdb2): ver:0×1, dpid:2
n_tables:2, n_buffers:256
features: capabilities:0×87, actions:0xfff
1(s2-eth1): addr:ca:b0:fb:85:5c:b4, config: 0, state:0
current: 10GB-FD COPPER
2(s2-eth2): addr:fa:fe:f5:8a:3e:b9, config: 0, state:0
current: 10GB-FD COPPER
LOCAL(dp0): addr:00:23:20:c6:ae:b3, config: 0×1, state:0×1
get_config_reply (xid=0xbf5f86bb): miss_send_len=0

floodlight@localhost:~$ dpctl show tcp:127.0.0.1:6635
features_reply (xid=0x519cf8f0): ver:0×1, dpid:3
n_tables:2, n_buffers:256
features: capabilities:0×87, actions:0xfff
1(s3-eth1): addr:5a:0c:ec:f6:59:1a, config: 0, state:0
current: 10GB-FD COPPER
2(s3-eth2): addr:ee:78:dc:58:a6:69, config: 0, state:0
current: 10GB-FD COPPER
LOCAL(dp1): addr:00:23:20:ba:85:10, config: 0×1, state:0×1
get_config_reply (xid=0x6bd4786a): miss_send_len=0

注意,我在前文提到,dpctl的默认端口是6634,如果多个switch的话,那么端口依次累加,第二个switch就是6635了.

不知道啥原因,这次Floodlight居然能完美显示拓扑.如下图:

Floodlight+Mininet搭建OpenFlow(五):复杂网络_第1张图片

在看看其他信息:

还要试试的话,试试下面这个:

floodlight@localhost:~$ sudo mn –controller=remote –ip=192.168.10.103 –port=6633 –topo tree,depth=2,fanout=8

拓扑:

Floodlight+Mininet搭建OpenFlow(五):复杂网络_第2张图片

二 多Controller支持

这个想法是好的,可是我发现目前的环境,不能成功。我想要做到:

测试openflow网络中多个同一号的controller,比如多个floodlight,controller之间通过openflow1.2协议标准交互。

另外,在openflow网络中多个不同号的controller,比如同时存在NOX和floodlight,他们之间,如果遵循openflow协议标准的话,也是能够协作工作的。

那么,现在存在的问题是:

1 mininet里面对单一switch不能指定连接多个controller;

2 mininet里面不能为每一个switch指定不同的controller IP;

3 controllers之前如何交互和发现,还是一个问题。

没办法,关于floodlight在openflow网络的实验就暂时到这里了。

参考资料:

http://yuba.stanford.edu/foswiki/bin/view/OpenFlow/MininetSampleWorkflow

http://yuba.stanford.edu/foswiki/bin/view/OpenFlow/MininetWalkthrough

相关链接:

  1. Floodlight+Mininet搭建OpenFlow(一):环境搭建 :http://blog.csdn.net/zwto1/article/details/23280201
  2. Floodlight+Mininet搭建OpenFlow(二):协议分析:http://blog.csdn.net/zwto1/article/details/23282579
  3. Floodlight+Mininet搭建OpenFlow(三):Floodlight进阶:http://blog.csdn.net/zwto1/article/details/23432093
  4. Floodlight+Mininet搭建OpenFlow(四):流表操作:http://blog.csdn.net/zwto1/article/details/23432291

你可能感兴趣的:(OpenFlow五复杂网络)