CN104378449A - 一种虚拟ip的实现方法 - Google Patents
一种虚拟ip的实现方法 Download PDFInfo
- Publication number
- CN104378449A CN104378449A CN201410749176.7A CN201410749176A CN104378449A CN 104378449 A CN104378449 A CN 104378449A CN 201410749176 A CN201410749176 A CN 201410749176A CN 104378449 A CN104378449 A CN 104378449A
- Authority
- CN
- China
- Prior art keywords
- virtual
- address
- network interface
- interface card
- application service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种虚拟IP的实现方法,属于计算机通信网络技术领域,该方法包括计算机根据自身IP从数据库中获取到与自身IP绑定的网卡ID与网卡描述信息,从数据库中获取虚拟IP和虚拟IP子网掩码,通过调用设备驱动程序禁用所述网卡ID对应的网卡,然后通过调用驱动程序在所述网卡ID对应的网卡上绑定从数据库中获取的虚拟IP和虚拟IP子网掩码,或者删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码,然后再通过调用设备驱动程序启用所述网卡ID对应的网卡,从而实现由计算机自身实现虚拟IP增加、删除等功能,省去了人工操作,节约了人力成本。
Description
技术领域
本发明涉及计算机通信网络技术领域,尤其涉及一种虚拟IP的实现方法。
背景技术
在计算机机群***中,实现业务的高可用服务主要是通过增加结点,来使多个结点工作在负荷分担方式下或主备用方式下,当主用结点故障时,备用结点接替主用结点继续提供服务。由于数字通信网络向全IP网络的演变,使得结点的通信方式主要是基于IP的通信。当主用结点故障时,访问主用结点的客户端会继续向主用结点的IP地址索取服务,这就要求备用结点接替主用结点时以同样的IP地址提供服务,这样将多个结点共用一个IP地址对外提供服务的方法称为虚拟IP(VIP)。
现有的虚拟IP的实现方法,以多台服务器组成的计算机集群***为例,多是通过人工手动配置虚拟IP实现的,这样的实现方式耗费人力成本;现有的虚拟IP实现方法还有是通过增加网络地址转换(NAT)设备对多个服务器的IP地址进行转换,使得多个服务器对外呈现一个统一的IP地址,这样的实现方式需要增加一个专门的NAT设备,增加了网络建设和维护成本。目前没有一种比较切实可行的由服务器自身实现虚拟IP增加、删除等功能的方法。
发明内容
为解决现有技术中存在的问题,本发明提出了一种虚拟IP的实现方法,由服务器自身实现虚拟IP增加、删除等功能,服务器之间共享一个数据库存储虚拟IP,服务器自身实现虚拟IP的增加与删除,不需要借助另外的硬件存储设备对服务器虚拟IP的配置进行控制。
本发明采用的技术方案如下:一种虚拟IP的实现方法,包括:
步骤S1:计算机根据自身IP从数据库中获取到与自身IP绑定的网卡ID和网卡描述信息,从数据库中获取虚拟IP和虚拟IP子网掩码;
步骤S2:调用设备驱动程序禁用所述网卡ID对应的网卡;
步骤S3:根据数据库中的预设标志位判断是否已设置虚拟IP,是则执行步骤S4,否则执行步骤S5;
步骤S4:调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码,然后执行步骤S5;
步骤S5:调用设备驱动程序在所述网卡ID对应的网卡上绑定从数据库中获取的虚拟IP和虚拟IP子网掩码,并更新数据库中的预设标志位;
步骤S6:调用设备驱动程序启用所述网卡ID对应的网卡。
所述步骤S1之前还包括步骤S0:计算机启动定时心跳监听并实时记录监听日志。
所述步骤S0与所述步骤S1之间还包括:计算机判断预设切换模式及本机状态,当所述预设切换模式及本机状态为主机备机模式/主机时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务;当所述预设切换模式及本机状态为主机主机模式/主机,且检测到监听目标未启动应用服务时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务;当所述预设切换模式及本机状态为主机备机模式/备机,且检测到监听目标未启动应用服务时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务。
当所述预设切换模式及本机状态为主机主机模式/主机,且检测到监听目标已启动应用服务时,所述计算机判断是否接收到启动应用服务的通知,是则执行所述步骤S1-步骤S6之后启动应用服务;否则返回执行所述判断预设切换模式及本机状态。
当所述预设切换模式及本机状态为主机备机模式/备机,且检测到监听目标已启动应用服务时,所述计算机执行自动删除虚拟IP的操作后停止应用服务,然后返回执行所述判断预设切换模式及本机状态。
所述自动删除虚拟IP的操作具体包括:
步骤s1:调用设备驱动程序禁用所述网卡ID对应的网卡;
步骤s2:调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码,并更新数据库中的预设标志位;
步骤s3:调用设备驱动程序启用所述网卡ID对应的网卡。
上述启动应用服务之后包括:
步骤1:检测网关和应用服务的运行状况,若应用服务正常网关畅通,则返回执行所述判断预设切换模式及本机状态;若应用服务正常网关不畅通,则执行自动删除虚拟IP的操作后停止应用服务,然后执行步骤2;若应用服务异常网关不畅通则直接执行步骤2;若应用服务异常网关畅通则重新启动应用服务,若启动成功则返回继续执行步骤1,若启动失败则执行步骤2;
步骤2:根据当前的监听日志判断监听目标是否正常工作,是则向监听目标发送启动应用服务的通知后返回执行所述判断预设切换模式及本机状态,否则报警提示出错,结束。
步骤S2所述调用设备驱动程序禁用所述网卡ID对应的网卡具体为:调用第一函数获取服务器上已安装设备信息集合,调用第二函数对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数获取当前已安装设备的详细设备信息;调用第四函数和第五函数将当前已安装设备的详细信息中包含的安装参数修改为第一预设值并使修改生效;调用第六函数释放当前内存。
步骤S4所述调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码具体为:调用第七函数和第八函数从所述网卡ID对应的网卡的注册表中获取原始IP、原始IP子网掩码;调用第九函数从原始IP、原始IP子网掩码中删除虚拟IP、虚拟IP子网掩码对应的字段,并将删除操作后的注册表回写到注册表键中的相应位置;调用第十函数释放当前内存。
步骤S5所述调用设备驱动程序在所述网卡ID对应的网卡上绑定从数据库中获取的虚拟IP和虚拟IP子网掩码具体为:调用第七函数和第八函数从所述网卡ID对应的网卡的注册表中获取原始IP、原始IP子网掩码;调用第九函数在原始IP、原始IP子网掩码的字段中绑定从数据库中获取的虚拟IP、虚拟IP子网掩码,并将绑定操作后的注册表回写到注册表键中的相应位置;调用第十函数释放当前内存。
步骤S6所述调用设备驱动程序启用所述网卡ID对应的网卡具体为:调用第一函数获取服务器上已安装设备信息集合,调用第二函数对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数获取当前已安装设备的详细设备信息;调用第四函数和第五函数将当前已安装设备的详细信息中包含的安装参数修改为第二预设值并使修改生效;调用第六函数释放当前内存。
本发明公开的另一种虚拟IP的实现方法,包括:
步骤S1:计算机根据自身IP从数据库中获取到与自身IP绑定的网卡ID,从数据库中获取虚拟IP和虚拟IP子网掩码;执行查询配置信息命令;
步骤S2:根据所述查询配置信息命令的命令执行结果判断所述网卡ID对应的网卡的配置信息是否正确,是则执行步骤S4,否则执行步骤S3;
步骤S3:执行停止虚拟IP命令删除所述配置信息中的虚拟IP和虚拟IP子网掩码,执行配置命令在所述配置信息中增加从数据库中获取的虚拟IP和虚拟IP子网掩码,执行步骤S4;
步骤S4:进入配置目录下的配置文件,执行检查配置文件命令;
步骤S5:根据所述检查配置文件命令的命令执行结果判断配置文件中的配置信息是否正确,是则结束,否则执行步骤S6;
步骤S6:执行删除命令删除所述配置文件,执行写入命令在所述配置目录下重新写入一个配置文件,重新写入的配置文件的配置信息中包含有从数据库中获取的虚拟IP和虚拟IP子网掩码,结束。
所述根据所述查询配置信息命令的命令执行结果判断所述网卡ID对应的网卡的配置信息是否正确具体为:判断所述查询配置信息命令的命令执行结果中包含的虚拟IP和虚拟IP子网掩码是否与从数据库中获取的虚拟IP和虚拟IP子网掩码一致,是则表示配置信息正确,否则不正确。
本发明达到的有益效果如下:本发明提供的技术方案与现有技术相比,通过自动方式配置并实现虚拟IP,省去了人工操作,节约了人力成本,同时本发明提供的技术方案可直接应用到服务器上由服务器自身实现虚拟IP,不需要第三方设备控制实现,从而省去了NAT设备,降低了整个数字通信网络的建设和维护成本。通过本发明提供的技术方案,可根据具体需要对代码进行调整,具有良好的可扩展性。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的虚拟IP的实现方法在双机热备应用场景下的使用方法流程图;
图2-1是图1所示自动配置实现虚拟IP并启动应用服务在Windows平台下的实现流程图;
图2-2是图1所示自动删除虚拟IP并停止应用服务在Windows平台下的实现流程图;
图3是本发明实施例2提供的一种基于Windows平台的虚拟IP实现方法的流程图;
图4-1是图1所示自动配置实现虚拟IP并启动应用服务在Linux平台下的实现流程图;
图4-2是图1所示自动删除虚拟IP并停止应用服务在Linux平台下的实现流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步详细描述。
虚拟IP可以使一台计算机对外提供多个访问的IP地址,发挥出VLAN的优势,合理分配网络资源,均衡网络负载,在集群部署的时候常会使用到虚拟IP的技术,对外提供一个虚拟IP访问。
实施例1
为了对本发明提供的一种虚拟IP的实现方法有更深入的理解,首先在实施例1中对本发明提出的虚拟IP的实现方法在双机热备应用场景下的使用进行说明,如图1所示,具体如下:
步骤101:开机,启动定时心跳监听并实时记录监听日志;
步骤102:判断预设切换模式及本机状态,若为主机主机模式/主机则执行步骤103,若为主机备机模式/主机则执行步骤107,若为主机备机模式/备机则执行步骤105;
本实施例中优选的,所示预设切换模式包括主机主机模式、主机备机模式和主机备机模式,所述本机状态可以为主机或备机。
步骤103:检测监听目标是否已经启动应用服务,是则执行步骤104,否则执行步骤107;
步骤104:判断是否接收到启动应用服务的通知,是则执行步骤107,否则执行步骤102;
步骤105:检测监听目标是否已经启动应用服务,是则执行步骤106,否则执行步骤107;
步骤106:自动删除虚拟IP,并停止应用服务,返回步骤102;
步骤107:自动配置实现虚拟IP,启动应用服务;
例如,启动的应用服务为网银***或身份认证***等。
步骤108:检测网关和应用服务的运行状况,若应用服务正常网关畅通则执行步骤102,若应用服务正常网关不畅通则执行步骤110,若应用服务异常网关畅通则执行步骤109,若应用服务异常网关不畅通则执行步骤111;
步骤109:重新启动应用服务,若启动成功则返回执行步骤108,若启动失败则执行步骤111;
步骤110:自动删除虚拟IP,并停止应用服务,执行步骤111;
步骤111:根据当前的监听日志判断监听目标是否正常工作,是则执行步骤112,否则报警提示出错,结束;
步骤112:向监听目标发送启动应用服务的通知,然后返回步骤102。
本实施例提供的双机热备方案应用中的步骤107所述自动配置实现虚拟IP,启动应用服务的流程,在基于Windows平台的具体实现如图2-1所示,包括以下步骤:
步骤201:根据自身IP从数据库中获取到与自身IP绑定的网卡ID和网卡描述信息,从数据库中获取虚拟IP和虚拟IP子网掩码。
步骤202:调用设备驱动程序禁用所述网卡ID对应的网卡;
本实施例中具体的,所述设备驱动程序主要包括有第一函数、第二函数、第三函数、第四函数、第五函数、第六函数、第七函数、第八函数、第九函数和第十函数。
本步骤具体的,通过调用第一函数、第二函数、第三函数、第四函数、第五函数和第六函数实现,其中调用第一函数可以获取服务器上已安装设备信息集合,调用第二函数可以对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数可以获取当前已安装设备的详细设备信息;调用第四和第五函数可以将当前已安装设备的详细信息中包含的安装参数修改为第一预设值并使修改生效;调用第六函数可以释放调用第一函数至第五函数所做操作占用的内存。
步骤203:根据数据库中的预设标志位判断是否已设置虚拟IP,是则执行步骤204,否则执行步骤205;
本实施例中优选的,当预设标志位为1时表示已设置虚拟IP,当预设标志位为0时表示未设置虚拟IP。
步骤204:调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码,然后执行步骤205;
本步骤具体的,通过调用第七函数、第八函数、第九函数和第十函数实现,其中调用第七和第八函数可以从所述网卡ID对应的网卡的注册表中获取原始IP、原始IP子网掩码;调用第九函数可以从原始IP、原始IP子网掩码中删除虚拟IP、虚拟IP子网掩码对应的字段,并将删除操作后的注册表回写到注册表键中的相应位置;调用第十函数可以释放调用第七函数至第九函数所做操作占用的内存。
步骤205:调用设备驱动程序在所述网卡ID对应的网卡上绑定从数据库中获取的所述虚拟IP和虚拟IP子网掩码,并更新数据库中的预设标志位;
本步骤具体的,通过调用第七函数、第八函数、第九函数和第十函数实现,其中调用第七和第八函数可以从所述网卡ID对应的网卡的注册表中获取原始IP、原始IP子网掩码;调用第九函数可以在原始IP、原始IP子网掩码的字段中绑定从数据库中获取的所述虚拟IP、虚拟IP子网掩码,并将绑定操作后的注册表回写到注册表键中的相应位置;调用第十函数可以释放调用第七函数至第九函数所做操作占用的内存。
本实施例中优选的,本步骤具体为将预设标志位设置为1。
步骤206:调用设备驱动程序启用所述网卡ID对应的网卡。
本步骤具体的,通过调用第一函数、第二函数、第三函数、第四函数、第五函数和第六函数实现,其中调用第一函数可以获取服务器上已安装设备信息集合,调用第二函数可以对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数可以获取当前已安装设备的详细设备信息;调用第四和第五函数可以将当前已安装设备的详细信息中包含的安装参数修改为第二预设值并使修改生效;调用第六函数可以释放调用第一函数至第五函数所做操作占用的内存。
步骤207:启动应用服务。
本实施例提供的双机热备方案应用中的步骤106或步骤110所述自动删除虚拟IP,并停止应用服务的流程,在基于Windows平台的具体实现如图2-2所示,包括以下步骤:
步骤201':调用设备驱动程序禁用所述网卡ID对应的网卡;
本步骤具体的,通过调用第一函数、第二函数、第三函数、第四函数、第五函数和第六函数实现,其中调用第一函数可以获取服务器上已安装设备信息集合,调用第二函数可以对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数可以获取当前已安装设备的详细设备信息;调用第四和第五函数可以将当前已安装设备的详细信息中包含的安装参数修改为第一预设值并使修改生效;调用第六函数可以释放调用第一函数至第五函数所做操作占用的内存。
步骤202':调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码,并更新数据库中的预设标志位;
本步骤具体的,通过调用第七函数、第八函数、第九函数和第十函数实现,其中调用第七和第八函数可以从所述网卡ID对应的网卡的注册表中获取原始IP、原始IP子网掩码;调用第九函数可以从原始IP、原始IP子网掩码中删除虚拟IP、虚拟IP子网掩码对应的字段,并将删除操作后的注册表回写到注册表键中的相应位置;调用第十函数可以释放调用第七函数至第九函数所做操作占用的内存。
本实施例中优选的,本步骤具体为将预设标志位设置为0。
步骤203':调用设备驱动程序启用所述网卡ID对应的网卡。
本步骤具体的,通过调用第一函数、第二函数、第三函数、第四函数、第五函数和第六函数实现,其中调用第一函数可以获取服务器上已安装设备信息集合,调用第二函数可以对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数可以获取当前已安装设备的详细设备信息;调用第四和第五函数可以将当前已安装设备的详细信息中包含的安装参数修改为第二预设值并使修改生效;调用第六函数可以释放调用第一函数至第五函数所做操作占用的内存。
步骤204':停止应用服务。
实施例2
如图3所示是本实施例2提供的一种基于Windows平台的虚拟IP实现方法,包括以下内容:
步骤301:根据自身IP从数据库中获取到与该IP绑定的网卡ID和网卡描述信息;
例如,自身IP是192.168.16.47。
步骤302:从数据库中获取虚拟IP与虚拟IP子网掩码;
例如:虚拟IP是192.168.25.200,虚拟IP子网掩码是255.255.255.0。
步骤303:从数据库中获取表示是否已设置虚拟IP的字段值;
例如:获取到的字段值是flag。
步骤304:调用SetupDiGetClassDevs函数获取已安装设备信息集合;
例如:获取的已安装设备信息集合是:
({650D5BB1-9BB4-45CD-90C8-ECE70B72EB35},
{E90A38FA-BA87-40F8-8BA9-B86F6852A9D3},
{4D36E96C-E325-11CE-BFC1-08002BE10318},
{4D36E96D-E325-11CE-BFC1-08002BE10318}
….)
步骤305:调用SetupDiEnumDeviceInfo函数枚举所述已安装设备信息集合,获取一个当前已安装设备信息;
例如:获取的当前已安装设备信息是:
({650D5BB1-9BB4-45CD-90C8-ECE70B72EB35})。
步骤306:调用SetupDiGetDeviceRegistryProperty函数获取当前已安装设备信息对应的设备详细信息;
步骤307:比较所述设备详细信息中包含的描述信息与从数据库中获取的所述网卡描述信息是否相同,是则执行步骤308,否则返回执行步骤305;
步骤308:调用SetupDiSetClassInstallParams函数将所述设备详细信息中包含的安装参数修改为第一预设值;
本实施例中具体的,安装参数是stateChange,第一预设值是DICS_DISABLE。
步骤309:调用SetupDiCallClassInstaller函数使得对安装参数的修改生效;
步骤310:调用SetupDiDestroyDeviceInfoList函数释放当前内存;
具体的,通过调用SetupDiDestroyDeviceInfoList函数销毁获取的已安装设备信息集合释放当前内存。
步骤311:根据所述字段值判断是否已设置虚拟IP,是则执行步骤312,否则执行步骤316;
步骤312:调用RegOpenKeyEx函数打开所述网卡描述信息所对应的注册表键;
具体的,所述网卡描述信息所对应的注册表键为:SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces。
步骤313:调用RegQueryValueEx函数从注册表中获取所述网卡描述信息对应的原始IP、原始IP子网掩码;
例如:获取的原始IP是192.168.16.47(192.168.25.200),原始IP子网掩码是255.255.255.0(255.255.255.0)。
步骤314:调用RegSetValueEx函数从原始IP、原始IP子网掩码中删除虚拟IP、虚拟IP子网掩码对应的字段,并将删除操作后的IP和子网掩码回写到注册表键中的相应位置;
例如:删除操作后的IP和子网掩码分别是192.168.16.47和255.255.255.0。
步骤315:调用RegCloseKey函数释放当前内存,执行步骤316;
具体的,通过释放当前打开的注册表键释放当前内存。
步骤316:调用RegOpenKeyEx函数打开所述网卡描述信息所对应的注册表键;
步骤317:调用RegQueryValueEx函数从注册表中获取所述网卡描述信息对应的原始IP、原始IP子网掩码;
步骤318:调用RegSetValueEx函数在原始IP、原始IP子网掩码的字段中绑定从数据库中获取的所述虚拟IP、虚拟IP子网掩码,并将绑定操作后的IP和子网掩码回写到注册表键中的相应位置,更改所述字段值并写入数据库中;
例如,绑定操作后的IP是192.168.16.47(192.168.25.200),子网掩码是255.255.255.0(255.255.255.0)。
步骤319:调用RegCloseKey函数释放当前内存;
具体的,通过释放当前打开的注册表键释放当前内存。
步骤320:调用SetupDiGetClassDevs函数获取已安装设备信息集合;
步骤321:调用SetupDiEnumDeviceInfo函数枚举所述已安装设备信息集合,获取一个当前已安装设备信息;
步骤322:调用SetupDiGetDeviceRegistryProperty函数获取当前已安装设备信息对应的设备详细信息;
步骤323:比较所述设备详细信息中包含的描述信息与从数据库中获取的所述网卡描述信息是否相同,是则执行步骤324,否则返回执行步骤321;
步骤324:调用SetupDiSetClassInstallParams函数将所述设备详细信息中包含的安装参数修改为第二预设值;
本实施例中具体的,安装参数是stateChange,第二预设值是DICS_ENABLE。
步骤325:调用SetupDiCallClassInstaller函数使得对安装参数的修改生效;
步骤326:调用SetupDiDestroyDeviceInfoList函数释放当前内存。
具体的,通过调用SetupDiDestroyDeviceInfoList函数销毁获取的已安装设备信息集合释放当前内存。
实施例3
本实施例是在实施例1提供的双机热备方案基础上提供的,其中图1中所述自动配置实现虚拟IP,启动应用服务的流程,在基于linux平台的具体实现如图4-1所示,包括以下步骤:
步骤401:根据自身IP从数据库中获取到与自身IP绑定的网卡ID,从数据库中获取虚拟IP和虚拟IP子网掩码;
例如,获取的网卡ID为eth0,获取的虚拟IP为192.168.25.100,获取的虚拟IP子网掩码为255.255.255.0。
步骤402:执行查询配置信息命令;
例如:所述查询配置信息命令为:ifconfig eth0:0。
步骤403:根据所述查询配置信息命令的命令执行结果判断所述网卡ID对应的网卡的配置信息是否正确,是则执行步骤405,否则执行步骤404;
例如,所述命令执行结果为:
eth0:0 Link encap:Ethernet HWaddr 00:50:56:81:73:F3
inet addr:192.168.25.220 Bcast:192.168.25.100
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500
Metric:1
所述命令执行结果中的Bcast:192.168.25.100和Mask:255.255.255.0与从数据库中获取的虚拟IP和虚拟IP子网掩码一致,则判断结果为所述网卡的配置信息正确。
步骤404:执行停止虚拟IP命令删除所述配置信息中的虚拟IP和虚拟IP子网掩码,执行配置命令在所述配置信息中增加从数据库中获取的所述虚拟IP和虚拟IP子网掩码,执行步骤405;
例如,对所述网卡ID对应的网卡执行的所述停止虚拟IP命令为:ifconfgeth0:0 down。执行的所述配置命令为:ifconfig eth0:0 192.168.25.100 netmask255.255.255.0up。
步骤405:进入配置目录下的配置文件,执行检查配置文件命令;
例如,进入配置目录下的配置文件具体为执行命令:cd/etc/sysconfig/network-scripts;执行的所述检查配置文件命令具体为:moreifcfg-eth0:0。
步骤406:根据所述检查配置文件命令的命令执行结果判断配置文件中的配置信息是否正确,是则执行步骤408,否则执行步骤407:
例如,执行more ifcfg-eth0:0后得到的命令执行结果为:DEVICE=eth0:0
BOOTPROTO=none
IPADDR=192.168.25.80
NETMASK=255.255.255.0
GATEWAY=192.168.25.254
HWADDR=00:50:56:81:73:f3
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
上述命令执行结果中包含的IPADDR=192.168.25.80与从数据库中获取的虚拟IP=192.168.25.100不同,则执行步骤407。
步骤407:执行删除命令删除所述配置文件,执行写入命令在所述配置目录下重新写入一个在配置信息中包含有从数据库中获取的所述虚拟IP和虚拟IP子网掩码的配置文件,执行步骤408;
例如,执行的所述删除命令具体为:rm ifcfg-eth0:0;执行的所述写入命令具体为:
vi ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=none
IPADDR=192.168.25.100
NETMASK=255.255.255.0
GATEWAY=192.168.25.254
HWADDR=00:50:56:81:73:f3
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
步骤408:启动应用服务。
本实施例是在实施例1提供的双机热备方案基础上提供的,其中图1中所述自动删除虚拟IP,停止应用服务的流程,在基于linux平台的具体实现如图4-2所示,包括以下步骤:
步骤401':执行停止虚拟IP命令删除配置信息中的虚拟IP和虚拟IP子网掩码;
例如,所述停止虚拟IP命令具体为:ifconfg eth0:0 down。
步骤402':进入配置目录下的配置文件;
例如,通过执行命令cd/etc/sysconfig/network-scripts进入配置目录下的配置文件。
步骤403':执行删除命令删除所述配置文件;
例如,执行的所述删除命令具体为:rm ifcfg-eth0:0。
步骤404':停止应用服务。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (19)
1.一种虚拟IP的实现方法,其特征是,包括:
步骤S1:计算机根据自身IP从数据库中获取到与自身IP绑定的网卡ID和网卡描述信息,从数据库中获取虚拟IP和虚拟IP子网掩码;
步骤S2:调用设备驱动程序禁用所述网卡ID对应的网卡;
步骤S3:根据数据库中的预设标志位判断是否已设置虚拟IP,是则执行步骤S4,否则执行步骤S5;
步骤S4:调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码,然后执行步骤S5;
步骤S5:调用设备驱动程序在所述网卡ID对应的网卡上绑定从数据库中获取的虚拟IP和虚拟IP子网掩码,并更新数据库中的预设标志位;
步骤S6:调用设备驱动程序启用所述网卡ID对应的网卡。
2.如权利要求1所述的方法,其特征是:所述步骤S1之前还包括步骤S0:计算机启动定时心跳监听并实时记录监听日志。
3.如权利要求2所述的方法,其特征是:所述步骤S0与所述步骤S1之间还包括:计算机判断预设切换模式及本机状态,当所述预设切换模式及本机状态为主机备机模式/主机时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务;
当所述预设切换模式及本机状态为主机主机模式/主机,且检测到监听目标未启动应用服务时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务;
当所述预设切换模式及本机状态为主机备机模式/备机,且检测到监听目标未启动应用服务时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务。
4.如权利要求3所述的方法,其特征是:当所述预设切换模式及本机状态为主机主机模式/主机,且检测到监听目标已启动应用服务时,所述计算机判断是否接收到启动应用服务的通知,是则执行所述步骤S1-步骤S6之后启动应用服务;否则返回执行所述判断预设切换模式及本机状态。
5.如权利要求3所述的方法,其特征是:当所述预设切换模式及本机状态为主机备机模式/备机,且检测到监听目标已启动应用服务时,所述计算机执行自动删除虚拟IP的操作后停止应用服务,然后返回执行所述判断预设切换模式及本机状态。
6.如权利要求5所述的方法,其特征是:所述自动删除虚拟IP的操作具体包括:
步骤s1:调用设备驱动程序禁用所述网卡ID对应的网卡;
步骤s2:调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码,并更新数据库中的预设标志位;
步骤s3:调用设备驱动程序启用所述网卡ID对应的网卡。
7.如权利要求3或4所述的方法,其特征是:所述启动应用服务之后包括:
步骤1:检测网关和应用服务的运行状况,若应用服务正常网关畅通,则返回执行所述判断预设切换模式及本机状态;若应用服务正常网关不畅通,则执行自动删除虚拟IP的操作后停止应用服务,然后执行步骤2;若应用服务异常网关不畅通则直接执行步骤2;若应用服务异常网关畅通则重新启动应用服务,若启动成功则返回继续执行步骤1,若启动失败则执行步骤2;
步骤2:根据当前的监听日志判断监听目标是否正常工作,是则向监听目标发送启动应用服务的通知后返回执行所述判断预设切换模式及本机状态,否则报警提示出错,结束。
8.如权利要求1所述的方法,其特征是:步骤S2所述调用设备驱动程序禁用所述网卡ID对应的网卡具体为:调用第一函数获取服务器上已安装设备信息集合,调用第二函数对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数获取当前已安装设备的详细设备信息;调用第四函数和第五函数将当前已安装设备的详细信息中包含的安装参数修改为第一预设值并使修改生效;调用第六函数释放当前内存。
9.如权利要求1所述的方法,其特征是:步骤S4所述调用设备驱动程序删除所述网卡ID对应的网卡的注册表中与所述网卡描述信息对应的虚拟IP和虚拟IP子网掩码具体为:调用第七函数和第八函数从所述网卡ID对应的网卡的注册表中获取原始IP、原始IP子网掩码;调用第九函数从原始IP、原始IP子网掩码中删除虚拟IP、虚拟IP子网掩码对应的字段,并将删除操作后的注册表回写到注册表键中的相应位置;调用第十函数释放当前内存。
10.如权利要求1所述的方法,其特征是:步骤S5所述调用设备驱动程序在所述网卡ID对应的网卡上绑定从数据库中获取的虚拟IP和虚拟IP子网掩码具体为:调用第七函数和第八函数从所述网卡ID对应的网卡的注册表中获取原始IP、原始IP子网掩码;调用第九函数在原始IP、原始IP子网掩码的字段中绑定从数据库中获取的虚拟IP、虚拟IP子网掩码,并将绑定操作后的注册表回写到注册表键中的相应位置;调用第十函数释放当前内存。
11.如权利要求1所述的方法,其特征是:步骤S6所述调用设备驱动程序启用所述网卡ID对应的网卡具体为:调用第一函数获取服务器上已安装设备信息集合,调用第二函数对获取的已安装设备信息集合进行枚举得到一个当前已安装设备信息,调用第三函数获取当前已安装设备的详细设备信息;调用第四函数和第五函数将当前已安装设备的详细信息中包含的安装参数修改为第二预设值并使修改生效;调用第六函数释放当前内存。
12.一种虚拟IP的实现方法,其特征是,包括:
步骤S1:计算机根据自身IP从数据库中获取到与自身IP绑定的网卡ID,从数据库中获取虚拟IP和虚拟IP子网掩码;执行查询配置信息命令;
步骤S2:根据所述查询配置信息命令的命令执行结果判断所述网卡ID对应的网卡的配置信息是否正确,是则执行步骤S4,否则执行步骤S3;
步骤S3:执行停止虚拟IP命令删除所述配置信息中的虚拟IP和虚拟IP子网掩码,执行配置命令在所述配置信息中增加从数据库中获取的虚拟IP和虚拟IP子网掩码,执行步骤S4;
步骤S4:进入配置目录下的配置文件,执行检查配置文件命令;
步骤S5:根据所述检查配置文件命令的命令执行结果判断配置文件中的配置信息是否正确,是则结束,否则执行步骤S6;
步骤S6:执行删除命令删除所述配置文件,执行写入命令在所述配置目录下重新写入一个配置文件,重新写入的配置文件的配置信息中包含有从数据库中获取的虚拟IP和虚拟IP子网掩码,结束。
13.如权利要求12所述方法,其特征是:步骤S2所述根据所述查询配置信息命令的命令执行结果判断所述网卡ID对应的网卡的配置信息是否正确具体为:判断所述查询配置信息命令的命令执行结果中包含的虚拟IP和虚拟IP子网掩码是否与从数据库中获取的虚拟IP和虚拟IP子网掩码一致,是则表示配置信息正确,否则不正确。
14.如权利要求12所述的方法,其特征是:所述步骤S1之前还包括步骤S0:计算机启动定时心跳监听并实时记录监听日志。
15.如权利要求14所述的方法,其特征是:所述步骤S0与所述步骤S1之间还包括:计算机判断预设切换模式及本机状态,当所述预设切换模式及本机状态为主机备机模式/主机时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务;
当所述预设切换模式及本机状态为主机主机模式/主机,且检测到监听目标未启动应用服务时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务;
当所述预设切换模式及本机状态为主机备机模式/备机,且检测到监听目标未启动应用服务时,所述计算机执行所述步骤S1-步骤S6之后启动应用服务。
16.如权利要求15所述的方法,其特征是:当所述预设切换模式及本机状态为主机主机模式/主机,且检测到监听目标已启动应用服务时,所述计算机判断是否接收到启动应用服务的通知,是则执行所述步骤S1-步骤S6之后启动应用服务;否则返回执行所述判断预设切换模式及本机状态。
17.如权利要求15所述的方法,其特征是:当所述预设切换模式及本机状态为主机备机模式/备机,且检测到监听目标已启动应用服务时,所述计算机执行自动删除虚拟IP的操作后停止应用服务,然后返回执行所述判断预设切换模式及本机状态。
18.如权利要求17所述的方法,其特征是:所述自动删除虚拟IP的操作具体包括:
步骤s1:执行停止虚拟IP命令删除所述网卡ID对应的网卡的配置信息中的虚拟IP和虚拟IP子网掩码;
步骤s2:进入配置目录下的配置文件;
步骤s3:执行删除命令删除所述配置文件。
19.如权利要求15或16所述的方法,其特征是所述启动应用服务之后包括:
步骤1:检测网关和应用服务的运行状况,若应用服务正常网关畅通,则返回执行所述判断预设切换模式及本机状态;若应用服务正常网关不畅通,则执行自动删除虚拟IP的操作后停止应用服务,然后执行步骤2;若应用服务异常网关不畅通则直接执行步骤2;若应用服务异常网关畅通则重新启动应用服务,若启动成功则返回继续执行步骤1,若启动失败则执行步骤2;
步骤2:根据当前的监听日志判断监听目标是否正常工作,是则向监听目标发送启动应用服务的通知后返回执行所述判断预设切换模式及本机状态,否则报警提示出错,结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410749176.7A CN104378449B (zh) | 2014-12-09 | 2014-12-09 | 一种虚拟ip的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410749176.7A CN104378449B (zh) | 2014-12-09 | 2014-12-09 | 一种虚拟ip的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104378449A true CN104378449A (zh) | 2015-02-25 |
CN104378449B CN104378449B (zh) | 2017-07-14 |
Family
ID=52557095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410749176.7A Active CN104378449B (zh) | 2014-12-09 | 2014-12-09 | 一种虚拟ip的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104378449B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878068A (zh) * | 2017-01-24 | 2017-06-20 | 新华三技术有限公司 | 一种配置管理方法和装置 |
CN112165537A (zh) * | 2020-09-17 | 2021-01-01 | 广州锦行网络科技有限公司 | 一种用于ping回复的虚拟IP的方法 |
CN113497765A (zh) * | 2021-09-08 | 2021-10-12 | 中兴通讯股份有限公司 | 一种路由管理的方法、装置、电子设备和存储介质 |
CN114006955A (zh) * | 2021-10-28 | 2022-02-01 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060087962A1 (en) * | 2004-10-27 | 2006-04-27 | Anthony Golia | Fault tolerant network architecture |
US20080098407A1 (en) * | 2003-03-21 | 2008-04-24 | Torrant Marc D | System and method for managing distributed objects as a single representation |
US20090300218A1 (en) * | 2008-05-30 | 2009-12-03 | Asustek Computer Inc. | Network sharing method |
CN103312661A (zh) * | 2012-03-07 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种服务访问方法及装置 |
CN103491000A (zh) * | 2013-09-17 | 2014-01-01 | 烽火通信科技股份有限公司 | 虚拟路由器冗余协议虚拟ip和mac的管理***及方法 |
CN103685608A (zh) * | 2013-12-24 | 2014-03-26 | 北京启明星辰信息技术股份有限公司 | 一种自动配置安全虚拟机ip地址的方法及装置 |
CN103731514A (zh) * | 2013-12-29 | 2014-04-16 | 国云科技股份有限公司 | 一种虚拟网络管理方法 |
CN103812704A (zh) * | 2014-02-25 | 2014-05-21 | 国云科技股份有限公司 | 一种面向虚拟机的公网ip动态管理方法 |
-
2014
- 2014-12-09 CN CN201410749176.7A patent/CN104378449B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098407A1 (en) * | 2003-03-21 | 2008-04-24 | Torrant Marc D | System and method for managing distributed objects as a single representation |
US20060087962A1 (en) * | 2004-10-27 | 2006-04-27 | Anthony Golia | Fault tolerant network architecture |
US20090300218A1 (en) * | 2008-05-30 | 2009-12-03 | Asustek Computer Inc. | Network sharing method |
CN103312661A (zh) * | 2012-03-07 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种服务访问方法及装置 |
CN103491000A (zh) * | 2013-09-17 | 2014-01-01 | 烽火通信科技股份有限公司 | 虚拟路由器冗余协议虚拟ip和mac的管理***及方法 |
CN103685608A (zh) * | 2013-12-24 | 2014-03-26 | 北京启明星辰信息技术股份有限公司 | 一种自动配置安全虚拟机ip地址的方法及装置 |
CN103731514A (zh) * | 2013-12-29 | 2014-04-16 | 国云科技股份有限公司 | 一种虚拟网络管理方法 |
CN103812704A (zh) * | 2014-02-25 | 2014-05-21 | 国云科技股份有限公司 | 一种面向虚拟机的公网ip动态管理方法 |
Non-Patent Citations (1)
Title |
---|
岳建辉等: "VIP: 集群环境下面向高可靠和高性能的通信", 《小型微型计算机***》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878068A (zh) * | 2017-01-24 | 2017-06-20 | 新华三技术有限公司 | 一种配置管理方法和装置 |
CN106878068B (zh) * | 2017-01-24 | 2020-05-12 | 新华三技术有限公司 | 一种配置管理方法和装置 |
CN112165537A (zh) * | 2020-09-17 | 2021-01-01 | 广州锦行网络科技有限公司 | 一种用于ping回复的虚拟IP的方法 |
CN112165537B (zh) * | 2020-09-17 | 2021-08-27 | 广州锦行网络科技有限公司 | 一种用于ping回复的虚拟IP的方法 |
CN113497765A (zh) * | 2021-09-08 | 2021-10-12 | 中兴通讯股份有限公司 | 一种路由管理的方法、装置、电子设备和存储介质 |
CN114006955A (zh) * | 2021-10-28 | 2022-02-01 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN114006955B (zh) * | 2021-10-28 | 2023-09-05 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104378449B (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110611588B (zh) | 一种网络创建方法、服务器、计算机可读存储介质和*** | |
EP1780940B1 (en) | High availability network systems | |
CN102025798B (zh) | 地址分配处理方法、装置和*** | |
CN108234158B (zh) | Vnf的建立方法、nfvo以及网络*** | |
DE112016006080T5 (de) | Verwaltung von virtuellen desktopinstanzenpools | |
CN105099789A (zh) | 一种网元升级方法及设备 | |
US6651093B1 (en) | Dynamic virtual local area network connection process | |
CN106657354A (zh) | 一种负载均衡装置和方法 | |
CN114070723B (zh) | 裸金属服务器的虚拟网络配置方法、***及智能网卡 | |
RU2533638C2 (ru) | Способ и устройство для конфигурирования данных | |
CN104503965A (zh) | PostgreSQL高弹性的高可用及负载均衡实现方法 | |
CN104378449A (zh) | 一种虚拟ip的实现方法 | |
CN112583648B (zh) | 一种基于dns的智能服务故障处理方法 | |
US10419392B2 (en) | Method, device and system for implementing address sharing | |
CN110635928B (zh) | 一种控制方法、装置以及计算机存储介质 | |
CN103825868A (zh) | 一种本地语音逃生的方法、本地网关及*** | |
CN111371897B (zh) | 一种基于组网***的反向连接方法、装置及存储介质 | |
CN107911496A (zh) | 一种vpn服务端代理dns的方法及装置 | |
US10348521B2 (en) | Distributed gateways | |
CN111817953A (zh) | 基于虚拟路由器冗余协议vrrp的主设备选举方法及装置 | |
CN114553574B (zh) | 一种基于云服务平台的高可用IPsecVPN实现*** | |
CN113923149B (zh) | 网络接入方法、装置、网络***、电子设备及存储介质 | |
WO2016101424A1 (zh) | 一种实现终端业务信息处理的方法及装置 | |
CN111984372A (zh) | 一种数据处理方法及*** | |
CN110768981A (zh) | 一种手持机远程维护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |