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查看刚刚下发的流表项