1.一种基于代理的软件定义网络分布式多粒度控制器安全通信方法,其特征在于:该方法包括以下步骤:
S1:设计构建一个分布式多粒度控制器架构,使各个SDN自治域达到域间通信的目的;
该架构分为基础控制块和多粒度安全定制模块以及一个增强的安全控制器,基础控制模块遵循SDN架构要求实现基本功能,多粒度安全定制模块实现在控制器中可自定义的安全功能,而增强的安全控制器是为了解决在SDN多网络的环境下域间的安全问题;
S2:在步骤S1的架构模式下对安全通信方法中的消息格式进行设计,所有控制器间的数据传递采用专用的以太网数据包类型标识0xEFEF,载荷部分保留IP数据包格式,而传输层采用UDP协议;
S3:安全连接建立之邻居发现,邻居发现采用广播式的发现方式,每个自治域的控制器通过域间代理广播自己的信息;控制器将自治域的AS号、是否支持安全隧道和安全隧道服务端口号等信息下发给域间代理,域间代理封装成以太网数据包后转发给相邻自治域,自定义了邻居发现消息的格式;
S4:安全连接建立之可信认证,在域间控制器通信时,需要保证控制器到域间代理和域间代理之间的通信安全,所以必须完成控制器之间的身份认证,控制器双方都需要明确对方是否可信,因此采用两步认证,两步认证包括域间代理认证和证书认证;
S5:安全连接建立之隧道建立,SDN多域网络运行过程中,各个自治域的控制器不断广播自己的信息,其它自治域的控制器收到广播消息后,想发送消息的控制器发起连接。
2.根据权利要求1所述的一种基于代理的软件定义网络分布式多粒度控制器安全通信方法,其特征在于:在步骤S1中,SDN安全控制器架构分为基础控制模块和多粒度安全定制模块,多粒度安全定制模块实现在控制器中可自定义的安全功能主要有威胁防御模块、流表管理模块、备份模块和应用管理模块;增强的安全控制器架构,其域间模块主要包括安全配置、连接管理、邻域管理和域间路由。
3.根据权利要求1所述的一种基于代理的软件定义网络分布式多粒度控制器安全通信方法,其特征在于:在步骤S2中,控制器域间消息的数据包格式如下:前8位为消息的类型,接着32位为消息的长度(整个UDP载荷部分,位为字节),其余部分则是具体的消息内容;消息类型分为邻居发现消息、Keepalive消息、安全隧道消息,其类型标识分别为:0x01、0x02、
0x03。
4.根据权利要求1所述的一种基于代理的软件定义网络分布式多粒度控制器安全通信方法,其特征在于:在步骤S3中,控制器将自治域的AS号、是否支持安全隧道和安全隧道服务端口号等信息下发给域间代理,域间代理封装成以太网数据包后转发给相邻自治域,自定义了邻居发现消息的格式如下:消息类型字段为0x01,消息长度一般为10字节,即0x000A;后面的字段为AS号(32位)、安全隧道支持(8位,0x00表示不支持,0x01表示支持)、端口号(16位,如果表示不支持则忽略此字段);
在邻居发现完成后,控制器不断更新和维护相邻自治域的信息,在长时间内(Message Timeout)没有收到相邻自治域的消息时,需要发送Keepalive消息以确认邻居是否还存在;
相邻自治域的控制器收到消息过也返回一条Keepalive消息,如果在一定时间内(Keepalive Timeout)没有收到返回的消息,则认为邻居已经不存在;Message Timeout和Keepalive Timeout由各个自治域根据情况自行设定;Keepalive的消息类型字段为0x02,消息长度一般为3字节,即0x0003。
5.根据权利要求1所述的一种基于代理的软件定义网络分布式多粒度控制器安全通信方法,其特征在于:在步骤S4中,所述两步认证的认证过程包括:域间代理在接收到发起请求的控制器的握手消息后,不会在第一时间转发到本自治域的控制器,而是先缓存起来;随后域间代理对请求端发起认证请求,用于验证请求方的非攻击意图;请求方控制器完成解答并通过验证后,域间代理才开始将数据包转发到本自治域控制器,接着进行握手过程,完成基于证书的身份认证;在DTLS协议握手过程中,控制器双方都需要明确对方是否可信,所以采用严格的双向认证。
6.根据权利要求1所述的一种基于代理的软件定义网络分布式多粒度控制器安全通信方法,其特征在于:在步骤S5中,安全通信隧道建立过程具体包括:S51:控制器构造邻居发现数据包,将自己的AS号,安全隧道的支持情况和服务端口写入数据包,随后将数据包下发到所有的域间代理,由域间代理封装为类型标识为0xEFEF的以太网帧并转发;
S52:控制器收到广播后根据对方的广播消息,解析出相邻自治域的AS号和安全隧道支持情况;如果对方不支持安全隧道,则根据安全配置采用普通UDP数据发送方式发送允许共享的信息;连接发起可以由任意一方发起,如果没有收到对方发来的连接请求就构造安全隧道握手消息,作为客户端向对方发起安全隧道连接请求;
S53:对方作为服务端收到安全隧道握手消息后,也不再作为客户端向对方发起请求;
双方基于域间代理认证和数字证书完成两步身份验证和加密协商,当双方都证实对方身份后,安全通信隧道建立完成,否则隧道建立失败,转而采用普通UDP协议;
S54:从控制器收到相邻自治域控制器的广播消息开始,将开启消息超时计时Message Timeout(即长时间未收到来自该邻居的任何消息);超时后向对方发送Keepalive消息,如果对方没有在Keepalive Timeout时限内返回Keepalive消息就认为对方已经不存在并停止维持安全隧道。