一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种家庭私有云构建方法及私有云系统与流程

2022-02-25 23:44:54 来源:中国专利 TAG:
1.本发明属于私有云
技术领域
:,尤其涉及一种家庭私有云构建方法及私有云系统。
背景技术
::2.随着国内家庭带宽提速以及ipv6的积极推广,普通家庭已经普遍具备数百上千兆的家庭带宽。而公有云的蓬勃发展,应用容器技术已经十分成熟且普遍。传统家庭存储nas厂商也从单纯的网络硬盘转向以家庭为中心的多媒体中心。普通家庭已经在自行搭建以往只有专业软件公司才能提供的软件和配套基础设施。3.目前,市场上行业龙头是“群晖”家庭nas,其通过quickconnect解决了“可访问性”的问题,并通过提供容器环境缓解了“应用不足”的问题。类似的还有“极空间”提供的产品。但普遍存在的问题是:家庭用户没有技术安全意识,家庭/个人也不被允许搭建公用服务器,同时,家庭ipv4地址不足、家庭内的设备只能单方向的访问互联网,无法提供服务给外部访问者使用,只能采用厂商自行开发的特有软件,从而会导致不同厂商的的应用是无法通用,用户的应用生态十分有限,不支持第三方应用。技术实现要素:4.有鉴于此,本发明实施例提供了一种家庭私有云构建方法及私有云系统,用于解决传统搭建的家庭私有云存在安全、外部访问困难以及用户应用生态有限的问题。5.在本发明实施例的第一方面,提供了一种家庭私有云构建方法,包括:建立终端与预访问网络节点的tcp/ip连接;在tcp/ip连接上建立虚拟专用通道,通过操作系统提供的接口分别创建终端和预访问网络节点的虚拟网卡;基于虚拟网卡的tcp/ip栈访问网络节点中的容器服务和资源。6.在本发明实施例的第二方面,提供了一种私有云系统,包括:建立连接模块,用于建立终端与预访问网络节点的tcp/ip连接;虚拟网卡创建模块,用于在tcp/ip连接上建立虚拟专用通道,通过操作系统提供的接口分别创建终端和预访问网络节点的虚拟网卡;数据访问模块,用于基于虚拟网卡的tcp/ip栈访问网络节点中的容器服务和资源。7.在本发明实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面所述方法的步骤。8.在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。9.本发明实施例中,基于去中心化的方案建立一条逻辑网络链接,然后基于逻辑网络连接创建虚拟网卡,通过虚拟网卡来屏蔽底层网络的差异,最后配合容器技术部署不同应用和资源,实现安全可靠、低成本的家庭私有云构建,基于虚拟网卡可以在应用层下建立统一的安全访问控制,避免安全漏洞,同时,能够不受底层物理网络变化带来的影响,能够进行双向访问,方便外部用户获取私有云服务,基于容器技术可以实现应用隔离,方便不同应用的部署和配置,丰富了私有云的应用生态。附图说明10.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他附图。11.图1为本发明一个实施例提供的一种家庭私有云构建方法的流程示意图;图2为本发明一个实施例提供的一种家庭私有云构建方法另一流程示意图;图3为本发明一个实施例提供的一种私有云系统的结构示意图。具体实施方式12.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。13.应当理解,本发明的说明书或权利要求书及上述附图中的术语“包括”以及其他相近意思表述,意指覆盖不排他的包含,如包含一系列步骤或单元的过程、方法或系统、设备没有限定于已列出的步骤或单元。此外,“第一”“第二”用于区分不同对象,并非用于描述特定顺序。14.请参阅图1,本发明实施例提供的一种家庭私有云构建方法的流程示意图,包括:s101、建立终端与预访问网络节点的tcp/ip连接;对于私有云目标网络节点,可以直接建立一条终端节点到目标节点的逻辑连接(即tcp/ip连接),实现去中心化网络连接。所述终端为发起访问请求的设备,一般为手机、笔记本等可以实现网络连接的计算机设备,所述预访问节点为私有云服务节点(即目标节点),是为用户单独使用而构建的,可以提供应用服务和资源的平台或设备。15.优选的,通过非对称加密计算出终端的唯一节点id;通过终端私钥对节点id数据进行签名,预访问节点根据终端公钥验证签名,并通过密钥协商得到一个临时密钥,终端和预访问节点基于临时密钥进行通信。16.通过非对称加密算法计算出一个唯一且不可复制的节点id。此id在使用时,用终端私钥对数据进行签名以便访问节点使用终端公钥进行验证。基于密钥协商机制协商出一个对等的临时密码,后续数据使用临时密码进行通讯,以确保在没有中心权威服务器的情况下,节点之间的通讯可以相互信任。17.在一个实施例中,每个网络节点内置具备固定ip地址的bootstrap节点;节点启动时,将自身ip地址登记到bootstrap节点(所有的终端设备与bootstrap节点直接建立链接);终端期望与目标节点建立通信时,则将期望信息广播至与终端连接的其他节点,其他节点同样进行广播请求直至目标节点与当前终端建立连接。18.终端与期望访问的节点进行通信,终端id的建立相当于在传统tcp/ip基础上建立一层独立的账号系统,从终端id定位ip地址,则相当于在通信时回归到互联网的基础设施上。19.每个节点程序内置几个具备固定ip地址的bootstrap节点,节点启动时,将自身的ip地址登记到bootstrap节点内。由于每个节点能同时连接其他节点的数量是有限的,并且ip地址存在变动的可能性。因此每个节点只连接了部分其他节点。当前终端节点期望与其他节点(目标节点)建立通讯连接时,则将这一期望广播告知所有已经与当前终端节点建立了连接的节点。其他节点也采取同样的策略继续广播这一连接请求。最终目标节点可以知晓当前终端节点期望与其建立链接,双方则可以使用传统tcp/ip方式建立连接即可。20.优选的,通过dht(distrubutedhashtable)算法定位目标节点的ip列表,以根据ip地址建立与目标节点的连接。由于众多节点广播会造成严重的广播风暴,可以通过dht算法来缓解这一问题,dht会根据特定的规则,比如节点id做“异或”操作得到一个“长度”值来对给节点之间建立一层逻辑的“距离”概念,以便根据“距离”建立“广播”规则,从而大大减少广播负担。21.随着ipv4耗尽,入口路由器nat等等原因,会造成很多节点不具备可直接访问的ip地址,会导致无法与目标节点正常建立tcp/ip链接。22.可选的,当目标节点与终端处于同一局域网,则基于局域网内的ip地址优先建立链接;当目标节点不具备可直接访问的ip地址,则判断目标节点是否有的公网ip地址;若有公网ip地址,但ip地址不固定,则通过ddns(dynamicdomainnameserver)协议在一个权威服务器进行注册,后续则通过dns进行等效通讯;若有公网ip地址,但真实设备在路由器nat(networkaddresstranslation)之后,且路由器支持upnp(universalplugandplay)协议,则目标节点根据标准的upnp协议自动申请放行需要的端口地址;若有公网ip地址,且路由器不支持upnp协议,但支持配置防火墙/dmz(demilitarizedzone)主机,则由用户手动进入路由器管理界面进行端口配置;若有公网ip地址,但用户无法进行配置,则基于stun协议查询nat类型,并通过一个中心化的服务器协助双方探测出对端的公网端口和地址;若无公网ip,则需要通过一个特定的relay服务器进行数据中转。23.s102、在tcp/ip连接上建立虚拟专用通道,通过操作系统提供的接口分别创建终端和预访问网络节点的虚拟网卡;一般互联网可以为广域网、城域网或局域网等任何具备可以直接寻址的网络,基于tcp/ip协议可以建立对应的网络连接。所述虚拟网卡用于屏蔽底层真实网络的差异性,给上层应用一个逻辑上的tcp/ip协议栈。在互联网上建立一条虚拟的专用通道,并通过操作系统提供的接口,如windows下的wintun,linux和macos的tuntap设备,android的vpnservice以及ios的netunnelprovidermanager等接口创建一张虚拟网卡。后续的程序逻辑和真实网卡一样,对上层应用没有任何破坏性影响。24.具体的,打开tun设备,并调用驱动程序中设备控制接口函数创建一个虚拟网卡;通过系统管理工具为虚拟网卡配置ip地址和路由表;设置读取虚拟网卡中的ip包或以太帧,根据系统路由表规则将ip包或以太帧发送至物理网卡。25.示例性的,假设两台设备a和b的公网ip地址分别为ip_a和ip_b;设备a使用tcpsocket与ip_b:5500(假设使用5500端口)建立正常的tcp链接;设备a(b也做相同操作)打开/dev/net/tun设备,得到一个文件描述符fd;调用ioctl(fd,tunsetiff,(void*)&any_name))其中any_name为期望的“虚拟网卡”名称,该步骤需要有net_admin权限;此时系统上会多出一张any_name的虚拟网卡,使用ifconfig等系统管理工具将这张网卡配置好ip地址(一般是私有网段)和路由表,可假设a为10.0.0.100/16,b为10.0.0.101/16;后续设备a上任何访问10.0.0.0/16的数据都会被内核发送至虚拟网卡;使用while/poll等方式,对fd进行read操作则可以读取到发送到虚拟网卡里的ip包(如果是tun设备则为ip包,如果是tap设备则为以太贞),对fd进行write操作则内核会自动根据系统路由表的规则发送到真实物理网卡上。26.s103、基于虚拟网卡的tcp/ip栈访问网络节点中的容器服务和资源。27.基于独立由平台控制的tcp/ip栈能引入的私有地址分配,应用无缝迁移等环境。所述容器中封装有应用程序独立的资源文件、服务、运行环境等,目标节点的每个容器可以提供不同的应用服务,实现不同厂商的应用能够通用。网络节点中的服务和资源通过容器化的方式部署到虚拟网卡上。28.可选的,对每个网络节点中的容器,基于特定的ipv6私有地址段分配私有的且唯一合法的ipv6地址,网络节点中通过虚拟网卡认证后的节点,均通过私有且唯一的ipv6地址访问容器资源。29.进一步的,基于公共dns(domainnamesystem,即域名系统)系统,将私有且唯一的ipv6地址注册到正常的dns域名系统中,以通过域名访问家庭云私有资源和服务。30.利用ipv6充足的地址段,进行合理分配,达到私有地址但全球唯一的效果。ipv4下私有地址冲突率极高,无法应用在家庭云系统中,由此解决资源定位的问题。利用公共dns绑定私有ipv6地址(实际中公共dns绑定私有ip地址是没有意义),来极大提高用户体验以及生态兼容的问题。31.基于容器技术可以实现应用隔离,即不同应用即使运行在同一台物理服务器上,但其网络、进程树、文件系统等都可以相互不影响。每个应用都可以发布各自独立的依赖库,静态资源等。每个容器可以设置一个独立的ip地址;实现快速交付,即基于oci标准,使用统一的镜像格式,来屏蔽运行环境的不同和快速分享;方便提前配置,大部分参数都可以由开发者基于描述文件随着镜像固化后一同分发,只有极少量运行参数需要推延到最终部署时由运维人员进行。32.本实施例中,针对私有云存在的家庭带宽环境外部无法直接访问、国家政策不允许在非备案的情况下架设公共服务器、官方应用匮乏单一、开发成本高、非官方软件门槛高,最终用户无法可靠的进行复用、应用丰富的前提下,需要有机制统一保障处理安全等问题,通过本实施例中的方案,可以解决以上问题:1.通过虚拟网卡的方式对应用开发者屏蔽了“家庭带宽访问性的问题”,即不论家庭宽带是否拥有公网ip,是ipv6是ipv4,是动态的还是静态的等都可以在一个地方处理完。即从“每个新应用都处理网络可访问性”下沉到“在操作系统网络栈里一次性处理网络可访问性”;2.家庭环境下ipv4资源耗尽,ipv6逐渐普遍,该方案可以享受这种基础设施升级的好处。因为上层应用是基于“虚拟的逻辑链接”建立因此不受底层物理网络变化带来的影响;3.通过虚拟网卡的方式杜绝了国家政策不允许的使用场景,即非家庭用户人员无法建立“虚拟网卡”从而使得盒子拥有者无论主观还是客观上都无法将盒子资源提供给公众空间。(厂商可以在代码层面设置一个盒子最多允许10个终端访问等机制);4.通过虚拟网卡的方式在应用层之下建立统一的安全访问控制,避免数量众多的应用程序引入的安全漏洞,即某个服务软件即使存在已知漏洞,但因为非法用户无法建立“虚拟网卡”因此无法直接访问到存在漏洞的“服务软件”;5.使用”虚拟网卡“方式,使得服务软件和访问界面都可以使用现有的任何新技术或成熟的旧技术,使得此架构下的应用层技术不受当下环境的限制,并降低了开发者的入门门槛;6.有统一的容器部署机制,配置工作从“最终用户”转移到更专业的开发者一次性完成,从而使劳动成果可以稳定的进行低成本复制,即普通用户可以通过类似“软件商店”的形式自己部署软件,而不需要处理“域名”、“端口”等问题,传统家庭云架构因为没有基于"虚拟网卡"形式,服务软件运行环境依旧是一个不确定的网络环境,因此开发者不具备这种提前配置的能力;7.除了利用p2p带来的技术好处外,能减少“中心化”厂商关闭服务带来的影响。33.在一个实施例中,用户访问私有云过程如图2所示,包括:通过二维码扫描、手动输入连接等方式将一个终端(如pc、手机等)与特定私有云盒子建立匹配关系;盒子设备会主动尝试与匹配的终端建立一条逻辑连接(tcp/ip连接),在用户需要访问盒子设备时,也可以主动尝试与匹配的盒子建立逻辑连接;在双方建立起逻辑连接后,分别建立虚拟网卡,此后,两设备不需要任何特殊处理,即可正常访问对方的网络服务。34.终端访问盒子里预装的商店应用,假设访问地址为https://store.xxx.cloud,根据自身需求一键安装由开发者提供的基于容器分发的应用,每个应用都根据开发者(盒子管理员可以对子域名,存储空间大小等进行审核修正)提供的配置文件进行自动部署。每个应用容器都可以分配一个唯一的私有ip地址。应用初次部署时,将此私有ip地址注册到公共的dns服务器中,最终用户和访问公有云一样,使用友好的“域名”系统来访问容器里的任意tcp/ip服务。35.应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。36.图3为本发明实施例提供的一种私有云系统的结构示意图,该系统包括:建立连接模块310,用于建立终端与预访问网络节点的tcp/ip连接;通过非对称加密计算出终端的唯一节点id;通过终端私钥对节点id数据进行签名,预访问节点根据终端公钥验证签名,并通过密钥协商得到一个临时密钥,终端和预访问节点基于临时密钥进行通信。37.具体的,为每个网络节点内置具备固定ip地址的bootstrap节点;节点启动时,将自身ip地址登记到bootstrap节点;终端期望与目标节点建立通信时,则将期望信息广播至与终端连接的其他节点,其他节点同样进行广播请求直至目标节点与当前终端建立连接。38.优选的,通过dht算法定位目标节点的ip列表。39.在一个实施例中,所述其他节点同样进行广播请求直至目标节点与当前终端建立连接还包括:当目标节点与终端处于同一局域网,则基于局域网内的ip地址优先建立链接;当目标节点不具备可直接访问的ip地址,则判断目标节点是否有的公网ip地址;若有公网ip地址,但ip地址不固定,则通过ddns协议在一个权威服务器进行注册,后续则通过dns进行等效通讯;若有公网ip地址,但真实设备在路由器nat之后,且路由器支持upnp协议,则目标节点根据标准的upnp协议自动申请放行需要的端口地址;若有公网ip地址,且路由器不支持upnp协议,但支持配置防火墙/dmz主机,则由用户手动进入路由器管理界面进行端口配置;若有公网ip地址,但用户无法进行配置,则基于stun协议查询nat类型,并通过一个中心化的服务器协助双方探测出对端的公网端口和地址;若无公网ip,则需要通过一个特定的relay服务器进行数据中转。40.虚拟网卡创建模块320,用于在tcp/ip连接上建立虚拟专用通道,通过操作系统提供的接口分别创建终端和预访问网络节点的虚拟网卡;具体的,打开tun设备,并调用驱动程序中设备控制接口函数创建一个虚拟网卡;通过系统管理工具为虚拟网卡配置ip地址和路由表;设置读取虚拟网卡中的ip包或以太帧,根据系统路由表规则将ip包或以太帧发送至物理网卡。41.数据访问模块330,用于基于虚拟网卡的tcp/ip栈访问网络节点中的容器服务和资源。42.其中,所述数据访问模块330包括:地址分配单元,用于对每个网络节点中的容器,基于特定的ipv6私有地址段分配私有的且唯一合法的ipv6地址,网络节点中通过虚拟网卡认证后的节点,均通过私有且唯一的ipv6地址访问容器资源。43.进一步的,所述地址分配单元还包括:地址注册单元,用于基于公共dns系统,将私有且唯一的ipv6地址注册到正常的dns域名系统中,以通过域名访问家庭云私有资源和服务。44.所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和模块的具体工作过程可以参考前述方法实施例中对应的过程,在此不再赘述。45.可以理解的是,在一个实施例中,所述电子设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现步骤s101至s103部分过程以进行私有云系统构建和访问。46.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括步骤s101至s103,所述的存储介质包括如rom/ram等。47.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。48.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献