matlab搭建sdn,软件定义网络SDN简介和简单仿真实验
阅读:
11,620
SDN是在2009年左右出现的一种新型网络结构,它将数据层面与控制层面分离,使用中央控制器完成网络的操作和管理,并通常采用OpenFlow协议作为其核心通信协议,拥有着集中式控制、可编程、部署灵活性和数据层面与控制层面相互分离等多种优势。并且作为一种新型的网络结构,其通信协议、三层体系结构和仿真实验都非常有意思。
SDN体系结构
典型的SDN架构定义如下图所示。
SDN体系结构由下到上分别为转发层(又称为基础设施层)、控制层和业务层(又称为应用层)。其中转发层表示网络底层的物理转发设备,维护着流表结构,数据流中的分组则按照流表中的规则进行转发;中间的控制层集中维护和控制网络的各种状态,并负责流表的生成、配置和维护,同时需要为业务层提供易用的北向接口;最上面的业务层根据不同的应用需求来实现不同功能的应用程序。控制层通过南向接口(例如OpenFlow协议)与转发层进行通信,并获取转发层的网络设备的信息;控制层与业务层之间由可扩展的北向接口完成交互,北向接口由各个控制器的Rest API提供,并允许开发者根据实际网络需求开发。
在SDN体系结构中,开发者能够获取转发层中网路设备的实时状态信息,通过调用控制层的北向Rest API接口,编程实现不同功能的应用程序;最后通过控制器和南向接口(OpenFlow)以流表的形式下发到网络设备中,从而完成网络的配置。OpenFlow协议介绍
OpenFlow协议是SDN架构中第一个定义在控制层和转发层之间的标准通信接口,基于OpenFlow的SDN技术可以使开发者动态管理网络拓扑结构。
最常见的OpenFlow流表主要由三个部分组成:匹配域(Match Fields)、计数器域(Counters)和指令域(Instructions),如下图所示。
(1)匹配域,如下图所示:一共包含12个域,每个域内包含一个值,分别对应TCP/IP体系结构中:
一层物理层中入端口(Ingress Port);
二层数据链路层中源MAC地址(Ether source)、目的MAC地址(Ether dst)、以太网类型(EtherType)、VLAN标签(VLAN id)、VLAN优先级(VLAN priority);
三层网络层中源IP(IP src)、目的IP(IP dst)、IP协议字段(IP proto)、IP服务类型IP ToS bits);
四层传输层中TCP/UDP源端口号(TCP/UDP src port)、 TCP/UDP目的端口号(TCP/UDP dst port)。
(2)计数器域,可以用来统计每个端口、每条流、每张表和每个队列上的流量信息。
(3)指令域,为每条流表项对应的行动,表示对匹配该流表项处理方法,其中可以有0或者多个行动。若一条流表项的指令域为空,则默认操作是丢弃数据包。若一个流表项的指令域内有多个行动,则按照行动的优先级顺序执行。行动分为必选行动和可选行动,必选行动中包括转发或者丢弃,可选行动中则包括按照传统交换机处理、泛洪(除去入端口)、入队和修改匹配域等。
如上图所示数据包匹配流程:当数据包到达后,从流表中的第一个流表项开始匹配,若有匹配域相符合的流表项,接着更新该条流表项对应的统计数据,然后根据流表项对应指令域内的指令进行相应操作;若没有流表项被成功匹配,则转发给控制器请求进一步处理。基于OpenFlow的SDN工作流程
上图为基于OpenFlow的SDN工作流程:
终端PC机向网络中发送一系列数据包;
数据包到达OpenFlow交换机,若交换机中无匹配的流表,则通过第2步向控制器发送Packet-In消息,请求控制器下发处理流表,若交换机中有匹配的流表,则直接执行第4步;
控制器下发流表(或Packet-Out消息)到交换机中;
交换机根据流表的信息将数据包转发到下一个交换机中;
交换机若有匹配流表,执行第7步,若无匹配流表,执行类似第2步;
类似第3步;
交换机转发数据包到另一个终端PC机。SDN网络仿真小实验
SDN网络仿真实验只需要一台PC机就可以完成,不任何需要其他额外设备。Mininet就是一个轻量级的SDN网络仿真平台,Floodlight是一款开源的SDN控制器。本次的仿真小实验的系统、控制器和仿真平台信息如下图所示。软件名称和类型功能
Ubuntu 12.0464 bit系统环境
控制器Floodlight控制交换机,下发流表,控制数据转发
虚拟仿真平台Mininet搭建虚拟网络拓扑
(1)Floodlight安装和运行安装Java、python的运行与开发环境
下载和安装Floodlight
编译Floodlight
运行Floodlight
在浏览器中输入地址http://localhost:8080/ui/index.html,打开Floodlight的Web界面,此时Switchs与Hosts都为0。
(2)Mininet安装和运行
将Mininet镜像文件导入到VirutalBox中,配置网卡信息,
第一块网卡信息:
第二块网卡信息:
启动Mininet,账户和密码均为mininet
产生如下图所示的拓扑结构,并连接控制器
我们在Floodlight的Web界面可以查看拓扑结构、以及交换机和节点信息。
(3)下发流表交换机和默认流表如下图所示:
目前Host1可以ping通Host2:
在Controller上修改流表项。添加一条流表,使得Host流的出端口和入端口为同一端口。
Host1流表修改:
Host2流表修改:
修改流表项后,进行Host1 Ping Host2的操作。结果是Host1无法Ping通Host2
实验结果如下表所示:流表项实验操作实验结果
默认流表Host1 Ping Host2Ping通
修改后流表Host1 Ping Host2无法Ping通
在SDN网络中,通过控制器简单的修改交换机上的流表就可以完成特定需求的网络环境配置,SDN非常有趣。
参考链接:
http://archive.openflow.org/documents/openflow-spec-v1.1.0.pdf
http://www.opendaylight.org/
https://www.opennetworking.org/sdn-resources/sdn-definition/
如果您需要了解更多内容,可以
加入QQ群:570982169
直接询问:010-68438880
matlab搭建sdn,软件定义网络SDN简介和简单仿真实验相关推荐
- 浅谈软件定义网络SDN
浅谈软件定义网络SDN 前言 学习主要内容 一.SDN简介 二.SDN的三个主要特征 转控分离 集中控制 开放接口 三.SDN的工作原理 SDN网络架构的三层模型 SDN网络架构下的三个接口 SDN基 ...
- SDN软件定义网络 学习笔记(4)--数据平面
SDN软件定义网络 学习笔记(4)--数据平面 1. 简介 2. SDN数据平面架构 2.1 传统网络交换设备架构 2.2 SDN交换设备架构 2.3 数据平面架构图 3. SDN芯片与交换机 3.1 ...
- 软件定义网络SDN(特点、实现途径与展望)
SDN软件定义网络简介 软件定义网络(SDN,Software Defined Network),是由美国斯坦福大学clean slate研究组提出的一种新型网络创新架构,其核心技术OpenFlow通 ...
- 科普:SDN(软件定义网络)
http://www.zdnet.com.cn/wiki-SDN SDN(软件定义网络) 软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean s ...
- 推荐书籍:软件定义网络 SDN与OpenFlow解析
<软件定义网络(SDN与OpenFlow解析)>由纳多.格雷所著,是关于SND 的 指南,全面介绍了SDN 的定义.协议.标准及应用,讨论了当前OpenFlow 模型及集中式网络控制.数据 ...
- 软件定义网络SDN(计算机网络-网络层)
目录 软件定义网络SDN 数据平面和控制平面 SDN 最重要的三个特征 控制平面与数据平面分离 SDN 的数据平面 软件定义网络SDN SDN的本质特点是控制平面和数据平面的分离以及网络的可编程性, ...
- SDN软件定义网络 学习笔记(3)--北向接口、东西向接口
1. 北向接口 北向接口提供了 SDN 中开发者与控制器间的交互功能.从更为宽泛的角度考虑,北向接口在 SDN 控制器中的作用类似于命令行在传统NOS 中的作用,都是实现了网络管理者对网络的设计与管理 ...
- SDN软件定义网络之流表及其组成
文章目录 SDN软件定义网络之流表 流表由三个组成部分组成--包头域.计数器.动作表 包头 计数器功能 动作表 交换机端口:物理.逻辑.保留 保留端口参数: 流表动作类型 数据包处理流程 版本更新流表 ...
- 什么是软件定义网络 (SDN)
什么是软件定义网络? 软件定义网络 (SDN) 是一种架构,它抽象了网络的不同.可区分的层,使网络变得敏捷和灵活,SDN 的目标是通过使企业和服务提供商能够快速响应不断变化的业务需求来改进网络控制. ...
最新文章
- 神级总结:七种功能强大的聊天机器人平台
- 心得丨学习人工智能AI需要哪些最基础的知识?
- RocketMQ集群搭建-4.2.0版本
- powerdesigner反向MySQL5.1数据库 生成ER图
- JQuery Ajax 使用FormData上传文件对象
- ubuntu安装sqoop1.4.7
- 找出出现次数最多的字母
- 你还在盲目做抖音吗?
- 自己动手美化博客园个人博客
- 解决办法:Type safety: The expression of type List needs unchecked conversion to conform
- 申请美国J1签证加急最快多久办好?
- chrome非常好用的图片放大插件 Imagus
- python找不同_用Python玩大家来找茬
- 9月9日资讯 星期四 农历八月(小) 初三
- Canopen协议 (1):网络状态管理(NMT)
- 计算机科学引论connectivity,计算机科学引论课后题原文
- 找回孩子丢失的阅读时光(转自中国文明网)
- CentOS7 挂载新加硬盘(大于2T)操作说明
- 张正友标定法几个坐标系的意思
- AndroidStudio插件开发(进阶篇之Editor)
热门文章
- code ./打不开vscode编辑器
- Java黑皮书课后题第3章:**3.29(几何:两个圆)编写程序,提示用户输入两个圆的中心坐标和各自的半径值,然后判断圆是在第一个圆内,还是和第一个圆重叠
- N皇后问题的两个最高效的算法
- 创建AOP静态代理(上篇)
- vuejs之【router-link】大全(二)
- mysql group replication 安装配置详解
- wp7 视频下载 资源收集
- 程序员初涉江湖 宜步步为赢(转-1) 作者:IT168 职业发展顾问Leo
- mysql 进阶_mysql进阶知识
- HarmonyOS之常用组件ToastDialog的功能和使用