当前位置:文档之家› 第一届全国高校软件定义网络(SDN)应用创新开发大赛--我的sdn实践

第一届全国高校软件定义网络(SDN)应用创新开发大赛--我的sdn实践

第一届全国高校软件定义网络(SDN)应用创新开发大赛--我的sdn实践
第一届全国高校软件定义网络(SDN)应用创新开发大赛--我的sdn实践

第一届全国高校软件定义网络(SDN)

应用创新开发大赛题目

-----by 温州大学蒋暕青

本次大赛以提交报告书的形式进行初赛,参赛队伍须根据题目要求写出报告书文档,在初赛截止日期之前在线提交。

初赛基本要求:初赛共三大题,满分100分。必答题的总得分在60%(即18分)或以上的,方可获得参赛证明,并获得算法题和设计题的评分资格。以三大题的总分计算,排出入围决赛的名单。

参赛队伍在线提交时,要提供一个list.txt文件,内容是所提交的文件名列表,每个文件名对应一句话的简要说明。同一参赛队伍可以多次提交,以最后一次提交的文件为准。

第一题:必答题(搭建SDN网络环境)——30分

必答题一共三小题,根据每小题的完成程度和报告质量来评分,主要考察以下三个方面:

1.能否成功搭建SDN网络环境(基于物理设备或者虚拟化技术都是允许的);

2.能否通过集中式的控制来控制整个网络(主要通过能否集中式的控制流表或

者路由信息来评判);

3.能否给出详细的实验报告(包括方案描述、操作步骤以及实验结果,每小题

一份报告)。

第1小题:简单网络(5分)

说明:由于对于SDN架构的理解在学界和业界并没有统一,为了方便参赛队员选择,对于初学者,大赛推荐OpenFlow作为南向接口来实现SDN环境,以下给出分别针对采用OpenFlow和采用其他接口的具体要求(分A、B两种情况)。

A. 针对采用OpenFlow作为南向接口的参赛队伍的要求:

参赛队伍首先需要搭建一个SDN架构的网络环境,初学者可以参照图1所示的一个最简单的拓扑结构,熟练的参赛队员可以自定义复杂一点的拓扑结构,两者并不影响评委评分。

B. 针对不是采用OpenFlow作为南向接口的参赛队伍的要求:

拓扑结构自定,所用设备、软件等自选,只要能够实现SDN架构的网络环

境即可。

Controller

OpenFlow Swtich

Host1

Host1Host2

Host2

图1:简单的示例拓扑

1. 搭建环境要求:图1中控制器可以自主选择,既可选择各种开源的控制器(例如:Floodlight 、Ryu 、Nox 、Beacon 、Trema 、OpenDaylight 等),也可选择由本次大赛设备提供商所提供的闭源控制器。拓扑中各网络部件既可以是仿真环境实现(例如mininet , OpenvSwtich ),有条件的队伍也可以通过物理设备实现,两种方案不影响必答题的评分。

2. 操作要求:对流表进行操作使得Host1和Host2能够互相ping 通,然后再修改流表使得它们不能ping 通。

3. 报告书要求:报告书的主要内容需要包含以下几点:

(1) 详细描述实验网络环境的搭建思路,给出搭建出来的结构拓扑图,列举选择的具体设备或者仿真软件、工具软件,并说明其在实验中的作用。 (2) 给出实现2中操作要求的具体操作步骤,以截图或者文本方式展示,要求给出初始以及前后两次对流表操作后流表内容的截图。

(3) 给出实验数据(界面截图、表格等都可)来说明实现了(2)中的要求。 说明:以上列举的为硬性要求,在报告书中必须给出。但报告书内容的组织可以灵活处理,自由发挥,不限于上述要求的内容。

第一小题:

建立拓扑:

sudo mn --topo single,3 --mac

--switch

ovsk

--controller=remote,ip=192.168.43.128,port=6633

Pingall都能ping通

控制器web界面显示

现在修改流表让主机相互ping 不通查看端口:ovs-vsctl show

先pingall

通了

来改流表:ovs-ofctl add-flow s1 priority=1,in_port=2,actions=drop 到port 2的流量全部drop

H1的端口port2 不能ping通H2 H3主机

成功!

第2小题:逻辑隔离(10分)

1. 背景:云平台服务器上的不同虚拟服务器,分属于不同的用户。用户远程登录自己的虚拟服务器之后,安全上不允许直接访问同一局域网的其他虚拟服务器。

2. 场景:设有一台PC 机,两台服务器A 、B 与同一交换机直连,服务器A 和B 都提供远程桌面登录服务。(这里的PC 机、服务器、交换机可以选择物理设备或者虚拟机实现)。

3. 目的:通过控制层对网络的控制,实现PC 机可以分别登录服务器A 和B ,但是A 和B 之间相互访问不了(无论是在实际环境还是在仿真环境实现目的均可,不影响评分)。

