第二届SDN大赛--必答题1
来源:互联网 发布:linux 查看登陆的用户 编辑:程序博客网 时间:2024/06/06 04:44
第二届SDN大赛--必答题1
-------------温州大学 12网工
第1小题:简单网络
一、 实验目的
搭建如图1.1所示的简单网络,通过流表操作来实现两台不同主机间的 ping 通与否。
图1.1:简单网络拓扑
二、 实验环境搭建
(一)设计思路
如图1.1所示,简单网络由一台Controller,两台switch以及两台host组成。我们通过Controller添加流表让两台host无法ping通。
(二)设备以及平台
我们选择在物理机安装VMware Workstation 10。下载SDN Hub(sdnhub.org)构建的all-in-one tutorial VM(以下称SDN虚拟机)并导入到VMware。这是一个预装了很多SDN相关的软件和工具的64位的Ubuntu 12.10虚拟机映像。内置软件和工具如下:
· SDN控制器:Opendaylight,Ryu,Floodlight,Pox和Trema
· 示例代码:hub,2层学习型交换机和其它应用
· Open vSwitch 1.11 :支持Openflow 1.0,实验性的支持 Openflow 1.2 和 1.3
· Mininet:创建和运行示例拓扑
· Eclipse 和 Maven
· Wireshark:协议数据包分析
我们使用的控制器为floodlight。
三、 实验过程及结果
(一)初始环境
首次进入SDN虚拟机,打开终端,输入以下命令,对floodlight进行编译及运行:
>>cd floodlight
>>ant
>>java -jar target/floodlight.jar
floodlight开始监听交换机和6633端口(如图1.2和1.3所示)。
图1.2:编译并运行floodlight
图1.3:已运行的floodlight
(二)mininet创建拓扑
在终端中输入以下命令创建拓扑:
>>sudo mn --custom /home/ubuntu/mininet/custom/topo-2sw-2host.py --topo mytopo --switch ovsk --controller=remote,ip=192.168.181.142,port=6633
topo-2sw-2host.py文件是该系统中已有的文件,可直接使用,且拓扑与题目要求相同。文件内容如下:
"""Custom topology example
Two directly connected switches plus a host for each switch:
host --- switch --- switch --- host
Adding the 'topos' dict with a key/value pair to generate our newly defined
topology enables one to pass in '--topo=mytopo' from the command line.
"""
from mininet.topo import Topo
class MyTopo( Topo ):
"Simple topology example."
def __init__( self ):
"Create custom topo."
# Initialize topology
Topo.__init__( self )
# Add hosts and switches
leftHost = self.addHost( 'h1' )
rightHost = self.addHost( 'h2' )
leftSwitch = self.addSwitch( 's3' )
rightSwitch = self.addSwitch( 's4' )
# Add links
self.addLink( leftHost, leftSwitch )
self.addLink( leftSwitch, rightSwitch )
self.addLink( rightSwitch, rightHost )
topos = { 'mytopo': ( lambda: MyTopo() ) }
结果如图1.4所示,此拓扑由两台主机h1,h2和两台交换机s3,s4组成,拓扑图如图1.1所示。
图1.4:mininet建立拓扑
打开浏览器输入 http://localhost:8080/ui/index.html,进入图形化的 mininet 可视界面(如图1.5和1.6所示)。
图1.5:Mininet 图形化界面
图1.6:Mininet 图形化拓扑结构界面
(三)测试主机是否ping通
在mininet中输入以下命令,测试h1与h2能否ping通(如图1.7所示):
>>pingall
图1.7:测试h1和h2的连接
此时丢包率为 0%,即两台主机h1与h2可以ping通。
(四)添加流表使主机间无法ping通
在终端中输入以下命令:
>>ovs-ofctl dump-flows s3
>>ovs-ofctl add-flow s3 priority=1,in_port=2,actions=drop
如图1.8和图1.9所示。图1.8中显示的流表为Controller添加的临时流表,5s后会自动失效。
图1.8:查看交换机s3的流表
图1.9:添加流表使h1,h2不能连通
图1.10:添加的流表信息
由图1.10显示,在添加了该流表后,输入pingall命令,丢包率达100%,主机h1和h2无法ping通,实现题目要求。
- 第二届SDN大赛--必答题1
- 第二届SDN大赛--必答题2
- 第二届SDN大赛--提高题1
- 第二届SDN大赛--提高题2
- 第二届全国高校SDN网络应用创新大赛获奖名单出炉
- 第一届全国高校软件定义网络(SDN)应用创新开发大赛--我的sdn实践
- 第二届 Open Web 大赛开幕
- 东南大学第二届嵌入式系统设计大赛
- 2012届华为编程大赛第二题
- 第二届程序设计大赛 正确的IP
- 程序员编码大赛第三届第二题
- 1029第二届程序设计大赛 数字根
- 1024第二届程序设计大赛 亏多少?
- 第二届2011年国信蓝点杯软件设计大赛预赛的试题1
- ChinaUnix第一届“C语言”开发大赛的第二题
- 河南省第二届程序设计大赛规则和要求
- 第二届传媒人有奖征文大赛:一起来“解密流行”
- ChinaUnix第一届“C语言”开发大赛的第二题
- DaVinci 开发文档博客记录
- tomcat配置
- C++的字符串分割函数
- 1连接数据库
- Android 对话框弹出位置和透明度的设置
- 第二届SDN大赛--必答题1
- mysql修改密码
- fedora linux 非正常关机 导致不能直接启动桌面问题
- Android 4.4 在启动到 ANDROID 闪光字的时候图像错乱的解决过程
- [C++/object c]_[初级]_[std::map容器的使用总结和NSDictionary词典使用总结]
- Android中,如何在其他类调用Activity的方法,适用于类似场景
- 查看MYSQL数据库中所有用户及拥有权限
- java时间处理实例
- 从点类派生圆类,再由圆类派生圆柱类