任务目的
1、了解OpenFlow交换机与OpenFlow控制器建立TCP连接的过程。
2、掌握配置安全通道中的OpenFlow版本的方法。
3、掌握OpenFlow交换机和OpenFlow控制器的消息交互流程。
任务环境
设备名称 | 软件环境(镜像) | 硬件环境 |
---|---|---|
控制器 | Ubuntu 14.04桌面版 Floodlight 1.0 | CPU:1核 内存:2G 磁盘:20G |
主机 | Ubuntu 14.04桌面版 Mininet 2.2.0 | CPU:1核 内存:2G 磁盘:20G |
注:系统默认的账户为root/root@openlab,openlab/user@openlab。
任务内容
1、配置交换机与控制器,使其支持OpenFlow1.3。
2、分析消息包,掌握交换机与控制器的消息交互流程。
实验原理
2006年,斯坦福大学Clean Slate计划资助的Ethane项目开始部署,致力于企业网架构的创新,OpenFlow协议的雏形就诞生于这个项目。2008年,Nick McKeown教授的一篇重要论文“OpenFlow:Enabling Innovation in Campus Networks”使得OpenFlow正式进入人们的视野,继而成为了标准化组织ONF(Open Network Foundation,开放网络基金会)主推的南向接口协议。经过多年的发展,OpenFlow现已成为SDN的主流南向接口协议之一。目前,OpenFlow协议还在不断地演进中,本实验采用OpenFlow v1.3协议,并对控制器与OpenFlow交换机之间的交互过程进行深入分析。
OpenFlow主要有3种类型的消息,分别是Controller-to-Switch、Asynchronous和Symmetric,其中每个类型又包含多个子类型。Controller-to-Switch消息由控制器发起,用于管理、查看交换机的状态。Asynchronous消息由交换机发起,向控制器汇报交换机的事件和改变。Symmetric消息由控制器或交换机任一方发起,无需请求直接发起消息。详细信息如下表所示:
消息类型 | 消息例子 | 描述 |
---|---|---|
Controller-to-Switch | Packet_out Barrier Switch Configuration Switch Features Multipart | 控制器使用这些消息可以添加、修改或删除流表项 查询交换机的功能和统计 配置交换机 配置交换机端口属性 将数据包发送出指定交换机端口 |
Asynchronous(异步) | Error Packet_in Port Status Table Status Controller Role Status | 由交换机发起,发送消息给控制器 这些消息可以是没有匹配交换机中任意流表项的数据包或数据包头,因此需要发送给控制器进行处理 在流状态、端口状态改变,或者产生错误消息时,进行通知 |
Symmetric(对称) | Hello Echo Experimenter | Hello消息在控制器与交换机建立连接过程中使用 Echo消息用来确定Controller-to-Switch连接的延时,验证连接是否处于活跃状态 Experimenter消息用于未来消息的扩展 |
实验步骤
$ sudo wireshark
$ sudo mn --controller=remote,ip=30.0.1.3,port=6633 --switch=ovsk,protocols=OpenFlow13
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务