4. 针对采用OpenFlow 的参考示例:(具体方案可自由发挥)参考的网络拓扑如图2所示,通过对流表的修改与编辑,使得访问A 、B 的流能够被区分出来,如果是A 访问B 或者B 访问A 的流则自动丢弃,否则正常处理。

5. 报告书要求:

(1) 简要描述网络拓扑,给出拓扑图,若有前面小题中没有提及的设备、软件等构件,则在此详细说明。 (2) 给出操作步骤。

(3) 给出实验数据(界面截图、表格等都可),证明目的已经实现。

OpenFlow Swtich

OpenFlow Swtich

台式机台式机服务器A

服务器A 服务器B

服务器B

图2:参考示例网络拓扑

Mininet 上搭建拓扑

如第一小题做A 到B 的drop B 到A 的drop

第3小题:岗位轮换(15分)

1. 背景:虚拟服务器防入侵、防篡改攻击,让虚拟服务器轮流承担同一岗位的

任务,轮换下去的虚拟机做快速系统还原。

2. 设有一台PC机,两台Web服务器A和B提供简单的静态网页访问服务,服务器A和B直连在同一交换机上。两台服务器所显示的网页有显著差别,可以是不同的网页内容或者不同颜色,能够区分彼此即可。(这里的PC机、Web 服务器、交换机可以选择物理设备或者虚拟机实现)

3. 目的:当PC机不停的发出访问请求时,控制层能够控制网络自动交替轮流将访问请求转发到两个服务器上。

4. 报告书要求:

(1) 简要描述网络拓扑,给出拓扑图,若有前面小题中没有提及的设备、软件

等构件,则在此详细说明。

(2) 给出操作步骤。

(3) 给出实验数据,证明目的已经实现。

用mininet的Python接口创建自定义拓扑

mn --custom /home/ubuntu/mininet/custom/topo-2sw-2host.py --topo mytopo --switch ovsk --controller=remote,ip=192.168.43.128,port=6633

H3 和H4都开httpserver

H1和H2去wget H3和H4的服务都成功了

轮转ping一个共有的10.0.0.100IP成功,其中10.0.0.3,10.0.0.4轮转响应

WWW服务轮转成功

第二题:算法题(SDN算法设计)——20分()

要求:写出如下路由算法程序,并且进一步将算法做成SDN控制器中的一个APP路由功能。给出程序代码以及加入SDN控制器中的具体步骤,并给出实验数据,证明目的已实现。

第1步:路由算法编程(8分)

下面为示例拓扑图,我们要用算法计算出id为1设备到id为7的设备和设备id

为2到id为8设备的最优路线。

图3:组网拓扑

说明:此处拓扑图仅作为一个举例,路由算法程序应该能够处理各种拓扑情况,只要输入数据符合格式要求。程序应能够处理不同的Input.txt数据,并且可以处理带宽资源约束(input第一段最后属性)和路径需求(input第二段最后属性)。

1. 输入:

图3拓扑的输入文件为input.txt,本算法为双向线,来回只需输入一个即可Input.txt:

leftnodeID,rightnodeID,bandwidth

1,3,100

1,4,100

2,3,100

2,4,100

3,4,100

3,5,100

3,6,100

4,5,100

4,6,100

5,6,100

5,7,100

5,8,100

6,7,100

6,8,100

;

srcNodeID,dstNodeID,bandwidth

1,7,90

1,8,90

其中leftnodeID为左节点(字段名固定),rightnodeID右节点(字段名固定),bandwidth带宽,srcNodeID源节点(字段名固定),dstNodeID目的节点(字段名

固定),根据算法不同,字段名可以按需增加。

2. 运算:

C:\Users\xwx202247>算法.exe input.txt output.txt

3. 输出:

经算法计算后的计算结果输出文件output.txt

Output.txt:

1,3,6,7

2,4,5,8

代码如下:

import java.io.*;

import java.util.*;

