网络构建方法、装置、电子设备及存储介质转让专利

申请号 : CN202311451309.8

文献号 : CN117176694B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龚亮华周硕

申请人 : 烽台科技(北京)有限公司

摘要 :

本申请实施例提供的一种网络构建方法、装置、电子设备及存储介质,通过获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;将所述仿真路由器的目标端口绑定网段;获取与所述目标端口连接的仿真设备的端口;基于所述网段确定所述端口的IP地址;基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络,能够提高仿真设备的IP地址的分配效率和可靠性。

权利要求 :

1.一种网络构建方法,其特征在于,包括:

获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;

将所述仿真路由器的目标端口绑定网段;

获取与所述目标端口连接的仿真设备的端口;

基于所述网段确定所述端口的IP地址,所述基于所述网段确定所述端口的IP地址,包括:确定所述端口是否存在IP地址;在所述端口不存在IP地址的情况下,生成均匀分布的随机数,并初始化索引范围;基于所述随机数采用二分查找算法从所述索引范围中确定索引;

基于所述索引从所述地址池中获取所述索引对应的IP地址;将所述IP地址确定为所述端口的IP地址;

基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述IP地址与所述端口进行绑定,得到关联关系;

存储所述关联关系。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:控制所述仿真路由器定期发送hello报文至预设的多播地址,以使所述多播地址对应的仿真路由器获取到所述hello报文,以使所述多播地址对应的仿真路由器确定邻居关系;

基于所述邻居关系更新所述多播地址对应的仿真路由器的路由表。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在需要对所述端口进行初始化的情况下,获取所述端口的IP地址、路由信息、网段;

基于所述IP地址、所述路由信息和所述网段生成网络配置信息;

将所述网络配置信息写入所述端口对应的仿真设备;

触发所述仿真设备进行重启;

在所述仿真设备重启后,控制所述仿真设备将所述网络配置信息发送给网络邻居。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取防火墙参数;

基于所述防火墙参数生成防火墙规则;

将所述防火墙规则发送给各个网络设备;

在各个网络设备基于防火墙规则成功执行后,对各个网络设备中的防火墙规则进行持久化。

6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:在获取到外网发送的数据包的情况下,确定所述数据包的源地址、源端口、目标地址、目标端口;

基于映射的协议类型、所述源地址、所述源端口、所述目标地址、所述目标端口生成地址转换表;

基于所述地址转换表将所述数据包映射至所述目标地址对应的网络设备。

7.一种网络构建装置,其特征在于,包括:

第一获取模块,用于获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;

第一绑定模块,用于将所述仿真路由器的目标端口绑定网段;

第二获取模块,用于获取与所述目标端口连接的仿真设备的端口;

第一确定模块,用于基于所述网段确定所述端口的IP地址,所述基于所述网段确定所述端口的IP地址,包括:确定所述端口是否存在IP地址;在所述端口不存在IP地址的情况下,生成均匀分布的随机数,并初始化索引范围;基于所述随机数采用二分查找算法从所述索引范围中确定索引;基于所述索引从所述地址池中获取所述索引对应的IP地址;将所述IP地址确定为所述端口的IP地址;

第一写入模块,用于基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络。

8.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法。

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。

说明书 :

网络构建方法、装置、电子设备及存储介质

技术领域

[0001] 本申请属于网络构建技术领域,尤其涉及一种网络构建方法、装置、电子设备及存储介质。

背景技术

[0002] 随着工业自动化程度的不断提高,工控系统在工业领域的应用日益广泛,这些系统包括监控、控制、数据采集等多个领域。工业网络则扮演着连接这些工控设备的关键角色,将各种设备、传感器和控制器相互连接,形成一个紧密集成的网络拓扑。然而,工业网络的规划、部署和管理往往面临着一系列挑战,如网络初始化、安全性、流量管理等问题,通常会通过仿真网络来进行测试和规划,在仿真工业网络中,往往需要处理大量的设备和网络区域,每个设备都需要分配唯一的IP地址,而每个网络区域都需要设置适当的路由和安全策略。相关技术中,都是通过用户手动地来进行分配和设置,但是手动的方法不仅费时费力,还容易导致配置错误,从而可能导致生产中断和网络安全漏洞。

发明内容

