SDN2017 第三次实验作业
实验目的

在给定如上实验拓扑情况下,用vlan得到下列虚拟网段
- h1--h4互通
- h2--h5互通
- h3--h6互通
- 其余主机间无法通信
实验步骤
1. 创建拓扑
#! /usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController,CPULimitedHost
from mininet.link import TCLink
class MyTopo(Topo):
def __init__(self):
Topo.__init__(self)
# add switch
sw1 = self.addSwitch('sw1')
sw2 = self.addSwitch('sw2')
# add host
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
h4 = self.addHost('h4')
h5 = self.addHost('h5')
h6 = self.addHost('h6')
# add link
self.addLink(sw1, h1, 1, 1)
self.addLink(sw1, h2, 2, 1)
self.addLink(sw1, h3, 3, 1)
self.addLink(sw2, h4, 1, 1)
self.addLink(sw2, h5, 2, 1)
self.addLink(sw2, h6, 3, 1)
self.addLink(sw1, sw2, 4, 4)
topos = { 'mytopo': ( lambda: MyTopo() ) }
截图如下

2.利用OVS命令下发流表,实现VLAN功能
参考链接:http://blog.csdn.net/rocson001/article/details/73163041
- switch1
sudo ovs-ofctl -O OpenFlow13 add-flow sw1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow sw1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow sw1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow sw1 priority=1,dl_vlan=0,actions=pop_vlan,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow sw1 priority=1,dl_vlan=1,actions=pop_vlan,output:2
sudo ovs-ofctl -O OpenFlow13 add-flow sw1 priority=1,dl_vlan=2,actions=pop_vlan,output:3
- switch2
sudo ovs-ofctl -O OpenFlow13 add-flow sw2 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow sw2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow sw2 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow sw2 priority=1,dl_vlan=0,actions=pop_vlan,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow sw2 priority=1,dl_vlan=1,actions=pop_vlan,output:2
sudo ovs-ofctl -O OpenFlow13 add-flow sw2 priority=1,dl_vlan=2,actions=pop_vlan,output:3
3.利用OVS命令查看流表
- switch1
$ sudo ovs-ofctl -O OpenFlow13 dump-flows sw1
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=3098.183s, table=0, n_packets=21, n_bytes=1302, priority=1,dl_vlan=2 actions=strip_vlan,output:3
cookie=0x0, duration=3098.221s, table=0, n_packets=22, n_bytes=1348, priority=1,dl_vlan=0 actions=strip_vlan,output:1
cookie=0x0, duration=3098.199s, table=0, n_packets=22, n_bytes=1348, priority=1,dl_vlan=1 actions=strip_vlan,output:2
cookie=0x0, duration=3098.254s, table=0, n_packets=21, n_bytes=1218, priority=1,in_port=3 actions=push_vlan:0x8100,set_field:2->vlan_vid,output:4
cookie=0x0, duration=3098.342s, table=0, n_packets=22, n_bytes=1260, priority=1,in_port=1 actions=push_vlan:0x8100,set_field:0->vlan_vid,output:4
cookie=0x0, duration=3098.308s, table=0, n_packets=22, n_bytes=1260, priority=1,in_port=2 actions=push_vlan:0x8100,set_field:1->vlan_vid,output:4
cookie=0x0, duration=3934.114s, table=0, n_packets=1362, n_bytes=219298, priority=0 actions=CONTROLLER:65535
- switch2
$ sudo ovs-ofctl -O OpenFlow13 dump-flows sw2
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=3132.991s, table=0, n_packets=21, n_bytes=1302, priority=1,dl_vlan=2 actions=strip_vlan,output:3
cookie=0x0, duration=3136.604s, table=0, n_packets=22, n_bytes=1348, priority=1,dl_vlan=0 actions=strip_vlan,output:1
cookie=0x0, duration=3136.593s, table=0, n_packets=22, n_bytes=1348, priority=1,dl_vlan=1 actions=strip_vlan,output:2
cookie=0x0, duration=3136.626s, table=0, n_packets=21, n_bytes=1218, priority=1,in_port=3 actions=push_vlan:0x8100,set_field:2->vlan_vid,output:4
cookie=0x0, duration=3136.667s, table=0, n_packets=22, n_bytes=1260, priority=1,in_port=1 actions=push_vlan:0x8100,set_field:0->vlan_vid,output:4
cookie=0x0, duration=3136.654s, table=0, n_packets=22, n_bytes=1260, priority=1,in_port=2 actions=push_vlan:0x8100,set_field:1->vlan_vid,output:4
cookie=0x0, duration=3973.664s, table=0, n_packets=1394, n_bytes=225662, priority=0 actions=CONTROLLER:65535
4.验证性测试

5.Wireshark抓包验证