public class RouteDesign {

final static int maxnum = 100;

final static int minint = 0;

final static int maxint = 999999;

static int dist [] = new int [maxnum]; //当前路径中的最小带宽

static int mprev[] = new int [maxnum]; //当前节点的前一跳节点

static int c[][] = new int [maxnum][maxnum]; // 两个节点之间的带宽

static int hop[] = new int [maxnum]; //当前节点到源节点的跳数

public static void Dijkstra(int n,int v,int b,int

dist[],int mprev[],int c[][]){

boolean s[] = new boolean[maxnum];

for(int i=1;i<=n;i++){

dist[i] = c[v][i]; //这个循环用来说明当前链路到源节点的带宽,寻找源节点可以到达的所有节点

s[i]=false;

if(dist[i]==minint)

mprev[i] = 0; //当前节点的前一跳节点为0 else{

mprev[i] = v; //否则前一跳为源节点

hop[i]=1; //重置跳数

}

}

dist[v] = maxint;

s[v] = true; //源节点s[v]为

true

for(int i=2;i<=n;i++){

int tmp = b; //tmp为所要求的带宽

int u = v; //u为源节点

for(int j=1;j<=n;j++){

if(!s[j]&&dist[j]>=tmp){ //s[j]为0并且当前带宽大于要求带宽

u=j; //源节点等于当前节点

tmp=dist[j]; //保证带宽不会减小

}

}

s[u]=true;

for(int j=1;j<=n;j++){

int least = dist[u]; //least为u的带宽

if(c[u][j]

least=c[u][j]; //最得u到其他节点最小带宽值

if((!s[j])&&(least>dist[j])){ //如果当前节点到源点的路径中的带宽过小,更新当前节点最小带宽及路径

hop[j]=hop[u]+1;

mprev[j]=u;

dist[j]=least;

}

else if(!s[j]&&(least == dist[j])){ //如果相等则比较跳数,跳数小者成为当前节点的路径

if(hop[j]>hop[u]+1){

hop[j]=hop[u]+1;

mprev[j]= u;

dist[j]=least;

}

}

}

}

}

public static void searchPath(int mprev[],int v,int

u,String output) throws FileNotFoundException{

OutputStream out = new

FileOutputStream(output,true);

int que[] = new int[maxnum];

int tot=1;

que[tot]=u;

tot++;

int tmp = mprev[u]; //tmp为目的节点之前

的节点

while(tmp!=v){ //目的节点与源节点v

不相等

que[tot] =tmp;

tot++;

tmp=mprev[tmp]; //从目的节点回溯

}

que[tot]=v; //tot的值为回溯的次

for(int i = tot;i>=i;i--){

if(i!=1){ int num=que[i];

try{

out.write(String.valueOf(num).getBytes()); //一个

字符串转化为一个字节数组

out.write(",".getBytes());

}catch (IOException e){

e.printStackTrace(); //打印堆栈内容

}

}

else{

try{

out.write(String.valueOf(que[i]).getBytes());

out.write("\r\n".getBytes());

}catch(IOException e){

e.printStackTrace();

}

}

}

try{

out.close();

}catch(IOException e){

e.printStackTrace();

}

}

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

String input = args[0]; //而这个main方法有所不同的是:它是所有方法中最先运行的一个,所以没有其他方法给它传递参数,所以需要靠

运行时命令行输入参数,所以String args,接收的是命令行的输入

String output = args[1];

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(new File(input))) ); String str = new String ();

int NodeNum=0;

int LineNum=0;

Vectorvstr = new Vector();

Vectordstr = new Vector(); // java 中

可以实现自动增长的对象数组

str = in.readLine(); //读取一个文本行

while(true){

str=in.readLine();

if(str.isEmpty()){

break;

}

vstr.add(str); // 把读入的对象加在vstr中

LineNum++;

}

in.readLine();

in.readLine();

while(true){

str=in.readLine();

if(str==null)

break;

else if(str.isEmpty())

break;

dstr.add(str); // 把目的读入的对象加在dstr中

}

String LastLine = (String)https://www.doczj.com/doc/dd13651258.html,stElement(); String[] strdata = LastLine.split("\\,"); int firststr = Integer.parseInt(strdata[0]);

int secondstr = Integer.parseInt(strdata[1]); //

根据,分割录入信息

if(firststr

NodeNum = secondstr;

else

NodeNum = firststr;

for(int i=1;i

for(int j=1;j

c[i][j]=minint; //建立整个拓扑

}

}

for(int i=1;i<=LineNum;i++){

String Readvstr = (String)vstr.get(i-1);

//get一个数字

String [] vstrdata = Readvstr.split("\\,");

int firstvstr = Integer.parseInt(vstrdata[0]);

int secondvstr = Integer.parseInt(vstrdata[1]);

int thirdvstr = Integer.parseInt(vstrdata[2]);

if(thirdvstr>c[firstvstr][secondvstr]){

c[firstvstr][secondvstr]=thirdvstr; //取最小

带宽

c[secondvstr][firstvstr]=thirdvstr;

}

}

for(int i=1;i

dist[i]=minint;

hop[i]=minint;

}

int src,dst,bdw;

OutputStream out = new FileOutputStream(output,false);

out.write("".getBytes());

out.close();

for(int i=1;i<=dstr.size();i++){

String Readvstr = (String)dstr.get(i-1);

String sdstr[] =Readvstr.split(",");

src = Integer.parseInt(sdstr[0]);

dst = Integer.parseInt(sdstr[1]);

bdw = Integer.parseInt(sdstr[2]);

Dijkstra(NodeNum,src,bdw,dist,mprev,c);

searchPath(mprev,src,dst,output);

}

}

}

第2步:控制器路由功能(12分)

把路由算法作为APP加入到控制器中,使SDN网络实现根据拓扑情况自动

选择路由的功能。

报告书要求:

(1) 简要描述实现思路,给出系统设计图,若有前面小题中没有提及的设备、

软件等构件,则在此详细说明。

(2) 给出操作步骤。

(3) 给出实验数据,证明目的已经实现。

由于floodlight控制器本身的路由策略就是基于迪杰斯特拉算法的,因此就不加入此算法了。

详情见fl的topology模块的topologyinstanc.java

