实验目的



在给定如上实验拓扑情况下,用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 第三次实验作业的更多相关文章

  1. SDN2017 第五次实验作业

    实验目的 1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 3.抓包分析验证负载均衡 实验步骤 建立以下拓扑,并连接上ODL控制器. 利用ODL下发组表.流表,实现建议负载均衡 s1组 ...

  2. SDN2017 第四次实验作业

    实验目的 1.使用图形化界面搭建拓扑如下并连接控制器 2.使用python脚本搭建拓扑如下并通过命令行连接控制器 3.使用任一种方法搭建拓扑连接控制器后下发流表 实验步骤 建立以下拓扑,并连接上ODL ...

  3. 一、PTA实验作业

    一.PTA实验作业 1.题目1: 6-2 线性表元素的区间删除 2. 设计思路 定义i,j; 判断L,minD,maxD; while(i<l->Last) { 判断所有满足条件的数,de ...

  4. Linux内核实验作业四

    实验作业:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 20135313吴子怡.北京电子科技学院 [第一部分]使用库函数API来获取用户标识号.库函数为getuid() 代码如下: ...

  5. 实验作业:使gdb跟踪分析一个系统调用内核函数

    实验作业:使gdb跟踪分析一个系统调用内核函数(我使用的是getuid) 20135313吴子怡.北京电子科技学院 [第一部分] 根据视频演示的步骤,先做第一部分,步骤如下 ①更新menu代码到最新版 ...

  6. Linux内核实验作业六

    实验作业:分析Linux内核创建一个新进程的过程 20135313吴子怡.北京电子科技学院 [第一部分]阅读理解task_struct数据结构 1.进程是计算机中已运行程序的实体.在面向线程设计的系统 ...

  7. Linux内核实验作业七

    实验作业:Linux内核如何装载和启动一个可执行程序 20135313吴子怡.北京电子科技学院 [第一部分]理解编译链接的过程和ELF可执行文件格式 1.编译链接的过程 2.ELF可执行文件格式 一个 ...

  8. 20155217 《Java程序设计》第三次实验报告

    20155217 <Java程序设计>第三次实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...

  9. 20145335《java程序设计》第三次实验报告

    20145335郝昊<java程序设计>第三次实验报告 实验目的与要求 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址,可以拍照展现结对编程 情况,可以参考一下其他学 ...

随机推荐

  1. jQuery中的函数汇总1

    欢迎访问我的github:huanshen,有我的源码解析 1.each 跟for循环很像,但是更有用,如果你理解了就知道了. // 遍历一个数组或者对象 // obj 是需要遍历的数组或者对象 // ...

  2. JSON & Ajax

    Ajax是异步JavaScript和XML是用来在客户端作为一组相互关联的Web开发技术,以创建异步Web应用程序. Ajax模型,Web应用程序可以发送数据和检索数据从一个服务器,而不干扰现有的页面 ...

  3. [MongoDB] mongodb与php

    windows上安装mongodb的php扩展 下载地址https://s3.amazonaws.com/drivers.mongodb.org/php/index.html 找到对应的php版本的d ...

  4. 【Linux】apt-get 源地址汇总

    修改etc/apt/sources.list文件 deb http://mirrors.163.com/ubuntu/ lucid main restricted universe multivers ...

  5. Atcoder:AGC004F Namori

    传送门 先考虑树,树是一个二分图. 看到是二分图并且每次是对两边的同色的点反色可以想到转化:让奇数层的点为黑,偶数为白,变成每次可以交换两个点的颜色. 把黑看成 \(-1\),白看成 \(1\),那么 ...

  6. 洛谷P3248 [HNOI2016]树(主席树 倍增 )

    题意 题目链接 Sol 从上午九点淦到现在qwq 思路比较简单,就是把每次加入的一坨点看成一个,然后直接倍增搞.. 然后慢慢调就可以了... 最后数量级会到达\(10^{10}\),所以应该开long ...

  7. 31:字符串p型编码

    31:字符串p型编码 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个完全由数字字符('0','1','2',…,'9')构成的字符串str,请写出s ...

  8. Django. No changes detected when "makemigrations"

    在修改了models.py后,有些用户会喜欢用python manage.py makemigrations生成对应的py代码. 但有时执行python manage.py makemigration ...

  9. 开源项目管理工具KanBoard

    KanBoard是一个很好用的项目管理软件,地址点此.它以网页形式存储在服务器或者本地,支持多标签.多项目.多用户和多种显示方式.编辑方式上支持markdown.它还提供多角度可视化的项目统计分析. ...

  10. DrawerLayout建立侧滑时,显示侧滑页面,底层页面仍可以有点击响应,解决办法。

    第一感觉是下层仍有焦点,解决办法应该是侧方页面出现后,下层页面的焦点改为false,应该是动态去改变焦点的状态,但是不知道如何去实现. 然后再网上找到实现方法,感谢:http://blog.csdn. ...