1. 实验拓扑

2. 创建拓扑

from mininet.topo import Topo

class MyTopo(Topo):

    def __init__(self):

        # initilaize topology
Topo.__init__(self) # add hosts and switches
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3') s1 = self.addSwitch('s1') # add links
self.addLink(h1, s1, 1, 1)
self.addLink(h2, s1, 1, 2)
self.addLink(h3, s1, 1, 3) topos = {'mytopo': (lambda: MyTopo())}
  • 注意:如果OpenDayLight此前已经创建过拓扑,那么最好在DLUX界面中将相应交换机的流表清空,以免pingall不通



3. ODL DLUX下发流表实现hardtimeout

  • Yang UI>Opendaylight-inventory>config>nodes>table>flow
  • node/openflow:1 交换机编号
  • table/0 流表编号
  • flow/不超过1024,不冲突即可 流表项编号
  • GET为查询流表,下发流表要修改为PUT

    为了使h1 20s 内ping不通h3首先要知道h3和h1分别连接OVS的哪个端口,在mininet中用links查询链路连接情况

    h1连接s1的port1

    h3连接s1的port3



    由于连接上ODL默认ping通,所以下发策略使port1进来的目的IP为h3的数据包都drop掉就能ping不通(也可以反过来使port3进来的目的IP为h1的IP的数据包drop),同时设置hard_time为20s,则20s后策略失效。







    为了保证流表生效,把优先级设成最大,65535

4. 验证流表下发成功

5. 借助Postman调用ODL北向接口下发

http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/flow/1

{
"flow": [
{
"id": "1",
"match": {
"in-port": "1",
"ethernet-match": {
"ethernet-type": {
"type": "0x800"
}
},
"ipv4-destination": "10.0.0.3/32"
},
"instructions": {
"instruction": [
{
"order": "0",
"apply-actions": {
"action": [
{
"order": "0",
"drop-action": {}
}
]
}
}
]
},
"priority": "65535",
"hard-timeout": "20",
"table_id": "0"
}
]
}



使用get可以调用接口查看流表

一点心得:OpenDayLight自从Carbon版本之后,DLUX就不再开发了。通过实验过程,个人感觉在界面下发流表操作效率不高,最好还是编程通过调用北向接口下发,这样才适合更加复杂的软件定义网络。欢迎批评指正

OpenDayLight Beryllium版本 下发流表实现hardtimeout的更多相关文章

  1. 实验 6 :OpenDaylight 实验——OpenDaylight 及 Postman实现流表下发

    实验 6 :OpenDaylight 实验--OpenDaylight 及 Postman实现流表下发 一.实验目的 熟悉 Postman 的使用:熟悉如何使用 OpenDaylight 通过 Pos ...

  2. 实验 6:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发

    一.实验目的 熟悉 Postman 的使用;熟悉如何使用 OpenDaylight 通过 Postman 下发流表. 二.实验任务 流表有软超时和硬超时的概念,分别对应流表中的 idle_timeou ...

  3. 实验 6:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发

    一.实验目的 熟悉 Postman 的使用:熟悉如何使用 OpenDaylight 通过 Postman 下发流表. 二.实验任务 流表有软超时和硬超时的概念,分别对应流表中的 idle_timeou ...

  4. SDNLAB技术分享(四):利用ODL下发流表创建VxLAN网络

    邓晓涛,当前就职于江苏省未来网络创新研究院,是CDN团队的一名研发人员,主要从事SDN相关的研发相关工作.曾就职于三星电子于先行解决方案研发组任高级工程师.思科系统于云协作应用技术部(CCATG)任工 ...

  5. FAST:通过Floodlight控制器下发流表

    参考: Floodlight+Mininet搭建OpenFlow(四):流表操作 通过Floodlight控制器下发流表 下发流表的方式有两种: 1.借助Floodlight的北向API,利用curl ...

  6. Floodlight下发流表过程分析

    https://blog.csdn.net/vonzhoufz/article/details/32166445 当一个packet到达openflow交换机,会进行流表的匹配,如果没有找到相应的流表 ...

  7. ryu 下发流表配置

    资料链接:http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html 运行ryu进程: ryu-manager --ofp-tcp-listen-p ...

  8. onos控制器通过REST API下发流表

    onos控制器REST API地址:http://192.168.43.14:8181/onos/v1/docs/ stream书写格式: { "id": "675540 ...

  9. ryu的RESTAPI简介——我主要用于下发和查看流表

    一.Rest API简介 REST即表述性状态传递(RepreSentational State Transfer),是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性. 表 ...

随机推荐

  1. Html5+Mui前端框架,开发记录(二):提交不了数据?

    1.Mui 请求Webapi接口,返回所需要的数据(get,post) mui.ajax({ url: getAddress() + '/api/Qiliu/get?jsoncallback=?', ...

  2. C#通过地址获取省市区(基于百度地图API)

    最近公司有个需求,想通过地址获取对应的省市区,本来想直接通过对地址的截取,对于完整的地址还可以,不完整的就没法用了 所以本篇通过百度地图API来获取地址 第一步:申请ak密钥 登录百度地图开放平台,按 ...

  3. requests Use body.encode('utf-8') if you want to send it encoded in UTF-8

    基本环境 使用 requests 模块发送 post 请求,请求体包含中文报错 系统环境:centos7.3 python版本:python3.6.8 请求代码: // 得到中文 param_json ...

  4. win10下PLSQL Developer 连接ubuntu上安装的oracle 11g

    说明:过程记录的不是很相信,只记录基本步骤.并不适合想一步一步照做的同学. win10下需要的操作 1.微软官网下载instantclient,然后接到到本地一个文件夹,注意路径不要又空格,中文和括号 ...

  5. # JDK7+ MethodHandle

    简单例子 import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.i ...

  6. leetcode-101. 判断对称树 · Tree + 递归

    题面 判断给定二叉树是否对称. Note : empty tree is valid. 算法 1. 根节点判空,若空,则返回true;(空树对称) 2. 根节点不空,递归判断左右子树.如果左右孩子都空 ...

  7. leetcode-88. 合并两个有序数组 · Aaray

    题面 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 样例 1. 输入: nums1 = [1,2,3,0,0,0], m ...

  8. C语言字符串格式化输出

    %ms:将字符串全部输出,如果字符串长度小于m,在左边用空格将输出宽度补齐为m: %.ns:如果n大于字符串长度,将字符串全部输出,否则,输出前n个字符: %m.ns:如果n不大于m,输出指定字符串的 ...

  9. 【Intel 汇编】ELF文件

    ELF文件格式是一个开放标准,各种UNIX系统的可执行文件都采用ELF格式,它有三种不同的类型: 可重定位的目标文件(Relocatable,或者Object File) 可执行文件(Executab ...

  10. API接口文档中将Swagger文档转Word 文档

    一般的开发工作,尤其是API接口的开发工作,首先要有开发文档,接口说明文档 ok,后来开发完毕了 和页面联调,或者是和第三方联调的时候, 这个时候,SA systeam admin 就会开始直接让开发 ...