首页 / 专利库 / 软件 / 建模语言 / 一种基于SDN架构的BGP路由可信验证方法

一种基于SDN架构的BGP路由可信验证方法

阅读:128发布:2020-05-13

专利汇可以提供一种基于SDN架构的BGP路由可信验证方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于SDN架构的BGP路由可信验证方法,其步骤为:第一步,构建基于SDN架构的BGP路由可信验证环境;第二步,集中控制点采集BGP邻居信息;第三步,集中控制点集中检测异常,验证BGP路由是否可信,若BGP路由可信,结束,若BGP路由不可信,进入第四步;第四步,集中控制点生成阻断异常的安全策略;第五步,集中控制点下发安全策略阻断异常路由;第六步,集中控制点验证异常路由是否被阻断,方法是:代理再次读取BGP邻居信息表,并通过NETCONF协议发送给集中控制点,转第三步。与现有BGP路由可信验证方法相比,本发明能够降低部署开销、提高 异常检测 性能和实时性、闭环控制阻断异常、向前兼容高可扩展、使系统整体性价比大幅提升。,下面是一种基于SDN架构的BGP路由可信验证方法专利的具体信息内容。

1.一种基于SDN架构的BGP路由可信验证方法,其特征在于,实施步骤如下:
第一步,构建基于SDN架构的BGP路由可信验证环境,BGP路由可信验证环境包括:为每台路由器部署的一个代理,以及部署在客户端的集中控制点;代理负责与BGP协议进程交互,读写BGP邻居信息表;集中控制点是一个软件,负责使用网络配置协议NETCONF周期性地与代理交互,获取管辖范围内所有路由器的BGP邻居信息表,生成邻居信息数据库
第二步、集中控制点采集BGP邻居信息,将BGP邻居信息表建模得到YANG模型;
第三步、集中控制点集中检测异常,验证BGP路由是否可信,如果BGP路由可信,则结束;
否则,BGP路由不可信,进入第四步;
第四步、集中控制点生成阻断异常的安全策略,确保BGP路由可信;
第五步、集中控制点下发安全策略阻断异常路由;
第六步、集中控制点验证异常路由是否被阻断,方法是:安全路由策略下发成功后,代理再次读取BGP邻居信息表,并通过NETCONF协议发送给集中控制点,转第三步。
2.根据权利要求1所述的基于SDN架构的BGP路由可信验证方法,其特征在于,所述第二步集中控制点采集BGP邻居信息,将BGP邻居信息表建模得到YANG模型,具体流程为:
2.1使用YANG数据建模语言对BGP邻居信息表进行建模,得到YANG模型,包括以下步骤:
2.1.1定义邻居为一个容器节点聚集所有的邻居信息;
2.1.2定义BGP邻居信息表中每一行的条目为一个列节点,并用邻居ID唯一标识;
2.1.3定义条目中的每个属性为一个叶子节点
2.2集中控制点向代理发送配置请求,请求获取BGP邻居信息表,包括以下步骤:
2.2.1集中控制点收到请求BGP邻居信息的命令后,自动生成XML格式的配置请求;
2.2.2集中控制点通过NETCONF协议将配置请求发往代理;
2.3代理响应集中控制点的请求,将BGP邻居信息表发送给集中控制点,包括以下步骤:
2.3.1代理收到集中控制点的配置请求后,通过对BGP协议进程进行读操作,获取BGP邻居信息表;
2.3.2代理将BGP邻居信息表用XML进行编码,然后通过NETCONF协议发往集中控制点。
3.根据权利要求1所述的基于SDN架构的BGP路由可信验证方法,其特征在于,所述第三步集中控制点集中检测异常,验证BGP路由是否可信,具体流程为:
3.1集中控制点从代理收到XML编码的BGP邻居信息表后,从XML中解析出邻居信息,存储于邻居信息数据库中;
3.2集中控制点管辖范围内所有运行BGP的路由器的邻居信息都采集完成后,得到邻居信息数据库;然后,对比分析邻居信息数据库,判断互为邻居的路由器是否存在对方的BGP邻居信息表中,验证BGP路由是否可信:如果互为邻居的路由器存在于对方的BGP邻居信息表中,则BGP路由可信,结束;否则,此BGP路由不可信,进入第四步。
4.根据权利要求1所述的基于SDN架构的BGP路由可信验证方法,其特征在于,所述第四步集中控制点生成阻断异常的安全策略,具体流程为:
4.1集中控制点检测到某路由器的BGP邻居信息表中存在多余的邻居信息,则生成安全路由策略删除该邻居信息以阻断异常路由;
4.2集中控制点根据NETCONF协议规范以及第二步的YANG模型,将安全路由策略转换成XML编码的配置文件,删除多余的邻居。
5.根据权利要求1所述的基于SDN架构的BGP路由可信验证方法,其特征在于,所述第五步集中控制点下发安全策略阻断异常路由,具体流程为:
5.1集中控制点生成XML编码的安全路由策略之后,通过标准的NETCONF协议将其发送给代理;
5.2代理收到安全路由策略之后,与BGP协议进程交互,通过对BGP邻居信息表进行写操作,执行安全路由策略,删除多余的邻居。

