1. 解压安装OpenDayLight控制器
Java配置
解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本)
2. 启动并安装插件
3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器
python代码
from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class MyTopo(Topo): def __init__(self): # initilaize topology Topo.__init__(self) s=[] for i in range(1): sw = self.addSwitch('s{}'.format(i+1)) s.append(sw) count=1 for i in range(3): host = self.addHost('h{}'.format(count)) self.addLink(s[0],host) count += 1 topos = {'mytopo': (lambda: MyTopo())}
打开控制器UI
运行结果
4.在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复
在mininet中用links查询链路连接情况
ODL下发流表项
h2 ping h3 中断又恢复的截图
5. 借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。
打开postman,将ODL的preview里的url复制到地址栏,消息方式选PUT;IP为控制器所在的PC的IP;type选择Basic Auth ;用户名和密码是ODL的登录账号和密码都是admin
Body中将消息格式设置成json,上传方式设置为raw
将ODL的preview中的消息粘贴在文本框内,把流表项id改为2同时url后的flow id也要改为2,点击send后下发成功
发送成功后改为GET并send查看刚刚下发的流表项