protected BroadcastTree dijkstra(Cluster c, Long root,

Map linkCost,

boolean isDstRooted) {

HashMap nexthoplinks = new HashMap();

//HashMap nexthopnodes = new HashMap();

HashMap cost = new HashMap();

int w;

for (Long node: c.links.keySet()) {

nexthoplinks.put(node, null);

//nexthopnodes.put(node, null);

cost.put(node, MAX_PATH_WEIGHT);

}

HashMap seen = new HashMap();

PriorityQueue nodeq = new PriorityQueue();

nodeq.add(new NodeDist(root, 0));

cost.put(root, 0);

while (nodeq.peek() != null) {

NodeDist n = nodeq.poll();

Long cnode = n.getNode();

int cdist = n.getDist();

if (cdist >= MAX_PATH_WEIGHT) break;

if (seen.containsKey(cnode)) continue;

seen.put(cnode, true);

for (Link link: c.links.get(cnode)) {

Long neighbor;

if (isDstRooted == true) neighbor = link.getSrc();

else neighbor = link.getDst();

// links directed toward cnode will result in this condition

if (neighbor.equals(cnode)) continue;

if (seen.containsKey(neighbor)) continue;

if (linkCost == null || linkCost.get(link)==null) w = 1;

else w = linkCost.get(link);

int ndist = cdist + w; // the weight of the link, always 1 in current version of floodlight.

if (ndist < cost.get(neighbor)) {

cost.put(neighbor, ndist);

nexthoplinks.put(neighbor, link);

//nexthopnodes.put(neighbor, cnode);

NodeDist ndTemp = new NodeDist(neighbor, ndist);

// Remove an object that's already in there.

// Note that the comparison is based on only the node id,

// and not node id and distance.

nodeq.remove(ndTemp);

// add the current object to the queue.

nodeq.add(ndTemp);

}

}

}

BroadcastTree ret = new BroadcastTree(nexthoplinks, cost);

return ret;

}

第三题:设计题(SDN应用方案设计)——50分

初赛提供5种SDN应用方案(见附录),参赛队伍可以选择其中之一来搭建SDN网络,实现应用功能。并且鼓励参赛队伍对方案进行优化和创新性改进(不偏离原方案的目标)。

要求:

1.按照课程设计报告的形式,分别从选题背景介绍(选题依据,对本领域的意

义),设计方案和实现方法(可以分为几个章节),验证实验设计和实验结果(初赛给出实验方案设计及仿真实验结果),结论这几个方面详述。

2.在提交的方案中需要给出实验的网络拓扑,并给出主要核心的操作步骤。对

技术实现及其可行性需要作一定的论证,能给出理论分析、仿真结果等论据材料则更佳。

3.进入复赛的参赛队伍需要对开放题的方案作适当改进,并采用大赛提供的

SDN平台来实现方案,使其尽量达到Demo的程度,能够现场演示说明。4.报告文档中的必备内容:背景介绍、设计方案、实现方法、网络拓扑、优点

说明、验证实验设计。文档中的可选内容:实验结果或仿真结果、理论分析、实验数据、其他补充材料。

Ps:准备第二届SDN大赛中

软件定义网络(SDN)的国内外研究与发展现状

题目:软件定义网络(SDN)的国内外研究与发展现状一、背景 Software Defined Networking是Kate Greene创造的一个词,在大约2009年提出的。它是指网络的控制平面与实际的物理上的拓扑结构互相分离。这种分离可以使控制平面用一种不同的方式实现,比如分布式的实现方式;另外,它还可以改变控制平面的运行环境,比如不再运行在传统交换机上的那种低功耗CPU上。 所以SDN的关键所在就是控制层与网络数据层是分离的,并不是传统的嵌入关系。并且这种关系在物理实现上也是分离的,这意味着控制层与网络数据在不同的服务器与路由器上操作。而连接两者的“协议”就是OpenFlow,OpenFlow的要点就是相当于给路由器安装一个小软件OpenFlow(后文详细论述),然后研究人员就可以很容易的改变路由器的路由规则等等,从而改善网络质量。而且这是看似没有新意的主意最大的新意就是大大开放了接口权限,所以面向众很广,门槛也比较低。 近年来,伴随着云计算、大数据的迅速兴起,人们对数据业务的流量要求越来越大。而相比于互联网日新月异,不断创新多变的应用层,网络层的发展却越来越跟不上步伐,显得愈发死板不够兼容灵活。而网络层日益落伍的根源则是控制网络运行的软件都是内嵌入路由器或是交换机中,并且交换器或是路由的软件操作标准又是不太一致的,所以就造成了路由器/交换机的复杂度大大提高,造成了很大的流量阻塞和资源浪费。所以SDN的作用不是由嵌入到路由器和交换机内部的软件来控制网络流量,而是来自设备外部的软件接手了这部分的工作。网络布局,或者说网络的形态分布,不再是植入在物理端。它将对实时的系统需求非常灵活且可调节。如果SDN实行得当的话,这意味着一个运行在云端自身内部的应用程序可以接管引导网络流量的任务。或者说一个第三方云端管理应用程序将能够完成这项任务。这样可以简化许多工作,诸如跨服务器装载平衡设备,以及自动地调节网络构造来适时给出最快最高效的数据路径。 二、文献引述 文献[1]主要重在介绍讨论了SDN在数据层、控制层以及应用层的一些关键技术,并从SDN的诞生背景引入,详细说明了SDN的发展历程。在文献[1]中在SDN的层次结构中,文章重点针对了其中的一致性、可用性以及容错性进行分析,并结合SDN的一些热门特性探讨未来的发展之路和新的潜力点。 文献[2]是一篇研究综述,主要阐述了SDN中的关键技术OpenFlow。并详细介绍了

