OpenDayLight Helium实验三 OpenDaylight二层转发机制实验
本文基于OpenDaylight二层转发机制实验 而成
在SDN网络中,处于末端的主机并不知道其连接的网络是SDN,某台主机要发送数据包到另一台主机,仍然需要进行IP到MAC地址的ARP解析。SDN网络中由于引入了控制器的角色,其二层数据转发的机制与普通二层以太交换机洪泛+MAC地址学习机制存在很大的差异。当源IP要与目的IP通信时,会将ARP请求转发到控制器,由控制器帮助询问目的主机的MAC并将结果返回给源主机。
本实验在SDN环境中配置相同网段的两台主机,通过测试二者之间的数据转发来理解和掌握二层转发机制。
实验topu:
实验过程
启动OpenDaylight
Helium 版本,进入目录,执行:./karaf。
等待五分钟左右,出现如上提示。
执行以下命令查看进程,默认监听端口为6633。
ps -ef|grep opendaylight
netstat -anp|grep 6633
访问网站
通过游览器访问ODL的可视化网站,Helium版本:http://[ODL_host_ip]:8181/dlux/index.html。在运行ODL的主机上运行ifconfig获得ODL_host_ip。
账户和密码,都是admin。
Mininet操作
登录Mininet虚拟机,检查/home/mininet目录下是否有topo-2sw_2host.py实验脚本,如果没有则执行以下步骤创建脚本并脚本内容,如果有,请跳过此步骤。
cd /home/wasdns/mininet
touch topo-2sw_2host.py
vim topo-2sw_2host.py
#Mininet OpenDayLight 2016/9/20 by Wasdns
"""Custom topology example
Two directly connected switches plus two hosts for each switch:
host1 --- switch1 --- switch2 --- host3
| |
| |
host2 host4
"""
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
Host1 = self.addHost( 'h1' )
Host2 = self.addHost( 'h2' )
Host3 = self.addHost( 'h3' )
Host4 = self.addHost( 'h4' )
Switch1 = self.addSwitch( 's1' )
Switch2 = self.addSwitch( 's2' )
# Add links
self.addLink( Host1, Switch1 )
self.addLink( Host2, Switch1 )
self.addLink( Switch2, Host3 )
self.addLink( Switch2, Host4 )
self.addLink( Switch1, Switch2 )
topos = { 'mytopo': ( lambda: MyTopo() ) }
执行下面命令,启动网络拓扑:
原命令:
screen mn --custom /home/mininet/topo-2sw_2host.py --topo mytopo --controller=remote,ip=10.0.0.226,port=6633 --switch ovsk,protocols=OpenFlow10
我执行的:
sudo mn --custom /home/wasdns/mininet/topo-2sw_2host.py --topo mytopo --controller=remote,ip=192.168.31.132,port=6633 --switch ovsk,protocols=OpenFlow10
原文说明
通过screen mn命令启动mininet,这样可以通过ctrl+a+d和screen –r命令进行系统命令行和mininet命令行之前的窗口切换。
请根据实际情况将ip为OpenDaylight的ip,添加protocols参数指定OpenFlow协议版本。
mn为mininet启动命令。
- --mac指定虚拟主机的mac地址顺序编号,若不带此参数则随机编号
- --controller指定of交换机的控制器
- --switch指定虚拟交换机的类型,ovsk表示虚拟交换机为ovs Kernel mode
- --custom指定自定义拓扑文件
- --topo指定加载拓扑的名字
执行ctrl+a+d命令切换到系统命令行。
输入ovs-vsctl show命令查看Mininet是否与OpenDaylight连通。
输入 ovs-vsctl show 查看Mininet和ODL是否连接。
返回ODLweb界面 查看拓扑
返回界面,发现topu发生了变化。
抓包验证
在同一台虚拟机里面搞,太卡了。所以在这一步我打开了另外一个虚拟机,执行Mininet的功能。
命令:
ODL虚拟机:tcpdump -i any port 6633 -s0 -w 206.pcap
Mininet虚拟机:nodes
Mininet虚拟机:h1 ping h3
在同一台虚拟机的情况:
2016/9/29
OpenDayLight Helium实验三 OpenDaylight二层转发机制实验的更多相关文章
- OpenDayLight Helium实验三 OpenDaylight二层转发机制实验 2
鉴于在个人笔记本上虚拟机运行ODL实在太慢,把实验的场景搬到了实验室. 实验上:OpenDayLight Helium实验三 OpenDaylight二层转发机制实验 抓包实验 紧接着,在运行Mini ...
- 20165324 Java实验三 敏捷开发与XP实验
20165324 Java实验三 敏捷开发与XP实验 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年4月16日 ...
- 理解Objective-C Runtime(三)消息转发机制
消息转发机制概述 上一篇博客消息传递机制中讲解了Objective-C中对象的「消息传递机制」.本文需要讲解另外一个重要问题:当对象受到无法处理的消息之后会发生什么情况? 显然,若想令类能理解某条消息 ...
- 20172302 《Java软件结构与数据结构》实验三:查找与排序实验报告
课程:<Java软件结构与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年11月19日 必修/选修: 必修 实验内容 (1) ...
- 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告
实验题目 1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 2.下载搭档实验二的Complex代 ...
- 20184302 实验三《Python程序设计》实验报告
20184302 2019-2020-2 <Python程序设计>实验3报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师 ...
- 20201123 实验三《python程序设计》实验报告
20201123 2020-2021-2 <python程序设计>实验三报告 课程:<Python程序设计>班级:2011姓名:晏鹏捷学号:20201123实验教师:王志强实验 ...
- 20212115 实验三 《python程序设计》实验报告
实验报告 20212115<python程序设计>实验三报告 课程:<Python程序设计>班级: 2121姓名: 朱时鸿学号:20212115实验教师:王志强老师实验日期:2 ...
- i春秋DMZ大型靶场实验(三)内网转发DMZ2
更具实验文件知道存在源码泄露 下载源码进行源码审计 发现admin账号 查看user.php 发现mysql 账号 端口 对登录后源码进行审计 发现上传文件的两处漏洞 对 fiel name 可以 ...
随机推荐
- linux 上安装pstree
linux 无法使用pstree centos7上默认没有安装psmisc包. 1.在 Mac OS上 brew install pstree 2.在 Fedora/Red Hat/CentOS yu ...
- Android 仿微信朋友圈发动态功能(相册图片多选)
代码分享 代码名称: 仿微信朋友圈发动态功能(相册图片多选) 代码描述: 仿微信朋友圈发动态功能(相册图片多选) 代码托管地址: http://www.apkbus.com/android-15276 ...
- oracle 日期常用函数(转载)
日期运算函數 ADD_MONTHS(d,n) --时间点d再加上n个月 ex. select sysdate, add_months(sysdate,2) aa f ...
- 【node】----mocha单元测试框架-----【巷子】
1.mocha简介 单元测试是用来对一个模块.一个函数.或者一个类来进行正确性的检测工作 特点: 既可以测试简单的JavaScript函数,又可以测试异步代码, 可以 ...
- SQL Server经典函数之数字去零
需求: 针对带有小数点的数字信息,去除小数点后多余的零 可能存在的情况: 1.精度范围内,出现多余的零 eg:1234.3400 想要的结果为1234.34 2.精度变大出现的多余的零, ...
- Python默认调用路径
记录个遇到的小问题,防止下次遇到忘记怎么解. 起因:pip安装扩展库时提示安装完成,但是在Python 终端下无法import 现象:终端直接运行python 时提示如下:(2.7.13)然而用/us ...
- Tfs 2015 代理池配置笔记
Tfs的构建代理池其实是在代理服务器上开启一个TFSBuild的代理服务,配好相关的Tfs地址后,就能在Tfs管理界面看到了. 如果是Tfs服务和发布代理是同一台服务器,具体操作详见: 安装TFS20 ...
- eclipse怎么导出可执行jar包
在eclpse中找到你要导出的java程序 选中它 单击文件 -->export 在弹出的export对话框中找到 jar File 单击选中-->next 按图示顺序依次 选好你的jav ...
- java-mybaits-00102-mybatis框架原理
1.mybatis是什么? mybatis是一个持久层的框架,是apache下的顶级项目.是一个不完全的ORM框架. mybatis托管到goolecode下,再后来托管到github下(https: ...
- (转)利用Spring AOP自定义注解解决日志和签名校验
一.需解决的问题 部分API有签名参数(signature),Passport首先对签名进行校验,校验通过才会执行实现方法. 第一种实现方式(Origin):在需要签名校验的接口里写校验的代码,例如: ...