[0003] 针对上述问题,本申请实施例提供了一种网络构建方法、装置、电子设备及存储介质,能够提高IP地址的分配效率和可靠性。
[0004] 本申请实施例提供了一种网络构建方法,包括:
[0005] 获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;
[0006] 将所述仿真路由器的目标端口绑定网段;
[0007] 获取与所述目标端口连接的仿真设备的端口;
[0008] 基于所述网段确定所述端口的IP地址;
[0009] 基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络。
[0010] 在一些实施例中,所述基于所述网段确定所述端口的IP地址,包括:
[0011] 确定所述端口是否存在IP地址;
[0012] 在所述端口不存在IP地址的情况下,生成均匀分布的随机数,并初始化索引范围;
[0013] 基于所述随机数采用二分查找算法从所述索引范围中确定索引;
[0014] 基于所述索引从所述地址池中获取所述索引对应的IP地址;
[0015] 将所述IP地址确定为所述端口的IP地址。
[0016] 在一些实施例中,所述方法还包括:
[0017] 将所述IP地址与所述端口进行绑定,得到关联关系;
[0018] 存储所述关联关系。
[0019] 在一些实施例中,所述方法还包括:
[0020] 控制所述仿真路由器定期发送hello报文至预设的多播地址,以使所述多播地址对应的仿真路由器获取到所述hello报文,以使所述多播地址对应的仿真路由器确定邻居关系;
[0021] 基于所述邻居关系更新所述多播地址对应的仿真路由器的路由表。
[0022] 在一些实施例中,所述方法还包括:
[0023] 在需要对所述端口进行初始化的情况下,获取所述端口的IP地址、路由信息、网段;
[0024] 基于所述IP地址、所述路由信息和所述网段生成网络配置信息;
[0025] 将所述网络配置信息写入所述端口对应的仿真设备;
[0026] 并触发所述仿真设备进行重启;
[0027] 在所述仿真设备重启后,控制所述仿真设备将所述网络配置信息发送给网络邻居。
[0028] 在一些实施例中,所述方法还包括:
[0029] 获取防火墙参数;
[0030] 基于所述防火墙参数生成防火墙规则;
[0031] 将所述防火墙规则发送给各个网络设备;
[0032] 在各个网络设备基于防火墙规则成功执行后,对各个网络设备中的防火墙规则进行持久化。
[0033] 在一些实施例中,所述方法还包括:
[0034] 在获取到外网发送的数据包的情况下,确定所述数据包的源地址、源端口、目标地址、目标端口;
[0035] 基于映射的协议类型、所述源地址、所述源端口、所述目标地址、所述目标端口生成地址转换表;
[0036] 基于所述地址转换表将所述数据包映射至所述目标地址对应的网络设备。
[0037] 本申请实施例提供一种网络构建装置,包括:
[0038] 第一获取模块,用于获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;
[0039] 第一绑定模块,用于将所述仿真路由器的目标端口绑定网段;
[0040] 第二获取模块,用于获取与所述目标端口连接的仿真设备的端口;
[0041] 第一确定模块,用于基于所述网段确定所述端口的IP地址;
[0042] 第一写入模块,用于基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络。
[0043] 本申请实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述的方法。
[0044] 本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
[0045] 本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得电子设备执行上述任一项所述的方法。
[0046] 本申请实施例提供的一种网络构建方法、装置、电子设备及存储介质,通过获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;将所述仿真路由器的目标端口绑定网段;获取与所述目标端口连接的仿真设备的端口;基于所述网段确定所述端口的IP地址;
基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络,能够提高仿真设备的IP地址的分配效率和可靠性。

附图说明

[0047] 在下文中将基于实施例并参考附图来对本申请进行更详细的描述。
[0048] 图1为本申请实施提供的一种网络构建方法的实现流程示意图;
[0049] 图2为本申请实施例提供的一种创建路由器组件的创建界面;
[0050] 图3为本申请实施例提供的一种拓扑结构的示意图;
[0051] 图4为本申请实施例提供的一种创建网段的示意图;
[0052] 图5为本申请实施例提供的一种拓扑结构中网络设备的IP地址示意图;
[0053] 图6为本申请实施例提供的一种映射配置的示意图;
[0054] 图7为本申请实施例提供的一种网络构建装置的结构示意图;
[0055] 图8为本申请实施例提供的电子设备的组成结构示意图。
[0056] 在附图中,相同的部件使用相同的附图标记,附图并未按照实际的比例绘制。