说明书全文

一种基于SDN架构的BGP路由可信验证方法

技术领域

[0001] 本发明主要涉及到网络安全领域,特指一种基于SDN(Software Defined Network,软件定义网络)架构的BGP(Border Gateway Protocol,边界网关协议)路由可信验证方法。

背景技术

[0002] 域间路由安全对于整个互联网的安全具有重要的意义。增强域间路由安全的关键之一就是提高域间路由协议的安全性。BGP协议作为当前唯一的域间路由协议,其安全性是整个Internet路由系统安全的关键。而BGP路由是否可信又是保证BGP协议安全的基础,然而在BGP设计之初,并没有充分考虑可信路由问题,只有一些简单的认证机制保证安全。在目前复杂的网络环境下,这种简单的认证机制既不能确保路由信息的可靠性,也不能满足可信路由的需求。
[0003] BGP路由可信的核心问题就是确保信息发布的可靠性,其中最重要的就是源地址信息和路径属性,至今提出的多种BGP路由可信方法,多数都采用基于信息认证的数字签名认证方法,包括对源地址签名、路径属性签名、路由策略签名来保证信息的安全可信。这种方法存在以下不足:在数字签名认证方法中,要求每台设备都有公钥和私钥两种密钥,密钥产生、分配、维护工作繁琐,密钥系统难以部署,开销很大;而随着网络规模增大,网络设备成指数级增长,大大增加了密钥系统的部署管理难度,降低了系统的整体性价比。因此,数字签名认证方法代价太大,难于部署。
[0004] 另一种常见的保证BGP路由可信的方法是采用BGP路由检测系统检测路由异常,这种方法存在以下不足:1、已有的路由安全监测系统只提供异常发现和报警服务,没有阻断异常功能,即没有形成自动的反馈控制。与此同时,在监测异常时,需要参考已有异常类型知识库确定系统是否存在异常,这种方法依赖于知识库的准确性和完整性,且只能检测异常,没有自动反馈机制。2、已有的路由安全监测系统只有在网络应用所需服务得不到保证、网络状态出现波动的情况下才能检测出异常,这种被动异常监测不具备很好的实时性和前瞻性,难以满足目前网络安全的实时性需求。3、已有的路由安全监测系统种类繁多、各成体系,系统之间互通性差,难以兼容。且系统大多只向后兼容,不具备向前兼容的特性。

发明内容

