博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenDayLight Helium实验三 OpenDaylight二层转发机制实验
阅读量:6915 次
发布时间:2019-06-27

本文共 2496 字,大约阅读时间需要 8 分钟。

本文基于 而成

在SDN网络中,处于末端的主机并不知道其连接的网络是SDN,某台主机要发送数据包到另一台主机,仍然需要进行IP到MAC地址的ARP解析。SDN网络中由于引入了控制器的角色,其二层数据转发的机制与普通二层以太交换机洪泛+MAC地址学习机制存在很大的差异。当源IP要与目的IP通信时,会将ARP请求转发到控制器,由控制器帮助询问目的主机的MAC并将结果返回给源主机。

本实验在SDN环境中配置相同网段的两台主机,通过测试二者之间的数据转发来理解和掌握二层转发机制。

实验topu:

885822-20160920210045481-1170363996.png

实验过程

启动OpenDaylight

Helium 版本,进入目录,执行:./karaf。

885822-20160920210434043-1537180430.png
等待五分钟左右,出现如上提示。
执行以下命令查看进程,默认监听端口为6633。

ps -ef|grep opendaylightnetstat -anp|grep 6633

885822-20160920210549371-203920505.png

访问网站

通过游览器访问ODL的可视化网站,Helium版本:。

885822-20160920211016231-1057473516.png
账户和密码,都是admin。
885822-20160920211309012-310191736.png

Mininet操作

登录Mininet虚拟机,检查/home/mininet目录下是否有topo-2sw_2host.py实验脚本,如果没有则执行以下步骤创建脚本并脚本内容,如果有,请跳过此步骤。

cd /home/wasdns/mininettouch topo-2sw_2host.pyvim topo-2sw_2host.py
#Mininet OpenDayLight 2016/9/20 by Wasdns"""Custom topology exampleTwo 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连通。

885822-20160920212407121-323784856.png

输入 ovs-vsctl show 查看Mininet和ODL是否连接。

885822-20160920212612012-319248788.png

返回ODLweb界面 查看拓扑

返回界面,发现topu发生了变化。

885822-20160920213043199-1224151830.png

885822-20160920213208934-577094912.png

抓包验证

在同一台虚拟机里面搞,太卡了。所以在这一步我打开了另外一个虚拟机,执行Mininet的功能。

命令:

ODL虚拟机:tcpdump -i any port 6633 -s0 -w 206.pcapMininet虚拟机:nodesMininet虚拟机:h1 ping h3

在同一台虚拟机的情况:

885822-20160920214034731-646995365.png

885822-20160920214041902-459431917.png

2016/9/29

转载地址:http://ynacl.baihongyu.com/

你可能感兴趣的文章
大师速写作品及理论,有你喜欢的知识
查看>>
iOS开发中的地图开发
查看>>
8. 国际化
查看>>
PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置...
查看>>
聊聊Mysql索引和redis跳表
查看>>
js数值计算精度再次入坑
查看>>
iOS 快速注释工具VVDocumenter-加强版支持Xcode 7
查看>>
Arduino语音天气预报(三)
查看>>
微信小程序中页面间跳转传参方式
查看>>
【Delphi】Base64加解密模块
查看>>
买卖股票的最佳时机 II
查看>>
导入Alamofire
查看>>
RPA、AI、BPO、IT系统,你PICK谁? 如何选择提升业务效率的工具?
查看>>
SQL 中的常用函数及使用
查看>>
Windows10状态栏右下角的上升三角号没有了
查看>>
VMware无法连接MKS:套接字连接尝试次数太多解决
查看>>
输入框状态禁止enter键提交表单
查看>>
Spring Boot Environment的初始化和预处理
查看>>
React-redux原理探索
查看>>
CSS解决无空格太长的字母,数字不会自动换行的问题
查看>>