Movatterモバイル変換


[0]ホーム

URL:


CN104717095B - A kind of visualization SDN management method of integrated multi-controller - Google Patents

A kind of visualization SDN management method of integrated multi-controller
Download PDF

Info

Publication number
CN104717095B
CN104717095BCN201510116458.8ACN201510116458ACN104717095BCN 104717095 BCN104717095 BCN 104717095BCN 201510116458 ACN201510116458 ACN 201510116458ACN 104717095 BCN104717095 BCN 104717095B
Authority
CN
China
Prior art keywords
information
flow table
sdn
topology
http request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510116458.8A
Other languages
Chinese (zh)
Other versions
CN104717095A (en
Inventor
李克秋
李银平
齐恒
喻海生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian University of Technology
Original Assignee
Dalian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dalian University of TechnologyfiledCriticalDalian University of Technology
Priority to CN201510116458.8ApriorityCriticalpatent/CN104717095B/en
Publication of CN104717095ApublicationCriticalpatent/CN104717095A/en
Application grantedgrantedCritical
Publication of CN104717095BpublicationCriticalpatent/CN104717095B/en
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Landscapes

Abstract

Translated fromChinese

本发明提供了一种集成多控制器的可视化SDN网络管理方法,实现了对SDN网络的可视化操作管理,用户可以利用本方法提供的前端页面实现如下功能:简单快速的生成SDN网络;展示所生成的网络拓扑;展示SDN网络的信息;对交换机的流表进行管理等。该方法不仅用图形化的界面代替了命令行,而且我们还统一了多控制器提供的接口,屏蔽了不同控制器带来的差异,使用户不用考虑SDN网络中控制器的类型,也不用熟悉每种控制器操作交换机的命令,从而使初学者能够简单方便的使用SDN控制器相关功能,快速的认识SDN网络。

The present invention provides a visualized SDN network management method integrating multiple controllers, which realizes the visualized operation and management of the SDN network. Users can use the front-end page provided by the method to realize the following functions: simply and quickly generate the SDN network; display the generated The network topology; display the information of the SDN network; manage the flow table of the switch, etc. This method not only replaces the command line with a graphical interface, but also unifies the interfaces provided by multiple controllers, shielding the differences caused by different controllers, so that users do not need to consider the type of controllers in the SDN network, and do not need to be familiar with Each type of controller operates the commands of the switch, so that beginners can easily and conveniently use the related functions of the SDN controller and quickly understand the SDN network.

Description

Translated fromChinese
一种集成多控制器的可视化SDN网络管理方法A visual SDN network management method integrating multiple controllers

技术领域technical field

本发明涉及一种集成多控制器的可视化SDN网络管理方法,属于计算机应用技术领域。The invention relates to a visualized SDN network management method integrating multiple controllers, belonging to the technical field of computer applications.

背景技术Background technique

随着SDN网络的不断普及和发展,目前SDN网络的研究已经成为我国一个重要的研究课题。目前越来越多的研究人员进入该研究领域,然而,现如今大多数针对SDN网络的研究都是通过Mininet等软件虚拟出SDN网络的组件(包括控制器、交换机、主机等),然后在此基础上进行实验研究。因此,研究人员初次接触该领域都觉得SDN网络的技术很抽象,难以把握,严重阻碍了研究人员对SDN网络的认识,所以研究人员在该领域的研究变得举步维艰。其次,由于SDN网络的概念提出的时间较短,因此目前还没有统一的标准,特别是针对SDN网络控制器的研发,许多不同的团体开发了多种类型的SDN网络的控制器,而不同控制器所提供的接口名称,功能可能都不一致,因此研究者需要学习研究多种控制器的原理、API,然后才能在实验中加以应用,然而多种控制器提供的接口繁多、名称各异,这无疑给研究者的研究开发带来了难度。With the continuous popularization and development of SDN network, the current research on SDN network has become an important research topic in our country. At present, more and more researchers are entering this research field. However, most of the research on SDN networks nowadays is to virtualize the components of SDN networks (including controllers, switches, hosts, etc.) through software such as Mininet, and then here Based on experimental research. Therefore, when researchers first contact this field, they feel that the technology of SDN network is very abstract and difficult to grasp, which seriously hinders researchers' understanding of SDN network, so it becomes difficult for researchers to study in this field. Secondly, because the concept of SDN network was put forward for a short time, there is no uniform standard, especially for the research and development of SDN network controllers. Many different groups have developed various types of SDN network controllers, and different control The names and functions of the interfaces provided by controllers may be inconsistent, so researchers need to study the principles and APIs of various controllers before applying them in experiments. However, various controllers provide various interfaces with different names. Undoubtedly, it brings difficulties to researchers' research and development.

发明内容Contents of the invention

为了克服上述不足,本发明提供了一种基于Java、Flex技术的集成了多控制器的SDN网络管理方法。首先,该方法实现了对SDN网络的可视化操作管理,用户可以利用本方法提供的前端页面实现如下功能:简单快速的生成SDN网络;展示所生成的网络拓扑;展示SDN网络的信息;对交换机的流表进行管理等。In order to overcome the above disadvantages, the present invention provides a Java and Flex technology-based SDN network management method integrated with multiple controllers. First of all, this method realizes the visual operation and management of the SDN network, and the user can use the front-end page provided by this method to realize the following functions: generate the SDN network simply and quickly; display the generated network topology; display the information of the SDN network; Flow table management, etc.

此外,该方法不仅用图形化的界面代替了命令行,而且我们还统一了多控制器提供的接口,屏蔽了不同控制器带来的差异,使用户不用考虑SDN网络中控制器的类型,也不用熟悉每种控制器操作交换机的命令,从而使初学者能够简单方便的使用SDN控制器相关功能,快速的认识SDN网络。In addition, this method not only replaces the command line with a graphical interface, but also unifies the interfaces provided by multiple controllers, shielding the differences caused by different controllers, so that users do not need to consider the type of controllers in the SDN network, and also It is not necessary to be familiar with the commands of each controller to operate the switch, so that beginners can easily and conveniently use the related functions of the SDN controller and quickly understand the SDN network.

本发明采取的技术方案如下:The technical scheme that the present invention takes is as follows:

一种集成多控制器的可视化SDN网络管理方法,方法由前端,服务器端,数据库,SDN控制器以及交换机组成;其中服务器端由对SDN网络进行管理,负责与SDN网络进行通信,是前端与SDN网络通信的桥梁;其中服务器端主要由Java语言实现,同时应用了spring框架的依赖注入及声明式事务管理来管理服务器端对象的初始化和事务管理;前端主要是负责实现SDN网络拓扑创建、SDN网络拓扑信息的展示,流表的添加和流表的删除等操作的可视化(结合服务器端);前端主要由Flex,ActionScript语言实现,其中Flex负责网页的构造和美化,ActionScript负责网页功能的实现,同时还负责与服务器端交互数据。数据库部分主要是存储服务器端采集的SDN网络的相关信息,以供前端查询使用。其中前端和服务器端通过Blazeds访问远程服务接口实现,其中Blazeds是一个基于服务器的Java远程调用和Web消息传递技术,使得服务器端的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信;而服务器端通过MyBatis和Spring技术对数据库进行存取操作,而MyBatis和Spring之间通过MyBatis-Spring进行整合,使用MyBatis-Spring类库中的类,Spring将会加载必要的MyBatis工厂类和session类。这个类库也提供一个简单的方式来注入MyBatis数据映射器和SqlSession到业务层的bean中,这样就实现了服务器对数据库的操作;服务器端则是通过向SDN控制器的RESTAPI发送HTTP请求来实现对SDN控制器的控制。A visual SDN network management method integrating multiple controllers. The method is composed of a front end, a server end, a database, an SDN controller, and a switch; the server end manages the SDN network and is responsible for communicating with the SDN network. The bridge of network communication; the server side is mainly implemented by the Java language, and the dependency injection and declarative transaction management of the spring framework are applied to manage the initialization and transaction management of server-side objects; the front-end is mainly responsible for realizing SDN network topology creation and SDN network The display of topology information, the visualization of operations such as adding and deleting flow tables (combined with the server side); the front end is mainly implemented by Flex and ActionScript languages, where Flex is responsible for the construction and beautification of web pages, and ActionScript is responsible for the realization of web page functions. It is also responsible for exchanging data with the server. The database part mainly stores the relevant information of the SDN network collected by the server side for front-end query. The front end and the server end are realized by accessing the remote service interface through Blazeds, among which Blazeds is a server-based Java remote call and Web messaging technology, which enables the Java application program on the server side and the Flex application program running on the browser to communicate with each other; and The server side accesses the database through MyBatis and Spring technology, and MyBatis and Spring are integrated through MyBatis-Spring. Using the classes in the MyBatis-Spring class library, Spring will load the necessary MyBatis factory classes and session classes. This class library also provides a simple way to inject MyBatis data mapper and SqlSession into the bean of the business layer, thus realizing the operation of the server on the database; the server side is implemented by sending HTTP requests to the REST API of the SDN controller Control over the SDN controller.

一种集成多控制器的可视化SDN网络管理方法,包括SDN网络拓扑创建、拓扑信息采集、SDN网络拓扑信息的展示、流表的添加和流表的删除;具体如下:A visual SDN network management method integrating multiple controllers, including SDN network topology creation, topology information collection, SDN network topology information display, flow table addition and flow table deletion; details are as follows:

SDN网络拓扑创建的方法为:The method of creating SDN network topology is:

(1)用户确定所需拓扑;(1) The user determines the required topology;

(2)创建组件,其中包括SDN控制器,OpenFlow交换机和主机。本步骤主要是在前端页面完成;(2) Create components, including SDN controllers, OpenFlow switches and hosts. This step is mainly completed on the front-end page;

(3)连接上述步骤中所创建的控制器,交换机和主机组成网络拓扑,其中,控制器连接交换机,交换机即可连接控制器也可连接主机,控制器和主机之间不存在直接链路,该步骤也是在前端页面完成,网络拓扑创建完成后,可以导出拓扑;(3) Connect the controller, switch, and host created in the above steps to form a network topology. The controller is connected to the switch, and the switch can be connected to the controller or the host. There is no direct link between the controller and the host. This step is also completed on the front-end page. After the network topology is created, the topology can be exported;

拓扑信息采集方法为:The topology information collection method is as follows:

(4)确定需要采集的拓扑信息,需要获取哪些拓扑信息主要是由拓扑中SDN控制器的种类和开发人员决定,一般包括控制器、交换机、主机、链路等相关信息;(4) Determine the topology information that needs to be collected. Which topology information needs to be obtained is mainly determined by the type of SDN controller in the topology and the developer, and generally includes related information such as controllers, switches, hosts, and links;

(5)判断控制类型,因为不同的控制器,获取同一类信息的命令是不一致的;(5) Judging the control type, because different controllers have inconsistent commands to obtain the same type of information;

(6)在确定了控制器类型和需要采集的信息之后就是拼接采集信息的命令,因为服务器端与控制器交互是通过HTTP请求实现,因此拼接采集信息的命令其实就是拼接HTTP请求,获取不同拓扑信息的HTTP请求是不一样的,因此获取不同的拓扑信息需要拼接不同的HTTP请求,HTTP请求拼接具体过程是:首先确定HTTP请求类型(包括POST,GET,DELETE),在确定了HTTP请求类型之后,再将需要请求的信息内容加入到HTTP中,这样一条完成的HTTP请求就拼接完成了,之后进行下一步;(6) After determining the controller type and the information to be collected, it is the command to splice and collect information, because the interaction between the server and the controller is realized through HTTP requests, so the command to splice and collect information is actually splicing HTTP requests to obtain different topologies The HTTP requests for information are different, so different HTTP requests need to be spliced to obtain different topology information. The specific process of HTTP request splicing is: first determine the HTTP request type (including POST, GET, DELETE), after determining the HTTP request type , and then add the information content to be requested to HTTP, so that a completed HTTP request is spliced, and then proceed to the next step;

(7)向控制器发送HTTP求情,控制器在接受到外部发来的HTTP请求时,先判断其格式是否正确,若是不正确在直接返回错误,不再进行其他操作,若是格式正确则进行下一步;SDN控制器解析HTTP请求,获取请求信息的类型,然后将需要返回的信息封装成JSON字格式的字符串返回;(7) Send an HTTP plea to the controller. When the controller receives an HTTP request from the outside, it first judges whether the format is correct. If it is incorrect, it directly returns an error and does not perform other operations. One step; the SDN controller parses the HTTP request, obtains the type of request information, and then encapsulates the information to be returned into a string in JSON format and returns it;

(8)服务器端收到来自控制器的返回信息后,返回信息的格式是JSON字符串,需要对其进行解析,解析过程如下:在服务器端定义一个Map对象来接收控制器返回的JSON字符串,然后通过Map取出JSON中的信息存入相应的对象,最后再调用操作数据库的方法将信息更新到数据库中;(8) After the server receives the returned information from the controller, the format of the returned information is a JSON string, which needs to be parsed. The parsing process is as follows: Define a Map object on the server to receive the JSON string returned by the controller , and then take out the information in the JSON through the Map and store it in the corresponding object, and finally call the method of operating the database to update the information into the database;

(9)网络中拓扑信息是实时变化的,将获取网络中拓扑信息设置成了定时的任务,每过一个周期就获取一次拓扑信息。(9) The topology information in the network changes in real time, and the acquisition of the topology information in the network is set as a timed task, and the topology information is obtained every cycle.

SDN网络拓扑信息的展示的方法为:The method of displaying SDN network topology information is as follows:

(10)用户选择需要查看的拓扑信息,确定之后进行下一步;(10) The user selects the topology information to be viewed, and proceeds to the next step after confirmation;

(11)在用户选择了需要显示的拓扑信息后,前端通过调用服务器端提供的获取特定拓扑信息的方法读取数据库获取所需拓扑信息的当前值,将其封装成对象之后返回至前端,若是不存在相关拓扑信息,则返回空;(11) After the user selects the topology information to be displayed, the front-end reads the database to obtain the current value of the required topology information by calling the method provided by the server to obtain the specific topology information, encapsulates it into an object and returns it to the front-end, if If there is no relevant topology information, it returns empty;

(12)接受到服务器端所返回的数据后,前端取出封装的对象,然后在页面显示;(12) After receiving the data returned by the server, the front end takes out the encapsulated object, and then displays it on the page;

(13)如果还想查看其他信息,返回(10)。(13) If you want to check other information, return to (10).

流表的添加的方法:The method of adding flow table:

(14)开始添加流表,该步骤主要在前端完成,具体操作是,设置需要添加流表的相关参数,设置完成之后进行下一步;(14) Start adding the flow table. This step is mainly completed at the front end. The specific operation is to set the relevant parameters that need to be added to the flow table. After the setting is completed, proceed to the next step;

(15)确定控制器类型,因为不同控制器添加流表的命令是不一致的;(15) Determine the controller type, because the commands for adding flow tables to different controllers are inconsistent;

(16)在确定了控制器类型之后就是拼接添加流表的命令的HTTP请求,其过程与获取网络拓扑信息中拼接HTTP请求是一致的;(16) After determining the controller type, it is to splice the HTTP request of the command to add the flow table, and its process is consistent with the splicing HTTP request in obtaining the network topology information;

(17)HTTP拼接完成之后,服务器端将向控制器发送拼接完成的HTTP请求;(17) After the HTTP splicing is completed, the server will send an HTTP request for splicing to the controller;

(18)控制器在接收到来自服务器的HTTP请求后,首先判断其格式是否正确,若不正确则直接返回错误信息并重新开始流表添加,若正确则进行第六步;(18) After the controller receives the HTTP request from the server, it first judges whether its format is correct, if not, then directly returns an error message and restarts the addition of the flow table, and if it is correct, proceeds to the sixth step;

(19)判断流表中是否存在与将要添加的流表同名的流表项,若存在则直接覆盖,返回带有entry pushed信息的JSON字符串,若不存在则判断所要添加的流表项是否满足依赖关系,满足则添加新流表,向服务器返回带有entry pushed信息的JSON字符串,否则,添加流表失败,返回带有entry push failed信息的JSON字符串;(19) Determine whether there is a flow entry with the same name as the flow table to be added in the flow table. If it exists, it will be overwritten directly, and a JSON string with entry pushed information will be returned. If it does not exist, it will be judged whether the flow entry to be added is If the dependency is satisfied, a new flow table is added, and a JSON string with entry pushed information is returned to the server; otherwise, adding a flow table fails, and a JSON string with entry push failed information is returned;

(20)若是还需要继续添加流表则转入(14),否则流表添加结束。(20) If it is necessary to continue adding the flow table, then turn to (14), otherwise the flow table addition ends.

流表的删除的方法:The method of deleting the flow table:

(21)开始删除流表,该步骤主要在前端完成,具体操作是,设置需要删除流表的流表名,设置完成之后进行下一步;(21) Start to delete the flow table. This step is mainly completed at the front end. The specific operation is to set the name of the flow table that needs to be deleted, and proceed to the next step after the setting is completed;

(22)确定控制器类型,因为不同控制器删除流表的命令是不一致的;(22) Determine the controller type, because the commands of different controllers to delete the flow table are inconsistent;

(23)在确定了控制器类型之后就是拼接删除流表的命令的HTTP请求,其过程与获取网络拓扑信息中拼接HTTP请求是一致的;(23) After the controller type is determined, it is the HTTP request of splicing the command to delete the flow table, and its process is consistent with splicing HTTP requests in obtaining network topology information;

(24)HTTP拼接完成之后,服务器端将向控制器发送拼接完成的HTTP请求;(24) After the HTTP splicing is completed, the server will send an HTTP request for splicing to the controller;

(25)控制器在接收到来自服务器的HTTP请求后,首先判断其格式是否正确,若不正确则直接返回错误信息并重新开始流表删除,若正确则进行下一步;(25) After the controller receives the HTTP request from the server, it first judges whether its format is correct, if not, then directly returns an error message and restarts the flow table deletion, and if it is correct, proceeds to the next step;

(26)判断流表中是否存在与将要删除的流表同名的流表项,若存在则进行删除操作,返回带有“Entry‘流表名’deleted”信息的JSON字符串,若不存在怎不进行任何操作,返回带有“Entry‘流表名’deleted”信息的JSON字符串,若是还需要继续删除流表则转入(21)即可,否则流表添加结束。(26) Determine whether there is a flow entry with the same name as the flow table to be deleted in the flow table. If it exists, delete it and return a JSON string with the information "Entry'flow table name'deleted". If it does not exist, what to do? Do not perform any operation, return the JSON string with the information of "Entry'flow table name'deleted", if you need to continue to delete the flow table, go to (21), otherwise the addition of the flow table is complete.

本发明的有益效果:本发明不仅实现了对SDN网络的可视化管理,而且针对SDN控制器的多样性,我们在SDN网络的控制平面上增加了一层,用于统一不同类型控制器提供的API,从而消除不同控制器提供不同API带来的繁琐操作。Beneficial effects of the present invention: the present invention not only realizes the visual management of the SDN network, but also aims at the diversity of SDN controllers, we add a layer on the control plane of the SDN network, which is used to unify the APIs provided by different types of controllers , so as to eliminate the cumbersome operations caused by different controllers providing different APIs.

附图说明Description of drawings

图1是本发明的系统整体结构示意图。Fig. 1 is a schematic diagram of the overall structure of the system of the present invention.

图2是本方法生成SDN网络拓扑的具体流程图。FIG. 2 is a specific flow chart of the method for generating the SDN network topology.

图3是本方法获取SDN网络拓扑的具体流程图。FIG. 3 is a specific flow chart of the method for obtaining the SDN network topology.

图4是本方法展示SDN网络中组件信息的具体流程图。FIG. 4 is a specific flow chart of the method for displaying component information in an SDN network.

图5是本方法添加流表的具体流程图。FIG. 5 is a specific flowchart of the method for adding a flow table.

图6是本方法删除流表的具体流程图。FIG. 6 is a specific flowchart of the method for deleting a flow table.

具体实施方式Detailed ways

下面结合附图对本发明进行进一步的叙述。The present invention is further described below in conjunction with accompanying drawing.

如图1所示,一种集成多控制器的可视化SDN网络管理方法,方法由前端,服务器端,数据库,SDN控制器以及交换机组成;其中服务器端对SDN网络进行管理,负责与SDN控制器以及前端进行通信,是前端与SDN网络通信的桥梁;其中服务器端主要由Java语言实现,同时应用了spring框架的依赖注入及声明式事务管理功能来管理服务器端对象的初始化和事务管理;前端主要是负责实现SDN网络拓扑创建、SDN网络拓扑信息的展示,流表的添加和流表的删除等操作的可视化(结合服务器端);前端主要由Flex,ActionScript语言实现,其中Flex负责网页的构造和美化,ActionScript负责实现网页的逻辑功能以及与服务器端之间的数据交互。数据库部分主要是存储服务器端采集的SDN网络的相关信息,以供前端查询使用。本方法使用的数据库是MySQL。SDN控制器主要是对网络中的交换机进行管理,功能主要包括流表下发,网络流量监控,负载均衡等;最后,SDN网络中的交换机负责根据流表转发数据包,并对转发的数据做统计;其中前端和服务器端通过Blazeds访问远程服务接口实现,其中Blazeds一个基于服务器的Java远程调用和Web消息传递技术,使得服务器端的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信;而服务器端通过MyBatis和Spring技术对数据库进行存取操作,而MyBatis和Spring之间通过MyBatis-Spring进行整合,使用MyBatis-Spring类库中的类,Spring将会加载必要的MyBatis工厂类和session类。这个类库也提供一个简单的方式来注入MyBatis数据映射器和SqlSession到业务层的bean中,这样就实现了服务器对数据库的操作;服务器端则是通过向SDN控制器的RESTAPI发送HTTP请求来实现对SDN网络的控制器的控制。As shown in Figure 1, a visual SDN network management method integrating multiple controllers is composed of a front end, a server end, a database, an SDN controller, and a switch; the server end manages the SDN network and is responsible for communicating with the SDN controller and The front-end communicates, which is the bridge between the front-end and the SDN network; the server-side is mainly implemented by the Java language, and the dependency injection and declarative transaction management functions of the spring framework are applied to manage the initialization and transaction management of the server-side objects; the front-end is mainly Responsible for creating SDN network topology, displaying SDN network topology information, and visualizing operations such as adding and deleting flow tables (combined with the server side); the front end is mainly implemented by Flex and ActionScript languages, and Flex is responsible for the construction and beautification of web pages , ActionScript is responsible for implementing the logical functions of the web page and data interaction with the server. The database part mainly stores the relevant information of the SDN network collected by the server side for front-end query. The database used in this method is MySQL. The SDN controller mainly manages the switches in the network, and its functions mainly include flow table distribution, network traffic monitoring, load balancing, etc.; finally, the switches in the SDN network are responsible for forwarding data packets according to the flow table, and performing operations on the forwarded data. Statistics; where the front end and the server end access the remote service interface through Blazeds, among which Blazeds is a server-based Java remote call and Web messaging technology, enabling the Java application program on the server side and the Flex application program running on the browser to communicate with each other; The server side uses MyBatis and Spring technology to access the database, and MyBatis and Spring are integrated through MyBatis-Spring. Using the classes in the MyBatis-Spring class library, Spring will load the necessary MyBatis factory classes and session classes. . This class library also provides a simple way to inject MyBatis data mapper and SqlSession into the bean of the business layer, thus realizing the operation of the server on the database; the server side is implemented by sending HTTP requests to the REST API of the SDN controller Control over the controller of the SDN network.

图2描述了本方法自定义SDN网络拓扑的过程示意图。第一步是用户确定所需拓扑,然后执行下一步;第二步就是创建组件,其中包括SDN控制器,OpenFlow交换机和主机。本步骤主要是在前端页面完成,在本方法提供的网页上拖拽所需组件放入“创建拓扑”的面板之中,即完成了一个组件的创建。当所有组件创建完成之后进行下一步;第三步是连接上述步骤中所创建的控制器,交换机和主机组成网络拓扑,其中,控制器连接交换机,交换机即可连接控制器也可连接主机,控制器和主机之间不存在直接链路。该步骤也是在前端页面完成,通过连接面板中两个不同的组件,即完成一次链路的创建,当所有链路创建完成之后就表示网络拓扑创建完成,可以导出拓扑;最后,在导出拓扑之后,如果还想继续创建拓扑,可以在之前创建的基础上添加组件,链路继续创建,也可以清空面板重新创建其他拓扑。Figure 2 depicts a schematic diagram of the process of customizing the SDN network topology in this method. The first step is for the user to determine the desired topology, and then proceed to the next step; the second step is to create components, including SDN controllers, OpenFlow switches, and hosts. This step is mainly completed on the front-end page. Drag and drop the required components on the web page provided by this method and drop them into the "Create Topology" panel, that is, the creation of a component is completed. After all the components are created, go to the next step; the third step is to connect the controller, switch and host created in the above steps to form a network topology, where the controller is connected to the switch, and the switch can be connected to the controller or the host. There is no direct link between the server and the host. This step is also completed on the front-end page. By connecting two different components in the panel, the creation of a link is completed. When all links are created, it means that the network topology is created and the topology can be exported; finally, after exporting the topology , if you want to continue to create a topology, you can add components based on the previous creation, continue to create links, or clear the panel to recreate other topologies.

图3是获取SDN网络拓扑信息的具体流程图,获取拓扑信息的整个过程都是在服务器端执行,不涉及前端操作。首先,第一步是确定需要采集的拓扑信息,需要获取哪些拓扑信息主要是由拓扑中SDN控制器的种类和开发人员决定。一般包括控制器、交换机、主机、链路等相关信息;第二步,判断控制类型,因为不同的控制器,获取同一类信息的命令是不一致的;第三步,在确定了控制器类型和需要采集的信息之后就是拼接采集信息的命令。因为服务器端与控制器交互是通过HTTP请求实现,因此拼接采集信息的命令其实就是拼接HTTP请求,获取不同拓扑信息的HTTP请求是不一样的,因此获取不同的拓扑信息需要拼接不同的HTTP请求。HTTP请求拼接具体过程是:首先确定HTTP请求类型(包括POST,GET,DELETE),在确定了HTTP请求类型之后,再将需要请求的信息内容加入到HTTP中,这样一条完成的HTTP请求就拼接完成了,之后进行下一步;第三步,向控制器发送HTTP求情,控制器在接受到外部发来的HTTP请求时,先判断其格式是否正确,若是不正确在直接返回错误,不再进行其他操作,若是格式正确则进行下一步;第四步,SDN控制器解析HTTP请求,获取请求信息的类型,然后将需要返回的信息封装成JSON字符串的格式返回。第五步,服务器端收到来自控制器的返回信息后,因为返回信息的格式是JSON字符串,因此需要对其进行解析。解析过程如下:在服务器端定义一个Map对象来接收控制器返回的JSON字符串,然后通过Map取出JSON中的信息存入相应的对象,最后再调用操作数据库的方法将信息更新到数据库中;最后,因为网络中拓扑信息是实时变化的,因此我们将获取网络中拓扑信息设置成了定时的任务,每过一个周期我们就获取一次拓扑信息。Figure 3 is a specific flow chart of obtaining SDN network topology information. The entire process of obtaining topology information is performed on the server side without involving front-end operations. First of all, the first step is to determine the topology information that needs to be collected. Which topology information needs to be obtained is mainly determined by the type of SDN controller in the topology and the developer. It generally includes related information such as controllers, switches, hosts, and links; the second step is to determine the control type, because different controllers have different commands to obtain the same type of information; the third step is to determine the controller type and After the information to be collected is the command to splice the collected information. Because the interaction between the server and the controller is realized through HTTP requests, the commands for splicing and collecting information are actually splicing HTTP requests. The HTTP requests for obtaining different topology information are different, so obtaining different topology information requires splicing different HTTP requests. The specific process of HTTP request splicing is: first determine the type of HTTP request (including POST, GET, DELETE), after determining the type of HTTP request, then add the information content that needs to be requested to HTTP, so that a completed HTTP request is spliced. After that, proceed to the next step; the third step is to send an HTTP plea to the controller. When the controller receives the HTTP request from the outside, it first judges whether the format is correct. If it is not correct, it returns an error directly, and no other Operation, if the format is correct, go to the next step; the fourth step, the SDN controller parses the HTTP request, obtains the type of the requested information, and then encapsulates the information to be returned into a JSON string format and returns it. Step 5: After the server receives the returned information from the controller, it needs to parse it because the format of the returned information is a JSON string. The parsing process is as follows: define a Map object on the server side to receive the JSON string returned by the controller, then take out the information in the JSON through the Map and store it in the corresponding object, and finally call the method of operating the database to update the information into the database; finally , because the topology information in the network changes in real time, so we set the acquisition of the topology information in the network as a timed task, and we acquire the topology information every cycle.

图4是查看SDN网络拓扑信息的具体流程图。第一步是用户选择需要查看的拓扑信息,确定之后进行下一步;第二步是在用户选择了需要显示的拓扑信息后,前端通过调用服务器端提供的获取特定拓扑信息的方法读取数据库获取所需拓扑信息的当前值,将其封装成对象之后返回至前端,若是不存在相关拓扑信息,则返回空;第三步,接受到服务器端所返回的数据后,前端取出封装的对象,然后在页面显示,最后,如果还想查看其他信息,重复上述步骤即可。Fig. 4 is a specific flow chart of viewing SDN network topology information. The first step is that the user selects the topology information to be viewed, and proceeds to the next step after confirmation; the second step is that after the user selects the topology information to be displayed, the front end reads the database by calling the method provided by the server to obtain specific topology information. The current value of the required topology information is encapsulated into an object and returned to the front end. If there is no relevant topology information, it returns empty; the third step, after receiving the data returned by the server, the front end takes out the encapsulated object, and then It is displayed on the page. Finally, if you want to view other information, just repeat the above steps.

图5是本方法实现添加流表的具体流程图。第一步,开始添加流表,该步骤主要在前端完成,设置完成之后进行下一步;第二步,确定控制器类型,因为不同控制器添加流表的命令是不一致的。第三步,在确定了控制器类型之后就是拼接添加流表的命令的HTTP请求,其过程与获取网络拓扑信息中拼接HTTP请求是一致的。第四步,HTTP拼接完成之后,服务器端将向控制器发送拼接完成的HTTP请求;第五步,控制器在接收到来自服务器的HTTP请求后,首先判断其格式是否正确,若不正确则直接返回错误信息并重新开始流表添加,若正确则进行下一步;第六步,判断流表中是否存在与将要添加的流表同名的流表项,若存在则直接覆盖,返回带有entry pushed信息的JSON字符串,若不存在则判断所要添加的流表项是否满足依赖关系,满足则添加新流表,向服务器返回带有entry pushed信息的JSON字符串,否则,添加流表失败,返回带有entry push failed信息的JSON字符串;最后,若是还需要继续添加流表则重复上述步骤即可,否则流表添加结束。FIG. 5 is a specific flow chart of implementing the method for adding a flow table. The first step is to start adding flow tables. This step is mainly completed on the front end. After the settings are completed, proceed to the next step; the second step is to determine the controller type, because the commands for adding flow tables to different controllers are inconsistent. The third step is to splice the HTTP request of the command to add the flow table after the controller type is determined, and the process is consistent with splicing HTTP requests in obtaining network topology information. The fourth step, after the HTTP splicing is completed, the server will send the spliced HTTP request to the controller; the fifth step, after the controller receives the HTTP request from the server, first judge whether the format is correct, if not, directly Return an error message and start adding the flow table again. If it is correct, go to the next step; step 6, judge whether there is a flow entry with the same name as the flow table to be added in the flow table, if it exists, directly overwrite it, and return with entry pushed The JSON string of the information. If it does not exist, it is judged whether the flow table item to be added meets the dependency relationship. If it is satisfied, a new flow table is added, and a JSON string with entry pushed information is returned to the server. Otherwise, adding the flow table fails and returns A JSON string with entry push failed information; finally, if you need to continue adding flow tables, repeat the above steps, otherwise the addition of flow tables is complete.

图6是本方法实现删除流表的具体流程图,第一步,开始删除流表,该步骤主要在前端完成,设置完成之后进行下一步;第二步,确定控制器类型,因为不同控制器删除流表的命令是不一致的。第三步,在确定了控制器类型之后就是拼接删除流表的命令的HTTP请求,其过程与获取网络拓扑信息中拼接HTTP请求是一致的。第四步,HTTP拼接完成之后,服务器端将向控制器发送拼接完成的HTTP请求;第五步,控制器在接收到来自服务器的HTTP请求后,首先判断其格式是否正确,若不正确则直接返回错误信息并重新开始流表删除,若正确则进行下一步;第六步,判断流表中是否存在与将要删除的流表同名的流表项,若存在则进行删除操作,返回带有“Entry‘流表名’deleted”信息的JSON字符串,若不存在怎不进行任何操作,返回带有“Entry‘流表名’deleted”信息的JSON字符串,若是还需要继续删除流表则重复上述步骤即可,否则流表添加结束。Figure 6 is the specific flow chart of this method to realize the deletion of the flow table. The first step is to start deleting the flow table. This step is mainly completed at the front end. The command to delete a flow table is inconsistent. The third step is to splice the HTTP request of the command to delete the flow table after the controller type is determined, and the process is consistent with splicing HTTP requests in obtaining network topology information. The fourth step, after the HTTP splicing is completed, the server will send the spliced HTTP request to the controller; the fifth step, after the controller receives the HTTP request from the server, first judge whether the format is correct, if not, directly Return an error message and start deleting the flow table again. If it is correct, go to the next step; step 6, judge whether there is a flow entry with the same name as the flow table to be deleted in the flow table, and if it exists, delete it, and return with " If there is no JSON string with the information of "Entry'flow table name'deleted", why not perform any operation, and return a JSON string with the information of "Entry'flow table name'deleted", if you need to continue to delete the flow table, repeat The above steps are enough, otherwise the addition of the flow table is complete.

Claims (1)

(6) it is exactly to splice the order for gathering information after SDN controller types and the information for needing to gather is determined, because clothesBusiness device end interacts with SDN controllers to be realized by HTTP request, therefore the order for splicing collection information is exactly to splice in factHTTP request, the HTTP request for obtaining different topology information is different, therefore obtains different topology information and need to spliceDifferent HTTP requests, HTTP request splicing detailed process are:HTTP request type, including POST, GET are determined first,DELETE, HTTP request type is being determined and then the information content for needing to ask is being added in HTTP, the HTTP of completionRequest splicing completes, and carries out afterwards in next step;
CN201510116458.8A2015-03-172015-03-17A kind of visualization SDN management method of integrated multi-controllerActiveCN104717095B (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
CN201510116458.8ACN104717095B (en)2015-03-172015-03-17A kind of visualization SDN management method of integrated multi-controller

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
CN201510116458.8ACN104717095B (en)2015-03-172015-03-17A kind of visualization SDN management method of integrated multi-controller

Publications (2)

Publication NumberPublication Date
CN104717095A CN104717095A (en)2015-06-17
CN104717095Btrue CN104717095B (en)2018-04-10

Family

ID=53416086

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN201510116458.8AActiveCN104717095B (en)2015-03-172015-03-17A kind of visualization SDN management method of integrated multi-controller

Country Status (1)

CountryLink
CN (1)CN104717095B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN105471633B (en)*2015-11-182019-04-26武汉烽火网络有限责任公司A kind of graphic programming method applied to SDN
CN107133020A (en)*2016-02-262017-09-05中移(苏州)软件技术有限公司A kind of data processing method, system, interface end and server
CN105809248B (en)*2016-03-012018-07-24中山大学A kind of configuration and exchange method of the distribution artificial neural network on SDN
CN106385326B (en)*2016-08-292019-08-23广州西麦科技股份有限公司SDN flow table automates a key deployment system
CN107040416B (en)*2017-04-122019-12-27大连理工大学Virtual data center visual management method based on Cairngorm framework
CN110120962B (en)*2018-02-062020-09-04北京龙腾佳讯科技股份公司 Visualized real-time interaction method and system for SDN network
CN109327342B (en)*2018-11-272019-12-17哈尔滨理工大学 A task-driven adaptive SDN simulation system and simulation platform
CN111130952A (en)*2019-12-312020-05-08南京煌和信息技术有限公司Integrated multi-client distributed network monitoring system through SDN network architecture
CN113162807B (en)*2021-04-272022-12-30银清科技有限公司Method and device for realizing linkage of cloud management server and SDN

Citations (4)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN103856356A (en)*2014-03-192014-06-11北京工业大学Home network implementation method based on user self-control
CN104092565A (en)*2014-06-242014-10-08复旦大学 A Multitenant Policy-Driven Software-Defined Networking Approach for Cloud Data Centers
CN104106237A (en)*2012-02-102014-10-15日本电气株式会社Computer system and method for visualizing virtual network
WO2014188939A1 (en)*2013-05-212014-11-27独立行政法人情報通信研究機構Network configuration and operation visualization device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US9197548B2 (en)*2012-08-152015-11-24Dell Products L.P.Network switching system using software defined networking applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN104106237A (en)*2012-02-102014-10-15日本电气株式会社Computer system and method for visualizing virtual network
WO2014188939A1 (en)*2013-05-212014-11-27独立行政法人情報通信研究機構Network configuration and operation visualization device
CN103856356A (en)*2014-03-192014-06-11北京工业大学Home network implementation method based on user self-control
CN104092565A (en)*2014-06-242014-10-08复旦大学 A Multitenant Policy-Driven Software-Defined Networking Approach for Cloud Data Centers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大规模网络仿真软件及其仿真技术;袁晓等;《计算机技术与发展》;20140731;第24卷(第7期);第9-12页*

Also Published As

Publication numberPublication date
CN104717095A (en)2015-06-17

Similar Documents

PublicationPublication DateTitle
CN104717095B (en)A kind of visualization SDN management method of integrated multi-controller
US11163851B2 (en)Method, apparatus, computer device and storage medium of page displaying
CN107040416B (en)Virtual data center visual management method based on Cairngorm framework
CN105809248B (en)A kind of configuration and exchange method of the distribution artificial neural network on SDN
CN104484189B (en)The structure and design method of a kind of application interface
CN111694561B (en) Interface management method, device, equipment and storage medium
US20130238982A1 (en)Methods and apparatus for editing an application webpage
CN106302008A (en)Data-updating method and device
CN104834595A (en)Visual automatic test method and system
CN104077137A (en)Integrated design application
US11068127B2 (en)Springboard interface for quick task transitions
CN107239271A (en)Develop document structure tree method and device
US20120166977A1 (en)User programming access to data model in user interface design
CN111782117A (en) Interface display method and device, storage medium, and electronic device
CN109144485A (en)Micro-service deployment method, device, equipment and readable storage medium
CN112948264B (en)Method and device for executing test task, system, storage medium and electronic device
CN106582013A (en)Game service system and method and device for updating data of online games
CN112667795B (en)Dialogue tree construction method and device, dialogue tree operation method, device and system
JP2021111403A (en) Landing page processing methods, equipment, equipment and media
WO2024104055A1 (en)Touch event processing method and apparatus, storage medium, and electronic device
CN111857932A (en) A web filling method for operation and maintenance audit system based on puppeteer
CN115629990A (en)Service testing method and device, electronic equipment and storage medium
CN113630468B (en)Dynamic proxy method
WO2014036073A2 (en)Method and apparatus for browsing large data network topology trees
CN111694637B (en)Online full-automatic multi-agent control simulation compiling system

Legal Events

DateCodeTitleDescription
C06Publication
PB01Publication
C10Entry into substantive examination
SE01Entry into force of request for substantive examination
GR01Patent grant
GR01Patent grant

[8]ページ先頭

©2009-2025 Movatter.jp