[0005] 本发明要解决的技术问题就在于:针对现有技术存在的问题,本发明提供一种基于SDN架构的BGP路由可信验证方法,该方法能够降低部署开销、提高异常检测性能和实时性、闭环控制阻断异常、向前兼容高可扩展、使系统整体性价比大幅提升。
[0006] 为解决上述技术问题,本发明采用以下技术方案:
[0007] 一种基于SDN架构的BGP路由可信验证方法,实施步骤如下:
[0008] 1.一种基于SDN架构的BGP路由可信验证方法,其特征在于,实施步骤如下:
[0009] 第一步,构建基于SDN架构的BGP路由可信验证环境,BGP路由可信验证环境包括:为每台路由器部署的一个代理,以及部署在客户端的集中控制点;代理负责与BGP协议进程交互,读写BGP邻居信息表;集中控制点是一个软件模,负责使用网络配置协议NETCONF周期性地与代理交互,获取管辖范围内所有路由器的BGP邻居信息表,生成邻居信息数据库
[0010] 第二步、集中控制点采集BGP邻居信息,将BGP邻居信息表建模得到YANG模型;
[0011] 第三步、集中控制点集中检测异常,验证BGP路由是否可信,如果BGP路由可信,则结束;否则,BGP路由不可信,进入第四步;
[0012] 第四步、集中控制点生成阻断异常的安全策略,确保BGP路由可信;
[0013] 第五步、集中控制点下发安全策略阻断异常路由;
[0014] 第六步、集中控制点验证异常路由是否被阻断,方法是:安全路由策略下发成功后,代理再次读取BGP邻居信息表,并通过NETCONF协议发送给集中控制点,转第三步。
[0015] 作为本发明的进一步改进,所述第二步集中控制点采集BGP邻居信息,将BGP邻居信息表建模得到YANG模型,具体流程为:
[0016] 2.1使用YANG数据建模语言对BGP邻居信息表进行建模,得到YANG模型,包括以下步骤:
[0017] 2.1.1定义邻居为一个容器节点聚集所有的邻居信息;
[0018] 2.1.2定义BGP邻居信息表中每一行的条目为一个列节点,并用邻居ID唯一标识;
[0019] 2.1.3定义条目中的每个属性为一个叶子节点
[0020] 2.2集中控制点向代理发送配置请求,请求获取BGP邻居信息表,包括以下步骤:
[0021] 2.2.1集中控制点收到请求BGP邻居信息的命令后,自动生成XML格式的配置请求;
[0022] 2.2.2集中控制点通过NETCONF协议将配置请求发往代理;
[0023] 2.3代理响应集中控制点的请求,将BGP邻居信息表发送给集中控制点,包括以下步骤:
[0024] 2.3.1代理收到集中控制点的配置请求后,通过对BGP协议进程进行读操作,获取BGP邻居信息表;
[0025] 2.3.2代理将BGP邻居信息表用XML进行编码,然后通过NETCONF协议发往集中控制点。
[0026] 所述第三步集中控制点集中检测异常,验证BGP路由是否可信,具体流程为:
[0027] 3.1集中控制点从代理收到XML编码的BGP邻居信息表后,从XML中解析出邻居信息,存储于邻居信息数据库中;
[0028] 3.2集中控制点管辖范围内所有运行BGP的路由器的邻居信息都采集完成后,得到邻居信息数据库;然后,对比分析邻居信息数据库,判断互为邻居的路由器是否存在对方的BGP邻居信息表中,验证BGP路由是否可信:如果互为邻居的路由器存在于对方的BGP邻居信息表中,则BGP路由可信,结束;否则,此BGP路由不可信,进入第四步。
[0029] 所述第四步集中控制点生成阻断异常的安全策略,具体流程为:
[0030] 4.1集中控制点检测到某路由器的BGP邻居信息表中存在多余的邻居信息,则生成安全路由策略删除该邻居信息以阻断异常路由;
[0031] 4.2集中控制点根据NETCONF协议规范以及第一步的YANG模型,将安全路由策略转换成XML编码的配置文件。
[0032] 所述第五步集中控制点下发安全策略阻断异常路由,具体流程为:
[0033] 5.1集中控制点生成XML编码的安全路由策略之后,通过标准的NETCONF协议将其发送给代理;
[0034] 5.2代理收到安全路由策略之后,与BGP协议进程交互,通过对BGP邻居信息表进行写操作,执行安全路由策略,删除多余的邻居。
[0035] 与现有技术相比,本发明的优点在于:
[0036] 1、本发明在每台路由器上部署一个代理,代理自动采集路由信息、集中检测异常并下发安全路由策略阻断异常,这种集中闭环控制结构能够形成自动的反馈控制,确保路由安全可信。
[0037] 2、本发明第三步集中控制点随时请求路由信息并进行异常检测,与传统的监测系统相比,具有更高的实时性。
[0038] 3、本发明第三步在采集完BGP邻居信息表之后,对BGP邻居信息表进行对比分析判断,验证BGP是否可信。与传统的数字签名认证方法相比,大大提高了可信路由的验证效率;同时本发明只需要在每台路由器上部署一个代理,与传统的安全增强协议机制相比,大大降低了部署开销。
[0039] 4、本发明采用NETCONF协议,提供认证、数据完整性、机密性和应答保护等机制确保BGP邻居信息安全传输;采用YANG数据建模语言,可以更好地描述数据之间的层次性和限制关系。同时NETCONF协议和YANG数据建模语言作为下一代网络管理的既定标准,使得本发明具有更好的通用性和可扩展性。附图说明
[0040] 图1是本发明方法的流程示意图;
[0041] 图2是本发明具体应用时的系统结构示意图;
[0042] 图3是本发明具体应用时的设计实现模块示意图;
[0043] 图4是本发明YANG语言对BGP邻居建模示意图;
[0044] 图5是本发明具体应用时的拓扑示意图;
[0045] 图6是本发明具体应用时的配置示意图;
[0046] 图7是本发明具体应用时节点伪造BGP路由时的BGP邻居信息表示意图;
[0047] 图8是本发明具体应用时节点异常阻断后的BGP邻居信息表示意图;
[0048] 图9是本发明具体应用时阻断异常的安全路由策略示意图。

