System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于it与软件开发领域,具体的说是基于http协议的本地代理实现虚拟机访问元数据服务的方法。
技术介绍
1、在公有云虚拟网络中,用户通常会有对云上虚拟实例访问区域内元数据服务的需求,获取自身绑定的eip信息,其中云上虚拟实例包括虚拟机或docker容器。用户虚拟实例给元数据服务发送请求,然后元数据需要根据访问请求识别到该请求是由哪个虚拟实例发送的,再返回相应的响应,给虚拟实例提供元数据服务。openstack提供用户访问元数据服务信息的请求链比较长,请求先发送到用户租户网络能访问的一个qrouter开头的命名空间中,然后命名空间再转发到网络节点,网络节点转发到中子元数据代理,最后在发送到元数据服务,该方法请求调用链较长,故障域较多且故障定位点多。
2、如申请公开号为cn105446794a的中国专利公开了一种基于虚拟机的磁盘操作方法、装置及系统,其特征是,从元数据服务器获得虚拟磁盘对应的元数据信息;将所述元数据信息,存储在所述客户端服务器中;访问所述客户端服务器中的虚拟磁盘时,从所述客户端服务器存储的一个或多个元数据信息中,获得要访问的虚拟磁盘对应的第一元数据信息;根据所获得的第一元数据信息,向存储服务器发送文件操作指令,使得所述存储服务器执行所述文件操作指令对应的文件操作。应用本专利技术实施例提供的方案进行文件操作时,能够减小文件操作延迟,提高了用户体验。
3、如授权公告号为cn107770095b的中国专利公开了一种用于控制虚拟机元数据访问的方法与设备,本专利技术包括:本申请的虚拟机物理设备
4、以上现有技术均存在以下问题:1)访问元数据服务信息的请求链比较长;2)不包含自身的元数据信息;3)租户网络无法与数据中心基层网络进行通信。
技术实现思路
1、针对现有技术的不足,本专利技术提出了基于http协议的本地代理实现虚拟机访问元数据服务的方法,其具体包括:确定元数据服务接口和数据格式,创建代理服务器并配置虚拟机,发送http请求,将源地址设为虚拟实例网卡ip,openvswich使用流表做nat,将请求从tap_metadata端口发送到本地的http代理服务器,本地http代理服务器将获取的虚拟实例id及数字签名算法加密后生成的端口信息设置到http请求头,并根据代理规则将请求从本地发送给元数据服务器,元数据服务收到请求后,取出签名信息,按数字签名算法将签名内容解密成字符串,并与实例id进行比较,可以区分虚拟实例请求的发送端和同宿主节点上的不同虚拟实例。
2、为实现上述目的,本专利技术提供如下技术方案:
3、基于http协议的本地代理实现虚拟机访问元数据服务的方法,包括:
4、步骤s1:确定元数据服务的接口和数据格式,创建代理服务器并配置虚拟机;
5、步骤s2:用户在虚拟实例中发送http请求,源地址为虚拟实例网卡ip;
6、步骤s3:openvswich使用流表做nat,将http请求的源ip地址和目的ip地址以及端口转换为中间ip地址及端口,将请求从tap_metadata端口发送到本地的http代理服务器;
7、步骤s4:本地http代理服务器将获取的虚拟实例的id及通过数字签名算法加密后生成的端口信息设置到http请求头,并根据代理规则将请求从本地发送给元数据服务器;
8、步骤s5:在元数据服务器中,元数据服务接口收到http请求头后,取出签名信息,按数字签名算法将签名内容解密成字符串,并与虚拟实例的id进行比较,区分虚拟实例。
9、具体的,所述步骤s1中创建代理服务器规则的具体步骤包括:
10、步骤s101:确定代理服务器类型,打开代理服务器配置文件;
11、步骤s102:使用正则表达式匹配url,并将虚拟机的http请求转发到元数据服务;
12、步骤s103:配置请求头和响应处理;
13、步骤s104:保存配置文件并重启代理服务器以使配置生效,并进行测试和优化。
14、具体的,所述步骤s2的具体步骤包括:
15、步骤s201:用户在虚拟实例中运行http客户端程序;
16、步骤s202:用户在http客户端中输入目标url和post请求方法,并设置请求头和正文数据;
17、步骤s203:将源地址设置为虚拟实例的网卡ip地址,并指定目标端口。
18、具体的,所述步骤s3中openvswich使用流表做nat的具体步骤包括:
19、步骤s301:确定需要访问的元数据服务的接口和数据格式,以及虚拟机使用的操作系统和网络环境;
20、步骤s302:通过openvswich配置虚拟机网络中的http请求;
21、步骤s303:当数据包到达openvswich时,openvswich根据创建流表规则进行匹配,并根据匹配的规则对数据包进行nat转换;
22、步骤s304:将虚拟机的http请求转发到元数据服务,进行测试和调试,根据测试结果,对openvswich进行优化和改进,并部署到生产环境。
23、具体的,所述步骤s302的具体步骤包括:
24、步骤s3021:确定虚拟机网络配置和http代理端口;
25、步骤s3022:将默认的http代理设置为openvswich的ip地址和代理端口号;
26、步骤s3023:配置openvswich流表规则以定义将虚拟机的http请求转发到元数据服务的规则;
27、步骤s3024:配置完成,进行测试以确保openvswich可以正常地将虚拟机的http请求转发到元数据服务。
28、具体的,所述步骤s303中流表规则包括:源ip地址、目的ip地址、协议类型、源端口和目的端口的匹配条件。
29、具体的,所述步骤s4的具体步骤包括:
30、步骤s401:接收虚拟机请求,获取虚拟实例id;
31、步骤s402:使用数字签名算法对虚拟实例id和敏感信息进行加密处理,生成加密后的信息,数字签名算法加密的具体公式为:
32、y=gx modp,
33、其中,y表示公钥,x表示私钥,g和p为系统参数;
34、步骤s403:将加密后的数据设置到http请求头的自定义字段;
35、步骤s404:根据代理规则本文档来自技高网...
【技术保护点】
1.基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,包括:
2.如权利要求1所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤S1中创建代理服务器规则的具体步骤包括:
3.如权利要求2所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤S2的具体步骤包括:
4.如权利要求3所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤S3中OpenvSwich使用流表做NAT的具体步骤包括:
5.如权利要求4所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤S302的具体步骤包括:
6.如权利要求5所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤S303中流表规则包括:源IP地址、目的IP地址、协议类型、源端口和目的端口的匹配条件。
7.如权利要求6所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤
8.如权利要求7所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤S5的具体步骤包括:
9.如权利要求8所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤S504中判断是否来自预期的虚拟机实例的具体步骤包括:
10.如权利要求9所述的基于HTTP协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,包括:网络通信模块、请求解析模块、数字签名验证模块、元数据服务访问模块、响应生成模块、日志记录和监控模块,
...【技术特征摘要】
1.基于http协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,包括:
2.如权利要求1所述的基于http协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤s1中创建代理服务器规则的具体步骤包括:
3.如权利要求2所述的基于http协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤s2的具体步骤包括:
4.如权利要求3所述的基于http协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤s3中openvswich使用流表做nat的具体步骤包括:
5.如权利要求4所述的基于http协议的本地代理实现虚拟机访问元数据服务的方法,其特征在于,所述步骤s302的具体步骤包括:
6.如权利要求5所述的基于http协议的本地代理实现虚拟机访问元数据服务的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。