SDN上机第四次作业
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本)


安装ODL后安装插件


2.3用Python脚本搭建如下拓扑,连接OpenDayLight控制器
拓扑如图:

Python代码:
from mininet.topo import Topo
class Mytopo(Topo):
def __init__(self):
Topo.__init__(self)
sw=self.addSwitch('s1')
count=1
for i in range(3):
host = self.addHost('h{}'.format(count))
self.addLink(host,sw,1,count)
count = count + 1
topos = {'mytopo': (lambda:Mytopo())}

搭建拓扑后输入pingall检测连通性,同时在控制器端查看拓扑图:



3.在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复
输入links,查看端口连通情况,可以看到h2连接交换机的2号端口

在Yang UI界面输入node、table和flow的id,进入端口设置为2,ethernet-type设置为0x0800,设置ipv4-march中的源地址为10.0.0.2/32,目标地址为10.0.0.3/32



instruction与action的order设置为0

时间延迟设置为20s,table的id设置为0,因为没有下发过其它流表所以优先级暂时不设置
开始h2 ping h3后下发流表,查看连通断开与恢复的情况,可以看到第4秒开始,中断了20秒,然后才恢复通讯


4.借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表
在DLUX界面中点击预览,复制代码
关闭DLUX界面,但保留ODL开启,打开Postman,输入账号密码授权,再写入URL与代码后,实现调用ODL接口


预览如下:
{
"flow": [
{
"id": "1",
"match": {
"in-port": "2",
"ethernet-match": {
"ethernet-type": {
"type": "2048"
}
},
"ipv4-destination": "10.0.0.3/32"
},
"instructions": {
"instruction": [
{
"order": "0",
"apply-actions": {
"action": [
{
"order": "0",
"drop-action": {}
}
]
}
}
]
},
"hard-timeout": "20",
"table_id": "0"
}
]
}
再次开始h2 ping h3 ,Postman下发流表,查看连通断开与恢复的情况,可以看到第5秒开始,中断了20秒,然后才恢复通讯

SDN上机第四次作业的更多相关文章
- 2019 SDN上机第四次作业
2019 SDN上机第4次作业 1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 修改环境变量 2. 启动并安装插件 3. 用Python脚本搭建如下拓扑,连接O ...
- 2019 SDN上机第7次作业
2019 SDN上机第7 次作业 basic补充`/* -- P4_16 -- */ include <core.p4> include <v1model.p4> const ...
- 2019 SDN上机第6次作业
2019 SDN上机第6次作业 1.实验拓扑 (1)实验拓扑 (2)使用Python脚本完成拓扑搭建 from mininet.topo import Topo from mininet.net im ...
- 2019 SDN上机第5次作业
2019 SDN上机第5次作业 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 答:官方教程实现了一 ...
- 2019 SDN上机第三次作业
2019 SDN上机第三次作业 实验一 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 ...
- SDN上机第五次作业
2019 SDN上机第五次作业 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1.1描述官方教程实现了一个什么样的交换机功能? 答:官方教程实 ...
- 2019 SDN上机第1次作业
一.安装轻量级网络仿真工具Mininet 克隆github上的Mininet源 git clone https://github.com/mininet/mininet 选择默认全部安装 cd min ...
- 2019 SDN上机第六次作业
1.实验拓扑 (1)实验拓扑 (2)使用python脚本完成拓扑搭建 from mininet.topo import Topo class Mytopo(Topo): def __init__(se ...
- 2019 SDN上机第五次作业
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 实现将接收到的数据包发送到所有端口 控制器设定交换机 ...
随机推荐
- PS利用蒙版抠图
扣图除了用锁套工具外,用蒙版时一个比较快的方法. 前期准备 首先准备一个PS CS6和一个神仙姐姐,一定要先Ctrl+J复制一份图层(不然待会神仙姐姐就找不到了). 使用色阶及反相获取轮廓 使用色阶使 ...
- MySQL主从复制什么原因会造成不一致,如何预防及解决?
一.导致主从不一致的原因主要有: 人为原因导致从库与主库数据不一致(从库写入) 主从复制过程中,主库异常宕机 设置了ignore/do/rewrite等replication等规则 binlog非ro ...
- vue.js下移动端绑定click事件失效,pc端正常的问题
原因可能是 我在项目中使用到了 better-scroll,默认它会阻止 touch 事件.所以在配置中需要加上 click: true 即可. 例如: mounted () { this.scrol ...
- angular 升级到angular8 以及报错信息解决
1.升级全局angular-cli npm install -g @angular/cli@latest 2.升级项目内 angular-cli (在需要升级的项目中运行) npm i @angula ...
- PostgreSQL分区表实现——pg_pathman安装、配置
近日由于系统运行时间太长,数据库库表中的数据也是越来越多,为了缩短库表的操作时间,所以对数据库中的部分库表进行分区的操作. 通过研究,决定采用pg_pathman插件对库表进行分区操作.pg_path ...
- Linux命令——blkid
简介 blkid用于查看块设备UUID.Label.挂载.文件系统类型等信息 选项参数 无参数——显示所有已挂载分区信息 查看特定分区 -s:指定输出信息(UUID.TYPE.LABEL.PTTYPE ...
- Windows Cmd 命令管理服务
今天在Windows 干净环境上安装软件过程中,安装完成后,发现部署在IIS 上的网站无法使用,提示 "您提交的参数有误!,请重新提交" 纯净的windows 7 x64位环境, ...
- Linux一些服务的启动命令
http:服务service httpd start 启动 service httpd restart 重新启动 service httpd stop 停止服务 启动ssh服务 # /etc/init ...
- lock in share mode 和 select for update
lock in share mode 和 select for update 2018年07月11日 01:57:58 道不虚行只在人 阅读数 146 版权声明:欢迎转载,请注明出处 https ...
- An exception has occurred, use %tb to see the full traceback.----parser.parse_args()报错
一.报错: 原因: 由于在jupyter notebook中,args不为空. 二.问题解决 改成args = parser.parse_args(args=[])