通信方法、服务器及通信系统的制作方法
【专利摘要】本发明实施例提供了一种通信方法,所述方法包括:在第一服务器与外部网络通信中断后,所述第一服务器请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,且所述第二服务器与外部网络通信正常,当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容。通过本发明实施例,可以保证通信的可靠性。
【专利说明】通信方法、服务器及通信系统
【技术领域】
[0001]本发明涉及网络通信领域,具体涉及一种通信方法、服务器及通信系统。
【背景技术】
[0002]在企业统一通信(UnifiedCommunicat1n,UC)或呼叫中心(Contact Center,CC)组网中,存在以下设备:用户终端、网关设备以及业务服务器。其中,用户终端可能是硬件的IP电话或者装在个人计算机PC上的软电话;网关设备用于提供用户注册、呼叫、路由功能;业务服务器用于执行实现统一通信和/或呼叫中心业务控制功能。
[0003]图1为一个典型的终端和网关的组网架构图,服务器群A和服务器群B各代表一个网关设备。为了保证在服务器群中的一个设备网络中断之后,服务器还能够提供稳定的服务,现有技术提供了以下的方案。提供会话初始化协议(Sess1n Initiat1nProtocol, SIP)接入功能的服务器群A中的两台服务器采用双机模式,当其中一台服务器的网络中断(比如网络I中断)时,另一台服务器通过网络2通信,这种方案的缺陷是:组网需要在两台服务器部署相同的业务,在双机部署下,只有一台服务器配置对外IP地址,提供业务功能,另一台作为备份,也需要部署业务,当一台服务器故障时,将IP地址配置到与外部网络通信正常的另一台服务器上,但此模式下一台服务器不能工作,只是作为备份,并且与外部网络中断的服务器,即使本身没有故障,也不能用来执行其他工作,比较浪费资源。
【发明内容】
[0004]本发明的目的是提供一种通信方法,以解决现有技术中服务器群通过采用双机模式来提供稳定服务时,造成的资源浪费问题。
[0005]第一方面,本发明实施例提供了一种通信方法,所述方法包括:
[0006]在第一服务器与外部网络通信中断后,所述第一服务器请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,且所述第二服务器与外部网络通信正常,其中,所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0007]当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及
[0008]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
[0009]基于第一方面,在第一种可能的实施方式中,所述第一服务器请求所述仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,具体包括:
[0010]所述第一服务器向所述仲裁服务器发送通知消息,以通知所述仲裁服务器根据所述服务器群中的其他服务器上报给所述仲裁服务器的自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器;或者,
[0011]所述第一服务器通知所述仲裁服务器所述第一服务器与外部网络通信中断了,并通知所述服务器群中的其他服务器向所述仲裁服务器上报自身的网络状态信息,以使得所述仲裁服务器从所述服务器群中选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
[0012]基于第一方面,或第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,之前,还包括:
[0013]所述第一服务器接收所述仲裁服务器发送的所述第二服务器的内网IP地址和端Π ;
[0014]所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,具体包括:
[0015]所述第一服务器向所述第二服务器发送所述第一报文,所述第一报文的源IP地址和端口为所述第一服务器的内网IP地址和端口,所述第一报文的目的IP地址和端口为所述第二服务器的内网IP地址和端口,所述第一报文还包括代理标识、第一业务内容、所述通信设备的IP地址和端口,以使得:所述第二服务器根据所述代理标识确定所述第一报文中的第一业务内容是需要所述第二服务器代理所述第一服务器进行转发的第一业务内容时,将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址和端口为所述第一服务器的外网IP地址和端口,所述第三报文的目的IP地址和端口为所述通信设备的IP地址和端口,并将第三报文转发给所述通信设备。
[0016]基于第一方面、或第一方面的第一种可能的实施方式、或第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述方法还包括:当所述第一服务器与外部网络恢复正常后,所述第一服务器向所述通信设备发送第二 ARP报文,所述第二 ARP报文中携带所述第一服务器的外网IP地址和所述第一服务器的外网MAC地址,用于通知所述通信设备将所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系中的所述第二服务器的外网MAC地址更新为所述第一服务器的外网MAC地址。
[0017]第二方面,本发明实施例提供了一种通信方法,所述方法包括:
[0018]第二服务器接收所述第二服务器所在的服务器群中的仲裁服务器发送的通知消息,所述通知消息用于通知所述第二服务器所述仲裁服务器指定所述第二服务器作为所述服务器群中的第一服务器的代理服务器,其中,所述第一服务器与外部网络通信中断,且所述第二服务器与外部网络通信正常;
[0019]所述第二服务器根据所述仲裁服务器的通知消息向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0020]当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;以及
[0021]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器,所述包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,并在根据所述目的IP地址和端口确定所述第二业务内容为发送给所述第一服务器的报文时将所述第二业务内容通过内部网络转发给所述第一服务器。
[0022]基于第二方面,在第一种可能的实施方式中,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;具体包括:
[0023]所述第二服务器通过内部网络接收所述第一服务器发送的所述第一报文,所述第一报文中包含需要向外部转发的第一业务内容,所述第一业务内容的目的通信设备的IP地址和所述通信设备的端口,所述第一报文的源IP地址为所述第一服务器的内网IP地址,所述第一报文的源端口为所述第一服务器的端口,所述第一报文的目的IP地址为所述第二服务器的内网IP地址,所述第一报文的目的端口为所述第二服务器的端口 ;
[0024]第二服务器的业务层对所述第一报文中的第一业务内容进行封装,生成第二报文,所述第二报文的源IP地址为所述第二服务器的外网IP地址,所述第二报文的源端口为第一服务器在所述服务器群中的ID号和本端服务器转发所述第二报文的起始端口之和,所述第二报文的目的IP地址为所述通信设备的IP地址,所述第二报文的目的端口为所述通信设备的端口;
[0025]将封装后的所述第二报文发送给所述第二服务器的报文分析层;
[0026]所述第二服务器的报文分析层根据所述第二报文的报文源端口,识别出所述第二报文中的第一业务内容是所述第二服务器代理所述第一服务器转发的业务内容;
[0027]所述第二服务器的报文分析层将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址为所述第一服务器的外网IP地址,所述第三报文的源端口为所述第一服务器的端口;
[0028]将所述第三报文发送给所述第二服务器的网卡驱动,由所述网卡向所述通信设备发送。
[0029]基于第二方面,或第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述将所述第二业务内容通过内部网络转发给所述第一服务器之前还包括,将所述包含所述第二业务内容的报文的目的MAC地址替换为所述第一服务器的内网MAC地址。
[0030]基于第二方面、或第二方面的第一种可能的实施方式、或第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述第二服务器与所述第一服务器位于同一网段。
[0031]第三方面,本发明实施例提供了一种通信方法,所述方法包括:
[0032]接收第一服务器发送的代理请求,所述代理请求用于请求本端为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,所述第一服务器与外部网络通信中断,本端服务器与所述第一服务器和所述第二服务器位于同一服务器群,且所述第二服务器与外部网络通信正常;
[0033]为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器;
[0034]指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
[0035]基于第三方面,在第一种可能的实施方式中,所述为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器,具体包括:
[0036]根据所述服务器群中的其他服务器上报给本端的所述其他服务器自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
[0037]基于第三方面、或第三方面的第一种可能的实施方式,在第二种可能的实施方式中,还包括:
[0038]接收所述第一服务器与外部网络恢复正常后发送的解除代理请求;
[0039]根据所述代理解除请求解除所述第二服务器与所述第一服务器的代理关系。
[0040]第四方面,本发明实施例提供了一种服务器,所述服务器包括:
[0041]请求单元,用于在本端服务器与外部网络通信中断后,请求所述本端服务器所在的服务器群中的仲裁服务器为所述本端服务器指定所述服务器群中的第二服务器作为所述本端服务器的代理服务器,且所述第二服务器与外部网络通信正常,其中,所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0042]第一发送单元,用于当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及
[0043]第一接收单元,用于当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
[0044]基于第四方面,在第一种可能的实施方式中,所述请求单元,具体用于:
[0045]向所述仲裁服务器发送通知消息,以通知所述仲裁服务器根据所述服务器群中的其他服务器上报给所述仲裁服务器的自身的网络状态信息选择一个网络状态良好的服务器作为所述本端服务器的代理服务器;或者,
[0046]通知所述仲裁服务器所述本端服务器与外部网络通信中断了,并通知所述服务器群中的其他服务器向所述仲裁服务器上报自身的网络状态信息,以使得所述仲裁服务器从所述服务器群中选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
[0047]基于第四方面、或第四方面的第一种可能的实施方式,在第二种可能的实施方式中,所述服务器还包括:
[0048]第二接收单元,用于接收所述仲裁服务器发送的所述第二服务器的内网IP地址和端口 ;
[0049]所述的第一发送单元,具体用于:
[0050]向所述第二服务器发送所述第一报文,所述第一报文的源IP地址和端口为所述本端服务器的内网IP地址和端口,所述第一报文的目的IP地址和端口为所述第二服务器的内网IP地址和端口,所述第一报文还包括代理标识、第一业务内容、所述通信设备的IP地址和端口,以使得:所述第二服务器根据所述代理标识确定所述第一报文中的第一业务内容是需要所述第二服务器代理所述本端服务器进行转发的第一业务内容时,将所述第一业务内容封装到第三报文中,所述第三报文的为所述本端服务器的外网IP地址和端口,所述第三报文的目的IP地址和端口为所述通信设备的IP地址和端口,并将所述第三报文转发给所述通信设备。
[0051]基于第四方面、或第四方面的第一种可能的实施方式、或第四方面的第二种可能的实施方式,在第三种可能的实施方式中,所述服务器还包括:第二发送单元,用于当所述本端服务器与外部网络恢复正常后,向所述通信设备发送第二 ARP报文,所述第二 ARP报文中携带所述本端服务器的外网IP地址和所述本端服务器的外网MAC地址,用于通知所述通信设备将所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系中的所述第二服务器的外网MAC地址更新为所述本端服务器的外网MAC地址。
[0052]第五方面,本发明实施例提供了一种服务器,所示服务器包括:
[0053]第一接收单元,用于接收所述本端服务器所在的服务器群中的仲裁服务器发送的通知消息,所述通知消息用于通知所述本端服务器所述仲裁服务器指定所述本端服务器作为所述服务器群中的第一服务器的代理服务器,其中,所述第一服务器与外部网络通信中断,且所述本端服务器与外部网络通信正常;
[0054]发送单元,用于根据第一接收单元接收到的通知消息向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述本端服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述本端服务器的外网MAC地址的映射关系;
[0055]代理单元,用于当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;以及
[0056]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器,所述包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,并在根据所述目的IP地址和端口确定所述第二业务内容为发送给所述第一服务器的报文时将所述第二业务内容通过内部网络转发给所述第一服务器。
[0057]基于第五方面,在第一种可能的实施方式中,所述代理单元,进一步包括:
[0058]接收子单元,用于通过内部网络接收所述第一服务器发送的所述第一报文,所述第一报文中包含需要向外部转发的第一业务内容,所述第一业务内容的目的通信设备的IP地址和所述通信设备的端口,所述第一报文的源IP地址为所述第一服务器的内网IP地址,所述第一报文的源端口为所述第一服务器的端口,所述第一报文的目的IP地址为本端服务器的内网IP地址,所述第一报文的目的端口为所述本端服务器的端口 ;
[0059]封装子单元,用于对所述第一报文中的第一业务内容进行封装,生成第二报文,所述第二报文的源IP地址为所述第二服务器的外网IP地址,所述第二报文的源端口为第一服务器在所述服务器群中的ID号和本端服务器转发所述第二报文的起始端口之和,所述第二报文的目的IP地址为所述通信设备的IP地址,所述第二报文的目的端口为所述通信设备的端口,还用于将所述第二报文发送给报文分析子单元;
[0060]报文分析子单元,用于根据所述第二报文的报文源端口,识别出所述第二报文中的第一业务内容是所述第二服务器代理所述第一服务器转发的业务内容,将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址为所述第一服务器的外网IP地址,所述第三报文的源端口为所述第一服务器的端口 ;将所述第三报文发送给所述本端服务器的网卡驱动;
[0061]所述网卡驱动用于通过所述网卡向所述通信设备发送所述第三报文。
[0062]基于第五方面、或第五方面的第一种可能的实施方式,在第二种可能的实施方式中,所述代理单元将所述第二业务内容通过内部网络转发给所述第一服务器之前还用于,将所述包含所述第二业务内容的报文的目的MAC地址替换为所述第一服务器的内网MAC地址。
[0063]第六方面,本发明实施例提供了一种服务器,所述服务器包括:
[0064]接收单元,用于接收第一服务器发送的代理请求,所述代理请求用于请求本端为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,所述第一服务器与外部网络通信中断,本端服务器与所述第一服务器和所述第二服务器位于同一服务器群,且所述第二服务器与外部网络通信正常;
[0065]代理分配单元,用于为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器;
[0066]指示单元,用于指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
[0067]基于第六方面,在第一种可能的实施方式中,所述代理分配单元为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器,具体包括:
[0068]根据所述服务器群中的其他服务器上报给本端的所述其他服务器自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
[0069]基于第六方面、或第六方面的第一种可能的实施方式,在第二种可能的实施方式中,所述接收单元还用于:
[0070]接收第一服务器与外部网络恢复正常后发送的解除代理请求;
[0071]所述代理分配单元用于根据所述解除代理请求解除所述第二服务器与所述第一服务器的代理关系。
[0072]第一方面,本发明实施例提供了一种通信系统,所述系统包括位于同一服务器群的第一服务器、第二服务器以及仲裁服务器;
[0073]在第一服务器与外部网络通信中断后,所述第一服务器请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,且所述第二服务器与外部网络通信正常;
[0074]所述仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器,并指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
[0075]所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0076]当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及
[0077]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
[0078]通过本发明实施例提供的通信方法,当服务器群中的一个服务器与外部网络中断后,请求仲裁服务器为故障服务器指定服务器群中的代理服务器,故障服务器通过内部网络把报文转发到代理服务器,由代理服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由代理服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器与外部网络正常通信,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
【专利附图】
【附图说明】
[0079]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0080]图1是现有技术的统一通信的一种网络架构示意图;
[0081]图2是本发明实施例提供的通信方法的应用场景架构图;
[0082]图3是本发明实施例提供的通信方法的流程图;
[0083]图4是本发明实施例提供的通信方法另一实施例的流程图;
[0084]图5是本发明实施例提供的通信方法另一实施例的流程图;
[0085]图6是本发明实施例提供的服务器一实施例的结构图;
[0086]图7是本发明实施例提供的服务器一实施例的结构图;
[0087]图8是本发明实施例提供的服务器一实施例的结构图;
[0088]图9是本发明实施例提供的服务器一实施例的结构图;
[0089]图10是本发明实施例提供的服务器一实施例的结构图;
[0090]图11是本发明实施例提供的服务器一实施例的结构图。
【具体实施方式】
[0091]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0092]如图2所示,在统一通信的应用环境中,多台服务器构成一个服务器群,服务器群的各个服务器之间通过内部网络进行通信,以完成服务器之间的协作。状态管理等工作,各服务器之间也通过交换机等与外部网络连接,实现与IP硬终端等通信设备之间的通信,在服务器群中每个服务器具有不同的IP地址和外网媒体介入控制(Media Access Control,MAC)地址,并且每台服务都包含两个网卡,一个与外部网络通信,一个用于内部网络通信,每个用于内部网络通信的内部网卡也具有一个网卡MAC地址,与外部通信时通过外部MAC地址,与内网其他服务器通信时,通过内网MAC地址。本发明实施例的核心思想在于:当服务器群中的一个服务器与外部网络中断后,服务器通过内部网络把报文转发到与外部通信正常的服务器,由通信正常的服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部通信设备与故障服务器通信时,也由一个通信正常的服务器进行数据转发,整个系统中,只要有一个服务器与外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现服务器群中只要有一台服务器或单板网络正常,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0093]在上述的服务器群中的一个服务器中部署有仲裁进程,部署有仲裁进程的服务器可以称之为仲裁服务器,当仲裁服务器中的仲裁进程启动后,获取服务器群中每个服务器的内部网卡MAC地址:在内部网络中,每个服务器都有一个内网互联网协议(InternetProtocol, IP)地址,每个服务器知道仲裁服务器的内网IP地址;每个服务器在业务启动时,会主动告知仲裁服务器本服务器的内部网卡MAC地址,同时仲裁服务器广播这些MAC给服务器群中所有的服务器,从而服务器群中的各服务器了解了其他服务器的内部MAC地址;同时仲裁服务器也管理所有服务器的内网IP地址和端口并广播给每个服务器,使每个服务器了解其他服务器内网IP地址和端口。
[0094]仲裁服务器同时对同网段的服务器进行归类,作为网络代理服务器的资源池,当有服务器申请网络代理服务器时,从资源池中分配一个服务器作为代理服务器,通知代理服务器发送地址解析协议(Address Resolut1n Protocol, ARP)报文;当服务器网络恢复后,重新把代理服务器回收回资源池,解除代理服务器和请求代理的服务器之间的代理关系O
[0095]基于以上应用场景,本发明实施例提供了一种通信方法,在本实施例中,执行主体可以是与外部网络产生连接故障的任意一个服务器,例如图2中的服务器A,本实施例中,称之为第一服务器,所述方法包括:
[0096]301,在第一服务器与外部网络通信中断后,所述第一服务器请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器;
[0097]其中,所述第二服务器与外部网络通信正常,所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0098]优选地,所述仲裁服务器指定与所述第一服务器位于同一网段的服务器作为所述第一服务器的代理服务器。
[0099]更具体而言,管理员可以通过统一配置,在服务器群中的任意一个服务器中配置仲裁进程,保证不管服务器与外部网络连接是否正常,都能够执行仲裁进程。图2所示的应用场景可以知道,所述第二服务器与所述第一服务器,属于同一个服务器群,且所述第二服务器与外部网络通信正常,第二服务器可以是服务器B也可以是服务器C。
[0100]配置了仲裁进程的服务器称之为仲裁服务器,仲裁服务器也可能是服务器A本身,也可能是服务器B或者是服务器C。
[0101]如果第一服务器本身即是仲裁服务器,则,第一服务器在发生故障时,第一服务器的故障处理进程,向仲裁进程发送请求,请求仲裁进程为第一服务器指定代理服务器。
[0102]仲裁服务器可以基于以下的几种情况,为第一服务器指定代理服务器,例如:
[0103]第一服务器向仲裁服务器发送通知消息,通知所述仲裁服务器根据所述服务器群中的其他服务器上报给所述仲裁服务器的自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器;其中,其他服务器上报给仲裁服务器的自身网络状态信息可以是周期性上报给所述仲裁服务器的,也可以是实时上报给所述仲裁服务器的,或者,也可以是仲裁服务器在接收到第一服务器的通知消息之后,向服务器群中的全部代理服务器广播通知,通知这些服务器上报自身的网络状况,之后,这些服务器上报的网络状况信息。
[0104]或者,所述第一服务器通知所述仲裁服务器所述第一服务器与外部网络通信中断了,并通知所述服务器群中的其他服务器向所述仲裁服务器上报自身的网络状态信息,所述仲裁服务器从所述服务器群中选择一个网络状态良好的服务器作为所述第一服务器的代理服务器;
[0105]在一种可能的情况下,仲裁服务器就是服务器B,经过判断后,服务器B确定自身是服务器群中网络状况最好的一个服务器,则可以选择自身作为第一服务器的代理服务器。
[0106]之后,仲裁服务器向确定的第二服务器,例如服务器B发送通知,通知第二服务器向通信设备发送第一 ARP地址解析协议报文,告知网络中的通信设备之后第一服务器与外部网络的业务报文将通过第二服务器进行转发。
[0107]之后,第二服务器向通信设备发送第一 ARP报文,告知网络侧的通信设备之后第一服务器的IP地址对应的MAC地址为第二服务器的外网MAC地址。
[0108]302,当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;
[0109]具体而言,第一服务器向所述第二服务器发送第一报文,所述第一报文中包含需要向外部转发的第一业务内容以及用于标识所述第一业务内容是需要所述第二服务器代理所述第一服务器进行转发的代理标识。
[0110]更具体的说,所述第一服务器向所述第二服务器发送所述第一报文,所述第一报文的源IP地址和端口为所述第一服务器的内网IP地址和端口,所述第一报文的目的IP地址和端口为所述第二服务器的内网IP地址和端口,所述第一报文还包括代理标识、第一业务内容、所述通信设备的IP地址和端口,以使得:所述第二服务器根据所述代理标识确定所述第一报文中的第一业务内容是需要所述第二服务器代理所述第一服务器进行转发的第一业务内容时,将所述第一业务内容封装到第三报文,所述第三报文的源IP地址和端口为所述第一服务器的外网IP地址和端口,所述第三报文的目的IP地址和端口为所述通信设备的IP地址和端口,并将第三报文转发给所述通信设备。
[0111]303,当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容;
[0112]具体的,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
[0113]当所述第一服务器与外部网络恢复正常后,所述第一服务器向所述仲裁服务器发送解除代理请求,请求所述仲裁服务器解除所述第二服务器对所述第一服务器的代理关系O
[0114]所述第一服务器向所述通信设备发送第二 ARP报文,所述第二 ARP报文中携带所述第一服务器的外网IP地址和所述第一服务器的外网MAC地址,用于通知所述通信设备将所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系中的所述第二服务器的外网MAC地址更新为所述第一服务器的外网MAC地址。
[0115]类似的,如果在第二服务器在执行代理的过程中,也出现了故障,则仲裁服务器中断第二服务器对第一服务器的代理工作,为第一服务器指定另外的服务器,例如服务器C,来代理服务器A与外部网络进行通信,不多赘述。
[0116]通过本发明实施例提供的通信方法,当服务器群中的一个服务器与外部网络中断后,服务器通过内部网络把报文转发到与外部通信正常的服务器,由通信正常的服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由一个通信正常的服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器或单板网络正常,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0117]相应的,本发明实施例提供了一种通信方法,在本实施例中,执行主体可以服务器群中与外部网络连接正常的任意一个服务器,例如图2中的服务器B,本实施例中,称之为第二服务器,所述方法包括:
[0118]401,第二服务器接收所述第二服务器所在的服务器群中的仲裁服务器发送的通知消息,所述通知消息用于通知所述第二服务器所述仲裁服务器指定所述第二服务器作为所述服务器群中的第一服务器的代理服务器,其中,所述第一服务器与外部网络通信中断,且所述第二服务器与外部网络通信正常;
[0119]402,所述第二服务器根据所述仲裁服务器的通知消息向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0120]403,当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;
[0121]404,当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容;
[0122]其中,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器,所述包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,并在根据所述目的IP地址和端口确定所述第二业务内容为发送给所述第一服务器的报文时将所述第二业务内容通过内部网络转发给所述第一服务器。
[0123]具体而言,在步骤403中,当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容;进一步包括:
[0124]所述第二服务器通过内部网络接收所述第一服务器发送的所述第一报文,所述第一报文中包含需要向外部转发的第一业务内容,所述第一业务内容的目的通信设备的IP地址和所述通信设备的端口,所述第一报文的源IP地址为所述第一服务器的内网IP地址,所述第一报文的源端口为所述第一服务器的端口,所述第一报文的目的IP地址为所述第二服务器的内网IP地址,所述第一报文的目的端口为所述第二服务器的端口 ;
[0125]第二服务器的业务层对所述第一报文中的第一业务内容进行封装,生成第二报文,所述第二报文的源IP地址为所述第二服务器的外网IP地址,所述第二报文的源端口为第一服务器在所述服务器群中的身份标识号和本端服务器转发所述第二报文的起始端口之和,所述第二报文的目的IP地址为所述通信设备的IP地址,所述第二报文的目的端口为所述通信设备的端口;
[0126]将封装后的所述第二报文发送给所述第二服务器的报文分析层;
[0127]所述第二服务器的报文分析层根据所述第二报文的报文源端口,识别出所述第二报文中的第一业务内容是所述第二服务器代理所述第一服务器转发的业务内容;
[0128]所述第二服务器的报文分析层将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址为所述第一服务器的外网IP地址,所述第三报文的源端口为所述第一服务器的端口;
[0129]将所述第三报文发送给所述第二服务器的网卡驱动,由所述网卡向所述通信设备发送。
[0130]更具体的,当第一服务器A想发送业务数据给通信设备时,查询到自己的网络代理服务器是B,则通过内部网络发送报文到服务器B ;其中通信设备可以是IP硬终端;
[0131]将第二报文的报文源端口设定为:
[0132]报文源端口 =A服务器在服务器群中的身份标识〈〈8+A服务器报文在A服务器的发送端口 +B服务器发送业务报文的起始端口 ;
[0133]需要指出的是,在服务器群中,每个服务器都用一个独立身份标识(Identity, ID)进行标识,每个服务的端口都有一个标识,B服务器发送业务报文的起始端口可以根据系统对外通信端口来确定。第二报文的目的IP地址和端口还是通信设备的IP地址和端口。
[0134]生成的第二报文,由业务层发送给协议栈,协议栈再发送给在服务器B的操作系统的报文分析层,对从协议栈发往驱动的所述第二报文进行处理:通过反向解析报文源端口得出此报文的端口为A服务器发送业务报文的端口和B服务器发送业务报文的端口的组合,将第二报文中第一业务内容封装到第三报文中,第三报文的源IP地址为服务器A的外网IP地址和端口,再通过服务器B的网卡向外部通信设备发送第三报文。
[0135]步骤404中所述当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容;进一步包括:
[0136]所述通信设备发送的包含所述第二业务内容的报文的目的IP地址为所述第一服务器的外网IP地址,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址;
[0137]根据所述目的IP地址,确定第二业务内田的最终归属为所述第一服务器;
[0138]将所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址替换为所述第一服务器的内部网卡的MAC地址,也就是第一服务器的内网MAC地址;
[0139]通过内部网络将所述第二业务内容发送给所述第一服务器。
[0140]更具体的说交换机收到外部网络中的通信设备根据服务器A的外网IP地址和服务器B的外网MAC地址发送到服务器群的交换机之后,再根据报文的目的MAC地址发送给服务器B之后,服务器B的网卡驱动将接收到的第二报文发送到服务器B的报文分析层;月艮务器B的报文分析层判断报文的目的IP地址和端口对应的服务器为服务器B还是服务器B代理的服务器A,当匹配目的IP地址和端口为服务器A的外网IP地址和端口时,则服务器B的报文分析层会先查询服务器A的内网mac地址,并替换报文的目的MAC为服务器A的内网mac地址;随后发送回网卡驱动,由网卡发送此报文;此报文会经过服务器群内部网络,发送到服务器A ;服务器A的报文分析层发现此报文是本服务器应该接收的报文,则转发给服务器A的网络协议栈,并最终由服务器A的业务进程进行处理。
[0141]通过本发明实施例提供的通信方法,当服务器群中的一个服务器与外部网络中断后,服务器通过内部网络把报文转发到与外部通信正常的服务器,由通信正常的服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由一个通信正常的服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器或单板网络正常,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0142]相应的,本发明实施例还提供了一种通信方法,该实施例中的执行主体可以是仲裁服务器,即部署了仲裁进程的服务器,由图5可见,所述方法包括;
[0143]501,接收第一服务器发送的代理请求,所述代理请求用于请求本端为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,所述第一服务器与外部网络通信中断,本端服务器与所述第一服务器和所述第二服务器位于同一服务器群,且所述第二服务器与外部网络通信正常;
[0144]配置了仲裁进程的服务器称之为仲裁服务器,仲裁服务器也可能是服务器A本身,也可能是服务器B或者是服务器C。
[0145]如果第一服务器本身即是仲裁服务器,则,第一服务器在发生故障时,第一服务器的故障处理进程,向仲裁进程发送请求,请求仲裁进程为第一服务器指定代理服务器。
[0146]502,为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器;
[0147]具体而言,仲裁服务器可以根据所述服务器群中的其他服务器上报给本端的所述其他服务器自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器;或者,
[0148]向所述服务器群中的全部服务器发送通知,通知所述服务器群中的其他服务器向所述仲裁服务器上报自身的网络状态信息;
[0149]根据所述其他服务器自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
[0150]在一种可能的情况下,仲裁服务器就是服务器B,经过网络判断后,服务器B确定自身是服务器群中网络状况最好的一个服务器,则可以选择自身作为第一服务器的代理服务器。
[0151]503,指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0152]在上述的实施例中,如果仲裁服务器可以服务器B,经过网络判断后,服务器B确定自身是服务器群中网络状况最好的一个服务器,则可以选择自身作为第一服务器的代理服务器。此时,仲裁服务器的仲裁进程向仲裁服务器的业务进程发送指示,指示业务进程向通信设备发送第一 ARP报文,不多赘述。
[0153]类似的,如果在制定的代理服务器也出现故障时,则仲裁服务器可以重新执行前述的步骤,重新为服务器A选择代理服务器。
[0154]如果第一服务器与外部网络恢复正常通信,则会接收所述第一服务器在与外部网络恢复正常时发送的解除代理请求;
[0155]根据所述解除代理请求解除所述第二服务器与所述第一服务器的代理关系。
[0156]通过上述的实施例,当服务器群中的一个服务器与外部网络中断后,仲裁服务器为故障服务器指定服务器群中的代理服务器,故障服务器通过内部网络把报文转发到代理服务器,由代理服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由代理服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器与外部网络正常通信,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0157]相应的,如图6所示,本发明实施例提供了一种服务器,所述的服务器例如可以是图2中的服务器A,所述服务器包括:
[0158]请求单元601,用于在本端服务器与外部网络通信中断后,请求所述本端服务器所在的服务器群中的仲裁服务器为所述本端服务器指定所述服务器群中的第二服务器作为所述本端服务器的代理服务器,且所述第二服务器与外部网络通信正常,其中,所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0159]第一发送单元602,用于当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及
[0160]第一接收单元603,用于当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
[0161]具体而言,所述请求单元,具体用于:
[0162]向所述仲裁服务器发送通知消息,以通知所述仲裁服务器根据所述服务器群中的其他服务器上报给所述仲裁服务器的自身的网络状态信息选择一个网络状态良好的服务器作为所述本端服务器的代理服务器;或者,
[0163]通知所述仲裁服务器所述本端服务器与外部网络通信中断了,并通知所述服务器群中的其他服务器向所述仲裁服务器上报自身的网络状态信息,以使得所述仲裁服务器从所述服务器群中选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
[0164]在一种可能的实施方式中,所述服务器还包括:
[0165]第二接收单元,用于接收所述仲裁服务器发送的所述第二服务器的内网IP地址和端口 ;
[0166]第一发送单兀,具体用于:
[0167]向所述第二服务器发送所述第一报文,所述第一报文的源IP地址和端口为所述本端服务器的内网IP地址和端口,所述第一报文的目的IP地址和端口为所述第二服务器的内网IP地址和端口,所述第一报文还包括代理标识、第一业务内容、所述通信设备的IP地址和端口,以使得:所述第二服务器根据所述代理标识确定所述第一报文中的第一业务内容是需要所述第二服务器代理所述本端服务器进行转发的第一业务内容时,将所述第一业务内容封装到第三报文中,所述第三报文的为所述本端服务器的外网IP地址和端口,所述第三报文的目的IP地址和端口为所述通信设备的IP地址和端口,并将所述第三报文转发给所述通信设备。
[0168]在一种可能的实施方式中,所述服务器还包括:第二发送单元,用于当所述本端服务器与外部网络恢复正常后,向所述通信设备发送第二 ARP报文,所述第二 ARP报文中携带所述本端服务器的外网IP地址和所述本端服务器的外网MAC地址,用于通知所述通信设备将所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系中的所述第二服务器的外网MAC地址更新为所述本端服务器的外网MAC地址。
[0169]通过本发明实施例提供的服务器,本端服务器与外部网络中断后,服务器通过内部网络把报文转发到与外部通信正常的服务器,由通信正常的服务器再向外进行转发,夕卜部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由一个通信正常的服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器或单板网络正常,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0170]相应的,如图7所示,本发明实施例提供了一种服务器,所述服务器可以是图2中的服务器B,服务器包括:
[0171]第一接收单元701,用于接收所述本端服务器所在的服务器群中的仲裁服务器发送的通知消息,所述通知消息用于通知所述本端服务器所述仲裁服务器指定所述本端服务器作为所述服务器群中的第一服务器的代理服务器,其中,所述第一服务器与外部网络通信中断,且所述本端服务器与外部网络通信正常;
[0172]发送单元702,用于根据第一接收单元接收到的通知消息向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述本端服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述本端服务器的外网MAC地址的映射关系;
[0173]代理单元703,用于当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;以及
[0174]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器,所述包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,并在根据所述目的IP地址和端口确定所述第二业务内容为发送给所述第一服务器的报文时将所述第二业务内容通过内部网络转发给所述第一服务器。
[0175]在一种可选的实施方式中,所述代理单元,进一步包括:
[0176]接收子单元,用于通过内部网络接收所述第一服务器发送的所述第一报文,所述第一报文中包含需要向外部转发的第一业务内容,所述第一业务内容的目的通信设备的IP地址和所述通信设备的端口,所述第一报文的源IP地址为所述第一服务器的内网IP地址,所述第一报文的源端口为所述第一服务器的端口,所述第一报文的目的IP地址为本端服务器的内网IP地址,所述第一报文的目的端口为所述本端服务器的端口 ;
[0177]封装子单元,用于对所述第一报文中的第一业务内容进行封装,生成第二报文,所述第二报文的源IP地址为所述第二服务器的外网IP地址,所述第二报文的源端口为第一服务器在所述服务器群中的ID号和本端服务器转发所述第二报文的起始端口之和,所述第二报文的目的IP地址为所述通信设备的IP地址,所述第二报文的目的端口为所述通信设备的端口,,还用于将所述第二报文发送给报文分析子单元;
[0178]报文分析子单元,用于根据所述第二报文的报文源端口,识别出所述第二报文中的第一业务内容是所述第二服务器代理所述第一服务器转发的业务内容,将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址为所述第一服务器的外网IP地址,所述第三报文的源端口为所述第一服务器的端口 ;将所述第三报文发送给所述本端服务器的网卡驱动;
[0179]所述网卡驱动用于通过所述网卡向所述通信设备发送所述第三报文。
[0180]通过本发明实施例提供的服务器,当服务器群中的一个服务器与外部网络中断后,服务器通过内部网络把报文转发到与外部通信正常的本端服务器,由本端服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由本端服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器或单板网络正常,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0181]相应的,本发明实施例还提供了一种服务器,该服务器为仲裁服务器,如图8可见,所述服务器包括:
[0182]接收单元801,用于接收第一服务器发送的代理请求,所述代理请求用于请求本端为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,所述第一服务器与外部网络通信中断,本端服务器与所述第一服务器和所述第二服务器位于同一服务器群,且所述第二服务器与外部网络通信正常;
[0183]代理分配单元802,用于为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器;
[0184]指示单元803,用于指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
[0185]在一种实施方式中,所述指定单元,具体用于:
[0186]根据所述服务器群中的其他服务器上报给本端的所述其他服务器自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
[0187]在一种实施方式中,所述接收单元还用于:当所述第一服务器与外部网络恢复正常后发送的解除代理请求,所述代理分配单元用于根据所述解除代理请求解除所述第二服务器与所述第一服务器的代理关系。
[0188]通过本发明实施例,当服务器群中的一个服务器与外部网络中断后,请求本端服务器为故障服务器指定服务器群中的代理服务器,故障服务器通过内部网络把报文转发到代理服务器,由代理服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由代理服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器与外部网络正常通信,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0189]图9为本发明实施例提供的服务器的示意图,如图9所示,本实施例包括网络接口91、处理器92和存储器93。系统总线94用于连接网络接口 91、处理器72和存储器73。
[0190]网络接口 91用于与其他服务器通信。
[0191]存储器93可以是永久存储器,例如硬盘驱动器和闪存,存储器93中具有软件模块和设备驱动程序。软件模块能够执行本发明上述方法的各种功能模块;设备驱动程序可以是网络和接口驱动程序。
[0192]在启动时,这些软件组件被加载到存储器93中,然后被处理器92访问并执行如下指令:
[0193]在本端服务器与外部网络通信中断后,通过网络接口请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,且所述第二服务器与外部网络通信正常,其中,所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0194]当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及
[0195]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
[0196]通过本发明实施例提供的服务器,当本端服务器与外部网络中断后,服务器通过内部网络把报文转发到与外部通信正常的服务器,由通信正常的服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由一个通信正常的服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器或单板网络正常,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0197]图10为本发明另一实施例提供的服务器的示意图,如图10所示,本实施例包括网络接口 101、处理器102和存储器103。系统总线104用于连接网络接口 81、处理器102和存储器103。
[0198]网络接口 101用于与其他服务器通信。
[0199]存储器103可以是永久存储器,例如硬盘驱动器和闪存,存储器103中具有软件模块和设备驱动程序。软件模块能够执行本发明上述方法的各种功能模块;设备驱动程序可以是网络和接口驱动程序。
[0200]在启动时,这些软件组件被加载到存储器103中,然后被处理器102访问并执行如下指令:
[0201]通过网络接口接收所述本端服务器所在的服务器群中的仲裁服务器发送的通知消息,所述通知消息用于通知所述本端服务器所述仲裁服务器指定所述本端服务器作为所述服务器群中的第一服务器的代理服务器,其中,所述第一服务器与外部网络通信中断,且所述本端服务器与外部网络通信正常;
[0202]所述第二服务器根据所述仲裁服务器的通知消息向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0203]当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;以及
[0204]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器,所述包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,并在根据所述目的IP地址和端口确定所述第二业务内容为发送给所述第一服务器的报文时将所述第二业务内容通过内部网络转发给所述第一服务器。
[0205]通过本发明实施例提供的服务器,当服务器群中的一个服务器与外部网络中断后,服务器通过内部网络把报文转发到与外部通信正常的本端服务器,由本端服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由本端服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器或单板网络正常,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0206]图11为本发明另一实施例提供的服务器的示意图,如图11所示,本实施例包括网络接口 111、处理器112和存储器113。系统总线114用于连接网络接口 111、处理器112和存储器113。
[0207]网络接口 111用于与其他服务器通信。
[0208]存储器113可以是永久存储器,例如硬盘驱动器和闪存,存储器113中具有软件模块和设备驱动程序。软件模块能够执行本发明上述方法的各种功能模块;设备驱动程序可以是网络和接口驱动程序。
[0209]在启动时,这些软件组件被加载到存储器113中,然后被处理器112访问并执行如下指令:
[0210]接收第一服务器发送的代理请求,所述代理请求用于请求本端为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,所述第一服务器与外部网络通信中断,本端服务器与所述第一服务器和所述第二服务器位于同一服务器群,且所述第二服务器与外部网络通信正常;
[0211]为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器;
[0212]指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
[0213]通过本发明实施例提供的通信方法,当服务器群中的一个服务器与外部网络中断后,请求仲裁服务器为故障服务器指定服务器群中的代理服务器,故障服务器通过内部网络把报文转发到代理服务器,由代理服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由代理服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器与外部网络正常通信,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0214]相应的,本发明实施例还提供了一种通信系统,所述系统包括位于同一服务器群的第一服务器、第二服务器以及仲裁服务器;
[0215]在第一服务器与外部网络通信中断后,所述第一服务器请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,且所述第二服务器与外部网络通信正常;
[0216]所述仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器,并指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
[0217]所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系;
[0218]当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及
[0219]当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
[0220]更具体的实施方式,可参考图3-图6所示的实施例,不多赘述。
[0221]通过上述实施例,当服务器群中的一个服务器与外部网络中断后,请求仲裁服务器为故障服务器指定服务器群中的代理服务器,故障服务器通过内部网络把报文转发到代理服务器,由代理服务器再向外进行转发,外部设备无需感知服务器网络中断;当外部设备与服务器通信时,也由代理服务器进行数据转发,整个系统中,只要有一个服务器于外部通信正常,则其他所有服务器都能与外部设备正常通信。可以实现只要服务器群中只要有一台服务器与外部网络正常通信,就能够保证业务功能不受影响,无需通过冗余的方式进行网络可靠性备份,降低服务器成本。
[0222]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0223]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0224]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种通信方法,其特征在于,所述方法包括: 在第一服务器与外部网络通信中断后,所述第一服务器请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,且所述第二服务器与外部网络通信正常,其中,所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系; 当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及 当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
2.如权利要求1所述的通信方法,其特征在于,所述第一服务器请求所述仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,具体包括: 所述第一服务器向所述仲裁服务器发送通知消息,以通知所述仲裁服务器根据所述服务器群中的其他服务器上报给所述仲裁服务器的自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器;或者, 所述第一服务器通知所述仲裁服务器所述第一服务器与外部网络通信中断了,并通知所述服务器群中的其他服务器向所述仲裁服务器上报自身的网络状态信息,以使得所述仲裁服务器从所述服务器群中选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
3.如权利要求1或2所述的通信方法,其特征在于, 所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,之前,还包括: 所述第一服务器接收所述仲裁服务器发送的所述第二服务器的内网IP地址和端口 ; 所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,具体包括: 所述第一服务器向所述第二服务器发送所述第一报文,所述第一报文的源IP地址和端口为所述第一服务器的内网IP地址和端口,所述第一报文的目的IP地址和端口为所述第二服务器的内网IP地址和端口,所述第一报文还包括代理标识、第一业务内容、所述通信设备的IP地址和端口,以使得:所述第二服务器根据所述代理标识确定所述第一报文中的第一业务内容是需要所述第二服务器代理所述第一服务器进行转发的第一业务内容时,将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址和端口为所述第一服务器的外网IP地址和端口,所述第三报文的目的IP地址和端口为所述通信设备的IP地址和端口,并将第三报文转发给所述通信设备。
4.如权利要求1-3任一所述的通信方法,其特征在于,还包括:当所述第一服务器与外部网络恢复正常后,所述第一服务器向所述通信设备发送第二 ARP报文,所述第二 ARP报文中携带所述第一服务器的外网IP地址和所述第一服务器的外网MAC地址,用于通知所述通信设备将所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系中的所述第二服务器的外网MAC地址更新为所述第一服务器的外网MAC地址。
5.一种通信方法,其特征在于,所述方法包括: 第二服务器接收所述第二服务器所在的服务器群中的仲裁服务器发送的通知消息,所述通知消息用于通知所述第二服务器所述仲裁服务器指定所述第二服务器作为所述服务器群中的第一服务器的代理服务器,其中,所述第一服务器与外部网络通信中断,且所述第二服务器与外部网络通信正常; 所述第二服务器根据所述仲裁服务器的通知消息向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系; 当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;以及 当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器,所述包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,并在根据所述目的IP地址和端口确定所述第二业务内容为发送给所述第一服务器的报文时将所述第二业务内容通过内部网络转发给所述第一服务器。
6.如权利要求5所述的方法,其特征在于,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;具体包括: 所述第二服务器通过内部网络接收所述第一服务器发送的所述第一报文,所述第一报文中包含需要向外部转发的第一业务内容,所述第一业务内容的目的通信设备的IP地址和所述通信设备的端口,所述第一报文的源IP地址为所述第一服务器的内网IP地址,所述第一报文的源端口为所述第一服务器的端口,所述第一报文的目的IP地址为所述第二服务器的内网IP地址,所述第一报文的目的端口为所述第二服务器的端口 ; 第二服务器的业务层对所述第一报文中的第一业务内容进行封装,生成第二报文,所述第二报文的源IP地址为所述第二服务器的外网IP地址,所述第二报文的源端口为第一服务器在所述服务器群中的ID号和本端服务器转发所述第二报文的起始端口之和,所述第二报文的目的IP地址为所述通信设备的IP地址,所述第二报文的目的端口为所述通信设备的端口; 将封装后的所述第二报文发送给所述第二服务器的报文分析层; 所述第二服务器的报文分析层根据所述第二报文的报文源端口,识别出所述第二报文中的第一业务内容是所述第二服务器代理所述第一服务器转发的业务内容; 所述第二服务器的报文分析层将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址为所述第一服务器的外网IP地址,所述第三报文的源端口为所述第一服务器的端口 ; 将所述第三报文发送给所述第二服务器的网卡驱动,由所述网卡向所述通信设备发送。
7.如权利要求5或6所述的方法,其特征在于,所述将所述第二业务内容通过内部网络转发给所述第一服务器之前还包括,将所述包含所述第二业务内容的报文的目的MAC地址替换为所述第一服务器的内网MAC地址。
8.如权利要求5-7任一所述的方法,其特征在于,所述第二服务器与所述第一服务器位于同一网段。
9.一种通信方法,其特征在于,所述方法包括: 接收第一服务器发送的代理请求,所述代理请求用于请求本端为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,所述第一服务器与外部网络通信中断,本端服务器与所述第一服务器和所述第二服务器位于同一服务器群,且所述第二服务器与外部网络通信正常; 为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器; 指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
10.如权利要求9所述的通信方法,其特征在于,所述为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器,具体包括: 根据所述服务器群中的其他服务器上报给本端的所述其他服务器自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
11.如权利要求9或10所述的通信方法,其特征在于,还包括: 接收所述第一服务器在与外部网络恢复正常时发送的解除代理请求; 根据所述解除代理请求解除所述第二服务器与所述第一服务器的代理关系。
12.一种服务器,其特征在于,包括: 请求单元,用于在本端服务器与外部网络通信中断后,请求所述本端服务器所在的服务器群中的仲裁服务器为所述本端服务器指定所述服务器群中的第二服务器作为所述本端服务器的代理服务器,且所述第二服务器与外部网络通信正常,其中,所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系; 第一发送单元,用于当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及 第一接收单元,用于当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
13.如权利要求12所述的服务器,其特征在于,所述请求单元,具体用于: 向所述仲裁服务器发送通知消息,以通知所述仲裁服务器根据所述服务器群中的其他服务器上报给所述仲裁服务器的自身的网络状态信息选择一个网络状态良好的服务器作为所述本端服务器的代理服务器;或者, 通知所述仲裁服务器所述本端服务器与外部网络通信中断了,并通知所述服务器群中的其他服务器向所述仲裁服务器上报自身的网络状态信息,以使得所述仲裁服务器从所述服务器群中选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
14.如权利要求13或12所述的通信方法,其特征在于,还包括: 第二接收单元,用于接收所述仲裁服务器发送的所述第二服务器的内网IP地址和端Π ; 所述的第一发送单元,具体用于: 向所述第二服务器发送所述第一报文,所述第一报文的源IP地址和端口为所述本端服务器的内网IP地址和端口,所述第一报文的目的IP地址和端口为所述第二服务器的内网IP地址和端口,所述第一报文还包括代理标识、第一业务内容、所述通信设备的IP地址和端口,以使得:所述第二服务器根据所述代理标识确定所述第一报文中的第一业务内容是需要所述第二服务器代理所述本端服务器进行转发的第一业务内容时,将所述第一业务内容封装到第三报文中,所述第三报文的为所述本端服务器的外网IP地址和端口,所述第三报文的目的IP地址和端口为所述通信设备的IP地址和端口,并将所述第三报文转发给所述通信设备。
15.如权利要求12-14任一所述的通信方法,其特征在于,还包括:第二发送单元,用于当所述本端服务器与外部网络恢复正常后,向所述通信设备发送第二 ARP报文,所述第二ARP报文中携带所述本端服务器的外网IP地址和所述本端服务器的外网MAC地址,用于通知所述通信设备将所述本端服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系中的所述第二服务器的外网MAC地址更新为所述本端服务器的外网MAC地址。
16.—种服务器,其特征在于,包括: 第一接收单元,用于接收所述本端服务器所在的服务器群中的仲裁服务器发送的通知消息,所述通知消息用于通知所述本端服务器所述仲裁服务器指定所述本端服务器作为所述服务器群中的第一服务器的代理服务器,其中,所述第一服务器与外部网络通信中断,且所述本端服务器与外部网络通信正常; 发送单元,用于根据第一接收单元接收到的通知消息向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述本端服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述本端服务器的外网MAC地址的映射关系; 代理单元,用于当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第二服务器通过内部网络接收所述第一服务器发送的所述第一业务内容,并代理所述第一服务器向所述通信设备转发所述第一业务内容;以及 当所述第一服务器需要接收所述通信设备发送的第二业务内容时,代理所述第一服务器接收所述通信设备发送的所述第二业务内容,所述通信设备发送的包含所述第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器,所述包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,并在根据所述目的IP地址和端口确定所述第二业务内容为发送给所述第一服务器的报文时将所述第二业务内容通过内部网络转发给所述第一服务器。
17.如权利要求16所述的方法,其特征在于,所述代理单元,进一步包括: 接收子单元,用于通过内部网络接收所述第一服务器发送的所述第一报文,所述第一报文中包含需要向外部转发的第一业务内容,所述第一业务内容的目的通信设备的IP地址和所述通信设备的端口,所述第一报文的源IP地址为所述第一服务器的内网IP地址,所述第一报文的源端口为所述第一服务器的端口,所述第一报文的目的IP地址为本端服务器的内网IP地址,所述第一报文的目的端口为所述本端服务器的端口 ; 封装子单元,用于对所述第一报文中的第一业务内容进行封装,生成第二报文,所述第二报文的源IP地址为所述第二服务器的外网IP地址,所述第二报文的源端口为第一服务器在所述服务器群中的ID号和本端服务器转发所述第二报文的起始端口之和,所述第二报文的目的IP地址为所述通信设备的IP地址,所述第二报文的目的端口为所述通信设备的端口,还用于将所述第二报文发送给报文分析子单元; 报文分析子单元,用于根据所述第二报文的报文源端口,识别出所述第二报文中的第一业务内容是所述第二服务器代理所述第一服务器转发的业务内容,将所述第一业务内容封装到第三报文中,所述第三报文的源IP地址为所述第一服务器的外网IP地址,所述第三报文的源端口为所述第一服务器的端口 ;将所述第三报文发送给所述本端服务器的网卡驱动; 所述网卡驱动用于通过所述网卡向所述通信设备发送所述第三报文。
18.如权利要求16或17所述的服务器,其特征在于,所述代理单元将所述第二业务内容通过内部网络转发给所述第一服务器之前还用于,将所述包含所述第二业务内容的报文的目的MAC地址替换为所述第一服务器的内网MAC地址。
19.一种服务器,其特征在于,包括: 接收单元,用于接收第一服务器发送的代理请求,所述代理请求用于请求本端为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,所述第一服务器与外部网络通信中断,本端服务器与所述第一服务器和所述第二服务器位于同一服务器群,且所述第二服务器与外部网络通信正常; 代理分配单元,用于为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器; 指示单元,用于指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。
20.如权利要求19所述的服务器,其特征在于,所述代理分配单元为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器,具体包括: 根据所述服务器群中的其他服务器上报给本端的所述其他服务器自身的网络状态信息选择一个网络状态良好的服务器作为所述第一服务器的代理服务器。
21.如权利要求19或20所述的服务器,其特征在于,所述接收单元还用于: 接收第一服务器与外部网络恢复正常后发送的解除代理请求; 所述代理分配单元用于根据所述解除代理请求解除所述第二服务器与所述第一服务器的代理关系。
22.一种通信系统,其特征在于,包括位于同一服务器群的第一服务器、第二服务器以及仲裁服务器; 在第一服务器与外部网络通信中断后,所述第一服务器请求所述第一服务器所在的服务器群中的仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器作为所述第一服务器的代理服务器,且所述第二服务器与外部网络通信正常; 所述仲裁服务器为所述第一服务器指定所述服务器群中的第二服务器为所述第一服务器的代理服务器,并指示所述第二服务器向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系。 所述第二服务器根据所述仲裁服务器的指示向所述外部网络中的通信设备发送第一地址解析协议ARP报文,所述第一 ARP报文中携带所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址,用于通知所述通信设备记录所述第一服务器的外网IP地址和所述第二服务器的外网MAC地址的映射关系; 当所述第一服务器需要向所述通信设备发送第一业务内容时,所述第一服务器通过内部网络将所述第一业务内容发送给所述第二服务器,由所述第二服务器向所述通信设备转发所述第一业务内容;以及 当所述第一服务器需要接收所述通信设备发送的第二业务内容时,所述第一服务器通过内部网络接收所述第二服务器从所述通信设备接收到的所述第二业务内容,所述第二服务器从所述通信设备接收到的包含所述第二业务内容的报文的目的IP地址和端口为所述第一服务器的外网IP地址和端口,用于使所述第二服务器确定所述第二业务内容为发送给所述第一服务器的业务内容,所述包含第二业务内容的报文的目的MAC地址为所述第二服务器的外网MAC地址,用于使所述外部网络将所述包含第二业务内容的报文路由至所述第二服务器。
【文档编号】H04L29/06GK104426699SQ201310390711
【公开日】2015年3月18日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】盛立枫 申请人:华为技术有限公司