[作业链接】(http://www.cnblogs.com/easteast/p/7989299.html)
1、安装floodlight
安装就花了挺久的时间,主要是使用ant编译的时候报错 本来是已经配置好了java1.8jdk的环境,结果是目录没有写入权限,导致报错,然后尝试用
sudo ant
报错好像说java_home不对,找了挺多办法,结果后面我把编译要生成目录的文件夹权限chown为了ty(ubuntu的账户就好了。
2、生成拓扑并连接控制器floodlight,利用控制器floodlight查看图形拓扑
生成拓扑结构代码
from mininet.topo import Topo
class MyTopo(Topo):
def __init__(self):
# initilaize topology
Topo.__init__(self)
# add hosts and switches
host1 = self.addHost('h1')
host2 = self.addHost('h2')
host3 = self.addHost('h3')
switch1 = self.addSwitch('s1')
switch2 = self.addSwitch('s2')
switch3 = self.addSwitch('s3')
switch4 = self.addSwitch('s4')
# add links
self.addLink(host1, switch2, 1, 1)
self.addLink(host2, switch3, 1, 1)
self.addLink(host3, switch4, 1, 1)
self.addLink(switch2, switch1, 2, 1)
self.addLink(switch3, switch1, 2, 2)
self.addLink(switch4, switch1, 2, 3)
topos = {'mytopo': (lambda: MyTopo())}
执行拓扑结构
sudo mn --custom /home/ty/下载/mininet/work2.py --topo mytopo --controller=remote,ip=10.0.2.15,port=6653 --switch ovsk,protocols=OpenFlow13
启动floodlight
java -jar target/floodlight.jar
3、利用字符界面下发流表,使得‘h1’和‘h2’ ping 不通
//
curl -X POST -d '{"src-ip":"10.0.0.1/32","dst-ip":"10.0.0.2/32","action":"deny"}' http://127.0.0.1:8080/wm/acl/rules/json
流表截图
4、利用字符界面下发流表,通过测试‘h1’和‘h3’的联通性,来验证openflow的hardtime机制
在上一题的基础上我直接使用命令
curl -X POST -d '{"switch":"00:00:00:00:00:00:00:01", "name":"flow-mod-1", "hard_timeout":"10","cookie":"0", "priority":"32768", "in_port":"1","active":"true", "actions":"drop"}' http://127.0.0.1:8080/wm/staticentrypusher/json