CN114827002A - 多域网络安全路径计算方法、***、设备、介质及终端 - Google Patents
多域网络安全路径计算方法、***、设备、介质及终端 Download PDFInfo
- Publication number
- CN114827002A CN114827002A CN202210264365.XA CN202210264365A CN114827002A CN 114827002 A CN114827002 A CN 114827002A CN 202210264365 A CN202210264365 A CN 202210264365A CN 114827002 A CN114827002 A CN 114827002A
- Authority
- CN
- China
- Prior art keywords
- path
- domain
- middleware
- topology
- flow table
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于网络安全技术领域,公开了一种多域网络安全路径计算方法、***、设备、介质及终端,所述多域网络安全路径计算方法包括:各子网络的中间件将域内拓扑上传区块链;由部署在区块链上的路径计算智能合约构建全局拓扑,进行路径计算,生成路径信息;各子网络的中间件读取各流表匹配项对应的路径信息,向其所管理的交换机下发流表。本发明利用区块链技术,实现对多域SDN网络控制器的数据收集和共享,利用智能合约实现全局路径计算,解决跨域路由问题,避免由单个控制器进行路径计算而带来的各种安全隐患,使路径计算更加安全可靠。
Description
技术领域
本发明属于网络安全技术领域,尤其涉及一种多域网络安全路径计算方法、***、设备、介质及终端。
背景技术
目前,SDN网络具有集中控制和开放可编程架构的特点,其核心思想就是将网络设备上的控制权分离出来,由集中的控制器进行管理,实现了控制平面和数据平面的分离。由于硬件的限制,单个SDN网络的规模注定不会太大。有数据可以看出,SDN控制器最多可以支持1000个交换机和250000个主机。这种情况下,会给控制器的内存和CPU带来巨大的负荷,严重影响控制器的处理能力,因此控制器的水平交互方式应运而生。这种方式需要将SDN网络划分为SDN子网络,针对这些规模较小的SDN子网络设置控制器进行单独管理,各个子网络中的控制器通过共识机制可以对全局进行监控。
为了实现控制器对全局网络的控制,需要对各个控制器掌握的域内网络拓扑、计算得到的路径信息等进行共享,使每个控制器都可以掌握网络全局信息。针对这一问题,现有解决方案大体分为两类:借助第三方信任中心建立起信任关系,或通过控制器之间的共识协议进行信息同步。
第三方信任中心如ZooKeeper集群,是一种集中式服务,通过发布—订阅模式为多个控制器提供一致***,每个SDN控制器都是一个ZooKeeper客户端,通过ZooKeeper服务集群与ZooKeeper客户端建立链接,实现基本的数据一致性保障。这种情况下,ZooKeeper集群和控制器均有受到攻击的风险,这样建立起来的信任稳定性不高。再者,这种情况下的路径计算通常由一个控制器进行,只要该控制器得到认证,其他控制器都会按照此控制器计算得到的路径下发流表。由于控制器单点失效、受到恶意攻击等威胁,由一个控制器计算出的路径信息无法保证跨域通信的安全可靠。
而通过控制器之间的共识协议进行信息同步,需要根据不同需求制定合适的共识协议。而控制器作为整个网络的控制中心,在运行共识协议的同时,还需要担负监控网络拓扑、路由决策等任务,若采用安全性比较高的共识机制,会占用控制器较多的计算资源,加大控制器负担;针对跨域路由同样无法避免上面的问题,难以保障整个网络的正常运作。
区块链是一种利用区块链技术构建信息共享数据库,实现数据资源的安全存储和调用的数据结构。区块链技术在应用过程中,具有开放性、独立性、匿名性和去中心化特点,使得数据信息应用更加安全高效。针对上面提到的问题,本发明可以考虑利用区块链来解决多个控制器之间数据同步的问题,为控制器之间建立起去中心化的信任关系。对于运行分布式共识算法的区块链,其安全性在于对故障节点的容错能力,当部分节点发生故障或受到攻击时,区块链仍能够为其他控制器提供安全可靠的数据共享服务,避免了因控制器单点故障和受到攻击而引发的通信故障。
智能合约是被部署在区块链上自动执行的数字化协议,也是可按照预设合约条款自动执行的计算机程序,主要包括相关代码和数据集。智能合约作为区块链的激活器,其自动化和可编程特性使其可以封装分布式区块链***中各节点的复杂行为。针对不同的业务需求,可以部署不同的智能合约完成各种复杂任务。因此,考虑利用智能合约来解决多域SDN网络的跨域路由问题。通过在智能合约中构建全局网络拓扑,进行全局路径计算,而不是在某一个控制器中进行路径计算,且智能合约一经发布就无法被修改,一般运行在隔离的沙箱环境中,避免了控制器单点故障或被劫持等带来的安全隐患。
通过上述分析,现有技术存在的问题及缺陷为:对于多域SDN网络中的跨域路由问题,当前解决方案中,借助第三方信任中心或是控制器之间的共识算法,都无法避免控制器单点故障和被劫持而引发的安全问题。
发明内容
针对现有技术存在的问题,本发明提供了一种多域网络安全路径计算方法、***、设备、介质及终端。
本发明是这样实现的,一种多域网络安全路径计算方法,所述多域网络安全路径计算方法包括:
各个中间件将域内网络拓扑上传至由存储合约创建的表中,之后由路径计算合约根据收集到的信息构建全局拓扑,进行全局路径计算,为保证每个中间件都能得到自己对应部分的路径信息,在合约中对计算得到的路径进行划分,最终由中间件进行流表下发。
进一步,所述多域网络安全路径计算方法包括以下步骤:
步骤一,各子网络的中间件将域内网络拓扑上传至区块链,完成数据收集工作,用于后续路径计算;
步骤二,由部署在区块链上的路径计算智能合约构建全局拓扑,进行路径计算,得到一条全局路径,后续中间件将会对此路径上的交换机下发流表;
步骤三,各子网络的中间件读取各流表匹配项对应的路径信息,向其所管理的交换机下发流表,在此之前需要对路径进行划分,确保中间件能得到本域的路径信息,实现跨域路由。
进一步,所述步骤一中多域网络中各子网络的中间件将域内网络拓扑上传至区块链具体过程为:
多个SDN子网络构成了整个SDN网络,在每个子网络中首先进行域内网络拓扑的构建,通过链路层发现协议LLDP,中间件能够得到本域的网络拓扑,拓扑将会以图的形式进行存储,每个交换机都是一个节点,每两个交换机之间的一条链路作为一条边;拓扑图存储的数据包括:每条链路的权重数据、起始交换机节点及是否被使能。
进一步,区块链提供合约CRUD接口开发模式,通过合约创建表,用于存储中间件上传的拓扑信息;通过自己创建并部署一个名为StoreGraph_msgToChain的合约,在合约中调用Table***合约,在区块链上创建一个名为GraphTable的KVtable表,表中将中间件ID作为key,各个域的拓扑作为value,表的格式如下:
Key(中间件ID) | Value(字节流形式的拓扑图) |
中间件1 | EdgeID=xx,Enabled=xx,EdgeWeight=xx\n |
中间件2 | EdgeID=xx,Enabled=xx,EdgeWeight=xx\n |
中间件3 | EdgeID=xx,Enabled=xx,EdgeWeight=xx\n |
通过提供的SDK来调用这些接口,实现对区块链的操作,包括合约编译、部署、查询;当各个中间件获取到本域的网络拓扑后,将本域拓扑转换为字节流的形式,通过调用部署在区块链上StoreGraph_msgToChain合约中的接口,填入位于区块链上的GraphTable表中。
进一步,所述步骤二的路径计算将多域拓扑整合成全局拓扑进行全局路径计算:首先按照中间件ID依次从GraphTable表中取出各个子网络的拓扑,将取出的字节流数据进行解析,构建全局拓扑;对每个节点和每条链路进行标记,标明其属于哪个子网络;每相邻两个子网络之间通常会存在一条或多条链路,且链路会在各域拓扑中重复出现,在构建全局拓扑时要对这种链路进行特殊标记,用于跨域通信得到转发流表;
全局路径计算的依据是kruskal算法,得到最小生成树;Kruskal算法将所有的边按照权值从小到大进行排列,按照排好的顺序选取每条边,判断这条边的两个端点是否属于同一集合,若不是同一集合就将它们合并,若是则将这条边去除,直到所有的点都属于同一个集合为止;在智能合约中,将会采用solidity语言实现这部分算法;全局拓扑图中每条链路就是一条边,创建名为Edge的结构体,用来存放各条边的参数,包括所属区域、起始节点、是否使能、链路权重;创建名为Edges的mapping类型数据,用于存放所有的边,排序后的结果以数组的形式对每条边的字符串进行存储;创建名为vertexes的mapping类型数据用于存储各个节点处于哪棵树中,位于同一棵树中的节点所存储的value是相同的,若通过查询一条链路两端节点中存储的value是一样的,则舍去这条链路,以此来保证没有形成回路;
计算完成后,得到N-1条链路连通N个节点,确保每两台主机之间都存在一条链路进行通信;根据计算得到的连通图,设置将会下发到各个交换机中的流表转发规则;
对于合约的调用分为两种情况,首先在初始化阶段所有中间件都完成拓扑上传后,进行全局路径计算,由中间件根据得到的路径信息进行流表下发;其次当某交换机中没有与数据包相匹配的流表项时,交换机会将数据包交给控制器,再调用该合约制定路径,完成流表下发。
进一步,所述步骤三中流表下发流表匹配项包含不同域交换机的信息:
数据包与流表项之间是通过流表项的匹配字段进行匹配的,对于匹配成功的数据包执行相应的动作;作为流表项的匹配字段,以太网地址、IPv4地址、物理输入端口号;使用源交换机mac和目的交换机mac作为匹配字段,选取两个交换机,由步骤二得到的连通图获取到这两个节点之间的一条路径,并向这条路径上的交换机下发流表;
每个子网络中的中间件只能对本域中的交换机进行管理,无法对其他域的交换机下发流表;对于一条路径,若路径上涉及的链路都位于同一个子网络中,则中间件直接从区块链上获取到这一条路径,按照源、目的mac对这条路径上的交换机下发流表;若路径涉及的链路位于不同的子网络中,则需要对这一条路径进行拆分,将涉及到的链路按照不同的子网络进行划分,将划分后的路径信息分别存入各个中间件对应的表中,每个中间件都会在区块链上创建一个表,用于存放自己域内的路径信息,匹配项为key,对应的路径信息为value,由各个子网络中的中间件获取属于本域部分的路径信息,对自己所管理的交换机下发流表;
对于一条路径上的每一跳,都是由起始交换机到目的交换机,对于一条跨域路径,通过对涉及到的每条链路进行检索,将涉及到的跨域链路划分到起始交换机所在的域内,由域控制器进行流表下发。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述多域网络安全路径计算方法的步骤。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述多域网络安全路径计算方法的步骤。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述多域网络安全路径计算方法。
本发明的另一目的在于提供一种实施所述多域网络安全路径计算方法的多域网络安全路径计算***,所述多域网络安全路径计算***包括:
域内拓扑上传模块,用于各子网络的中间件将域内拓扑上传区块链;
路径信息生成模块,用于由部署在区块链上的路径计算智能合约构建全局拓扑,进行路径计算,生成路径信息;
流表下发模块,用于实现各子网络的中间件读取各流表匹配项对应的路径信息,向其所管理的交换机下发流表。
进一步,所述多域网络安全路径计算***还包括三层;
第一层为控制器层,负责对交换机的监控和管理;
第二层为中间件,模拟部分控制器的功能,对控制器与交换机之间的流量进行截取分析,提供区块链接口,每个中间件与一个区块链节点绑定,完成拓扑上链、获取路径信息和流表下发任务;
第三层为数据平面,是各种交换机,完成对数据包的转发。
结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
本发明实现了对多域SDN网络控制器掌握网络视图的数据收集和共享,每个中间件与一个区块链节点绑定,每个节点都可以通过访问表中的数据获取全局拓扑;利用智能合约进行全局路径计算,在解决跨域路由问题的同时,避免传统方案中由单个控制器进行路径计算带来的安全隐患,使整个流程更加安全可靠。
第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:本发明利用区块链技术,实现了对多域SDN网络控制器的数据收集和共享;利用智能合约实现全局路径计算,解决了跨域路由问题,避免由单个控制器进行路径计算而带来的各种安全隐患,使整个流程更加安全可靠。
第三,作为本发明的权利要求的创造性辅助证据,还体现在以下重要方面:
本发明的技术方案是否解决了人们一直渴望解决、但始终未能获得成功的技术难题:
针对控制器对网络的全局控制,需要对各个控制器掌握的域内网络拓扑、计算得到的路径信息等进行共享,本发明利用区块链智能合约来解决多个控制器之间数据共享同步的问题,提高了对控制器故障的容错能力,当部分节点发生故障或受到攻击时,区块链仍能够为其他控制器提供安全可靠的数据共享服务;针对多域SDN网络的跨域路由问题,通过在智能合约中构建全局网络拓扑,进行全局路径计算,而不是在某一个控制器中进行路径计算,且智能合约一经发布就无法被修改,一般运行在隔离的沙箱环境中,避免了控制器单点故障或被劫持等带来的安全隐患。
附图说明
图1是本发明实施例提供的多域网络安全路径计算方法流程图;
图2是本发明实施例提供的多域网络安全路径计算***的结构示意图;
图3是本发明实施例提供的整体架构图;
图4是本发明实施例提供的中间件与区块链负责的主要功能;
图5是本发明实施例提供的一种应用场景;
图6是本发明实施例提供的构建的全局拓扑抽象图;
图7是本发明实施例提供的计算后得到的路径图;
图中:1、域内拓扑上传模块;2、路径信息生成模块;3、流表下发模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
如图1所示,本发明实施例提供的多域网络安全路径计算方法包括以下步骤:
S101:各子网络的中间件将域内拓扑上传区块链;
S102:由部署在区块链上的路径计算智能合约构建全局拓扑,进行路径计算,生成路径信息;
S103:各子网络的中间件读取各流表匹配项对应的路径信息,向其所管理的交换机下发流表。
如图2所示,本发明实施例提供的多域网络安全路径计算***包括:
域内拓扑上传模块1,用于各子网络的中间件将域内拓扑上传区块链;
路径信息生成模块2,用于由部署在区块链上的路径计算智能合约构建全局拓扑,进行路径计算,生成路径信息;
流表下发模块3,用于实现各子网络的中间件读取各流表匹配项对应的路径信息,向其所管理的交换机下发流表。
如图3所示,整个流程是在中间件平台的基础上进行的,主要分为三层。第一层为控制器层,负责对交换机的监控和管理;第二层为中间件,模拟部分控制器的功能,可以对控制器与交换机之间的流量进行截取分析,弥补控制器的不足,这里提供区块链接口,每个中间件与一个区块链节点绑定,完成拓扑上链、获取路径信息和流表下发等任务;第三层为数据平面,主要是各种交换机,完成对数据包的转发。
在本发明的实施例中多域网络中各子网络的中间件将域内网络拓扑上传至区块链,具体过程为:
多个SDN(Software DefinedNetwork)子网络构成了整个SDN网络,在每个子网络中首先进行域内网络拓扑的构建,通过链路层发现协议(Link Layer Discovery Protocl,LLDP),中间件能够得到本域的网络拓扑,该拓扑将会以图的形式进行存储,每个交换机都是一个节点,每两个交换机之间的一条链路作为一条边。该拓扑图存储的数据包括:每条链路的权重数据、起始交换机节点及是否被使能等。
需要注意的是,由于两个子网络之间通常也会存在一条或多条链路,由LLDP协议得到相邻两个域的拓扑图中会存在相同的交换机节点,其中会涉及到不属于本域的交换机。
区块链提供合约CRUD(Create/Read/Updata/Delete)接口开发模式,可以通过合约创建表,用于存储中间件上传的拓扑信息。本发明可以通过自己创建并部署一个名为StoreGraph_msgToChain的合约,在该合约中调用Table***合约,就可以在区块链上创建一个名为GraphTable的KVtable表,表中将中间件ID作为key,各个域的拓扑作为value,表的格式如下。
由于区块链向外部暴露了接口,可以通过提供的SDK来调用这些接口,实现对区块链的操作,包括合约编译、部署、查询等。当各个中间件获取到本域的网络拓扑后,将本域拓扑转换为字节流的形式,通过调用部署在区块链上StoreGraph_msgToChain合约中的接口,填入位于区块链上的GraphTable表中。
由于中间件会周期性的进行拓扑更新,所以对于GraphTable表的更新也是周期进行的,当出现交换机异常或故障时,能够及时同步信息到区块链,将故障节点去除,保证后续路径计算的有效进行。
在本发明的实施例中的路径计算,可以将多域拓扑整合成全局拓扑进行全局路径计算:
路径计算智能合约与存储合约不同,该合约负责构建全局拓扑,进行全局路径计算。首先按照中间件ID依次从GraphTable表中取出各个子网络的拓扑,将取出的字节流数据进行解析,构建全局拓扑。与构建域内拓扑不同的是,需要对每个节点和每条链路进行标记,标明其属于哪个子网络。特别地,上文中提到每相邻两个子网络之间通常会存在一条或多条链路,且这些链路会在各域拓扑中重复出现,在构建全局拓扑时要对这种链路进行特殊标记,用于跨域通信得到转发流表。
全局路径计算的依据是Kruskal算法,得到最小生成树。Kruskal算法是贪心算法的一种应用,基本思路是将所有的边按照权值从小到大进行排列,按照排好的顺序选取每条边,判断这条边的两个端点是否属于同一集合,若不是同一集合就将它们合并,若是则将这条边去除,直到所有的点都属于同一个集合为止。在智能合约中,将会采用solidity语言实现这部分算法。全局拓扑图中每条链路就是一条边,创建名为Edge的结构体,用来存放各条边的参数,包括所属区域、起始节点、是否使能、链路权重;创建名为Edges的mapping类型数据,用于存放所有的边,方便后面进行检索排序,排序后的结果以数组的形式对每条边的字符串进行存储;创建名为vertexes的mapping类型数据用于存储各个节点处于哪棵树中,位于同一棵树中的节点所存储的value是相同的,若通过查询一条链路两端节点中存储的value是一样的,则舍去这条链路,以此来保证没有形成回路。
计算完成后,得到N-1条链路连通N个节点,确保每两台主机之间都存在一条链路可以进行通信。根据计算得到的连通图,来设置将会下发到各个交换机中的流表转发规则。
对于该合约的调用分为两种情况,首先在初始化阶段所有中间件都完成拓扑上传后,进行全局路径计算,由中间件根据下一步得到的路径信息进行流表下发;其次当某交换机中没有与数据包相匹配的流表项时,交换机会将该数据包交给控制器,再调用该合约制定路径,完成流表下发。
在本发明的实施例中流表下发,流表匹配项可以包含不同域交换机的信息:
数据包与流表项之间是通过流表项的匹配字段进行匹配的,对于匹配成功的数据包执行相应的动作。作为流表项的匹配字段,可以考虑以太网地址、IPv4地址、物理输入端口号等。这里使用源交换机mac和目的交换机mac作为匹配字段,选取两个交换机,由步骤二得到的连通图获取到这两个节点之间的一条路径,并向这条路径上的交换机下发流表。
每个子网络中的中间件只能对本域中的交换机进行管理,无法对其他域的交换机下发流表。对于一条路径,若该路径上涉及的链路都位于同一个子网络中,则中间件可直接从区块链上获取到这一条路径,按照源(src)、目的(dst)mac对这条路径上的交换机下发流表;若该路径涉及的链路位于不同的子网络中,则需要对这一条路径进行拆分,将涉及到的链路按照不同的子网络进行划分,将划分后的路径信息分别存入各个中间件对应的表中(每个中间件都会在区块链上创建一个表,用于存放自己域内的路径信息,匹配项为key,对应的路径信息为value),由各个子网络中的中间件获取属于本域部分的路径信息,对自己所管理的交换机下发流表。
特别地,在对跨域链路进行流表下发时,要考虑这条链路的归属问题。对于一条路径上的每一跳,都是由起始交换机到目的交换机,对于一条跨域路径,通过对涉及到的每条链路进行检索,应将涉及到的跨域链路划分到起始交换机所在的域内,由该域控制器进行流表下发。
如图5所示,是本发明的一个应用场景。图中涉及两个子网络,交换机1-4受中间件1控制,交换机5-6受中间件2控制。当中间件完成域内拓扑发现后,以中间件ID作为key,各个域的拓扑作为value,将得到的拓扑图以字节流的形式上传到位于区块链的表中,转换为字符串形式如下:
“EdgeID=4:3to2:3,Enabled=true,EdgeWeight=3.02306296e+08\n
EdgeID=1:4to2:2,Enabled=true,EdgeWeight=3.02136627e+08\n
EdgeID=2:3to4:3,Enabled=true,EdgeWeight=2.60653696e+08\n”
当各个中间件均完成域内拓扑上传后,在路径计算智能合约中按照中间件ID依次从GraphTable表中取出各个子网络的拓扑,将取出的字节流数据进行解析,构建全局拓扑。下图是根据图6构建的全局拓扑抽象图。
全局路径计算的依据是Kruskal算法,得到最小生成树。Kruskal算法是贪心算法的一种应用,基本思路是将所有的边按照权值从小到大进行排列,按照排好的顺序选取每条边,判断这条边的两个端点是否属于同一集合,若不是同一集合就将它们合并,若是则将这条边去除,直到所有的点都属于同一个集合为止。在智能合约中,将会采用solidity语言实现这部分算法。全局拓扑图中每条链路就是一条边,创建名为Edge的结构体,用来存放各条边的参数,包括所属区域、起始节点、是否使能、链路权重;创建名为Edges的mapping类型数据,用于存放所有的边,方便后面进行检索排序,排序后的结果以数组的形式对每条边的字符串进行存储;创建名为vertexes的mapping类型数据用于存储各个节点处于哪棵树中,位于同一棵树中的节点所存储的value是相同的,若通过查询一条链路两端节点中存储的value是一样的,则舍去这条链路,以此来保证没有形成回路。
计算完成后,得到7条链路连通8个节点,确保每两台主机之间都存在一条链路可以进行通信。根据计算得到的连通图,来设置将会下发到各个交换机中的流表转发规则。计算后得到的路径图如图7。
每个子网络中的中间件只能对本域中的交换机进行管理,无法对其他域的交换机下发流表。对于一条路径,若该路径上涉及的链路都位于同一个子网络中,则中间件可直接从区块链上获取到这一条路径,按照源、目的mac对这条路径上的交换机下发流表;若该路径涉及的链路位于不同的子网络中,则需要对这一条路径进行拆分,将涉及到的链路按照不同的子网络进行划分,由各个子网络中的中间件获取属于本域部分的路径信息,对自己所管理的交换机下发流表。
如要在1和7交换机之间建立一条链路,就需要对这条路径上的交换机下发流表。在设置流表匹配项时,需要以这两个交换机的mac作为匹配字段,而中间件1无法得到交换机7的信息,无法设置流表匹配项,因此需要在区块链上对这条路径拆分并进行存储,每个中间件从区块链上获取匹配字段及其所对应的路径信息。在区块链上创建两个表,以匹配项为key,对应的路径信息为value,分别存放两个域中各个匹配项所对应的路径信息。例如以src:00:00:00:00:01——dst:00:00:00:00:07作为匹配项,需要对路径1-3-4-5-8-7进行拆分,由于涉及到两个子网络,该路径被拆分为两部分,则将路径1-3-4-5存入表1中,将8-7存入表2中。对全局拓扑中每两个交换机之间进行同样的操作,完成后得到所有的流表信息,每个中间件读取对应表中匹配项及对应的流表信息,完成流表下发。
二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
该技术方案是针对多域SDN网络跨域路由提出的一种解决办法,此处所说的多域网络主要是指控制器之间采用水平交互方式的SDN网络。由于SDN网络控制器本身没有与区块链交互的模块,对于本方案的实施,首先要在控制器上开发相关模块,或者采用中间件等其他解决方案,使每个控制器与一个区块链节点位于同一个物理节点上,这是实现本方案的基础。
进一步,待控制器将关于网络的拓扑信息上传后,区块链就完成了数据收集共享工作。该部分的实现主要是通过智能合约创建表格,由于合约在区块链上有唯一地址,每个控制器都可以通过该地址调用合约中暴露的接口,将数据以字节流的形式填入表中,实现数据共享。该合约的调用和部署也可以在控制器中实现,在控制器初始化阶段,一方面控制器与区块链建立连接,另一方面完成所需合约的部署,而合约的调用可以在控制器完成拓扑发现或进行拓扑更新之后进行。
进一步,设计路径计算智能合约时,首先要从上面提到的表中将数据取出,由于取出的是一串字节流形式的数据,需要先进行解析,构建全局拓扑,进行全局路径计算。对于路径计算算法,可以根据网络规模等其他需求灵活选择不同的算法来实现。由于每个控制器只能对本域的交换机进行管理,无法对其他域的交换机下发流表,当涉及到跨域路由时,需要在智能合约中对涉及到的路径进行划分,将划分好的路径分别存入不同控制器对应的表中。每个控制器对应不同的表,用于存放属于本域的路径信息,控制器按照表中信息进行流表下发,实现跨域路由,其中表的格式如下。
Key(匹配项) | Value(对应路径,xx表示交换机ID) |
src:xx——dst:xx | xx—xx—xx |
src:xx——dst:xx | xx—xx—xx |
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行***,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
三、实施例相关效果的证据。本发明实施例在研发或者使用过程中取得了一些积极效果,和现有技术相比的确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
为实现控制器对全局网络的控制,现有解决方案中,无论是利用第三方信任中心或是控制器之间的共识算法,都无法避免控制器单点故障或被劫持而引发的安全问题,若控制器采用安全性较高的共识算法,也会加大控制器负担,***运行的安全可靠得不到保障。针对跨域路由,这些情况下的路径计算通常由一个控制器进行,只要该控制器得到认证,其他控制器都会按照此控制器计算得到的路径下发流表。由于控制器单点失效、受到恶意攻击等威胁,由一个控制器计算出的路径信息无法保证跨域通信的安全可靠。
相比而言,本发明利用区块链为控制器之间建立起去中心化的信任关系,实现了数据同步和共享。其优势在于,当部分节点发生故障或受到攻击时,区块链仍能够为其他控制器提供安全可靠的数据共享服务。利用智能合约来解决跨域路由问题,通过在智能合约中进行全局路径计算,而不是在某一个控制器中进行路径计算,且智能合约一经发布就无法被修改,一般运行在隔离的沙箱环境中,避免了控制器单点故障或被劫持等带来的安全隐患。通过在智能合约中对路径进行划分,无需由各个控制器对路径进行重复筛选,节约控制器计算资源,提高了控制器对交换机请求等事件的响应速度。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种多域网络安全路径计算方法,其特征在于,所述多域网络安全路径计算方法各个中间件将域内网络拓扑上传至由存储合约创建的表中,之后由路径计算合约根据收集到的信息构建全局拓扑,进行全局路径计算,为保证每个中间件都能得到自己对应部分的路径信息,在合约中对计算得到的路径进行划分,最终由中间件进行流表下发。
2.如权利要求1所述的多域网络安全路径计算方法,其特征在于,所述多域网络安全路径计算方法具体包括以下步骤:
步骤一,各子网络的中间件将域内网络拓扑上传至区块链,完成数据收集工作,用于后续路径计算;
步骤二,由部署在区块链上的路径计算智能合约构建全局拓扑,进行路径计算,得到一条全局路径,后续中间件将会对此路径上的交换机下发流表;
步骤三,各子网络的中间件读取各流表匹配项对应的路径信息,向其所管理的交换机下发流表,在此之前需要对路径进行划分,确保中间件能得到本域的路径信息,实现跨域路由。
3.如权利要求2所述的多域网络安全路径计算方法,其特征在于,所述步骤一中各子网络的中间件将域内网络拓扑上传至区块链,完成数据收集工作,用于后续路径计算具体过程为:多个SDN子网络构成了整个SDN网络,在每个子网络中首先进行域内网络拓扑的构建,通过链路层发现协议LLDP,中间件能够得到本域的网络拓扑,拓扑将会以图的形式进行存储,每个交换机都是一个节点,每两个交换机之间的一条链路作为一条边;拓扑图存储的数据包括:每条链路的权重数据、起始交换机节点及是否被使能。
4.如权利要求3所述的多域网络安全路径计算方法,其特征在于,区块链提供合约CRUD接口开发模式,通过合约创建表,用于存储中间件上传的拓扑信息;通过自己创建并部署一个名为StoreGraph_msgToChain的合约,在合约中调用Table***合约,在区块链上创建一个名为GraphTable的KVtable表,表中将中间件ID作为key,各个域的拓扑作为value,表的格式如下:
通过提供的SDK来调用这些接口,实现对区块链的操作,包括合约编译、部署、查询;当各个中间件获取到本域的网络拓扑后,将本域拓扑转换为字节流的形式,通过调用部署在区块链上StoreGraph_msgToChain合约中的接口,填入位于区块链上的GraphTable表中。
5.如权利要求2所述的多域网络安全路径计算方法,其特征在于,所述步骤二的路径计算将多域拓扑整合成全局拓扑进行全局路径计算:首先按照中间件ID依次从GraphTable表中取出各个子网络的拓扑,将取出的字节流数据进行解析,构建全局拓扑;对每个节点和每条链路进行标记,标明其属于哪个子网络;每相邻两个子网络之间通常会存在一条或多条链路,且链路会在各域拓扑中重复出现,在构建全局拓扑时要对这种链路进行特殊标记,用于跨域通信得到转发流表;
全局路径计算的依据是kruskal算法,得到最小生成树;Kruskal算法将所有的边按照权值从小到大进行排列,按照排好的顺序选取每条边,判断这条边的两个端点是否属于同一集合,若不是同一集合就将它们合并,若是则将这条边去除,直到所有的点都属于同一个集合为止;在智能合约中,将会采用solidity语言实现这部分算法;全局拓扑图中每条链路就是一条边,创建名为Edge的结构体,用来存放各条边的参数,包括所属区域、起始节点、是否使能、链路权重;创建名为Edges的mapping类型数据,用于存放所有的边,排序后的结果以数组的形式对每条边的字符串进行存储;创建名为vertexes的mapping类型数据用于存储各个节点处于哪棵树中,位于同一棵树中的节点所存储的value是相同的,若通过查询一条链路两端节点中存储的value是一样的,则舍去这条链路,以此来保证没有形成回路;
计算完成后,得到N-1条链路连通N个节点,确保每两台主机之间都存在一条链路进行通信;根据计算得到的连通图,设置将会下发到各个交换机中的流表转发规则;
对于合约的调用分为两种情况,首先在初始化阶段所有中间件都完成拓扑上传后,进行全局路径计算,由中间件根据得到的路径信息进行流表下发;其次当某交换机中没有与数据包相匹配的流表项时,交换机会将数据包交给控制器,再调用该合约制定路径,完成流表下发。
6.如权利要求2所述的多域网络安全路径计算方法,其特征在于,所述步骤三中流表下发流表匹配项包含不同域交换机的信息:
数据包与流表项之间是通过流表项的匹配字段进行匹配的,对于匹配成功的数据包执行相应的动作;作为流表项的匹配字段,以太网地址、IPv4地址、物理输入端口号;使用源交换机mac和目的交换机mac作为匹配字段,选取两个交换机,由步骤二得到的连通图获取到这两个节点之间的一条路径,并向这条路径上的交换机下发流表;
每个子网络中的中间件只能对本域中的交换机进行管理,无法对其他域的交换机下发流表;对于一条路径,若路径上涉及的链路都位于同一个子网络中,则中间件直接从区块链上获取到这一条路径,按照源、目的mac对这条路径上的交换机下发流表;若路径涉及的链路位于不同的子网络中,则需要对这一条路径进行拆分,将涉及到的链路按照不同的子网络进行划分,将划分后的路径信息分别存入各个中间件对应的表中,每个中间件都会在区块链上创建一个表,用于存放自己域内的路径信息,匹配项为key,对应的路径信息为value,由各个子网络中的中间件获取属于本域部分的路径信息,对自己所管理的交换机下发流表;
对于一条路径上的每一跳,都是由起始交换机到目的交换机,对于一条跨域路径,通过对涉及到的每条链路进行检索,将涉及到的跨域链路划分到起始交换机所在的域内,由域控制器进行流表下发。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~6任意一项所述多域网络安全路径计算方法的步骤。
8.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1~6任意一项所述多域网络安全路径计算方法的步骤。
9.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现权利要求1~6任意一项所述多域网络安全路径计算方法。
10.一种实施权利要求1~6任意一项所述多域网络安全路径计算方法的多域网络安全路径计算***,其特征在于,所述多域网络安全路径计算***包括:
域内拓扑上传模块,用于各子网络的中间件将域内拓扑上传区块链;
路径信息生成模块,用于由部署在区块链上的路径计算智能合约构建全局拓扑,进行路径计算,生成路径信息;
流表下发模块,用于实现各子网络的中间件读取各流表匹配项对应的路径信息,向其所管理的交换机下发流表;
所述多域网络安全路径计算***还包括三层;
第一层为控制器层,负责对交换机的监控和管理;
第二层为中间件,模拟部分控制器的功能,对控制器与交换机之间的流量进行截取分析,提供区块链接口,每个中间件与一个区块链节点绑定,完成拓扑上链、获取路径信息和流表下发任务;
第三层为数据平面,是各种交换机,完成对数据包的转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210264365.XA CN114827002B (zh) | 2022-03-17 | 2022-03-17 | 多域网络安全路径计算方法、***、设备、介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210264365.XA CN114827002B (zh) | 2022-03-17 | 2022-03-17 | 多域网络安全路径计算方法、***、设备、介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114827002A true CN114827002A (zh) | 2022-07-29 |
CN114827002B CN114827002B (zh) | 2023-04-07 |
Family
ID=82529429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210264365.XA Active CN114827002B (zh) | 2022-03-17 | 2022-03-17 | 多域网络安全路径计算方法、***、设备、介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114827002B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514691A (zh) * | 2022-09-05 | 2022-12-23 | 郑州工程技术学院 | 基于区块链的sdn域间协同转发控制架构及方法 |
CN116055385A (zh) * | 2022-12-30 | 2023-05-02 | 中国联合网络通信集团有限公司 | 路由方法、管理节点、路由节点及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147704A (zh) * | 2017-04-21 | 2017-09-08 | 杭州趣链科技有限公司 | 一种面向区块链的通用服务中间件*** |
CN110536300A (zh) * | 2019-09-06 | 2019-12-03 | 中国联合网络通信集团有限公司 | 一种通信控制方法、网络控制实体及*** |
CN111325628A (zh) * | 2020-03-25 | 2020-06-23 | 武汉大学 | 一种基于区块链的多方支付通道交易方法 |
CN112235252A (zh) * | 2020-09-21 | 2021-01-15 | 西安电子科技大学 | 基于区块链的安全识别方法、安全识别***及存储介质 |
CN112583712A (zh) * | 2019-09-30 | 2021-03-30 | 北京京东尚科信息技术有限公司 | 区块链路由器及区块链网络 |
US11037227B1 (en) * | 2017-11-22 | 2021-06-15 | Storcentric, Inc. | Blockchain-based decentralized storage system |
CN113872857A (zh) * | 2021-09-02 | 2021-12-31 | 咪咕文化科技有限公司 | 跨机房数据转发方法、设备及计算机程序产品 |
CN113888173A (zh) * | 2021-12-07 | 2022-01-04 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、装置及设备 |
CN114079632A (zh) * | 2021-10-09 | 2022-02-22 | 中国互联网络信息中心 | 一种基于区块链的可信域间路由方法及*** |
-
2022
- 2022-03-17 CN CN202210264365.XA patent/CN114827002B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147704A (zh) * | 2017-04-21 | 2017-09-08 | 杭州趣链科技有限公司 | 一种面向区块链的通用服务中间件*** |
US11037227B1 (en) * | 2017-11-22 | 2021-06-15 | Storcentric, Inc. | Blockchain-based decentralized storage system |
CN110536300A (zh) * | 2019-09-06 | 2019-12-03 | 中国联合网络通信集团有限公司 | 一种通信控制方法、网络控制实体及*** |
CN112583712A (zh) * | 2019-09-30 | 2021-03-30 | 北京京东尚科信息技术有限公司 | 区块链路由器及区块链网络 |
CN111325628A (zh) * | 2020-03-25 | 2020-06-23 | 武汉大学 | 一种基于区块链的多方支付通道交易方法 |
CN112235252A (zh) * | 2020-09-21 | 2021-01-15 | 西安电子科技大学 | 基于区块链的安全识别方法、安全识别***及存储介质 |
CN113872857A (zh) * | 2021-09-02 | 2021-12-31 | 咪咕文化科技有限公司 | 跨机房数据转发方法、设备及计算机程序产品 |
CN114079632A (zh) * | 2021-10-09 | 2022-02-22 | 中国互联网络信息中心 | 一种基于区块链的可信域间路由方法及*** |
CN113888173A (zh) * | 2021-12-07 | 2022-01-04 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
陈迪等: "区块链技术在域间路由安全领域的应用研究", 《软件学报》 * |
黄豪杰等: "基于区块链智能合约的物联网恶意节点检测和定位", 《物联网学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514691A (zh) * | 2022-09-05 | 2022-12-23 | 郑州工程技术学院 | 基于区块链的sdn域间协同转发控制架构及方法 |
CN116055385A (zh) * | 2022-12-30 | 2023-05-02 | 中国联合网络通信集团有限公司 | 路由方法、管理节点、路由节点及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114827002B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114827002B (zh) | 多域网络安全路径计算方法、***、设备、介质及终端 | |
US7864707B2 (en) | Determination of network topology using flow-based traffic information | |
US20160254968A1 (en) | Dynamic troubleshooting workspaces for cloud and network management systems | |
CN108462594B (zh) | 虚拟专有网络及规则表生成方法、装置及路由方法 | |
Ahmed et al. | Software defined networking for communication and control of cyber-physical systems | |
Yang et al. | Scalable verification of networks with packet transformers using atomic predicates | |
US20180343187A1 (en) | Hierarchical network configuration | |
CN106797328A (zh) | 收集和分析所选择的网络流量 | |
CN107733795B (zh) | 以太网虚拟私有网络evpn与公网互通方法及其装置 | |
Aydeger et al. | SDN-based resilience for smart grid communications | |
CN114500169B (zh) | 建立vxlan隧道的方法、报文转发的方法及装置 | |
CN113347059B (zh) | 基于固定探针位置的带内网络遥测最优探测路径规划方法 | |
Pantuza et al. | Network management through graphs in software defined networks | |
Wang et al. | Efficient network security policy enforcement with policy space analysis | |
CN114024747A (zh) | 基于软件定义nfv的安全服务链编排部署方法及*** | |
Haja et al. | Improving big data application performance in edge-cloud systems | |
CN112437065B (zh) | Sdn环境下基于图形表示的策略冲突检测及解决方法 | |
Talhar et al. | An adaptive approach for controller placement problem in software defined networks | |
CN111147302B (zh) | 一种网络虚拟化实现方法及其*** | |
US11075835B2 (en) | Distributed, packet-mediated, packet routing | |
Taher | Testing of floodlight controller with mininet in sdn topology | |
Poularakis et al. | Modeling and optimization in software-defined networks | |
Hart et al. | λBGP: Rethinking BGP programmability | |
Shalimov et al. | On bringing software engineering to computer networks with software defined networking | |
WO2023207048A1 (zh) | 一种网络意图挖掘方法、装置及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |