2019 SDN上机第4次作业
作业链接
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本)
OpenDayLight是java实现的,因此需要先配置java环境,参考链接
OpenDaylight官网
OpenDaylight Beryllium版本下载地址,本次实验请安装下面这个版本↓↓↓↓↓
2. 启动并安装插件
安装插件
Beryllium版本的插件安装
feature:install odl-restconf
feature:install odl-l2switch-switch-ui
feature:install odl-openflowplugin-all
feature:install odl-mdsal-apidocs
feature:install odl-dlux-core
feature:install odl-dlux-node
feature:install odl-dlux-yangui
3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器
代码:
class MyTopo( Topo ):
"Simple topology example."
def __init__( self ):
# Initialize topology
Topo.__init__( self )
sw1 = self.addSwitch('s1')
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
self.addLink(h1,sw1,1,1)
self.addLink(h2,sw1,1,2)
self.addLink(h3,sw1,1,3)
topos = { 'mytopo': ( lambda: MyTopo() ) }
保存为sdn4.py控制台运行:
sudo mn --custom ./sdn4.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
注意事项:
新建的py脚本文件权限要改为可执行
要求提交控制器端的拓扑图
需要在CLI中先pingall
拓扑图:
4. 在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复
ODL具体设置:
- get要改成put,node/openflow:1,table/0,flow/不超过1024,flow id为1,in-port为2,type为0x0800(2048),目的地址为10.0.0.3/32
instruction list中order为0,action list中order为0
hard-timeout为20 priority为20
timeout效果图:
5. 借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。
Preview:
下载并解压安装Postman