软件定义网络SDN(特点、实现途径与展望)

软件定义网络SDN(特点、实现途径与展望) 2013/7/19 10:19:04 SDN软件定义网络简介 软件定义网络(SDN,Software Defined Network),是由美国斯坦福大学clean slate研究组提出的一种新型网络创新架构,其核心技术OpenFlow通过将路由器和交换机中的控制平面分离出数据平面,这个控制平面是开放的,并且受到集中控制,同时将命令和逻辑发送回硬件的数据平面。从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。相关的概念还有:软件定义环境、软件定义存储、软件定义数据中心、OpenDaylight 开源SDN项目。 软件定义网络目的是将网络控制与物理网络拓扑分离,从而摆脱硬件对网络架构的限制。这样的话,企业就可以通过软件对网络架构修改,获得企业对网络的需求,达到底层交换机和理由器等硬件无需替换,为企业节省成本。软件定义网络能够从路由器和交换机中的控制平面分离出数据平面,这个控制平面原本是专有的,只有开发它们的供应商知道,而在SDN 中,控制平面将是开放的,并且受到集中控制,同时将命令和逻辑发送回硬件(路由器或交换机)的数据平面。 SDN软件定义网络强调两方面的能力: 1、控制转发分离:传统网络设备紧耦合的网络架构,被分拆成控制和转发两个平面。同时,在控制平面,增加集中控制器进行整体调度,将命令和逻辑发送回硬件(路由器或交换机)的数据转发平面。 2、开放API及软件定义:即通过基于SDN技术的对外开放的API进行软件编程,实现整个网络集中的管理能力,而不需要在每个路由器或交换机上分别以设备为中心进行管理。 软件定义网络的特点 简单化,可以实现中心控制,可以使得很多复杂的协议处理得到简化; 快速部署与维护; 灵活扩展,从一个机柜大的网络还可以扩展到像大的运营商的网络,也可以从一个控制器得到控制; 开放性,因OpenFlow是其重要的组成部分,它的数据转发功能和网络控制功能是分离的,由于这种分离可以分别由交换机来处理,分别由网络控制器处理,从而简化了网络的管理,由此可以使用户有更多的选择自定义网络节省他的投资,使用户选择多家设备共存,打破垄断。用户根据自己的需求和需要在任何时候方便升级。 软件定义网络的安全优势 拥有了自由移动的SDN软件定义网络后,工程师将能够通过快速且高水平地查看网络的所有区域以及修改网络来改变规则。 这种自由和控制还能为你的系统带来更好的安全性。通过快速限制以及从中央视角查看网络内部的能力,管理人员可以有效地作出更改。例如,如果你的网络中爆发了恶意软件,通过SDN软件定义网络和OpenFlow,你将能够迅速地从集中控制平面阻止这种流量来限制这种爆发,而不需要访问多个路由器或交换机。 快速对网络作出调整的能力使管理人员能够以更安全的方式来执行流量整形和数据包QoS.这种能力现在已经存在,但速度和效率不好,当管理人员在试图保护网络安全时,这将限制他们的能力。

软件定义网络

