SDN第二次上机作业
1、安装floodlight
参考链接:http://www.sdnlab.com/19189.html
使用老师给的镜像,安装时选择错误,导致每次操作结果不会保存,floodlight安装了不下三次。。。不过按照教程没有问题。
2、生成拓扑并连接控制器floodlight,利用控制器floodlight查看图形拓扑
-
拓扑图形
-
脚本
from mininet.topo import Topo
class MyTopo(Topo):
def __init__(self):
#initilaize topology
Topo.__init__(self)
# add hosts and switches
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
s1 = self.addSwitch('s1')
s2 = self.addSwitch('s2')
s3 = self.addSwitch('s3')
s4 = self.addSwitch('s4')
# add links
self.addLink(s1,s2,1,1)
self.addLink(s1,s3,2,1)
self.addLink(s1,s4,3,1)
self.addLink(s2,h1,2,1)
self.addLink(s3,h2,2,1)
self.addLink(s4,h3,2,1)
topos = {'mytopo':(lambda:MyTopo())}
-
运行脚本
-
测试连通性
-
floodlight查看拓扑
-
遇见问题
不懂为什么多出来了不少主机,这里出错过几次,第一次将主机IP设为127.0.0.1,最后pingall的时候发现均不通
第二次改为主机IP,可能由于上次操作影响,导致只有h1,h2可以连通,关闭mininet,输入sudo mn -c后重试就可以了。
3、利用字符界面下发流表,使得‘h1’和‘h2’ ping 不通
参考链接:http://www.sdnlab.com/19394.html
-
做法:自我理解,按照自己的脚本,对于交换机S1,应该是对于1号端口进来,2号端口出去的数据丢弃掉,但是不会写,后面看了一下同学的博客,里面是针对MAC地址进行判断,将对应源MAC对应h1,目的MAC对应h2的丢弃掉(这里只是未将h2->h1丢弃)
-
通过Floodlight查看h1,h2MAC地址
-
流表
-
测试连通性
4、利用字符界面下发流表,通过测试‘h1’和‘h3’的联通性,来验证openflow的hardtime机制
-
初始连通性测试
-
流表
-
再次测试连通性