SDN2017 第三次实验作业的更多相关文章
- SDN2017 第五次实验作业
实验目的 1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 3.抓包分析验证负载均衡 实验步骤 建立以下拓扑,并连接上ODL控制器. 利用ODL下发组表.流表,实现建议负载均衡 s1组 ...
- SDN2017 第四次实验作业
实验目的 1.使用图形化界面搭建拓扑如下并连接控制器 2.使用python脚本搭建拓扑如下并通过命令行连接控制器 3.使用任一种方法搭建拓扑连接控制器后下发流表 实验步骤 建立以下拓扑,并连接上ODL ...
- 一、PTA实验作业
一.PTA实验作业 1.题目1: 6-2 线性表元素的区间删除 2. 设计思路 定义i,j; 判断L,minD,maxD; while(i<l->Last) { 判断所有满足条件的数,de ...
- Linux内核实验作业四
实验作业:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 20135313吴子怡.北京电子科技学院 [第一部分]使用库函数API来获取用户标识号.库函数为getuid() 代码如下: ...
- 实验作业:使gdb跟踪分析一个系统调用内核函数
实验作业:使gdb跟踪分析一个系统调用内核函数(我使用的是getuid) 20135313吴子怡.北京电子科技学院 [第一部分] 根据视频演示的步骤,先做第一部分,步骤如下 ①更新menu代码到最新版 ...
- Linux内核实验作业六
实验作业:分析Linux内核创建一个新进程的过程 20135313吴子怡.北京电子科技学院 [第一部分]阅读理解task_struct数据结构 1.进程是计算机中已运行程序的实体.在面向线程设计的系统 ...
- Linux内核实验作业七
实验作业:Linux内核如何装载和启动一个可执行程序 20135313吴子怡.北京电子科技学院 [第一部分]理解编译链接的过程和ELF可执行文件格式 1.编译链接的过程 2.ELF可执行文件格式 一个 ...
- 20155217 《Java程序设计》第三次实验报告
20155217 <Java程序设计>第三次实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...
- 20145335《java程序设计》第三次实验报告
20145335郝昊<java程序设计>第三次实验报告 实验目的与要求 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址,可以拍照展现结对编程 情况,可以参考一下其他学 ...
随机推荐
- Vue源码之 virtual-dom 实现简析
发现两篇写得特别好的博文,仔细通读,发现豁然开朗. 浅析Vue 中的patch和diff Vue 2.0 的 virtual-dom 实现简析
- 大数据技术之_08_Hive学习_05_Hive实战之谷粒影音(ETL+TopN)+常见错误及解决方案
第10章 Hive实战之谷粒影音10.1 需求描述10.2 项目10.2.1 数据结构10.2.2 ETL原始数据10.3 准备工作10.3.1 创建表10.3.2 导入ETL后的数据到原始表10.3 ...
- Spring学习之路-从入门到放弃
后台框架是真难入门啊!!!IDE的使用,环境的搭建,框架下载,上手,每一步都恶心人. 花了整整两天,才学会用idea,并且初步了解了maven(TM就是一个npm),然后跟着下载了对应的jar包,搭建 ...
- 数据结构与算法--最短路径之Bellman算法、SPFA算法
数据结构与算法--最短路径之Bellman算法.SPFA算法 除了Floyd算法,另外一个使用广泛且可以处理负权边的是Bellman-Ford算法. Bellman-Ford算法 假设某个图有V个顶点 ...
- Android-Activity启动流程
http://www.jianshu.com/p/6037f6fda285 zygote是什么?有什么作用? zygote意为“受精卵“. 在Android系统里面,zygote是一个进程的名字.An ...
- HDU5036 Explosion(期望 bitset)
题意 题目链接 Sol 和cf上的一道题几乎一摸一样 首先根据期望的线性性,可以转化为求每个点的期望打开次数,又因为每个点最多会被打开一次,只要算每个点被打开的概率就行了 设\(anc[i]\)表示\ ...
- React之函数中的this指向
我们都知道在React中使用函数时,有两种写法,一是回调函数,二是直接调用,但需要在构造函数中绑定this,只有这样,函数中的this才指向本组件 总结一下没有绑定this的函数中的this指向 不管 ...
- <Android 应用 之路> 一个类似今日头条的APP
简介 最近花了一两天的时间完成一个简易的新闻头条客户端的应用,引用到了SwipeRefreshLayout,CircleImageView,RxAndroid,Picasso,PhotoPicker等 ...
- SD从零开始55-56, 风险管理, 付款卡
[原创] SD从零开始55 风险管理的内容 应收款风险最小化Risk Minimization for Receivables 每个信用政策的目的是减少由客户应收款带来的风险: 连同信用管理,你也有权 ...
- SD从零开始11-12
SD从零开始11 定价中的条件技术(Condition Technique in Pricing) 定价程序Pricing Procedure 所有定价中允许的条件类型都包含在定价程序中: 通过为每个 ...