软件定义网络解决传统网络问题的探究 摘要 SDN是近年来继云计算后,学术界和产业界最为关注的网络技术。首先介绍了传统网络存在的问题;然后介绍了SDN的产生背景、体系架构以及关键技术;最后分析了SDN对传统网络问题的解决。 关键词:软件定义网络;OpenFlow;开放网络 第一章引言 软件定义网络(Software Defined Network,SDN),是由美国斯坦福大学CLean State课题研究组提出的一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。 传统网络的世界是水平标准和开放的,每个网元可以和周边网元进行完美互联;计算机的世界则不仅水平标准和开放,同时垂直也是标准和开放的,从下到上有硬件、驱动、操作系统、编程平台、应用软件等等,编程者可以很容易地创造各种应用。 和计算机对比,在垂直方向,从某个角度来说,网络是“相对封闭”和没有“框架”的,在垂直方向创造应用、部署业务是相对困难的。但SDN将在整个网络(不仅仅是网元)的垂直方向,让网络开放、标准化、可编程,从而让人们更容易、更有效地使用网络资源。所以,SDN不能丢掉网络水平方向标准、易互通、节点智能的优势。 第二章传统网络存在的问题 目前,随着互联网爆炸式地增长,除了规模和发展远超之前所有曾出现的数据网络,业务的快速创新也很令人眼花缭乱。近年来,随着各种实时业务如视频语音、云数据中心和移动业务的迅速发展,人们突然发现,传统网络已经无法满足当前的需求: 1、缺失的体验保证 到目前为止,绝大多数IP网络都是基于无连接的,只有基于大宽带的粗放带宽保障措施,质量保证和监控基本处于放弃状态。其后果就是,业务只有连通,而无体验的保证,从而导致业务质量受损。 2、低效的业务部署 由于网络和业务割裂,目前大部分网络的配置是通过命令行或者网管、由管理员手工配置的,本身是一个静态的网络。当遇到需要网络及时做出调整的动态业务时,就显得非常低效,甚至无法实施。 3、缓慢的业务适应 网络无法满足业务的需求,需求持续数年的特性和架构调整、引入新设备,才能满足新业务的需求。例如:云数据中心的虚拟机和虚拟网络运营业务,传统二层的VLAN机制无法满足扩展性,对交换机设备提出了新承载协议的要求,此时物理网络设备更加无法及时适应,靠软件实现的虚拟Switch、通过VxLAN或NvGRE的Overlay的方式,才绕过了物理

浅谈软件定义网络技术和应用领域

龙源期刊网 https://www.doczj.com/doc/dd13651258.html, 浅谈软件定义网络技术和应用领域 作者:耿宇 来源:《科技资讯》2017年第20期 摘要:当今,传统的网络结构已经不能够满足对大数据、云计算、虚拟化技术的应用需求。可编程的软件定义网络(SDN,software defined network)作为新兴的网技术,强调数据 层面和控制层面分离,根据实际情况在API接口上编写特定的网络互联协议,提高实际网络的灵活性,进而提高网络链路的利用率。 关键词:SDN OpenFlow API 中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2017)07(b)-0180-02 传统网络通信系统中离不开交换机、路由器等网络设备,能够保证用户对通信规则的不同要求不得不将众多的网络通信协议部署在交换机或者路由器上面。而现实中,普通用户需要的“规则”并不多,特定用户的特殊“规则”又无法及时添加。事实上,网络“规则”的控制面原本是专有的,只有开发它们的供应商知道,在这种封闭的网络环境中,网络管理者、第三方开发人员、甚至设备商研发和创新网络协议是很难得,改变网络的“规则”几乎是不可能的,即使后期能够部署也要经历数年之久才。由此可见,封闭的网络设备所带来的结果就是网络维护成本高、管理繁琐复杂、灵活性较差、不能够因地制宜的更新网络协议及时满足用户的需求。 针对以上情况,软件定义网络(SDN,Software Defined Network)提出了全新的探索思路:将网络设备控制部分与数据部分分离开来,以编程的方式对数据流量实现控制,构建成动态、灵活、开放、可控新的的网络结构。其中SND的核心技术OpenFlow中的控制平面是开放的,能够集中控制,并且数据平面能够接收控制面的命令和逻辑。实现物理设备的虚拟化,达到网络控制与物理拓扑分离,摆脱硬件结构对网络架构的限制。这样用户就可以通过软件对网络架构修改,获得对网络的需求。 1 SDN的关键技术OpenFlow OpenFlow交换机(OpenFlo wswitch)、网络虚拟化层(FlowVisor)和控制器(Controller)构成了OpenFlow的基本结构。其中,OpenFlow交换机进行数据的转发,实现 数据层功能;FlowVisor——网络虚拟化层能够抽象物理网络并划分虚拟络,即对物理网网络的虚拟化和抽象化;Controller——控制器对网络进行集中控制,即具备网络的调度功能。 1.1 OpenFlow交换机 机整个OpenFlow网络的核心设备是OpenFlow交换机。OpenFlow交换机的FlowTable (流表)由Controller(控制器)生成、维护和下发,FlowTable(流表)负责数据层的转发管理。在OpenFlow中定义了FlowTable10个关键字:输入端口号、MAC目的地址、MAC源地

软件定义网络的总结

