Ryubook_1_switch_hub_部署执行
一、环境:
mininet、ovs、Ryu。
二、实验过程:
1、搭建拓扑:
执行sudo mn --topo single,3 --mac --switch ovsk --controller remote -x创建拓扑。
执行后会启动5个Xterm窗口分别对应3个主机、一个交换机和一个控制器。
首先看一下ovs的状态,在ovs的xterm中执行命令ovs-vsctl show和命令ovs-dpctl show。

设置Openflow的版本为1.3。

查看空流表。ovs-ofctl命令需要指定openflow的版本,默认为1.0。

2、执行switching hub:
执行命令:ryu-manager --verbose ryu.app.example_switch_13

此时,控制器连接到交换机并且已经handshake,添加Table-miss flow entry到流表,控制器处于等待Packet-in的状态。
查看Table-miss flow entry:

action指定为CONTROLLER,传输数据长度指定为65535(0xffff=OFPCML_NO_BUFFER)。
3、执行ping命令,查看操作:
首先在各host上执行:tcpdump -en -i hx-eth0。如host1:tcpdump -en -i h1-eth0。用于查看host上发送接收的数据包。

在mininet控制台执行:h1 ping -c1 h2。

首先,查看交换机的流表:ovs-ofctl -O openflow13 dump-flows s1

可以看到,除了Table-miss flow entry,有多了两条流表项:
1.接收端口(in_port):2,目的MAC(dl_dst):host1,actions:传输到端口1;
2.接收端口(in_port):1,目的MAC(dl_dst):host2,actions:传输到端口2;
第(1)条entry,使用了2次,因为host2的ARP reply和ICMP echo reply都能匹配到这个表项。
第(2)条entry,使用了1次,因为host1的ARP request是广播的,只有ICMP echo request都能匹配到这个表项。
然后,查看控制器:

第1个Packet-in由h1广播的ARP request引起,控制器学习h1的MAC地址,没有流表项下发,但是有Packet-out message发出。
第2个Packet-in由h2发往h1的ARP reply引起,此时下发流表项(前文中的第(1)条流表项)。
第3个Packet-in由h1发往h2的ICMP echo request引起,此时下发流表项(前文中的第(2)条流表项)。
当h2向h1发送ICMP echo reply时,能匹配上第(1)条流表项,因而不会引起Packet-in。
最后,查看每个host发送接收到的数据包:
h1:

h2:

h3:

host上发送接收的数据包信息很明白。
三、总结:
这个实验展示了实现Ryu app的基本步骤,以及通过OpenFlow使用简单的方法来控制OpenFlow switch。
Ryubook_1_switch_hub_部署执行的更多相关文章
- Solr学习笔记-在Tomcat上部署执行Solr
上一篇我们初识了Solr而且学习了Jetty的启动方式.查看了Solr的管理界面,这一篇我们来实如今Tomcat上部署执行Solr. 部署环境: window7 jdk1.6.0_14 Solr-4. ...
- Activiti Exploer工作流控制台使用指南!使用Activiti Explorer定义部署执行工作流
Activiti Explorer简介 Activiti Explorer: Activiti控制台,是一个web应用程序 从Activiti的官方网站下载Activiti的压缩zip文件时,Acti ...
- jenkins 自动化部署执行shell
# -*- coding:utf-8 _*-""" @author:Administrator @file: new_app_publish.py @time: 2018 ...
- 一些java的部署执行编译等命令
编译: javac 参数 -d 指定编译后文件的位置 java 执行java文件 java生成jar文件 java执行jar文件 java生成war文件 war包是一种将web程序捆绑到单个文件上的一 ...
- shell - 拉取代码部署执行
#!/bin/bash nodejs_path=/data/myserver/yihao01-node-js cd /data/myserver if [ -d "$nodejs_path& ...
- SpringBoot Jar应用Linux后台部署执行
nohup java -jar shop-h5.jar > log_h5.file 2>&1 &
- 可以部署在广域网执行QQ高仿版 GG2014 (源代码)
距上次GG V3.7版本号(可在广域网部署执行的QQ高仿版 -- GG叽叽V3.7.优化视频聊天.控制很多其它相关细节)的公布.已经有50天了,这50天对于GG来说.是一个重大的飞跃. 由于这段时 ...
- [官方软件] Easy Sysprep v4.3.29.602 【系统封装部署利器】(2016.01.22)--skyfree大神
[官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) Skyfree 发表于 2016-1-22 13:55:55 https://www.it ...
- 【2016-07-11】Qt远程部署失败,提示"没有那个文件或目录"的解决方法
首先明确一下,这里的部署失败与网络连接.ssh/scp/sftp等无关. 一般出现在删除了远端上的可执行文件,而本地程序未做明显改动时远程部署执行的时候. Qt应用程序输出中的提示信息如下: 究其原因 ...
随机推荐
- 连通图(Tarjan算法) 专题总结
一.题目类型: 1.有向图的强连通分量: POJ1236 Network of Schools HDU1269 迷宫城堡 2.割点 & 割边: UESTC - 900 方老师炸弹 UVA315 ...
- YTU 2572: 猜灯谜
2572: 猜灯谜 时间限制: 1 Sec 内存限制: 128 MB 提交: 154 解决: 91 题目描述 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每 ...
- 一个tomcat部署多个应用实例总结
项目组有好几个项目需要运行,之前项目少,一个tomcat对应一个项目还能应付,但现在项目多了,要是再一个tomcat对应一个项目的话,一方面看起来很业余,一方面也加大服务器的维护难度.所以现在需要对t ...
- Lightoj 1068(数位DP)
求一段区间中被k整除,各个位数相加之和被k整除的数的个数. 这不是重点,重点是k太大了,最大值有10000,所以不能直接开那么大的数组. 仔细分析一下可以发现,由于数最大是2的31次方(2147483 ...
- bzoj1951
CRT+LUCAS+费马小定理+拓展欧拉定理 幂指数太大了怎么办?欧拉定理,n太大了怎么办?上lucas,模数太大了怎么办?上crt.然后就好了,唯一注意的是要用拓展欧拉定理,n%phi(p)+phi ...
- Python安装、配置图文详解
原文地址:http://weixiaolu.iteye.com/blog/1617440 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 ...
- 【196】Dell 移动工作站系统安装方法
会出现找不到硬盘的情况,解决方法:安装系统的时候需要加载阵列卡驱动 下载阵列卡驱动,以 Dell T7610 为例根据安装系统进行选择,地址:http://zh.community.dell.com/ ...
- VScode相关
这就是我想要的 VSCode 插件! VS Code 快捷键(中英文对照版) visual studio code 配置vue开发环境 vscode 这样的注释怎么生成? 能让你开发效率翻倍的 VSC ...
- CI框架中一个类中调用另一个类中已经加载对象测试
controller.php <?php class CI_Controller { private static $instance; public function __construct( ...
- hibernate简单实现连接数据库,并实现数据的操作
1:创建实体类 package com.yinfu.entity; public class User { private int id; private String username; priva ...