具体实施方式

[0057] 为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0058] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0059] 如果申请文件中出现“第一\第二\第三”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
[0060] 除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0061] 基于相关技术中存在的问题,本申请实施例提供一种网络构建方法,网络构建方法应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra‑mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。本申请实施例提供的网络构建方法所实现的功能可以通过电子设备的处理器调用程序代码来实现,其中,程序代码可以保存在计算机存储介质中。
[0062] 本申请实施例提供一种网络构建方法,图1为本申请实施提供的一种网络构建方法的实现流程示意图,如图1所示,包括:
[0063] 步骤S101,获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系。
[0064] 本申请实施例中,用户可以选择仿真路由器、仿真设备等的标识来建立拓扑结构,在电子设备中可以存储有网络设备的标识,可以通过各个网络设备的标识来创建网络拓扑。
[0065] 在一些实施例中,在电子设备可以和显示设备通信连接,通过显示设备来提供给网络设备的拓扑结构的构建界面,用户可以通过构建界面设置网络设备的拓扑结构。
[0066] 本申请实施例中,网络设备都是虚拟设备,每个网络设备具有对应的信息,例如,信息可以包括:组件名称、组件分类、组件图片、组件内存、组件CPU等。
[0067] 本申请实施例中,组件名称、组件分类、组件图片、组件内存、组件CPU等用户都可以进行设置。
[0068] 本申请实施例中,可以设置各个网络设备的端口之间的连接关系,从而确定网络设备的拓扑结构。
[0069] 本申请实施例中,所述仿真设备可以为工业设备,仿真设备也可以为仿真路由器等。
[0070] 步骤S102,将所述仿真路由器的目标端口绑定网段。
[0071] 本申请实施例中,用户可以设置仿真路由器的目标端口绑定对应的网段。
[0072] 本申请实施例中,目标端口可以为与仿真设备连接的任意一个端口。
[0073] 示例性地,绑定一个目标端口到192.168.1.0/24网段。
[0074] 步骤S103,获取与所述目标端口连接的仿真设备的端口。
[0075] 本申请实施例中,可以从系统中查询cyberrange_port,获取与该port相连的仿真设备的端口。
[0076] 步骤S104,基于所述网段确定所述端口的IP地址。
[0077] 本申请实施例中,步骤S104可以通过以下步骤实现:
[0078] 步骤S1041,确定所述端口是否存在IP地址。
[0079] 本申请实施例中,电子设备中可以存储分配了IP地址与端口的关联信息,在获取到端口后,则可以基于该端口来进行匹配,在进行匹配时,可以判断是否存在端口对应的关联关系,如果有关联关系,则确定所述端口存在IP地址,如果没有关联关系,则确定所述端口不存在IP地址。
[0080] 步骤S1042,在所述端口不存在IP地址的情况下,生成均匀分布的随机数,并初始化索引范围。
[0081] 本申请实施例中,如果端口不存在IP地址,则需要确定该端口的IP地址。
[0082] 本申请实施例中,可以生成均匀分布的随机数,随机数可以用R表示。 随机数R被用来确定其在累积权重列表中的位置。
[0083] 本申请实施例中,可以用的IP地址放入在地址池中,地址池中的IP地址可以用列表来进行存储,在列表中的IP地址支持权重的设置,所述权重用于表征每个IP地址被选择的概率。可以通过R值来选择IP地址。
[0084] 本申请实施例中,如果没有设置权重,则可以认为所有的IP地址被是为具有相等的权重,然后使用随机数生成器来选择地址,如果提供了权重参数,则可以计算累积权重,以确定选择的概率,并使用二分查找方法来进行IP地址的选择,本申请实施例中,每个索引对应一个IP地址。
[0085] 本申请实施例中, 0 ≤R<1。
[0086] 本申请实施例中,可以初始化索引范围low和high,其中low = 0且high = n ‑ 1,其中n是IP地址的集合的大小。
[0087] 步骤S1043,基于所述随机数采用二分查找算法从所述索引范围中确定索引。
[0088] 可以用j 表示索引,j 可以通过使用二分查找算法来确定,使用二分查找算法j时,可以使得cum_weights[j‑1] ≤ R
[0089] 在获取到j后,则可以基于来确定对应的IP地址。
[0090] 步骤S1044,基于所述索引从所述地址池中获取所述索引对应的IP地址。
[0091] 示例性地,X_i = population[j];
[0092] X_i 表示第 i 次随机选择的IP地址。
[0093] population 是IP地址集合。
[0094] 步骤S1045,将所述IP地址确定为所述端口的IP地址。
[0095] 承接上面的示例,将population[j] 对应的IP地址确定为所述端口的IP地址。
[0096] 步骤S105,基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络。
[0097] 在一些实施例中,在获取到IP地址后,还可以获取对应的掩码等信息。可以通过预先设置网络配置文件的模板,在获取到IP地址等信息后,则可以采用模板将IP地址进行填充,从而生成网络配置文件。
[0098] 本申请实施例中,可以借助cloud‑init将网络配置文件写入到仿真设备的文件系统中,如写入/etc/sysconfig/network‑scripts/ifcfg‑eth0中,从而将网络配置文件写入仿真设备。
[0099] 本申请实施例中,在将网络配置文件写入仿真设备中后,则通过qemu‑guest‑agent重启仿真设备的网络服务,实现IP地址的自动化分配。在分配完成后,可以确定设备可以正确使用分配的IP地址进行通信,从而构建了仿真网络。
[0100] 本申请实施例提供的一种网络构建方法,通过获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;将所述仿真路由器的目标端口绑定网段;获取与所述目标端口连接的仿真设备的端口;基于所述网段确定所述端口的IP地址;基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络,能够提高仿真设备的IP地址的分配效率和可靠性。
[0101] 在一些实施例中,在步骤S105之后,所述方法还包括:
[0102] 步骤S106,将所述IP地址与所述端口进行绑定,得到关联关系。
[0103] 本申请实施例中,为了跟踪IP地址的分配情况,可以是将IP地址与所述端口建立对应关系,从而得到关联关系。
[0104] 步骤S107,存储所述关联关系。
[0105] 本申请实施例中,通过存储这些关联关系,可以确保IP地址的唯一性和准确性。
[0106] 本申请实施例中,通过上述的方法,可以对各个网络设备的IP地址进行分配。
[0107] 在一些实施例中,步骤S107之后,所述方法还包括:
[0108] 步骤S108,控制所述仿真路由器定期发送hello报文至预设的多播地址,以使所述多播地址对应的仿真路由器获取到所述hello报文,以使所述多播地址对应的仿真路由器确定邻居关系。
[0109] 本申请实施例中,可以通过在CentOS 7.6虚拟机上运行Quagga服务,构建了仿真路由器的环境。该服务将会运行OSPF路由协议,每个路由器都定期发送Hello报文到指定的多播地址,示例性地,多播地址为:224.0.0.5或224.0.0.6。
[0110] 本申请实施例中,当一个OSPF路由器收到来自其他路由器的Hello报文时,它会检查报文中的信息,并与自己维护的邻居列表进行比对。如果报文中包含的信息与已知的邻居匹配,那么它们就可以确认彼此是邻居,以此建立了邻居关系。
[0111] 步骤S109,基于所述邻居关系更新所述多播地址对应的仿真路由器的路由表。
[0112] 本申请实施例中,可以通过邻居关系更新仿真路由器的路由表。
[0113] 在一些实施例中,在步骤S109之后,所述方法还包括:
[0114] 在步骤S110,在需要对所述端口进行初始化的情况下,获取所述端口的IP地址、路由信息、网段。
[0115] 本申请实施例中,电子设备可以查询该端口的IP地址、路由信息、网段。
[0116] 步骤S111,基于所述IP地址、所述路由信息和所述网段生成网络配置信息。
[0117] 步骤S112,将所述网络配置信息写入所述端口对应的仿真设备。
[0118] 本申请实施例中,可以采用特定的配置工具,如qemu‑guest‑agent,将生成的网络配置信息写入到仿真设备的配置文件(/etc/quagga/ospfd.conf)中。
[0119] 步骤S113,触发所述仿真设备进行重启。
[0120] 电子设备可以触发仿真设备的相关服务进行重启。
[0121] 步骤S114,在所述仿真设备重启后,控制所述仿真设备将所述网络配置信息发送给网络邻居。
[0122] 本申请实施例中,通过初始化后,重新将所述网络配置信息发送给网络邻居,即可以实现正确发送和接收路由数据包。
[0123] 在一些实施例中,所述方法还包括:
[0124] 步骤S115,获取防火墙参数。
[0125] 本申请实施例中,防火墙参数包括INPUT(针对进入系统的数据包)、OUTPUT(针对离开系统的数据包)和FORWARD(数据包通过系统转发到其他网络设备)等选择是允许数据包通过(ACCEPT)还是拒绝(DROP)。
[0126] 步骤S116,基于所述防火墙参数生成防火墙规则。
[0127] 本申请实施例中,可以将防火墙规则存储入库,以便随后的访问和管理。
[0128] 步骤S117,将所述防火墙规则发送给各个网络设备。
[0129] 本申请实施例中,可以以文本命令的形式发送给各个网络设备,文本命令可以包括:防火墙规则的配置条件和动作。
[0130] 在一些实施例中,可以通过Agent工具同步到网络设备,确保防火墙规则准确传递到各个网络设备。
[0131] 步骤S118,在各个网络设备基于防火墙规则成功执行后,对各个网络设备中的防火墙规则进行持久化。
[0132] 本申请实施例中,各个网络设备在成功执行后,网络设备将按照规则定义的匹配条件执行数据包的过滤或放行,成功执行后,系统调用iptables‑save等工具将规则持久化,以确保规则在系统重启后仍然有效。
[0133] 本申请实施例中,通过设置防火强规则,可以对潜在网络攻击进行检测和应对。
[0134] 在一些实施例中,所述方法还包括:
[0135] 步骤S119,在获取到外网发送的数据包的情况下,确定所述数据包的源地址、源端口、目标地址、目标端口。
[0136] 本申请实施例中,源地址和源端口表示外部流量的来源,即发送数据包的地址和端口。
[0137] 本申请实施例中,目标地址和目标端口表示数据包应该被映射到的内部服务器或端口。
[0138] 步骤S120,基于映射的协议类型、所述源地址、所述源端口、所述目标地址、所述目标端口生成地址转换表。
[0139] 本申请实施例中,协议类型可以用户进行指定,协议可以为:TCP或UDP。
[0140] 本申请实施例中,系统根据确定的参数生成相应的NAT表规则,以执行映射操作。
[0141] 步骤S121,基于所述地址转换表将所述数据包映射至所述目标地址对应的网络设备。
[0142] 示例性地,一条规则可能是将外部HTTP请求的源地址和端口映射到内部服务器的IP地址和HTTP端口。生成的NAT表规则会通过Agent工具(如guest‑agent)同步到网络设备,以确保规则准确应用于设备。
[0143] 网络设备接收到规则后,将按照定义的映射参数执行数据包的映射。成功执行后,系统调用相应的命令,如iptables‑save,以确保规则持久化,并在系统重启后保持有效。
[0144] 基于前述的各个实施例,本申请实施例再提供一种网络构建方法,该方法能够实现:自动网络规划、网络配置和初始化、网络安全管理,其中,
[0145] 在实现自动网络规划时,电子设备允许用户使用直观的界面规划仿真工业网络的拓扑结构,基于预定义的规则自动分配IP地址、配置路由和设置网关,确保了地址的唯一性和合理性,同时考虑到不同网络区域的需求,从而减少手动网络初始化的复杂性和错误。
[0146] 由于工业网络需要保持动态性和可扩展性,以应对新设备的加入和网络拓扑的变化。在实现网络配置和初始化时,它通过交换链路状态信息来确定最短路径,并自动更新路由表。这意味着当新设备加入网络或网络拓扑发生变化时,自动适应并更新路由信息。
[0147] 在实现网络安全管理中,通过iptables实现流量的过滤、转发和映射规则,支持高级的网络安全策略。这包括防火墙规则的定义和管理,以及对潜在网络攻击的检测和应对。
[0148] 在实现自动网络规划中,首先,需要确定每个网段的起始IP地址、子网掩码和范围。电子设备将会计算该网段的网络地址及广播地址,然后遍历网段中可用的主机地址,从网络地址+1开始迭代到广播地址‑1,创建并返回对应该网段内可用的IP地址对象,形成IP地址池,这些IP地址将被用于后续的自动地址分配。
[0149] 当拓扑结构搭建完成后,将仿真路由器的特定端口绑定到预定义的网段,例如,绑定一个端口到192.168.1.0/24网段。接下来,电子将查询cyberrange_port,获取与该port相连仿真设备的端口,并判断当前端口是否存在IP地址,若不存在,从地址池中获取IP地址,具体算法如下,
[0150] 从给定的IP地址池中进行有放回的随机选择,以生成一个包含k个选定元素(同上述实施例中的IP地址)的列表。IP地址支持权重(weights)设置,以决定不同元素被选择的概率。如果没有提供权重参数,则所有元素被视为具有相等的权重,然后使用随机数生成器来进行选择。如果提供了权重参数,则计算累积权重,以确定选择概率,并使用二分查找来进行元素选择。
[0151] 选择的IP地址可以用以下公式表示:
[0152] X_i = population[j];
[0153] X_i 表示第 i 次随机选择的元素,population 是元素集合。
[0154] j 是通过以下步骤计算出的索引:
[0155] 生成一个均匀分布的随机数 R,其中 0<= R<1。
[0156] 初始化索引范围low和high,其中low = 0且high = n ‑ 1,其中n是元素集合的大小。
[0157] 使用二分查找算法来确定索引j,使得cum_weights[j‑1]<= R
[0158] 返回索引 j 对应的元素 population[j] 作为选择的结果。
[0159] 生成的均匀分布随机数 R 被用来确定其在累积权重列表 cum_weights 中的位置,然后选择相应的元素。
[0160] 本申请实施例中,R 被用来找到满足条件 cum_weights[j‑1]<= R
[0161] 本申请实施例中,在IP地址获取成功之后,电子设备将整理元数据信息,包括IP地址、掩码等信息,采用模板填充的方式,生成网络配置文件的内容,然后借助cloud‑init写入到仿真设备的文件系统中,如/etc/sysconfig/network‑scripts/ifcfg‑eth0中,再通过qemu‑guest‑agent重启网络服务,实现地址的自动化分配,从而确保设备可以正确使用分配的IP地址进行通信。此外,为了跟踪IP地址的分配情况,电子设备会将分配的IP地址与端口进行绑定,并记录这些关联关系,以确保IP地址的唯一性和准确性。
[0162] 本申请实施例中,可以通过在CentOS 7.6虚拟机上运行Quagga服务,构建了虚拟路由器或交换机的环境。该服务将会运行OSPF路由协议,每个路由器都定期发送Hello报文到指定的多播地址(例如224.0.0.5或224.0.0.6),当一个OSPF路由器收到来自其他路由器的Hello报文时,它会检查报文中的信息,并与自己维护的邻居列表进行比对。如果报文中包含的信息与已知的邻居匹配,那么它们就可以确认彼此是邻居,以此建立了邻居关系。
[0163] 当需要初始化特定网络区域或端口时,系统查询该端口关联的网络信息,包括IP地址、子网掩码等,通过ipaddress库计算生成网络配置信息,确定端口所属的子网及路由相关参数,生成网段信息。接下来,系统采用特定的配置工具,如qemu‑guest‑agent,将生成的网络配置信息写入到虚拟设备的配置文件(/etc/quagga/ospfd.conf)中,随后,系统触发网络设备的相关服务进行重启。当网络管理服务(NetworkManager)及路由服务(ospfd)重启完成后,设备将该条网络信息宣告给网络邻居,即可正确发送和接收路由数据包。这个过程重新构建了设备的路由表,确保设备能够有效地路由数据包到其目标网络区域。
[0164] 本申请实施例中,防火墙规则支持多种行为,包括INPUT(针对进入系统的数据包)、OUTPUT(针对离开系统的数据包)和FORWARD(数据包通过系统转发到其他网络设备)。管理员可以根据数据包的流动需求自定义规则,选择是允许数据包通过(ACCEPT)还是拒绝数据包(DROP)。
[0165] 本申请实施例中,在配置了防火墙规则后,网络设备会根据源地址、源端口、目标地址和目标端口等参数对数据包进行过滤或放行,实现对网络流量的细粒度控制。
[0166] 在进行防火墙规则的处理时包括:结构化处理、规则存储入库、规则生成、规则下发到网络设备、规则执行和持久化。电子设备对防火漆参数进行结构化处理,并将处理后的规则存储入库,以便随后的访问和管理。再根据这些参数自动生成防火墙规则,以文本命令的形式表示,文本命令包括防火墙规则的匹配条件和动作。生成的规则随后通过专门的Agent工具同步到网络设备,确保规则准确传递到目标设备。一旦规则同步成功,网络设备将按照规则定义的匹配条件执行数据包的过滤或放行,成功执行后,系统调用iptables‑save等工具将规则持久化,以确保规则在系统重启后仍然有效。
[0167] 映射功能通过使用NAT表进行实现,通过处理源和目标IP地址以及端口的转换,以确保数据包能够正确路由。
[0168] 在映射功能中,需要确定以下关键参数:
[0169] 源地址和源端口:表示外部流量的来源,即发送数据包的地址和端口。
[0170] 目标地址和目标端口:表示数据包应该被映射到的内部服务器或端口。
[0171] 协议类型:管理员需要指定要进行映射的协议类型,如TCP或UDP。
[0172] 电子设备根据确定的参数生成相应的NAT表规则,以执行映射操作。例如,一条规则可能是将外部HTTP请求的源地址和端口映射到内部服务器的IP地址和HTTP端口。生成的NAT表规则会通过Agent工具(如guest‑agent)同步到网络设备,以确保规则准确应用于设备。
[0173] 网络设备接收到规则后,将按照定义的映射参数执行数据包的映射。成功执行后,系统调用相应的命令,如iptables‑save,以确保规则持久化,并在系统重启后保持有效。
[0174] 本申请实施例提供的方法,可以应用于工业互联网信息安全领域相关企业、事业单位、社团组织、高等院校、科研院所,以及所有涉及工业互联网信息安全工作的实体和机构。工业互联网信息安全工作涉及的主体,包括但不限于工业互联网平台提供商、智能制造企业、工业自动化系统开发者、工业设备制造商、网络安全咨询公司、工业互联网研究机构、政府监管机构等。
[0175] 基于前述的各个实施例,本申请实施例提供一种具体示例,包括:
[0176] 首先需要创建路由器组件(同上述实施例中的仿真路由器),图2为本申请实施例提供的一种创建路由器组件的创建界面,如图所示,可以点击平台基础资源‑虚拟机管理‑虚机模板中的刷新按钮,获取当前最新的模板列表。之后在组件管理中,根据该模板创建虚拟化组件,组件分类需要选择路由器,可以选择配置、选择系统、选择图片等来创建组件。
[0177] 然后使用刚刚创建的组件搭建测试拓扑结构,图3为本申请实施例提供的一种拓扑结构的示意图,如图3所示,可以创建拓扑结构。
[0178] 通过填写网段名称,网段的开始地址、结束地址、掩码等信息,创建网段数据,图4为本申请实施例提供的一种创建网段的示意图,如图4所示,如开始地址为10.1.1.1,结束地址为10.1.1.254,电子设备将会创建10.1.1.1‑10.1.1.254的所有地址数据。
[0179] 启动组件之后,点击路由器组件下的网络,分别为e1和e2绑定创建的网段信息。
[0180] 与该端口相连的仿真组件,便可以分配到该网段内的地址,宣告端口,即将该网段加入到网络中,实现整个网络的通信,图5为本申请实施例提供的一种拓扑结构中网络设备的IP地址示意图,如图5所示,则构建了仿真网络。
[0181] 本申请实施例中,可以选择映射页,点击新增,以ssh协议为例,图6为本申请实施例提供的一种映射配置的示意图,如图6所示,通过该映射,则当10.1.1.0/24段的地址访问10.1.1.254的22222端口时,将会被映射到20.1.1.1的22端口上。
[0182] 在组件10.1.1.1上执行命令“ssh 10.1.1.254 ‑p 22222”,输入密码之后即可成功登录,使用“ip add”发现当前已经位于20.1.1.1组件。
[0183] 基于前述的实施例,本申请实施例提供一种网络构建装置,该装置包括的各模块、以及各模块包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU,Central Processing Unit)、微处理器(MPU,Microprocessor Unit)、数字信号处理器(DSP,Digital Signal Processing)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等。
[0184] 本申请实施例提供一种网络构建装置,图7为本申请实施例提供的一种网络构建装置的结构示意图,如图7所示,网络构建装置700包括:
[0185] 第一获取模块701,用于获取网络设备的拓扑结构,其中,所述网络设备包括:仿真路由器和仿真设备,所述拓扑结构包括:仿真路由器的端口与仿真设备的端口之间的连接关系;
[0186] 第一绑定模块702,用于将所述仿真路由器的目标端口绑定网段;
[0187] 第二获取模块703,用于获取与所述目标端口连接的仿真设备的端口;
[0188] 第一确定模块704,用于基于所述网段确定所述端口的IP地址;
[0189] 第一写入模块705,用于基于所述IP地址生成网络配置文件,将所述网络配置文件写入所述仿真设备中,以为所述仿真设备分配IP地址,以构建仿真网络。
[0190] 在一些实施例中,所述确定模块704,包括:
[0191] 第一确定单元,用于确定所述端口是否存在IP地址;
[0192] 生成单元,用于在所述端口不存在IP地址的情况下,生成均匀分布的随机数,并初始化索引范围;
[0193] 第二确定单元,用于基于所述随机数采用二分查找算法从所述索引范围中确定索引;
[0194] 获取单元,用于基于所述索引从所述地址池中获取所述索引对应的IP地址;
[0195] 第三确定单元,用于将所述IP地址确定为所述端口的IP地址。
[0196] 在一些实施例中,网络构建装置700还包括:
[0197] 第二绑定模块,用于将所述IP地址与所述端口进行绑定,得到关联关系;
[0198] 存储模块,用于存储所述关联关系。
[0199] 在一些实施例中,网络构建装置700还包括:
[0200] 发送模块,用于控制所述仿真路由器定期发送hello报文至预设的多播地址,以使所述多播地址对应的仿真路由器获取到所述hello报文,以使所述多播地址对应的仿真路由器确定邻居关系;
[0201] 更新模块,用于基于所述邻居关系更新所述多播地址对应的仿真路由器的路由表。
[0202] 在一些实施例中,网络构建装置700还包括:
[0203] 第二获取模块,用于在需要对所述端口进行初始化的情况下,获取所述端口的IP地址、路由信息、网段;
[0204] 第一生成模块,用于基于所述IP地址、所述路由信息和所述网段生成网络配置信息;
[0205] 第二写入模块,用于将所述网络配置信息写入所述端口对应的仿真设备;
[0206] 触发模块,用于并触发所述仿真设备进行重启;
[0207] 控制模块,用于在所述仿真设备重启后,控制所述仿真设备将所述网络配置信息发送给网络邻居。
[0208] 在一些实施例中,网络构建装置700还包括:
[0209] 第三获取模块,用于获取防火墙参数;
[0210] 第二生成模块,基于所述防火墙参数生成防火墙规则;
[0211] 发送模块,用于将所述防火墙规则发送给各个网络设备;
[0212] 持久化模块,用于在各个网络设备基于防火墙规则成功执行后,对各个网络设备中的防火墙规则进行持久化。
[0213] 在一些实施例中,网络构建装置700还包括:
[0214] 第二确定模块,用于在获取到外网发送的数据包的情况下,确定所述数据包的源地址、源端口、目标地址、目标端口;
[0215] 第三生成模块,用于基于映射的协议类型、所述源地址、所述源端口、所述目标地址、所述目标端口生成地址转换表;
[0216] 映射模块,用于基于所述地址转换表将所述数据包映射至所述目标地址对应的网络设备。
[0217] 本申请实施例提供一种电子设备,图8为本申请实施例提供的电子设备的组成结构示意图,如图8所示,所述电子设备800包括:一个处理器801、至少一个通信总线802、用户接口803、至少一个外部通信接口804、存储器805。其中,通信总线802配置为实现这些组件之间的连接通信。其中,用户接口803可以包括显示屏,外部通信接口804可以包括标准的有线接口和无线接口。所述处理器801配置为执行存储器中存储的网络构建方法的程序,以实现以上述实施例提供的网络构建方法中的步骤。
[0218] 本申请实施例中,如果以软件功能模块的形式实现上述的网络构建方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
[0219] 相应地,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的网络构建方法中的步骤。
[0220] 本申请实施例再提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得电子设备执行上述任一项所述的网络构建方法。
[0221] 以上电子设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请计算机设备和存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0222] 应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0223] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0224] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0225] 上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0226] 另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0227] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0228] 或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台控制器执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
[0229] 以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。