什么是Openflow OpenFlow交换机将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机(OpenFlow Switch)和控制服务器(Controller)来共同完成,从而实现了快速数据包转发(数据面)和高水平路由决策(控制面)分离。控制器可以通过事先规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。 OpenFlow不能做的 OpenFlow不支持IPv6、MAC-in-MAC运营商骨干桥接、Q-in-Q虚拟局域网栈、服务质量、流量整形能力、容错和弹性等功能。 OpenFlow目前的阶段 1.OpenFlow与SDN目前还只是从实验室中成形并刚刚投产。OpenFlow尚不成熟,还未经 过大规模的网络部署测试,因此其规模化、容错性及安全性都受到一定质疑。它恐怕需要在生产环境中运转数年之后才能真正得到广泛的肯定与信任。 2.OpenFlow与SDN目前还只是从实验室中成形并刚刚投产,据媒体报道,戴尔戴尔亚太 区销售技术总监刘永道表示,SDN的市场才刚起步,预估需要3-5年才会进入成熟期。 3.企业表示它们仍然需要传统的多功能交换机和路由器,可以根据MAC地址表里的数据 决定转发。但那些支撑云环境的企业出于灵活性的考虑,愿意做一些尝试。 4.目前OpenFlow还并不完善,尚存在许多问题待解决,而且涉及的面非常广。要想实现 软件定义的互联网,还需要得到业界全方位的支持和努力才能梦想成真。 5.ISP们都在忙着从IPv4向IPv6过度,无暇顾及OpenFlow。 6.SDN到目前为止还没有准备好用于企业市场。” Openflow的一些弱点 1.OpenFlow最困难的一部分是写入控制器软件,可靠的SDN控制器是一个具有挑战性的 任务 2.SDN的杀手级应用很少 3.OpenFlow可以将对流量如何通过网络的控制权从交换机和路由器交还给网络拥有者或 者应用。它要求用户负责精心制定路径策略,去发现可用带宽、减少堵塞,以及最优转发路径。这就牵涉到用户需要有足够的软件开发力量,才能完成相关的工作。目前,对于拥有强大技术团队的运营商和服务提供商来说,这基本不是问题。但对于一般企业来讲,还是有一定难度的。

软件定义网络SDN文献综述

软件定义网络SDN研究 文献综述 1.引言 现有的网络设备(如交换机、路由器等)都是设备制造商在专门的硬件系统基础上高度集成大量网络协议、配备专用的设备控制系统,构成的一个相对独立封闭的网络设备[1]。在近几十年的发展过程中,云计算、移动互联网等相关技术的兴起和发展加快了网络技术的变革历程[2]。网络带宽需求的持续攀升、网络业务的丰富化、个性化等都给新一代网络提出了更高的要求。面对日益复杂的网络环境,这种紧耦合大型主机式的发展限制了IP网络创新技术的出现,更多的是通过不断增长的RFC数量对现行网络进行修修补补,造成了交换机/路由器设备控制功能的高度复杂。网络研究人员想要在真实网络中基于真实生产流量进行大规模网络实验几乎是不可能的,因为网络设备是封闭的,没有提供开放的API,无法对网络设备进行自动化配置和对网络流量进行实时操控。 为了适应今后互联网业务的需求,业内形成了“现在是创新思考互联网基本体系结构、采用新的设计理念的时候”的主流意见[3],并对未来网络的体系架构提出了新的性质和功能需求[4]。软件定义网络[5]SDN的出现为人们提供了一种崭新的思路。 本文从SDN的起源和概念出发,分析了SDN的逻辑架构与技术特点、描述了SDN 的标准化进程,梳理了国内外的研究进展与最新动态,在此基础上提出了SDN技术在未来的发展中面临的挑战并总结了可能的研究方向。 2.起源与概念 2.1起源 2006 年,斯坦福大学启动了名为“Clean-Slate Design for the Internet”项目,该项目旨在研究提出一种全新的网络技术,以突破目前互联网基础架构的限制,更好地支持新的技术应用和创新。通过该项目,来自斯坦福大学的学生Martin Casado 和

赵小凡:对“软件定义一切”的思考和理解

对“软件定义一切”的思考和理解 赵小凡 尽管我国软件产业起步晚,但政府一直高度重视,使得软件产业成为优惠政策最密集、持续时间最长、优惠力度最大的产业之一。国务院发布的《鼓励软件产业和集成电路产业发展的若干政策》(国发〔2000〕18号)和《进一步鼓励软件产业和集成电路产业发展的若干政策》(国发〔2011〕4号),以及各相关部门和各级地方政府相继发布的更为优惠的政策,都为软件产业快速、持续发展提供了强大的动力。2010年我国软件产业收入为1.33万亿元,2015年预计将超过5万亿元。5年翻两番,将是我国发展最快的产业。 软件是劳动工具 软件是加工数据、信息、知识(简称信息)的劳动工具,用于改变信息的形态和形式。通信也是劳动工具,用于改变信息的位置。而信息则是劳动对象。由于劳动对象和劳动工具都是非物质,劳动者为了更好地用信息技术(IT)处理信息,必须学习与农业系统和工业系统完全不同的信息系统中的IT知识和技能,并掌握软件工具和通信工具。 信息是非物质资源、无形资产、生产要素、社会财富,具有保值增值的属性。但是劳动工具会随时间而贬值,并且需要持续更新换代。例如,软件必须不断研发新版本,并随着用量增加而变得越来越便宜。所以,我们国家要重视对数据的积累和应用形成的大数据,重视对数据赋予语义而形成的信息,对信息进行推理所产生的知识体系,以及以此为基础升华成的智慧。 软件定义一切 软件定义(Software Defined)是近两年的热议话题。那么软件究竟能定义什么呢?从最早的软件定义无线电,到软件定义网络、数据中心、信息系统、世界。也就是说,软件可以定义一切。 为什么现在才提出软件定义一切呢?因为两个最为重要的条件近年来才基本具备。 第一个条件是硬件越来越小,功耗越来越低,散热越来越少,可靠性越来越高,加工工艺越来越成熟,成本越来越低,可以比前些年更加圆满地完成软件发出的指令。 第二个条件是通信网络已经完全打破了时空的限制,随时随地存在,而且带宽越来越高,可靠性越来越高,建设和运营成本越来越低。这当然也得益于软件,因为软件定义了频率,定义了传输交换。于是,软件不但可以指挥本地硬件实现各种功能,还可以通过通信网络指挥远处的信息系统协同实现各种功能。正是在硬件和网络的大力支持下,软件才进入了定义一切的时代。 人作为高级动物,可以主动地移动,这是与植物和非物质的主要区别。人际交往是人类的基本社会需求。随着软件定义逐渐普及、完善,信息系统会更好地为人的移动交际提供服务,更好地满足人的本能和需求。尽管在硬件和通信支持下,软件好像已经无所不能,但软件定义的世界才刚刚开始。人类社会还有很多尚未发现的真理、未曾发明的技术、有待掌握的知识技能。 我国的软件产业虽然发展很快,但是规模大而不强,企业多而不优,特别是在安全可靠和基础软件产品及服务等方面的问题依然严峻。必须认清我国软件产业的重要性、必要性、紧迫性、长期性、复杂性、艰巨性,切实以创新的观念、思维、模式,坚持不懈地努力,才能有所突破,有所作为。

