CN115514691B - 基于区块链的sdn域间协同转发控制***及方法 - Google Patents
基于区块链的sdn域间协同转发控制***及方法 Download PDFInfo
- Publication number
- CN115514691B CN115514691B CN202211079285.3A CN202211079285A CN115514691B CN 115514691 B CN115514691 B CN 115514691B CN 202211079285 A CN202211079285 A CN 202211079285A CN 115514691 B CN115514691 B CN 115514691B
- Authority
- CN
- China
- Prior art keywords
- domain
- policy
- sdn
- blockchain
- strategy
- 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
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
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于互联网技术领域,特别涉及一种基于区块链的SDN域间协同转发控制***及方法,各SDN域的区块链功能节点与SDN控制器部署在SDN域本地服务器,且区块链功能节点通过P2P方式构成区块链网络,各SDN域存储有区块链全局账本,利用本地应用程序接口来实现基于区块链的策略转发控制应用与控制器和区块链之间的交互,其中,策略转发控制应用包含:用于登记及动态更新域信息并生成域信息交易上传至区块链的域信息管理器,用于制定域间转发控制策略并生成策略交易上传至区块链的策略管理器,及用于通过查询本地缓存来执行属性映射、策略匹配和路径合成并获取全局协同策略的策略协同引擎。本发明通过面向数据流和路径属性的策略来控制SDN跨域数据流的转发路径,利用区块链来实现SDN域间高效安全地转发控制。
Description
技术领域
本发明属于互联网技术领域,特别涉及一种基于区块链的SDN域间协同转发控制***及方法。
背景技术
随着互联网业务和应用的不断丰富与发展,用户需求逐渐从单纯的可达性向安全性、服务质量、流量工程等多方面的需求转变,这对网络表达能力和网络管控能力提出了更高的要求。SDN作为新型网络体系架构,具有转发控制分离、逻辑集中和开放可编程的特性,为灵活高效的网络转发控制提供了良好的基础。随着SDN被广泛应用于云、数据中心、移动通信网、物联网、工业互联网等领域,如何实现SDN跨域转发控制成为了一个亟待解决的问题。
目前,绝大多数SDN转发控制方案集中在SDN域内,关于SDN域间转发控制的方案极少。现有方案中,基于策略的SDN安全架构PbSA具有跨域转发控制功能。PbSA通过定义面向数据流和路径的安全策略范式,在SDN数据平面通过策略令牌传递策略,策略令牌随数据包一起传递,每到达一个传输域,则将策略令牌上传SDN控制器,并联合传输域的策略,共同决定数据包的下一转发域。然而,该方案面临以下2个不足:一方面,当源域与传输域存在策略冲突时,会导致数据传输中断;另一方面,通过数据平面转发策略令牌,由于未采用安全技术,因此策略传递面临安全隐患。
区块链技术在数据共享和访问控制方面得到了广泛应用,但是,尚未有研究将区块链技术用于SDN跨域转发控制。由于转发控制与访问控制的研究目的和对象的不同,更重要的是相比访问控制,转发控制对时延和计算开销具有更高的敏感性,因此,如何将区块链合理地应用于SDN域间策略转发控制有待进一步研究,即在提供安全性、构建可信服务的基础上,将对数据转发的影响保持在合理范围内,并尽量减少对数据转发的影响。
在区块链与SDN结合的研究中,其架构因研究目标不同而存在差异。第一类,区块链和SDN分别独立部署,通过REST API进行远程通信。但由于二者独立部署导致远程通信开销较大,同时为保证SDN和区块链节点远程通信的安全性需要引入安全机制,会进一步增大计算和时延开销,因此不适用于时延敏感性应用。第二类,区块链节点通过SDN网络基础设施通信,即区块链节点间数据转发受SDN控制器集中管控。该类方案的缺点是区块链节点受SDN控制器控制,失去了区块链去中心化的本质属性,一旦SDN控制器被攻击成功,则攻击者可控制整个区块链网络的通信,从而严重威胁区块链业务的安全性和可信性。第三类,将区块链部署到SDN控制平面,该方法适合SDN跨域管理,但尚未有研究提出面向SDN域间转发控制的解决方案。综上所述,针对SDN域间转发控制面临的挑战和现有技术的不足,目前还没有好的解决方案。
发明内容
为此,本发明提供一种基于区块链的SDN域间协同转发控制***及方法,从安全性的角度出发,通过策略控制SDN跨域数据流的转发路径,实现数据流转发路径的物理隔离和渠化管理,利用区块链来实现SDN域间高效安全地转发控制,便于实际场景应用。
按照本发明所提供的设计方案,提供一种基于区块链的SDN域间协同转发控制***,包含:基于区块链的策略转发控制应用,各SDN域的区块链功能节点与SDN控制器部署在SDN域本地服务器,且区块链功能节点通过P2P方式构成区块链网络,各SDN域存储有区块链全局账本,利用本地应用程序接口来实现策略转发控制应用与控制器和区块链之间的交互。其中,策略转发控制应用包含:用于登记及动态更新域信息并生成域信息交易上传至区块链的域信息管理器,用于制定域间转发控制策略并生成策略交易上传至区块链的策略管理器,及用于通过查询SDN控制器本地缓存来执行属性映射、策略匹配和路径合成来获取全局协同策略的策略协同引擎。
作为本发明基于区块链的SDN域间协同转发控制***,进一步地,区块链功能节点利用域信息管理智能合约执行域信息发布或更新,利用策略管理智能合约执行策略发布或更新,利用共识机制对发布或更新的域信息或策略信息进行上链确认并将确认的域信息和策略写入各SDN域区块链节点的账本数据库,随后将智能合约账户中的域信息和策略信息实时动态同步到SDN控制器本地缓存,最终实现分布式SDN域间环境下安全可信地域信息和策略共享。
进一步地,基于上述的***,本发明还提供一种基于区块链的SDN域间协同转发控制方法,包含如下内容:
将各SDN域的域信息及跨域转发策略上传至区块链,由区块链中的智能合约进行域信息和跨域转发策略的发布或更新,并利用区块链功能节点将发布或更新的域信息和转发控制策略同步到本地缓存;
针对入***换机接收到的新数据流,通过查询流表,若存在匹配流表项,则按匹配流表项转发,若不存在匹配流表项,则将数据流首包通过pack-in消息上传至SDN控制器,SDN基线控制器通过与策略协同引擎进行交互来获取全局协同策略;
SDN基线控制器依据获取的全局协同策略,联合全局域级别的网络视图并通过域间路径计算来获取满足全局策略约束下的域级别转发路径;利用SDN控制器间的东西向接口向转发域控制器分发路径片段,各SDN控制器根据路径片段下发流表项,实现跨域转发控制。
作为本发明基于区块链的SDN域间协同转发控制方法,进一步地,由区块链进行域信息和跨域转发策略的发布或更新中,将各SDN域的域信息生成域信息交易,通过签名上传至区块链;并将各域的跨域转发策略封装成策略交易,通过签名上传至区块链;区块链验签交易,通过调用域信息管理合约或策略管理合约来实现域信息或转发控制策略的发布与更新,并利用区块链功能节点将智能合约中的域信息和策略管理合约中的转发控制策略自实时动态同步到本地缓存。
作为本发明基于区块链的SDN域间协同转发控制方法,进一步地,上传至区块链上的各SDN域的域信息至少包含:实体属性信息及标识映射关系,其中,实体属性信息包含:本域内的域、用户及设备信息,标识映射关系包含:IP地址与用户标识和设备标识之间的映射关系。
作为本发明基于区块链的SDN域间协同转发控制方法,进一步地,上传至区块链上的各SDN域的跨域转发策略由多元组进行表示,具体范式表示为:policy=<domID,policyID,policyType,SrcAP,DstAP,ServAP,Path,action>,其中,domID表示制定策略的域标识,policyID表示策略在该域的标识,policyType表示策略类型,该策略类型划分为用于约束本域源发数据流的源发策略及用于过滤来自其他域数据流的承载策略,SrcAP表示对数据流的源发属性约束,DstAP表示对数据流的目的属性约束,ServAP表示对数据流的网络服务属性约束,Path表示对数据流的路径约束,action表示对满足策略约束的数据流在策略约束路径上的转发动作。
作为本发明基于区块链的SDN域间协同转发控制方法,进一步地,在SDN基线控制器与策略协同引擎进行交互来获取全局协同策略中,首先,通过解析流策略请求来获取数据包首部关键字段,通过查询SDN控制器本地缓存中的域信息来将数据流网络标识与业务属性进行映射;然后,根据数据流属性读取SDN控制器本地缓存中的策略集,通过策略匹配来获取匹配策略集;最后,通过对匹配策略集执行路径合成来获取具有全局路径约束的全局协同策略。
作为本发明基于区块链的SDN域间协同转发控制方法,进一步地,将数据流网络标识与业务属性进行映射时,根据数据包首部关键字段,读取源IP、目的IP及端口号或协议类型;根据源IP获取源域、源用户、源设备的属性名值对集合,组成数据流的源属性;根据目的IP获取目的域、目的用户、目的设备的属性名值对集合,组成数据流的目的属性;根据端口号或协议类型获取网络服务属性;联合源属性、目的属性及网络服务属性构成数据流的业务属性集,依据数据流关键字段生成对应的流标识;通过联合流标识与业务属性集来完成数据流网络标识与业务属性之间的映射。
作为本发明基于区块链的SDN域间协同转发控制方法,进一步地,通过策略匹配获取匹配策略集时,首先,根据数据流的源域标识获取源域的源发策略并根据策略类型获取各域的承载策略,将源发策略和承载策略构成相关策略集;然后,对相关策略集中的每条策略,如果数据流的属性集满足策略中的所有属性谓词约束,则将对应策略作为匹配策略,否则,遍历下一条策略,直至遍历完相关策略集中的所有策略,进而得到匹配策略集。
作为本发明基于区块链的SDN域间协同转发控制方法,进一步地,在执行路径合成时,通过由匹配策略集中的策略类型、路径约束及动作来获取具有全局路径约束的全局协同策略,其中,由匹配策略集中的策略类型、路径约束及动作获取全局协同策略,具体包含如下情形:对于匹配策略集中的每一条源发策略,如果动作为forward,则将其路径约束写入流路径约束,如果其动作为drop,则将其路径约束取反后,写入流路径约束;对于匹配策略集中的每一条承载策略,如果其路径约束不为空,则违反约定,报告错误,如果其路径约束为空、且动作为drop,则将对应域标识取反并写入流路径约束,如果其路径约束为空、且动作为forward,则不影响数据转发,直至遍历所有承载策略;最后,联合流识别符、流路径约束和动作forward构成具有全局路径约束的全局协同策略。
本发明的有益效果:
本发明利用从服务层面定义的面向数据流和路径属性的策略范式,保证跨域策略管控的友好性,避免IP地址多义性和动态性给策略管控带来不必要的干扰;利用SDN域间策略共享和策略协同解决跨域策略不可知和策略冲突问题;通过区块链技术为SDN域间策略转发控制提供安全性和可信***,具有较好的应用前景。
附图说明:
图1为实施例中SDN域间协同转发控制架构示意;
图2为实施例中SDN域间协同转发控制架构工作原理示意;
图3为实施例中SDN域间协同转发控制流程示意;
图4为实施例中交易消息格式示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
早在SDN雏形Ethane中,就基于自定义策略来控制数据转发。目前,基于策略实现SDN转发控制已达成一种共识。然而,在基于策略的SDN域间转发控制中,面临如下挑战:(1)定义什么样的域间策略范式;(2)如何解决跨域策略不可知问题和策略冲突问题;(3)如何在分布式不可信环境中实现安全可信的策略转发控制。(4)如何应对转发控制的时延敏感性。本发明实施例,参见图1所示,提供一种基于区块链的SDN域间协同转发控制***,包含:基于区块链的策略转发控制应用,各SDN域的区块链功能节点与SDN控制器部署在SDN域本地服务器,且区块链功能节点通过P2P方式构成区块链网络,各SDN域存储有区块链全局账本,利用本地应用程序接口来实现策略转发控制应用与控制器和区块链之间的交互,其中,策略转发控制应用包含:用于登记及动态更新域信息并生成域信息交易上传至区块链的域信息管理器,用于制定域间转发控制策略并生成策略交易上传至区块链的策略管理器,及用于通过查询本地缓存来执行属性映射、策略匹配和路径合成并获取全局协同策略的策略协作引擎。
图1所示的架构中,将各域的区块链节点功能与SDN控制器均部署在SDN域内本地服务器,基于区块链的策略转发控制应用通过本地应用程序接口与控制器和区块链交互。各域的区块链功能节点作为区块链的记账节点,通过P2P的方式构成区块链网络,因此,各SDN域存储有区块链全局账本。通过将区块链账本数据同步到SDN控制器本地缓存中,可以使SDN控制器本地扩展的基于区块链的策略转发控制应用快速读取可信的全局共享数据。由于实现转发控制需要网络拓扑信息,各域位于网络***层的东西桥WE-bridge以fullmesh连接的方式、基于SSL协议、通过Json文件安全、快速地交换域间网络视图,从而为各域提供全局域级别的网络视图。各域控制器可通过东西桥WE-bridge动态实时地获取SDN域间全局网络视图。各SDN域的控制功能是安全可信的,即与SDN控制相关的SDN网络操作***、基于区块链的策略转发控制应用、东西桥WE-Bridge组件是安全可信的。
BPCF-SDNs基于交易签名机制保证各SDN域上传域信息和策略信息的可认证性和完整性;通过智能合约技术实现自动、透明的域信息和策略发布与更新;基于账户状态机制保证当前区块内存放的是全局域信息和策略的最新状态,避免UTXO模式下遍历整条区块链来获取最新状态,提高数据检索速率;基于PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)的共识机制,能够较高效地保证跨域共享数据的可信性;最后,基于块链式存储保证域信息及策略的难篡改和可追溯,最终实现安全可信的SDN域信息和策略共享。
本案实施例中,参见图2所示,将基于策略的SDN域间转发控制分为三层逻辑——策略、路由和转发。其一,策略作为高层逻辑,应具备管理友好性。即网络管理者关注的是服务层面的某一类数据流,而非网络层面的某一条数据流。另一方面,考虑到IP地址无法直观地表达出业务逻辑,同时具有动态变化性。如果策略使用IP地址来标识数据流势必会影响策略管控的友好性,而且应用层策略需随IP地址动态配置,徒增策略配置的复杂度和出错率。因此,将从服务层面设计面向数据流和路径属性的策略范式,保证跨域策略管控的友好性,避免IP地址多义性和动态性给策略管控带来不必要的干扰。其二,由于各管理域独立制定转发控制策略,在数据流传输过程中,传输域不知道源发域的策略约束,因而无法按源发域的策略约束转发数据流。所以,本案实施例中,通过策略共享解决跨域策略不可知问题。同理,由于源发域不知道传输域对业务流的过滤规则,所以可能因承载策略与源发策略冲突导致数据传输中断,所以,本案实施例中,通过策略协同解决策略冲突。即,本案实施例中实现跨域策略管控的前提是实现SDN域间策略共享和策略协同。其三,由于域间通信环境缺乏安全性和可信性,因此如何保证SDN域间策略共享和协同的安全性和可信性是一个难题。区块链技术作为一种将P2P网络、密码学、智能合约、共识机制等多种技术深度融合的分布式账本技术,可在分布式不可信环境中提供自动、透明、安全可信的数据共享服务。因此,本案实施例中,应用区块链技术为SDN域间策略转发控制提供安全性和可信***。其四,转发控制具有时延敏感性,而使用区块链技术会引入大量的计算和时延开销,因此,本案实施实例中,设计一种物理上集中、逻辑上隔离的架构,将区块链节点功能部署在本地控制器上,使SDN能够安全高效地与区块链交换数据,同时将转发控制功能与基于区块链的数据共享功能分离,在控制器本地执行基于策略协同的转发控制,在保证安全性的同时避免引入过多的时延。
进一步地,基于上述的***,本案实施例还提供一种基于区块链的SDN域间协同转发控制方法,包含如下内容:
将各SDN域的域信息及跨域转发策略上传至区块链,由区块链中的智能合约进行域信息和跨域转发策略的发布或更新,并利用区块链功能节点将发布或更新的域信息和转发控制策略同步到本地缓存;
针对入***换机接收到的新数据流,通过查询流表,若存在匹配流表项,则按匹配流表项转发,若不存在匹配流表项,则将数据流首包上传至SDN控制器,SDN基线控制器与控制器扩展的策略转发控制应用中的策略协同引擎进行交互来获取全局协同策略;
SDN基线控制器依据获取的全局协同策略,联合全局域级别的网络视图,通过域间路径计算来获取满足全局策略约束下的域级别转发路径;利用SDN控制器间的东西向接口向转发域控制器分发域间路径片段,各域SDN控制器根据域间路径片段下发流表项,最终实现跨域转发控制。
参见图3所示,可将协同转发控制流程划分为如下三个阶段:
(1)信息共享阶段:各域的域信息管理器将本域内的域、用户、设备等实体的属性信息以及IP地址与用户标识、设备标识的映射关系生成域信息交易并签名,上传至区块链;区块链验签交易并通过调用域信息管理智能合约实现域信息发布或更新。各域的策略管理器制定跨域的转发控制策略,并封装成策略交易并签名,上传至区块链,区块链验签交易,通过调用策略管理智能合约实现策略发布或更新。各域区块链功能节点将域信息管理合约账户中的域信息和策略管理合约账户中的策略动态同步到SDN控制器的本地缓存。至此,信息共享阶段实现了安全可信的SDN域信息和策略共享。
(2)策略协同阶段:当新流到达入***换机,入***换机查询流表,若存在匹配流表项则按匹配流表项转发;若不存在,则将数据流首包通过pack-in消息上传控制器。SDN基线控制器通过流策略请求器将包含跨域数据流首包的流策略请求上传至策略转发控制应用的策略协同引擎。策略协同引擎通过查询本地缓存数据,执行“属性映射”、“策略匹配”和“路径合成”,得到全局协同策略。策略协同引擎将该数据流的全局协同策略下发给SDN基线控制器。
(3)路径生成阶段:控制器收到全局协同策略,将其交给域间路径计算组件。域间路径计算组件联合东西桥WE-bridge组件提供的全局域级别的网络视图,计算满足全局协同策略约束下的域级别转发路径,并通过控制器间的东西向接口向转发域的控制器分发路径片段,各SDN域控制器根据路径片段下发流表项,从而实现跨域的面向策略的转发控制。
进一步地,上传至区块链上的各SDN域的域信息至少包含:实体属性信息及标识映射关系,其中,实体属性信息包含:本域内的域、用户及设备信息,标识映射关系包含:IP地址与用户标识和设备标识之间的映射关系。
本案实施例中的转发策略制定过程中,通过如下内容来获取策略范式表示:
将属性Attribute描述为具有某种数据类型和值域的变量,可抽象为<attr,Value>,其中attr表示属性名,Value表示该属性的值域,Value={value1,value2,...,valuex},即每个属性都有自己的属性名和对应的取值范围。本案实施例中的属性用于描述数据流和路径。属性类别包括域、用户、设备、业务。其中,
域属性:包括域标识符、网络地址、域的入口网关或出口网关标识、域类型(如商业域、政府域)或域的社会法定名称、域的安全等级、域的信任等级等;
用户属性:具有用户标识符、用户所属单位、部门、级别等;
设备属性:包括设备标识符、MAC地址、设备位置、所属部门、保密等级等;
业务属性:业务标识符、协议、端口号、业务类型等,通过协议、端口号或自定义业务类别指明该条策略针对的报文类型或业务类型。
属性名值对avp用于表示一个属性的具体取值,可抽象为二元组<attr,value>,表示attr=value。属性名值对集合可用AVP表示。本案实施例使用属性名值对集合来描述域、用户、设备、业务所具有的属性,详细表示见表1。
表1属性名值对对照表
如domAVP={<domID,001>,<dom_net,202.20.2.0/24>,<dom_type,EDU>,<dom_sl,3>,<dom_tl=2>}表示001号域的子网地址是202.20.2.0/24,属于教育类型的组织,该域的安全等级为3,信任等级为2。
userAVP={<userID,00001>,<user_org,orgnationA>,<user_depart,depatmentB>,<user_type,manager>,<user_tl,2>}表示用户标识为“00001”的用户来自于“organizationA”的“departmentB”,其角色为“manager”,信任等级为“2”级。
devAVP={<devID,00001>,<dev_mac,4f:3e:32:62:53:3f>,<dev_loc,locationA>,<dev_org,orgnationA>,<dev_depart,departmentC>,<dev_sl,2>}表示设备标识为“00001”的MAC地址为“4f:3e:32:62:53:3f”,地理位置位于“loacationA”,属于组织“orgnationA”的“departmentB”部门,设备的保密等级为“2”级。
servAVP={<servID,0001>,<serv_type,vedioconferencing><ser_protocol,SIP>,<ser_dport,5060>}表示业务标识为“0001”的网络业务的类型为“vedioconferencing”,使用的协议为“SIP”,对应的端口号为“5060”。
servAVP={<servID,0002>,<serv_type,双11>,<ser_protocol,https>,<ser_dport,443>}表示业务标识为“0002”的网络业务是“双11”,使用的协议是“https”,对应的端口号是“443”。
在本案实施例中从业务层面,可将数据流(dataflow)抽象为七元组<SrcDom,SrcUser,SrcDev,DestDom,DestUser,DestDev,Serv>,即用数据流的源域、源用户、源设备、目的域、目的用户、目的设备和网络服务的属性集合来表示一个数据流。
一个数据流的源属性可以由其源域、源用户、源设备的属性名值对集合构成,可形式化表示为:srcAVP={srcdomAVP,srcuserAVP,srcdevAVP}。
一个数据流的目的属性可以由其目的域、目的用户、目的设备的属性名值对集合构成,形式化表示为:dstAVP={dstdomAVP,dstuserAVP,dstdevAVP}。
因此,一个数据流可以表示为dataflow=srcAVPUdstAVPUservAVP。
属性谓词ap用于限定属性的取值范围,ap可抽象为三元组<attr,∝,value>,其中∝∈{=,≠,<,≤,>,≥,in,not in,between}。在本案实施例中,属性谓词用作策略范式中的属性约束条件。
面向数据流和路径属性的转发控制策略范式可设计如下:
policy=<domID,policyID,policyType,SrcAP,DstAP,ServAP,Path,action>
其中,domID:表示制定该策略的域标识;policyID:表示本条策略在该域的标识,domID和policyID联合可在多域环境中唯一指明一条策略;policyType:表示策略类型,策略分为2类,policyType=SOURCE表示源发策略,用于约束本域源发的数据流,policyType=TRANSFER表示承载策略,用于过滤来自其他域的数据流;SrcAP:表示对数据流的源发属性约束,由源域属性谓词、源用户谓词约束、源设备属性谓词通过逻辑合取构成,即DstAP:表示对数据流的目的属性约束,由目的域属性谓词、目的用户属性谓词、目的设备属性谓词通过逻辑合取构成,即ServAP:表示对数据流的业务属性约束,通过协议、端口号或自定义业务类型等属性谓词的逻辑合取构成,即ServAP=servap1∧servap2,...∧servapg;Path:表示对数据流的路径约束,通过传输域的安全级别、信任等级或者域标识等属性谓词的逻辑合取构成,即Path=pathap1∧pathap2∧...∧pathapp,可用于源域限定传输该源发数据流的域的安全等级、信任等级,或限定该数据流必须经过或不能经过的域;action表示对满足策略约束的数据流在策略约束路径上的转发动作,包括丢弃drop、转发forward。
策略类型、路径约束和动作联合可确定一个数据流的转发路径决策,如表2所示。本案实施例中,约定数据流的源域可以限定源发数据流的转发路径,传输域不能限定其他域源发数据流的转发路径,但有权决定是否承载该数据流,即有权决定接收并转发该数据流或者丢弃该数据流。
表2策略的转发控制含义
一个数据流匹配一条策略当且仅当对于策略中的每个属性谓词,数据流对应的属性名值对的值属于该属性谓词的取值范围,可形式化表示为:
本案实施例包括域信息交易和策略交易,交易格式如图4所示,交易一般格式(a)中,ID代表交易标识;PK代表域的区块链账户公钥,各SDN域的策略转发控制应用具有自己的公私钥对,公钥作为该外部账户在区块链上的唯一标识,私钥用于对该外部账户上传到区块链上的交易进行签名;TxType:交易类型;TxData:交易数据;tp代表交易发布的时间戳;sign是交易发起账户对交易的签名;域信息交易格式如(b)所示,其交易数据为DomInf,以键值对形式存储,包含域标识、该SDN域内IP地址与用户标识和设备标识的映射关系的集合以及域、用户、设备的属性名值对集合,它的形式化表示如(d)所示;策略交易格式如(c)所示,其交易数据为PolicySet,以键值对形式存储,包含域标识和该SDN域制定的源发策略集和承载策略集,形式化表示如(e)所示。
域信息管理智能合约DIM Contract通过域信息发布DomInfPublish接口实现域信息发布或更新,可设计如算法1所示。域信息交易DomInfTx通过调用DomInfPublish接口,把DomInf中的IP地址与实体的映射关系以及实体的属性信息以domID为索引写入DIMContract账户中。各域的区块链功能节点把DIM Contract账户中的数据同步到SDN控制器本地缓存中,记为DomInfDB。
策略管理合约PM Contract通过PolicyPublish接口实现策略发布和更新,可设计如算法2所示。策略交易PolicyTx通过调用PolicyPublish接口将PolicySet中的策略按域标识和策略类型写入PM Contract账户中。各域的区块链功能节点把PM Contract账户中的数据同步到SDN控制器本地缓存中,记为PolicyDB。
进一步地,本案实施例中,SDN基线控制器与策略协同引擎进行交互来获取全局协同策略中,首先,通过解析流策略请求来获取数据包首部关键字段,通过查询SDN控制器本地缓存中的DomInfDB将数据流网络标识与业务属性进行映射;然后,根据数据流属性对SDN控制器本地缓存中的PolicyDB执行策略匹配来获取匹配策略集;最后,通过对匹配策略集执行路径合成来获取全局路径约束的全局协同策略。
当新流达到时,触发策略协同引擎执行策略协同算法,可设计如算法3所示。策略协同算法PolicyCollaborate()由属性映射AttibuteMap()、策略匹配PolicyMatch()及路径合成PathSynthesize()3个功能步骤实现:
(1)通过解析flowPolicyRequest,获取数据流首包的首部,AttibuteMap()根据首部中的网络标识字段映出数据流所对应的属性,即mapAttrSet(lines 1-2);
(2)PolicyMatch()根据数据流属性执行策略匹配,获得约束该数据流的所有策略,即匹配策略集matchPolicySet(line 3);
(3)PathSynthesize()对匹配策略集执行路径合成,返回该数据流的全局路径约束(lines 4-5)。
进一步地,将数据流网络标识与业务属性进行映射时,根据数据包首部关键字段,读取源IP、目的IP及端口号或协议类型;根据源IP获取源域、源用户、源设备的属性名值对集合,并组成数据流的源属性;根据目的IP获取目的域、目的用户、目的设备的属性名值对集合,并组成数据流的目的属性;将端口号或协议类型作为业务标识,根据端口号或协议类型获取网络服务属性;联合源属性、目的属性及网络服务属性构成数据流的业务属性集,并依据数据流关键字段生成对应的流标识;通过联合流标识与业务属性集来完成数据流网络标识与业务属性之间的映射。
属性映射函数AttributeMap()根据数据流首包的关键字段映射出数据流属性。方法是查询DomInfDB,首先根据数据包头的关键字段映射出对应的标识,然后根据标识映出对应的属性,最后联合这些属性构成数据流属性。AttributeMap()可设计如算法4所示:
(1)读取源ip,根据源ip从DomInfDB中获取源域、源用户、源设备的属性名值对集合,构成数据流的源属性(lines 2-4);
(2)读取目的ip,根据目的ip从DomInfDB中获取目的域、目的用户、目的设备的属性名值对集合,构成数据流的目的属性(lines 5-7);
(3)读取端口号或协议类型作为业务标识,有端口号读取端口号,无端口号读取协议类型,根据端口号或协议类型从DomInfDB中获取网络服务的属性名值对的集合(lines8-9);
(4)联合源发属性、目的属性、网络服务属性构成该数据流对应的属性集FlowAttrSet(line 10);
(5)根据该数据流数据包首部的关键字段生成对应的流标识FlowSN(line 11);
(6)联合流标识与流属性集,作为属性映射函数结果返回(lines 12-13)。
进一步地,本案实施例中,通过策略匹配获取匹配策略集时,首先,根据数据流的源域标识获取源发策略并根据策略类型获取各域的承载策略,将源发策略和承载策略构成相关策略集;然后,对相关策略集中的每条策略,如果数据流的属性集满足策略中的所有属性谓词约束,则将对应策略作为匹配策略,否则,遍历下一条策略,直至遍历完相关策略集中的所有策略,进而得到匹配策略集。
策略匹配根据数据流属性执行策略匹配,获取约束该数据流转发路径的策略集,可设计如算法5所示,PolicyMatch()算法流程如下:
(1)初始化数据流属性集flowAVP为请求转发的流的属性集,属性匹配标记mark为0,源发策略集srcPolicySet、承载策略集transferPolicySet、相关策略集
relevantPolicySet、匹配策略集matchPolicySet均为空(line 1);
(2)根据数据流的源域标识,从PolicyDB中读取该域的源发策略(line 2);
(3)根据策略类型TRANSFER,从PolicyDB中读取各域的承载策略(line 3);
(4)源发策略和承载策略构成相关策略集(line 4);
(5)对相关策略集中的每一条策略,如果数据流属性集满足该策略的所有属性谓词约束,则该策略为匹配策略;否则,遍历下一条策略,直至遍历所有策略。(lines
5-11)
(6)返回匹配策略集(line 12)。
进一步地,本案实施例中,执行路径合成,通过匹配策略集中的策略类型、路径约束及动作来获取全局路径约束的全局协同策略,其中,由匹配策略集中的策略类型、路径约束及动作获取全局协同策略,具体包含如下情形:对于匹配策略集中的每一条源发策略,如果动作为forward,则将其路径约束写入流路径约束,如果其动作为drop,则将其路径约束取反后,写入流路径约束;对于匹配策略集中的每一条承载策略,如果其路径约束不为空,则违反约定,报告错误,如果路径约束为空、且动作为drop,则将对应域标识取反并写入流路径约束,如果其路径约束为空、且动作为forward,则不影响数据转发,直至遍历所有承载策略;最后,联合流识别符、流路径约束和动作forward构成具有全局路径约束的全局协同策略。
路径合成算法对该流的匹配策略集进行路径约束合成,获取全局路径约束,可设计如算法6所示,PathSynthesize()算法流程如下:
(1)初始化该流的路径约束flowPath为全集,路径变量path和动作变量action为null,全局协同策略collaborativePolicy为空(line 1);
(2)对于匹配策略集中的每一条源发策略,如果动作为forward,则将其路径约束写入流路径约束,如果其动作为drop,则将其路径约束取反后,写入流路径约束(line2-4,lines5-13);
(3)对于匹配策略集中的每一条承载策略,如果其约束不为空,则违反约定,报告错误;如果其路径约束为空、且动作为drop,则将该域标识取反写入流路径约束;如果路径约束为空、且动作为forward,则不影响数据转发(line2-4,lines 14-25);
(4)联合流标识符、流路径约束和forward动作作为全局协同策略,并返回(lines31~32)。
本案实施例中,基于属性而非IP的转发控制策略范式,可以从服务管理的角度对数据流转发路径进行细粒度控制;而基于属性的方法为SDN跨域转发策略提供了统一、灵活的表达能力;并实现基于区块链的域信息和策略共享,解决了跨域策略不可知的问题,保证了分布式无信任环境下策略传递的安全性和可信度,创新性地实现了基于全局协同策略的跨域转发控制,消除了跨域策略冲突的问题;实现物理上集中、逻辑上隔离的架构,将区块链节点功能部署在本地控制器上,使SDN能够安全高效地与区块链交换数据;通过链上和链下的结合的功能模型,将转发控制与区块链分离,在本地控制器上执行策略协同,实现基于可信数据的策略协同,避免链上执行策略协同给数据流转发带来过多的延迟和复杂计算,便于部署实施。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种基于区块链的SDN域间协同转发控制***,其特征在于,包含:基于区块链的策略转发控制应用,分别与策略转发控制应用连接的区块链功能节点和SDN网络操作***,及与SDN网络操作***连接的东西桥;各SDN域的区块链功能节点与SDN控制器部署在SDN域本地服务器,且区块链功能节点通过P2P方式构成区块链网络,各SDN域存储有区块链全局账本,利用本地应用程序接口来实现策略转发控制应用与控制器和区块链之间的交互,其中,策略转发控制应用包含:用于登记及动态更新域信息并生成域信息交易上传至区块链的域信息管理器,用于制定域间转发控制策略并生成策略交易上传至区块链的策略管理器,及
用于通过查询本地缓存来执行属性映射、策略匹配和路径合成并获取全局协同策略的策略协作引擎。
2.根据权利要求1所述的基于区块链的SDN域间协同转发控制***,其特征在于,区块链功能节点利用共识机制对发布或更新的域信息或策略信息进行上链确认,并写入各SDN域区块链节点的账本数据库,将共识机制中的智能合约账户的域信息和策略信息实时动态同步到SDN控制器本地缓存。
3.一种基于区块链的SDN域间协同转发控制方法,其特征在于,基于权利要求1所述的***实现,包含如下内容:
将各SDN域的域信息及跨域转发策略上传至区块链,由区块链中的智能合约进行域信息和跨域转发策略的发布或更新,并利用区块链功能节点将发布或更新的域信息和转发控制策略同步到SDN控制器本地缓存;其中,将各SDN域的域信息生成域信息交易,经签名后上传至区块链,区块链验证域信息交易的签名,验证通过则调用域信息管理智能合约来实现域信息的发布与更新,利用区块链功能节点将域信息管理智能合约账户中的域信息同步到SDN控制器本地缓存;将各SDN域的跨域转发策略封装成策略交易,经签名后上传至区块链,区块链验证策略交易的签名,验证通过则调用策略管理合约来实现转发控制策略的发布与更新,利用区块链功能节点将策略管理智能合约账户中的转发控制策略同步到SDN控制器本地缓存;
针对入***换机接收到的新数据流,通过查询流表,若存在匹配流表项,则按流规则转发,若不存在流表项,则将数据流首包上传至SDN控制器,SDN基线控制器与策略协同引擎进行交互来获取全局协同策略,具体包含:首先,通过解析流策略请求来获取数据包首部关键字段,通过查询本地缓存的域信息来将数据流网络标识与业务属性进行映射;然后,根据数据流属性读取本地缓存的策略集,通过策略匹配来获取匹配策略集;最后,通过对匹配策略集执行路径合成来获取全局路径约束的全局协同策略;
SDN基线控制器依据获取的全局协同策略,联合全局域级别的网络视图并通过域间路径计算来获取满足全局策略约束下的域级别转发路径;利用SDN控制器间的东西向接口向转发域控制器分发路径片段,各SDN控制器根据路径片段下发流表项,实现跨域转发控制。
4.根据权利要求3所述的基于区块链的SDN域间协同转发控制方法,其特征在于,上传至区块链上的各SDN域的域信息至少包含:实体属性信息及标识映射关系,其中,实体属性信息包含:本域内的域、用户及设备信息,标识映射关系包含:IP地址与用户标识和设备标识之间的映射关系。
5.根据权利要求3所述的基于区块链的SDN域间协同转发控制方法,其特征在于,上传至区块链上的各SDN域的跨域转发策略由多元组进行表示,具体范式表示为:
policy=<domID,policyID,policyType,SrcAP,DstAP,ServAP,Path,action>,
其中,domID表示制定策略的域标识,policyID表示策略在该域的标识,policyType表示策略类型,该策略类型划分为用于约束本域源发数据流的源发策略及用于过滤来自其他域数据流的承载策略,SrcAP表示对数据流的源发属性约束,DstAP表示对数据流的目的属性约束,ServAP表示对数据流的网络服务属性约束,Path表示对数据流的路径约束,action表示对满足策略约束的数据流在策略约束路径上的转发动作。
6.根据权利要求3所述的基于区块链的SDN域间协同转发控制方法,其特征在于,将数据流网络标识与业务属性进行映射时,根据数据包首部关键字段,读取源IP、目的IP及端口号或协议类型;根据源IP获取源域、源用户、源设备的属性名值对集合,并组成数据流的源属性;根据目的IP获取目的域、目的用户、目的设备的属性名值对集合,并组成数据流的目的属性;根据端口号或协议类型获取网络服务属性值对集合,作为数据流的网络服务属性;联合源属性、目的属性及网络服务属性构成数据流的业务属性集,并依据数据流首部关键字段生成对应的流标识;通过联合流标识与业务属性集来完成数据流网络标识与业务属性之间的映射。
7.根据权利要求3所述的基于区块链的SDN域间协同转发控制方法,其特征在于,通过策略匹配获取匹配策略集时,首先,根据数据流的源域标识获取源域的源发策略并根据策略类型获取各域的承载策略,将源域的源发策略和各域的承载策略构成相关策略集;然后,对相关策略集中的每条策略,如果数据流的属性集满足策略中的所有属性谓词约束,则将对应策略作为匹配策略,否则,遍历下一条策略,直至遍历完相关策略集中的所有策略,进而得到匹配策略集。
8.根据权利要求3所述的基于区块链的SDN域间协同转发控制方法,其特征在于,执行路径合成时,通过匹配策略集中的策略类型、路径约束和动作来获取具有全局路径约束的全局协同策略,其中,由匹配策略集中的策略类型、路径约束和动作获取全局协同策略,具体包含如下情形:对于匹配策略集中的每一条源发策略,如果动作为forward,则将其路径约束写入流路径约束,如果其动作为drop,则将其路径约束取反后,写入流路径约束;对于匹配策略集中的每一条承载策略,如果其路径约束不为空,则违反约定,报告错误,如果路径约束为空、且动作为drop,则将对应域标识取反并写入流路径约束,如果路径约束为空、且动作为forward,则不影响数据转发,直至遍历所有承载策略;最后,联合流识别符、流路径约束和动作forward构成具有全局路径约束的全局协同策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211079285.3A CN115514691B (zh) | 2022-09-05 | 2022-09-05 | 基于区块链的sdn域间协同转发控制***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211079285.3A CN115514691B (zh) | 2022-09-05 | 2022-09-05 | 基于区块链的sdn域间协同转发控制***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115514691A CN115514691A (zh) | 2022-12-23 |
CN115514691B true CN115514691B (zh) | 2023-06-27 |
Family
ID=84502369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211079285.3A Active CN115514691B (zh) | 2022-09-05 | 2022-09-05 | 基于区块链的sdn域间协同转发控制***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115514691B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246176A (zh) * | 2018-07-03 | 2019-01-18 | 北京邮电大学 | 软件定义网络中基于区块链的多控制器同步方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871718B (zh) * | 2016-03-21 | 2019-08-13 | 东南大学 | 一种sdn域间路由实现方法 |
US10419446B2 (en) * | 2017-07-10 | 2019-09-17 | Cisco Technology, Inc. | End-to-end policy management for a chain of administrative domains |
KR102454398B1 (ko) * | 2018-02-19 | 2022-10-14 | 한국전자통신연구원 | 분산형 소프트웨어 정의 네트워킹 방법 및 장치 |
US12034770B2 (en) * | 2018-11-26 | 2024-07-09 | The University Of Akron | 3S-chain: smart, secure, and software-defined networking (SDN)-powered blockchain-powered networking and monitoring system |
US20200374127A1 (en) * | 2019-05-21 | 2020-11-26 | The University Of Akron | Blockchain-powered cloud management system |
CN110417739B (zh) * | 2019-06-27 | 2021-06-25 | 华东师范大学 | 一种基于区块链技术的安全的网络带内测量方法 |
CN110855565B (zh) * | 2019-11-22 | 2021-07-20 | 广州大学 | 一种基于区块链的可验证域间路由验证方法 |
CN112235252B (zh) * | 2020-09-21 | 2023-02-07 | 西安电子科技大学 | 基于区块链的安全识别方法、安全识别***及存储介质 |
CN113572734B (zh) * | 2021-06-24 | 2023-04-28 | 福建师范大学 | 移动边缘计算中基于区块链的跨域访问控制方法 |
CN114827002B (zh) * | 2022-03-17 | 2023-04-07 | 西安电子科技大学 | 多域网络安全路径计算方法、***、设备、介质及终端 |
CN114844902A (zh) * | 2022-06-30 | 2022-08-02 | 南京邮电大学 | 一种基于区块链技术的sdn控制器与设备交互方法 |
-
2022
- 2022-09-05 CN CN202211079285.3A patent/CN115514691B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246176A (zh) * | 2018-07-03 | 2019-01-18 | 北京邮电大学 | 软件定义网络中基于区块链的多控制器同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115514691A (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11995618B2 (en) | Blockchain network interaction controller | |
Ali et al. | Secure data provenance in cloud-centric internet of things via blockchain smart contracts | |
Cui et al. | Secure and efficient data sharing among vehicles based on consortium blockchain | |
CN112418860A (zh) | 一种基于跨链技术的区块链高效管理架构及工作方法 | |
Arora et al. | Block chain based security mechanism for internet of vehicles (IoV) | |
Revanesh et al. | A trusted distributed routing scheme for wireless sensor networks using blockchain and meta‐heuristics‐based deep learning technique | |
CN111931215B (zh) | 数据管理方法和装置及存储介质 | |
Shen et al. | Trustworthiness evaluation-based routing protocol for incompletely predictable vehicular ad hoc networks | |
CN113726665B (zh) | 基于区块链的边界网关路由的更新方法 | |
Ko et al. | Secure service virtualization in IoT by dynamic service dependency verification | |
EP4122154A1 (en) | Multi-layer communication network | |
Tedeschi et al. | Blockchain as a service: Securing bartering functionalities in the H2020 symbIoTe framework | |
Gurney et al. | Having your cake and eating it too: Routing security with privacy protections | |
Qiao et al. | Credible routing scheme of SDN-based cloud using blockchain | |
CN115514691B (zh) | 基于区块链的sdn域间协同转发控制***及方法 | |
Liu et al. | Secure and scalable cross-domain data sharing in zero-trust cloud-edge-end environment based on sharding blockchain | |
Ali et al. | Improving PKI, BGP, and DNS using blockchain: A systematic review | |
Liu et al. | A novel routing verification approach based on blockchain for inter-domain routing in smart metropolitan area networks | |
CN110945833A (zh) | 一种用于多模标识网络隐私保护与身份管理的方法及*** | |
GB2594684A (en) | Layered network | |
CN114079632B (zh) | 一种基于区块链的可信域间路由方法及*** | |
Xu et al. | When Web 3.0 Meets Reality: A Hyperdimensional Fractal Polytope P2P Ecosystems | |
Song et al. | Research on Blockchain-Based FinTech Trust Evaluation Mechanism | |
Chanal et al. | Blockchain-based data integrity framework for Internet of Things | |
Liu et al. | An enhanced verifiable inter-domain routing protocol based on blockchain |
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 |