具体实施方式

[0049] 以下将结合说明书附图和具体实施案例对本发明做进一步详细说明。
[0050] 如图1所示,本发明的一种基于SDN架构的BGP路由可信验证方法,其步骤为:
[0051] 第一步,构建基于SDN架构的BGP路由可信验证环境,如图2所示,BGP路由可信验证环境包括:为每台路由器部署的一个代理,以及部署在客户端的集中控制点;代理负责与BGP协议进程交互,读写BGP邻居信息表;集中控制点是一个软件模块,负责使用网络配置协议NETCONF(Network Configuration Protocol,网络配置协议)周期性地与代理交互,获取管辖范围内所有路由器的BGP邻居信息表,生成邻居信息数据库;
[0052] 第二步、集中控制点与代理交互,从BGP协议进程处获取BGP邻居信息,将BGP邻居信息表建模得到YANG模型,结合图3,包含以下步骤:
[0053] 2.1使用YANG数据建模语言对BGP邻居信息表进行建模,得到YANG模型。YANG是一种用于对NETCONF协议操作的配置和管理数据进行建模的语言。它可以描述数据之间层次性和限制关系。YANG定义了数据模型以及NETCONF协议操作。如图4所示,在充分分析BGP邻居结构之后,BGP邻居信息表被形式化成YANG模型。定义邻居为一个容器节点(图4中“container bgp-neighbor”)聚集所有邻居信息。由于邻居包含很多条目,我们定义每个条目为一个列节点(图4中“list neighbor”),并用邻居ID(图4中“key neighbor”)唯一标识。考虑到每个条目又包含很多属性:邻居ID(图4中“leaf neighbor”)、版本号(图4中“leaf v”)、AS号(图4中“leaf as”),每个属性有一个值且没有孩子节点,我们用叶子节点(leaf)定义属性。
[0054] 2.2集中控制点向代理发送配置请求,请求获取BGP邻居信息表。集中控制点是一个软件模块,包含邻居验证器、邻居信息数据库和邻居监测器三个组件,邻居验证器负责验证BGP是否可信,邻居监测器负责生成对应XML格式的邻居信息请求,邻居信息数据库采用文件方式存储XML中解析的邻居信息。邻居监测器按照YANG语言对BGP邻居信息建模的结果,生成对应XML格式的邻居信息请求,然后将XML编码于消息体中,通过标准的NETCONF协议发送给代理。
[0055] 2.3代理响应集中控制点的请求,将BGP邻居信息表发送给集中控制点。代理是一个软件模块,包含邻居采集器和邻居发送器两个组件。邻居发送器响应集中控制点的请求,将该请求发送给邻居采集器,邻居采集器和BGP协议进程通信,读取BGP邻居信息表,保留数据原格式发送给邻居发送器。邻居发送器组件按照YANG语言对BGP邻居信息建模,将收到的邻居信息表转换成对应的XML格式。最后,邻居发送器将XML编码于消息体中,通过标准的NETCONF协议发送给集中控制点。图3中的双向数据流表示了集中控制点向代理请求邻居信息,以及代理与BGP协议进程交互后,将获取到的邻居信息发送给集中控制点的过程。
[0056] 第三步、集中控制点集中检测异常,验证BGP路由是否可信,如果BGP路由可信,则结束;否则,BGP路由不可信,进入第四步;具体流程如下:
[0057] 3.1集中控制点从代理收到XML编码的BGP邻居信息表后,从XML中解析出邻居信息,存储于邻居信息数据库中。集中控制点的邻居监测器组件收到代理的响应消息,从XML中解析出邻居信息,存储于邻居信息数据库中。邻居信息数据库采用文件存储方式,既方便读写,也可以作为日志供以后查询。
[0058] 3.2集中控制点检测异常,验证BGP是否可信。当集中控制点管辖范围内运行BGP协议的路由器的邻居信息表都采集完成后,得到邻居信息数据库,邻居验证器以邻居信息数据库作为输入,验证BGP是否可信。方法是:集中控制点在采集完所有运行BGP协议的路由器的邻居信息表后,对比分析判断互为邻居的路由器是否存在对方的BGP邻居信息表中,验证BGP路由是否可信,如果BGP路由可信,结束;否则,进入第四步。因为BGP要建立邻居表首先要建立TCP会话,然后建立BGP的邻居关系,进而会把邻居关系记录到邻居表中,即两台运行BGP协议的路由器A和路由器B,路由器A在路由器B的邻居表中,如果路由器B也在路由器A的邻居表中,则两台路由器的BGP路由可信;如果路由器B不在路由器A的邻居表中,则路由器A伪造了一条到路由器B的BGP路由,即路由器A的BGP路由不可信。
[0059] 第四步、集中控制点生成阻断异常的安全策略,确保BGP路由可信,流程如下:
[0060] 4.1集中控制点检测到某路由器的BGP邻居信息表中存在多余的邻居信息,则生成安全路由策略删除该邻居信息以阻断异常路由;
[0061] 4.2集中控制点根据NETCONF协议规范以及第二步的YANG模型,将安全路由策略转换成XML编码的配置文件,删除多余的邻居。
[0062] 第五步、集中控制点下发安全路由策略阻断异常路由,流程如下:
[0063] 5.1集中控制点生成XML编码的安全路由策略之后,通过标准的NETCONF协议将其发送给代理;
[0064] 5.2代理收到安全路由策略之后,与BGP协议进程交互,通过对BGP邻居信息表进行写操作,执行安全路由策略,删除多余的邻居。
[0065] 第六步、集中控制点验证是否阻断异常,方法是:安全路由策略下发成功后,代理再次读取BGP邻居信息表,并通过NETCONF协议发送给集中控制点,转第三步。
[0066] 采用本发明进行可信BGP路由验证与异常阻断的一个具体实施例如下:
[0067] 系统配置:(1)硬件:DELL服务器一台(2)软件:Linux操作系统Red Hat和Ubuntu,VM VirtualBox软件,Quagga软件路由器。
[0068] 第一步、搭建应用环境
[0069] 本应用由七台路由器构成,依次命名为Victim、A、B、C、D、E和Dest。连接关系如图5所示。名字为Fake Dest的路由器实际不存在,它是当A被攻击并且其BGP路由不可信之后,由A指向的伪造路由器。从Victim指向Dest的带箭头实线表示在所有路由器都可信的情况下,由Victim到Dest的BGP路径。从Victim指向Fake Dest的带箭头实线表示A被攻击且其BGP路由不可信之后,由Victim到Dest的BGP路径。
[0070] 集中控制点部署在Red Hat上。此外,我们用三步部署代理。首先,使用Oracle VM VirtualBox创建七个节点,每个节点上运行Ubuntu。然后,我们在每个节点上运行Quagga,并启动BGPD进程。最后,我们在每个节点上部署代理与BGPD和集中控制点交互。数据流从BGPD到代理到集中控制点,再从集中控制点到代理到BGPD,这种闭环控制结构能够实时检测和阻断异常路由。
[0071] 第二步、伪造BGP路由
[0072] 如图5所示,正常情况下,从Victim指向Dest的带箭头实线表示由Victim到Dest的BGP路径。为了将该数据流变成从Victim指向Fake Dest的带箭头实线,我们选择路由器A进行BGP路由伪造。首先配置A的接口Serial0/2IP地址为70.1.1.2,这和Dest的接口Serial0/2在同一个网段。然后将A的该接口加入到BGP区域中。各路由器的详细配置如图6所示。例如路由器A,配置路由器ID为2.2.2.2,所在的AS为AS200,有三个接口Serial 0/0、Serial 0/1和Serial 0/2,IP地址分别为10.1.1.3、20.1.1.2和70.1.1.2。
[0073] 第三步、检测异常
[0074] 集中控制点周期性的采集所有路由器的BGP邻居信息表进行对比。在某一时刻,我们发现Dest在A的BGP邻居信息表中,而Dest的BGP邻居信息表中只有路由器C一个条目。结果如图7所示,路由器A中的BGP邻居信息表第一项为Dest,而路由器Dest的BGP邻居信息表中只有一项,即路由器C。此时我们认为路由器A伪造了一条到Dest的BGP路由。为了验证该推断,我们使用从Victim到Dest的Traceroute命令,发现数据流确实改变成了从Victim到Fake Dest。
[0075] 第四步、阻断异常
[0076] 为了阻断这次异常,我们决定将Dest从A的BGP邻居信息表中删除。对应的XML配置文件如图9所示,该配置文件定义的操作为将路由器ID为7.7.7.7的邻居从BGP邻居信息表中删除。使用标准的NETCONF协议下发该安全路由策略。然后我们检查路由器的BGP邻居信息表,发现Dest已不在A的表中,如图8所示,路由器A的BGP邻居信息表中只剩下两项,已将Dest成功删除。此时我们认为A可信且网络恢复正常,结束。从Victim到Dest的Traceroute结果也验证了我们的推断。
[0077] 以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