软件定义网络(SDN)

软件定义网络(Software-Defined Network—SDN) 目录 背景—VMWare 12.6亿美金收购Nicira (1) 网络虚拟化—互联网的下一波革命 (2) Nicira引领网络虚拟化 (6) 附件:SDN—应对云计算与网络管理新思路 (8) SDN (8) 常见专有SDN (9) OpenFlow SDN与应用 (11) SDN商业价值应用展望 (14) SDN发展挑战 (16) 背景—VMWare 12.6亿美金收购Nicira 2009 年,Cisco、EMC 与VMware 共同成立“虚拟计算环境联盟”,同时推出Vblock 虚拟化基础架构包,以Cisco的网络硬件和VMware 的服务为基础,希望在面向企业用户的数据中心虚拟化和私有云技术市场中有所斩获。 日前,VMware 以12.6 亿美元的大手笔收购了一家小型初创公司Nicira。VMware 之所以看中Nicira,是因为它的SDN技术。这个技术能够无视网络交换机在物理层面上的差别,创建出虚拟网络与机器相连,让网络资源的分配更加灵活。这也意味着,当Nicira 的技术被VMware 大规模应用之后,VMware 的软件将减少对硬件的依赖,为企业提供更加灵活的解决方案。什么牌子的路由器,将不是“企业虚拟化”的必选项,这有利于VMware 拓展市场。 ComputerWord 今年三月撰文指出,VMware的产品面临微软Hyper-V 有力的竞争。Gartner 认为2012 年,Hyper-V 的市场份额将为27%,同时占中小企业市场的85%。它还指出,VMware 中低端产品多为免费,无法带来收入,前景是危险的。

SDN软件定义光网络技术与发展

软件定义光网络技术与发展 软件定义光 网络技术与发展
Software ft Defined fi d Optical ti l Networks t k
张杰,纪越峰 北京邮电大学 中国/北京 中国/北京,2014年5月21日 年 月 日
BUPT—Jie Zhang
1 2014中国光网络研讨会

主要内容 1. 光联网与SDON理念
软件定义 光网络 SDON
2. SDON若干关键技术 3 863-AONI 项目进展 3. 4. SDON发展几点思考
BUPT—Jie Zhang
2
2014中国光网络研讨会

光联网的趋势与挑战
信息时代的标签:ABC
应用(Application)
大数据(Big Data)
云(Cloud)
光联网发展趋势之一 高速/宽带/长距 容量 提升 挑战
? ? ?
光联网发展趋势之二 动态/弹性/灵活 智能 增强 挑战
? ? ?
Gbps能力(多业务接入) Tbps能力(多复用传输) Pbps能力(多粒度交换)
高突发—D 能力(动态适应) 变带宽 —E 能力 ( 弹性调节 ) 大规模 —F 能力 ( 灵活扩展 )
永恒主题 非“光”莫属 永恒主题,非“光”莫属
BUPT—Jie Zhang
3
价值追求 “光”有可为 价值追求,“光”有可为
2014中国光网络研讨会

大容量光网络:交换点重心下移, 光联网作用凸显
2000年 至今
RrR结构
基于Router 分组级转发
RmR结构
基于MSTP 电路级交叉
RoR结构
基于OTN 子波级调度
RwR结构
基于WDM 波长级交换
数字洪流的出现迫切需要大带宽交换 联网能力向光层迁移 数字洪流的出现迫切需要大带宽交换,联网能力向光层迁移
BUPT—Jie Zhang
4 2014中国光网络研讨会

相关主题
文本预览
相关文档 最新文档