CN109728962B - 一种发送报文的方法和设备 - Google Patents
一种发送报文的方法和设备 Download PDFInfo
- Publication number
- CN109728962B CN109728962B CN201711025021.9A CN201711025021A CN109728962B CN 109728962 B CN109728962 B CN 109728962B CN 201711025021 A CN201711025021 A CN 201711025021A CN 109728962 B CN109728962 B CN 109728962B
- Authority
- CN
- China
- Prior art keywords
- address
- target server
- anycast
- client device
- server
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1877—Measures taken prior to transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种发送报文的方法,应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址,该方法包括:该客户端设备获得该任播服务器集群的互联网协议IP任播地址和该目标服务器的IP单播地址;该客户端设备生成IP检测报文,该IP检测报文用于检测所述目标服务器的IP任播地址是否可达,该IP检测报文包括该IP任播地址和该目标服务器的IP单播地址,并且指示该目标服务器用该IP任播地址替换该目标服务器的IP单播地址;该客户端设备向该目标服务器发送该IP检测报文。有助于准确地实现对指定的任播服务器的IP任播地址可达性进行检测。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种用于发送报文的方法和客户端设备。
背景技术
互联网协议(英文:Internet Protocol,IP)任播(英文:anycast)是一种网络寻址和路由的方法,根据最近、成本最低、最健康、拥塞路由最少或者一些其它的距离测量的策略,来自一个发送端(或者客户端)设备的数据报文被路由到几个目的节点(或者服务器)中的任意一个节点。IP任播在多个、离散、自治的位置提供了同一个指定服务地址的操作。这个服务地址,即可以是IPv6地址(此时,称为IPv6任播),也可以是IPv4地址(此时,称为IPv4任播)。IP任播通常用于提供高可靠性和负载平衡,在现网中已经有着较为广泛的部署,例如,域名系统(英文:Domain Name System,DNS)根服务器,协议独立组播(英文:ProtocolIndependent Multicast,PIM)、组播源发现协议(英文:Multicast Source DiscoveryProtocol,MSDP)、支持互联网通信协议第6版(英文:Internet Protocol version 6,IPv6)向支持互联网通信协议第4版(英文:Internet Protocol version 4,IPv4)过渡的6to4等网络场景下都使用到了IP任播地址。
然而,由于IP任播地址标识的是一组而非一台服务器,即这一组服务器集群共用一个IP任播地址,因此,现有的IP ping/tracert检测方法用IP任播地址作为目的地址,无法准确地实现对服务器集群中指定的任播服务器的IP任播地址可达性进行检测。
发明内容
本发明实施例提供的发送报文的方法和客户端设备,有助于解决在基于任播服务的网络中,无法准确地实现对指定的任播服务器的IP任播地址可达性进行检测的问题。
为了解决上述问题,本发明实施例第一方面提供一种发送报文的方法,应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址,所述方法包括:所述客户端设备获得所述任播服务器集群的互联网协议IP任播地址和所述目标服务器的IP单播地址;所述客户端设备生成IP检测报文,所述IP检测报文用于检测所述目标服务器的IP任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址;所述客户端设备向所述目标服务器发送所述IP检测报文。
通过在IP检测报文中携带IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址,有助于准确地实现对指定的任播服务器的IP任播地址可达性进行检测。
在一种可能的设计中,所述客户端设备获得所述任播服务器集群的IP任播地址和所述目标服务器的IP单播地址包括:所述客户端设备通过用户配置的命令行获得所述IP任播地址和所述目标服务器的IP单播地址;或者所述客户端设备接收控制管理设备发来的消息,从所述消息中获得所述IP任播地址和所述目标服务器的IP单播地址。
通过命令行配置或者接收控制管理设备发来的配置参数,可以灵活、按需的指定任播服务器集群里的待检测的服务器。
在一种可能的设计中,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址包括:所述IP检测报文中的目的IP地址字段携带所述目标服务器的IP单播地址,所述IP检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址,且所述IP SRH中的剩余段数SegLeft字段的值为1,所述SegLeft字段的值指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
通过在IP检测报文中携带SRH来携带IP任播地址,并用Segleft值为1指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址,可以简捷地实现准确的发送IP检测报文到任播服务器集群里的某台服务器的IP任播地址。
在一种可能的设计中,所述方法还包括:所述客户端设备还获得从所述客户端设备到所述目标服务器的转发路径上的至少一个指定中间节点的IP单播地址;相应地,所述客户端设备通过用户配置的命令行获得所述至少一个指定中间节点的IP单播地址;或者所述客户端设备接收控制管理设备发来的消息,从所述消息中获得所述至少一个指定中间节点的IP单播地址。
通过命令行配置或者接收控制管理设备发来的配置参数,来指定检测路径上需要经过的中间节点,可以灵活、按需的指定待检测路径需要经过的中间节点以及任播服务器集群里的待检测的服务器。
在一种可能的设计中,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址包括:所述IP检测报文中的目的IP地址字段携带第一指定中间节点的IP单播地址,所述第一指定中间节点为所述从所述客户端设备到所述目标服务器的转发路径上的第一个指定中间节点;所述IP检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址、所述目标服务器的IP单播地址和所述至少一个指定中间节点的IP单播地址,且所述IP SRH中的剩余段数SegLeft字段的值为所述指定中间节点的个数加1,所述SegLeft字段的值为1时指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
通过在IP检测报文中携带SRH来携带IP任播地址、指定中间节点和目标服务器的IP单播地址,并用Segleft值为1时指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址,可以利用简捷地实现经过指定的中间节点、并准确发送IP检测报文到任播服务器集群里的某台服务器的IP任播地址。
在一种可能的设计中,在所述客户端设备在预定的时间间隔内收到所述目标服务器发来的响应报文的情况下,确认所述目标服务器的IP任播地址可达;在所述客户端设备在预定的时间间隔内未收到所述目标服务器发来的响应报文的情况下,确认所述目标服务器的IP任播地址不可达。
通过根据在预定的时间间隔内是否能收到IP检测的响应报文,可以准确地确认所述目标服务器的IP任播地址是否可达(例如,是否故障)。
第二方面,本发明提供一种客户端设备,所述客户端设备用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,所述客户端设备包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块。
第三方面,本发明提供一种客户端设备,所述客户端设备包括:处理器、收发器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、随机存取存储器以及只读存储器。其中,当需要运行第一网络设备时,通过固化在只读存储器中的基本输入输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,提供一种客户端设备,所述客户端设备包括:中央处理器、转发表项存储器、物理接口网卡、网络转发处理器。所述第一网络设备用于执行第一方面任意可能的实现方式中的方法。具体地,所述第一网络设备包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块。
第五方面,本发明提供一种计算机可读介质,包括指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1a是本发明实施例一种发送报文的应用场景示意图;
图1b是本发明实施例SRH报文头结构示意图;
图1c是本发明实施例SRH转发流程示意图;
图2是本发明实施例中一种用于发送报文的方法的流程示意图;
图3是本发明实施例中一种没有指定中间节点的转发流程示意图;
图4是本发明实施例中一种有指定中间节点的转发流程示意图;
图5a是本发明实施例一种客户端设备的结构示意图;
图5b是本发明实施例另一种客户端设备的结构示意图;
图5c是本发明实施例又一种客户端设备的结构示意图;
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在介绍本发明实施例技术方案之前,先对本发明实施例相关的应用场景进行解释说明。本发明应用于互联网协议(英文:Internet Protocol,IP)任播服务网络中。所述IP任播服务网络包括客户端设备、任播服务器集群和路由设备(例如,路由器、交换机等)。如图1所示,客户端设备通过路由器(英文:Router)1、Router2和Router3构成的路由网络接入到任播服务器集群中的服务器(英文:Server)1、Server2。IP任播地址addr0用于标识所述任播服务器集群,为Server1和Server2共用。IP单播地址addr1用于标识Server1,例如可以是Server1上的一个网络接口的IP地址,IP单播地址addr2用于标识Server2,例如可以是Server2上的一个网络接口的IP地址。
IPv6任播地址使用与IPv6单播地址相同的地址空间。除了在IETF RFC2526中定义的保留的子网任播地址(英文:Reserved Subnet Anycast Address)和在RFC4291中定义的子网路由器任播地址(英文:Subnet-Router Anycast Address)外,地址本身并没有明显的特征。当一个单播地址被同时分配到多个接口(同一台或不同的设备)上时,必须通过显式配置来指定是否为IP任播地址。
IPv6任播地址通常配置在多个接口上,用来表示对外提供相同服务的一组服务器。在将IP任播地址作为目的地址时,通过路由选择算法来选择“最近的”设备进行访问,从而实现了分布式服务,具有负载分担、高可靠性的优势。
对于IPv6任播服务,由于IPv6任播地址本质上为IPv6单播地址,因此,可以使用IPv6ping/tracert IP检测报文对其进行检测,其方法与普通的单播地址检测完全相同。所述客户端设备使用IPv6任播地址为目的IP地址,可以检测IPv6任播服务是否可达。例如图1a所述,所述路由设备通过动态路由协议(或者静态配置路由)生成目的IP为addr0的路由表项,并指导路由设备(Router1、2、3)将客户端设备发送的所述IP检测报文转发到Server1上,Server1正常工作,则IPv6任播服务可达。此时,由于Router1、2、3上的目的IP为addr0的路由表项都指向Server1,如果用户希望检测从所述客户端设备到Server2是否可达,则无法实现。
当Server1故障后,通过路由重新收敛,重新生成目的IP为addr0的路由表项,并指导路由设备将客户端设备发送的IP检测报文转发到Server2上,Server2正常工作,则IPv6任播服务可达。因此,任播服务器集群中只要有一台服务器还能正常工作,通过ping/tracert检测到的任播服务就是可达的,从而任播服务具有高可靠性的好处。但是此时,由于Router1、2、3上的目的IP为addr0的路由表项都指向Server2(即按照路由表项中的出接口转发报文,该报文可以最终到达Server2),如果用户希望检测从所述客户端设备到Server1是否可达,则无法实现。
所以,现有的ping/tracert检测方法用IP任播地址作为目的地址,无法按需、准确地将ping/tracert IP检测报文发送给指定的服务器。进一步,也无法获知所述任播服务器集群中的某台指定服务器是否故障。
值得说明的是,本申请所涉及到的客户端设备为支持IP任播的设备。例如,可以是宽带接入网络中的PC机、便携机、PAD,路由网络中的路由器、交换机,物联网(Internet ofThings,IoT)网络中的各种传感器、IoT网关,移动网络中的基站、手机等。本申请所涉及到的所述任播服务器集群可以包括至少两个服务器,图1仅以2个设备为例,但并不构成限定。当然,任播服务器集群也可以为支持IP任播服务的其它网络设备集群,例如,路由器或交换机集群。所述服务器、路由器、交换机可以是物理设备,也可以是基于虚拟化技术实现的虚拟设备(如,虚拟服务器、虚拟路由器、虚拟交换机)。
上面描述了本发明涉及的可能的应用场景,在对本发明实施例进行详细说明之前,先简单说明一下IP段路由技术。IP转发的基本特点是无连接、逐跳转发。IP报文的转发路径完全依赖于路由(静态路由和/或动态路由)的发布和收敛来获得。通常情况下,路由计算系统会选择“最短路径”。但在某些场景下,“最短路径”并不一定符合用户预期,在实施流量工程(Traffic Engineering,TE)时也会遇到一些困难。为了在一定程度上弥补了IP转发机制的上述局限,提出了IP源路由。IP源路由支持在IP报文中直接携带转发路径信息。
在IPv4中,为了支持源路由,在RFC791中定义了宽松源路由(LSRR)选项和严格源路由选项(SSRR)。但受限于IPv4选项40字节的最大空间限制,实用价值有限。
在IPv6中,为了支持源路由,国际互联网工程任务组(Internet EngineeringTask Force,IETF)发布的征求意见(英文:Request For Comments,RFC)RFC2460中定义了路由头(Routing Header),并可以通过定义新的路由类型(Routing Type)来增加新的源路由机制。同时,在RFC2460中定义了路由类型为0(type 0)的路由头。Type 0路由头基本与IPv4的LSRR等同,但不再受IPv4选项的40字节空间的限制。
不过,经过深入分析,IETF发现IPv6的type 0路由头存在严重的安全问题,因此,在RFC5095中废弃了type 0路由头的定义,但并未废弃IPv6路由头的机制。
IPv6路由头是一种宽松模式的源路由机制。随着IP网络的深入发展,源路由思想得到了越来越多的重视。为此,IETF成立了spring工作组来实现相关的标准化工作。spring工作组将全新设计的源路由机制称之为段路由(Segment Routing,SR),数据面采用两种方式:MPLS和IPv6。对于IPv6方式的Segment Routing(称为SR IPv6),是通过定义新的IPv6路由头(称为SRH)来实现的,参考:draft-ietf-6man-segment-routing-header-07(该draft由6man工作组定义)。如图1b所示,SRH扩展头中包括下一个头(Next Header)字段、剩余段数(Segment Left)字段和段列表(Segment List[n])字段。下一个头指示SRH头之后携带的协议头。段列表携带了转发路径上指定需要经过的各个节点(不包括源节点)的IP地址,以数组的形式表达,数组的下标从0至n取值,n为正整数。n+1表达了所述转发路径上除了源节点以外、指定需要经过的节点个数。Segment Left字段指示了该数组的下标。
下面举例对SRH扩展头的处理流程进行说明。网络节点收到一个IP报文后,在判断IP报文头中携带的目的IP地址等于自己的本机IP地址的情况下,会继续判断Segment Left字段的值(简称Segment Left值)是否大于0,如果Segment Left值大于0,则将SegmentLeft值减1,并用Segment List[减1后的Segment Left值]对应的IP地址替换该IP报文头中的目的IP地址,并用该更新后的目的IP地址查找转发信息库(Forwarding InformationBase,FIB)表来进行相应的报文处理。
以图1c所示的网络场景为例,详细阐述携带SRH头的IPv6报文的转发流程。例如,从源节点(IPv6地址为2001:7a:78a::1)向目的节点(IPv6地址为2001:7a:78e::41)发送报文,中间经过3个指定中间节点(所述节点可以为路由器、交换机等网络路由交换设备)和若干个非指定中间节点。指定中间节点是指在从所述源节点到所述目的节点的路径上预先指定必需要经过的节点,非指定中间节点是指在从所述源节点到所述目的节点的路径上不是预先指定必需要经过的节点,而是根据查找IP路由转发表确定的需要经过的节点,其中,假定该3个指定中间节点的IP地址分别为2001:7a:78b::11(第一指定中间节点)、2001:7a:78c::21(第二指定中间节点)和2001:7a:78d::31(第三指定中间节点)。源节点向第一指定中间节点发送携带SRH扩展头的第一IPv6报文,IPv6报文头中的源地址字段为源节点的IPv6地址(为SA=2001:7a:78a::1),目的地址字段为第一指定中间节点的IPv6地址(为DA=2001:7a:78b::11)。SRH扩展头中包括Segment Left(简称SegLeft,且取值为3)和Segment List(简称SegList),其中SegList数组的下标从0至3,SegList[3]至SegList[0]依次表达了该转发路径上指定需要经过的节点的IPv6地址,SegList[3]为该第一指定中间节点的IPv6地址,SegList[2]为该第二指定中间节点的IPv6地址,SegList[1]为该第三指定中间节点的IPv6地址,SegList[0]为该最终的目的节点的IPv6地址。
当该第一指定节点接收到该第一IPv6报文后,发现该第一IPv6报文中携带的DA为自己的IPv6地址,则继续解析SRH扩展头中携带的SegLeft。然后,判断SegLeft(为3)大于0,则将SegLeft减1(为2),并用SegList[SegLeft]=SegList[2]中的IPv6地址(即第二指定中间节点的IPv6地址)刷新所述DA字段的值。用该刷新后的第二指定中间节点的IPv6地址查找FIB表获得匹配的表项,还生成第二IPv6报文,并按照该匹配的表项继续向该第二指定中间节点发送,所述第二IPv6报文的IPv6报文头中的源地址字段为源节点的IPv6地址(为SA=2001:7a:78a::1),目的地址字段为第二指定中间节点的IPv6地址(为DA=2001:7a:78c::21)。SRH扩展头中包括Segment Left(简称SegLeft,且取值为2)。
当该第二指定中间节点接收到该第二IPv6报文后,与上同理方法处理(为了简洁,此处不再赘述),生成第三IPv6报文继续向该第三指定中间节点发送,所述第三IPv6报文的IPv6报文头中的源地址字段为源节点的IPv6地址(为SA=2001:7a:78a::1),目的地址字段为第三指定中间节点的IPv6地址(为DA=2001:7a:78d::31)。SRH扩展头中包括SegLeft取值为1。
当该第三指定中间节点接收到该第三IPv6报文后,与上同理方法处理(为了简洁,此处不再赘述),生成第四IPv6报文继续向该最终的目的节点发送,所述第四IPv6报文的IPv6报文头中的源地址字段为源节点的IPv6地址(为SA=2001:7a:78a::1),目的地址字段为该最终的目的节点的IPv6地址(为DA=2001:7a:78e::41)。SRH扩展头中包括SegLeft取值为0。
当该最终的目的节点接收到该第四IPv6报文后,发现该第四IPv6报文中携带的DA为自己的IPv6地址,则继续解析SRH扩展头中携带的SegLeft。然后,判断SegLeft(为0)等于0,则忽略SRH的处理,继续IPv6的其余部分处理。
以上描述了本发明涉及的可能的应用场景和段路由技术,下面将基于此对本发明实施例进一步详细说明。
图2为本发明实施例提供的一种发送报文的方法流程示意图。该方法应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括目标服务器。
本发明实施例提供的方案包括201、202、203、204、205、206和207部分,下面分别说明。
在201部分,所述客户端设备获得所述任播服务器集群的IP任播地址和所述目标服务器的IP单播地址。
所述任播服务器集群的IP任播地址和所述目标服务器的IP单播地址可以是网络管理员通过命令行配置在该客户端设备上的;也可以是该客户端设备接收其它控制管理设备发来的消息,从该消息中获得的。
在一个具体的实施方式中,在检测发起设备(客户端设备)上,执行如下形式的命令行:
ping ip–exh<addr0><server1-addr>
或者:
tracert ip–exh<addr0><server1-addr>
其中,–exh<addr0>为新增可选参数,用来指示在IP检测报文中携带扩展字段,该扩展字段也可以是一个扩展头,<addr0>为在扩展字段中封装的任播地址。<server1-addr>为被检测的任播服务器集群中的某个server(例如Server1)上的非任播的、用来标识该server的IP地址,如该sever上的某个接口的IP地址或者该sever的管理IP地址。
通过命令行配置或者接收控制管理设备发来的配置参数,可以灵活、按需的指定任播服务器集群里的待检测的服务器。
在另一个具体的实施方式中,所述客户端设备还获得从所述客户端设备到所述目标服务器的转发路径上的至少一个指定中间节点的IP单播地址,则在检测发起设备(客户端设备)上,执行如下形式的命令行:
ping ip–exh<addr0><server1-addr>-designate_middlenodes<node1,…,nodeN>
或者:
tracert ip–exh<addr0><server1-addr>-designate_middlenode<node1,…,nodeN>
其中,-designate_middlenodes为新增可选参数,用来指示IP检测报文需要依次经过N个指定的中间节点node1,…,nodeN,N为大于等于1的正整数。
需要说明的是,-exh只是一个示例,用来表示报文中需要新增一个扩展字段,并不进行任何限定,例如,如果扩展字段是SRH扩展头时,此时-exh可以为–srh。同理,-designate_middlenode也只是一个示例,用来表示报文中需要新增一个扩展字段,并不进行任何限定。
还需要说明的是,上述命令行中的ip可以是IPv4,也可以是IPv6,此处不做限定。
通过命令行配置或者接收控制管理设备发来的配置参数,来指定检测路径上需要经过的中间节点,可以灵活、按需的指定待检测路径需要经过的中间节点以及任播服务器集群里的待检测的服务器。
在202部分,所述客户端设备生成IP检测报文,所述IP检测报文用于检测所述目标服务器的IP任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
所述IP检测报文为用于进行IP可达性检测的报文,例如,ping或者tracert报文,ping或者tracert报文封装在IP报文的载荷(英文:payload)部分。
在一个具体的实施方式中,在从所述客户端设备到所述目标服务器的路径上不包括指定中间节点的情况下,所述IP检测报文中的目的IP地址字段(即IP报文头中的目的IP地址字段)携带所述目标服务器的IP单播地址。所述IP检测报文通过携带段路由头(英文:Segment Routing Header,SRH)来携带所述IP任播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
具体地,所述IP检测报文中的段路由头SRH中的段列表字段携带所述IP任播地址,且所述SRH中的剩余段数SegLeft字段的值为1,指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。下文图3部分会举例详细介绍具体的流程。需要说明的是,SegLeft字段的值设置为指定中间节点的个数加1,在没有指定中间节点的情况下,指定中间节点的个数为0,加1后为1,所以,SegLeft字段的值为1。
通过在IP检测报文中携带SRH来携带IP任播地址,并用Segleft值为1指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址,可以简捷地实现准确的发送IP检测报文到任播服务器集群里的某台服务器的IP任播地址。
在另一个具体的实施方式中,在从所述客户端设备到所述目标服务器的路径上包括指定中间节点的情况下,所述SRH中的SegLeft字段的值为所述指定经过中间节点的个数加1,所述IP检测报文每经过1个中间节点,该SegLeft值会减1,IP检测报文到达所述目标服务器是,SegLeft的值为1指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。下文图4部分会详细介绍具体的流程。
通过在IP检测报文中携带SRH来携带IP任播地址、指定中间节点和目标服务器的IP单播地址,并用Segleft值为1时指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址,可以利用简捷地实现经过指定的中间节点、并准确发送IP检测报文到任播服务器集群里的某台服务器的IP任播地址。
在203部分,所述客户端设备向所述目标服务器发送所述IP检测报文。
通过在IP检测报文中携带IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址,有助于准确地实现对指定的任播服务器的IP任播地址可达性进行检测。
在204部分,所述目标服务器接收到所述IP检测报文,解析出封装IP检测报文的IP头中携带的目的IP地址为自己的本机IP单播地址,并根据用所述IP任播地址替换所述目标服务器的IP单播地址的指示,执行用所述IP任播地址替换所述目标服务器的IP单播地址。
在205部分,所述目标服务器继续进行IP检测报文的协议处理,生成响应报文。
在206部分,所述目标服务器向所述客户端设备发送所述响应报文。
在207部分,在所述客户端设备在预定的时间间隔内收到所述响应报文的情况下,确认所述目标服务器的IP任播地址可达。
在一种可能的实施例中,在所述客户端设备在预定的时间间隔内未收到所述响应报文的情况下,确认所述目标服务器的IP任播地址不可达,例如,发生了故障。
通过根据在预定的时间间隔内是否能收到IP检测的响应报文,可以准确地确认所述目标服务器的IP任播地址是否可达(例如,是否故障)。
以图1a所示的网络场景为例阐述上面201-207部分。客户端设备(即检测发起设备)需要检测任播服务器集群中的server1是否正常工作,则在客户端设备上发起IPv6Ping检测。IPv6 Ping检测可以有两种方式,一种是不指定中间节点的方式,另一种是指定中间节点的方式。
首先结合图3详细说明不指定中间节点的报文转发流程。客户端设备执行如下形式的命令行:
ping ipv6–srh<addr0><addr1>
其中,–srh<addr0>用来指示在IP检测报文中携带SRH扩展头,并在SRH中的SegmentList字段中携带任播地址addr0。例如,如图3所示,将Segment Left字段的值设置为1,在SegmentList[0]字段中携带addr0。在IPv6的报文头中的目的地址字段携带Addr1,Add1为被检测的任播服务器集群中的Server1上的非任播的、用来标识server1的IP地址。在SRH头的下一个头字段中指示IGMP协议,即IPv6报文中可以继续封装Ping报文。add1为被检测的任播服务器集群中的Server1上的非任播的、用来标识server1的IP单播地址。
客户端设备生成用于进行ping检测的所述IPv6报文,因为所述IPv6报文中的SRH中的Segment Left值为1,大于0,所以意味着在目标服务器的IP地址为addr1时,将继续解析SRH头,并将SRH头中的Segment Left值减1,用Segment List[减1后的Segment Left值](=Segment List[0]=addr0)对应的IP地址替换该IPv6报文头中的目的IP地址,也就是用addr0替换IPv6报文头中的addr1。
客户端设备将所述IPv6报文向server1发送。该IPv6报文在R1、R2、R3形成的网络中,通过查找目的IP地址addr1对应的路由转发表项,经过R1和R2,到达server1。
Server1收到所述所述IPv6报文后,解析发现该IPv6报文中携带的DA(addr1)为自己的IPv6地址,则继续解析SRH扩展头中携带的SegLeft。SegLeft值=1,大于0,所以意味着在目标服务器的IP地址为addr1时,将继续解析SRH头,并将SRH头中的Segment Left值减1,用Segment List[减1后的Segment Left值](=Segment List[0]=addr0)对应的IP地址替换该IPv6报文头中的目的IP地址,也就是用addr0替换IPv6报文头中的addr1。
Server1继续进行Ping检测报文的协议处理,生成响应报文发送给所述客户端设备。所述客户端设备收到所述响应报文后,确定所述目标服务器可达。
根据addr1作为目的地址在Router1和Router2上查找FIB表转发,会将Ping检测报文,发送到Server1。在Server1故障的情况下,Server1则无法接收并处理所述IPv6报文,则无法生成并向所述客户端设备发送所述响应报文,因此,当所述客户端设备在一定时间间隔或周期内,未能收到Server1的响应报文,则确认Server1不可达,有可能发生了故障。
需要说明的是,Segment List数组中可以携带addr1(如图3所示),也可以不携带addr1,同样能够实现相同的功能。
其次,再结合图4详细说明另一种指定中间节点的报文转发流程。客户端设备执行如下形式的命令行:
ping ipv6–srh<addr0><addr1>-designate_middlenode<addr3,addr2>
其中,–srh<addr0>用来指示在IP检测报文中携带SRH扩展头,并在SRH中的SegmentList字段中携带任播地址addr0。-designate_nodes<addr3,addr2>用来指示Ping检测需要依次经过两个指定的中间节点addr3(Router1)和addr2(Router2)。例如,如图4所示,按照指定中间节点的数量(为2)加1等于3,将Segment Left字段的值设置为3(也就是SRH头中需要携带4个地址),在SegmentList[0]字段中携带addr0,SegmentList[1]字段中携带addr1,SegmentList[2]字段中携带addr2,SegmentList[3]字段中携带addr3。在IPv6的报文头中的目的地址字段(DA)携带addr3,addr3为第一个中间节点Router1的IP地址。在SRH头的下一个头字段中指示IGMP协议,即IPv6报文中可以继续封装Ping报文。
客户端设备生成用于进行ping检测的第一IPv6报文发往所述Router1,Router1收到后,进行SRH转发处理,生成第二IPv6报文,继续发往第二中间节点Router2,Router2进行SRH转发处理,生成第三IPv6报文,继续发往目的节点(目标服务器server1),在Router1、Router2上SRH的转发处理流程,与上述图1c所述的转发流程原理一致,请参见,为了简洁,不再赘述。
Server1收到所述第三IPv6报文后,解析发现该第三IPv6报文中携带的DA(addr1)为自己的IPv6地址,则继续解析SRH扩展头中携带的SegLeft。SegLeft值=1,大于0,所以意味着在目标服务器的IP地址为addr1时,将继续解析SRH头,并将SRH头中的Segment Left值减1,用Segment List[减1后的Segment Left值](=Segment List[0]=addr0)对应的IP地址替换该IPv6报文头中的目的IP地址,也就是用addr0替换IPv6报文头中的addr1。
后续Server1的处理,与上述图3部分一致,请参考,为了简洁,不再赘述。
需要说明的是,本发明中有关SRH扩展报文头的细节,请参考国际互联网工程任务组(Internet Engineering Task Force,IETF)发布的文稿draft-ietf-6man-segment-routing-header-07,该文档与此相关部分的内容好像整体复制一般以引入的方式并入本文本中,此处为了简洁,不再赘述。
还需要说明的是,本文中的出现的IP地址,如无特殊说明,均指IP单播地址。
图5a示出了上述实施例中所涉及的客户端设备的一种可能的结构示意图。客户端设备500A应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址。客户端设备500A包括:主控板510、接口板530、交换网板520和接口板540。主控板510用于完成系统管理、设备维护、协议处理等功能。交换网板520用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板530和540用于提供各种业务接口(例如,以太网接口、POS接口等),并实现数据包的转发。主控板510、接口板530和540,以及交换网板520之间通过系统总线与系统背板相连实现互通。接口板530上的中央处理器531用于对接口板进行控制管理并与主控板510上的中央处理器511进行通信。主控板510上的中央处理器511还用于获得所述任播服务器集群的互联网协议IP任播地址和所述目标服务器的IP单播地址,并生成IP检测报文,所述IP检测报文用于检测所述目标服务器的IP任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
在一种可能的实施例中,在从所述客户端设备到所述目标服务器的路径上不包括指定中间节点的情况下,所述IP检测报文中的目的IP地址字段携带所述目标服务器的IP单播地址,所述IP检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址,且所述IP SRH中的剩余段数SegLeft字段的值为1,所述SegLeft字段的值指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
在另一种可能的实施例中,在从所述客户端设备到所述目标服务器的路径上包括指定中间节点的情况下,所述主控板510上的中央处理器511还获得从所述客户端设备到所述目标服务器的转发路径上的至少一个指定中间节点的IP单播地址。所述IP检测报文中的目的IP地址字段携带第一指定中间节点的IP单播地址,所述第一指定中间节点为所述从所述客户端设备到所述目标服务器的转发路径上的第一个指定中间节点。所述I检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址、所述目标服务器的IP单播地址和所述至少一个指定中间节点的IP单播地址,且所述IP SRH中的SegLeft字段的值为所述指定中间节点的个数加2,所述SegLeft字段的值指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
主控板510上的中央处理器511使用所述IP检测报文的所述目的IP地址查询本地路由表,找到出接口所在接口板530,然后将所述IP检测报文下发给中央处理器531。
中央处理器531通过查询转发表项存储器534,对所述IP检测报文进行内部适配处理(例如:接口索引的转换等)后,下发给网络处理器532。
网络处理器532:根据出接口等信息,在完成链路层封装后,将所述IP检测报文从物理接口卡533发送出去。
在物理接口卡533在预定的时间间隔内收到所述目标服务器发来的响应报文,并发送给网络处理器532,网络处理器532根据查找转发表项存储器534的结果,将该响应报文通过中央处理器531上送到主控板510的情况下,中央处理器511确认所述目标服务器的IP任播地址可达;
在主控板510的中央处理器511在预定的时间间隔内未收到所述目标服务器发来的响应报文的情况下,中央处理器511确认所述目标服务器的IP任播地址不可达。
应理解,本发明实施例中接口板540上的操作与所述接口板530的操作一致,为了简洁,不再赘述。应理解,本实施例的客户端设备500A可对应于上述图1至图4所对应的实施例中的客户端设备,该客户端设备500A中的主控板510、接口板530和/或540可以实现图1至图4所对应的实施例中的客户端设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,转发设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,转发设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,转发设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的转发设备的数据接入和处理能力要大于集中式架构的设备。可选地,转发设备500A的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
图5b示出了上述实施例中所涉及的客户端设备的另一种可能的结构示意图。客户端设备500B应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址。客户端设备500B包括:处理单元504B、获取单元502B和收发单元506B。
获取单元502B用于获得所述任播服务器集群的互联网协议IP任播地址和所述目标服务器的IP单播地址。处理单元504B用于生成IP检测报文,所述IP检测报文用于检测所述目标服务器的IP任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。收发单元506B用于向所述目标服务器发送所述IP检测报文。
在一个具体的实施方式中,在从所述客户端设备到所述目标服务器的路径上不包括指定中间节点的情况下,所述获取单元502B还用于通过用户配置的命令行获得所述IP任播地址和所述目标服务器的IP单播地址;或者所述获取单元502B还用于接收控制管理设备发来的消息,从所述消息中获得所述IP任播地址和所述目标服务器的IP单播地址。
相应地,所述IP检测报文通过携带SRH头来携带相关的信息的方法与上文202部分描述的一致,请参考相关内容,不再赘述。
在另一个具体的实施方式中,在从所述客户端设备到所述目标服务器的路径上包括指定中间节点的情况下,所述获取单元502B还用于获得从所述客户端设备到所述目标服务器的转发路径上的至少一个指定中间节点的IP单播地址。所述获取单元502B还用于通过用户配置的命令行获得所述至少一个指定中间节点的IP单播地址;或者所述获取单元502B还用于接收控制管理设备发来的消息,从所述消息中获得所述至少一个指定中间节点的IP单播地址。
相应地,所述IP检测报文通过携带SRH头来携带相关的信息的方法与上文202部分描述的一致,请参考相关内容,不再赘述。
在所述收发单元506B在预定的时间间隔内收到所述目标服务器发来的响应报文的情况下,所述处理单元504B确认所述目标服务器的IP任播地址可达;
在所述收发单元506B在预定的时间间隔内未收到所述目标服务器发来的响应报文的情况下,所述处理单元504B确认所述目标服务器的IP任播地址不可达。
本发明实施例的客户端设备500B可对应于上述发送报文的方法实施例中的客户端设备,并且,该客户端设备500B中的各模块和上述其他操作和/或功能分别为了实现图1至图4所对应的实施例中的客户端设备所实施的各种步骤和方法,为了简洁,在此不再赘述。
图5c示出了上述实施例中所涉及的客户端设备的一种可能的结构示意图。客户端设备500C应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址。客户端设备500C包括:收发器510C、处理器520C、随机存取存储器540 C、只读存储器550C以及总线560 C。其中,处理器520 C通过总线560 C分别耦接收发器510 C、随机存取存储器540 C以及只读存储器550 C。其中,当需要运行转发设备500 C时,通过固化在只读存储器550 C中的基本输入输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导转发设备500 C进入正常运行状态。在转发设备500 C进入正常运行状态后,在随机存取存储器540 C中运行应用程序和操作系统,使得:
处理器520 C用于获得所述任播服务器集群的互联网协议IP任播地址和所述目标服务器的IP单播地址,并生成IP检测报文,所述IP检测报文用于检测所述至少两个服务器中的目标服务器的任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。收发器510C用于向所述目标服务器发送所述IP检测报文。
本发明实施例的转发设备500C可对应于上述图1至图4所对应的实施例中的客户端设备,并且,该客户端设备500C中的处理器520C、收发器510C等可以实现图1至图4所对应的实施例中的客户端设备所具有的功能和/或所实施的各种步骤和方法。所述处理器520C用于执行图5b所述客户端设备的处理单元504B和获取单元502B的所有操作,所述收发器510C用于执行图5b所述客户端设备的收发单元506B的所有操作。为了简洁,在此不再赘述。
需要说明的是,本实施例也可以基于通用的物理服务器结合网络功能虚拟化(英文:Network Function Virtualization,NFV)技术实现的客户端设备,所述客户端设备为虚拟客户端设备(如,虚拟主机、虚拟路由器或虚拟交换机)。所述虚拟客户端设备可以是运行有用于发送报文功能的程序的虚拟机(英文:Virtual Machine,VM),所述虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。本领域技术人员通过阅读本申请即可结合NFV技术在通用物理服务器上虚拟出具有上述功能的多个转发设备。此处不再赘述。
应理解,本领域技术人员在阅读本申请文件的基础上,可以针对本申请实施例中所描述的可选的特征、步骤或方法进行不需要付出创造性的组合,都属于本申请公开的实施例,只是由于描述或行文的简单没有重复赘述不同组合。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种发送报文的方法,其特征在于,应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址,所述方法包括:
所述客户端设备获得所述IP任播地址和所述至少两个服务器中的目标服务器的IP单播地址;
所述客户端设备生成IP检测报文,所述IP检测报文用于检测所述目标服务器的IP任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址;
所述客户端设备向所述目标服务器发送所述IP检测报文。
2.根据权利要求1所述的方法,其特征在于,所述客户端设备获得所述IP任播地址和所述目标服务器的IP单播地址包括:
所述客户端设备通过用户配置的命令行获得所述IP任播地址和所述目标服务器的IP单播地址;或者
所述客户端设备接收控制管理设备发来的消息,从所述消息中获得所述IP任播地址和所述目标服务器的IP单播地址。
3.根据权利要求1或2所述的方法,其特征在于,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址包括:
所述IP检测报文中的目的IP地址字段携带所述目标服务器的IP单播地址,所述IP检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址,且所述IP SRH中的剩余段数SegLeft字段的值为1,所述SegLeft字段的值指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述客户端设备还获得从所述客户端设备到所述目标服务器的转发路径上的至少一个指定中间节点的IP单播地址;
相应地,所述客户端设备通过用户配置的命令行获得所述至少一个指定中间节点的IP单播地址;或者
所述客户端设备接收控制管理设备发来的消息,从所述消息中获得所述至少一个指定中间节点的IP单播地址。
5.根据权利要求4所述的方法,其特征在于,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址包括:
所述IP检测报文中的目的IP地址字段携带第一指定中间节点的IP单播地址,所述第一指定中间节点为所述从所述客户端设备到所述目标服务器的转发路径上的第一个指定中间节点;
所述IP检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址、所述目标服务器的IP单播地址和所述至少一个指定中间节点的IP单播地址,且所述IP SRH中的剩余段数SegLeft字段的值为所述指定中间节点的个数加1,所述SegLeft字段的值为1时指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述客户端设备在预定的时间间隔内收到所述目标服务器发来的响应报文的情况下,确认所述目标服务器的IP任播地址可达;或,
在所述客户端设备在预定的时间间隔内未收到所述目标服务器发来的所述响应报文的情况下,确认所述目标服务器的IP任播地址不可达,所述响应报文为针对所述IP检测报文的响应报文。
7.一种客户端设备,其特征在于,应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址,所述客户端设备包括:
获取单元,用于获得所述任播服务器集群的互联网协议IP任播地址和所述至少两个服务器中的目标服务器的IP单播地址;
处理单元,用于生成IP检测报文,所述IP检测报文用于检测所述目标服务器的IP任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址;
收发单元,用于向所述目标服务器发送所述IP检测报文。
8.根据权利要求7所述的客户端设备,其特征在于,所述获取单元,用于获得所述任播服务器集群的互联网协议IP任播地址和所述目标服务器的IP单播地址包括:
所述获取单元,还用于通过用户配置的命令行获得所述IP任播地址和所述目标服务器的IP单播地址;或者
所述获取单元,还用于接收控制管理设备发来的消息,从所述消息中获得所述IP任播地址和所述目标服务器的IP单播地址。
9.根据权利要求7或8所述的客户端设备,其特征在于,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址包括:
所述IP检测报文中的目的IP地址字段携带所述目标服务器的IP单播地址,所述IP检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址,且所述IP SRH中的剩余段数SegLeft字段的值为1,所述SegLeft字段的值指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
10.根据权利要求7或8所述的客户端设备,其特征在于,还包括:所述获取单元还用于获得从所述客户端设备到所述目标服务器的转发路径上的至少一个指定中间节点的IP单播地址;
相应地,所述获取单元还用于通过用户配置的命令行获得所述至少一个指定中间节点的IP单播地址;或者
所述获取单元还用于接收控制管理设备发来的消息,从所述消息中获得所述至少一个指定中间节点的IP单播地址。
11.根据权利要求10所述的客户端设备,其特征在于,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址包括:
所述IP检测报文中的目的IP地址字段携带第一指定中间节点的IP单播地址,所述第一指定中间节点为所述从所述客户端设备到所述目标服务器的转发路径上的第一个指定中间节点;
所述IP检测报文中的IP段路由头SRH中的段列表字段携带所述IP任播地址、所述目标服务器的IP单播地址和所述至少一个指定中间节点的IP单播地址,且所述IP SRH中的剩余段数SegLeft字段的值为所述指定中间节点的个数加1,所述SegLeft字段的值为1时指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址。
12.根据权利要求7或8所述的客户端设备,其特征在于,还包括:
在所述收发单元在预定的时间间隔内收到所述目标服务器发来的响应报文的情况下,所述处理单元确认所述目标服务器的IP任播地址可达;
在所述收发单元在预定的时间间隔内未收到所述目标服务器发来的响应报文的情况下,所述处理单元确认所述目标服务器的IP任播地址不可达,所述响应报文为针对所述IP检测报文的响应报文。
13.一种客户端设备,其特征在于,应用于基于任播服务的网络中,所述网络包括客户端设备和任播服务器集群,所述任播服务器集群包括至少两个服务器,所述至少两个服务器具有相同的互联网IP任播地址,所述客户端设备包括:
处理器,用于获得所述任播服务器集群的互联网协议IP任播地址和所述至少两个服务器中的目标服务器的IP单播地址;
所述处理器,还用于生成IP检测报文,所述IP检测报文用于检测所述目标服务器的IP任播地址是否可达,所述IP检测报文包括所述IP任播地址和所述目标服务器的IP单播地址,并且指示所述目标服务器用所述IP任播地址替换所述目标服务器的IP单播地址;
收发器,用于向所述目标服务器发送所述IP检测报文。
14.一种计算机可读介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至6任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711025021.9A CN109728962B (zh) | 2017-10-27 | 2017-10-27 | 一种发送报文的方法和设备 |
EP18871473.7A EP3694145B1 (en) | 2017-10-27 | 2018-08-08 | Method and device for sending messages |
PCT/CN2018/099413 WO2019080592A1 (zh) | 2017-10-27 | 2018-08-08 | 一种发送报文的方法和设备 |
US16/857,825 US11265287B2 (en) | 2017-10-27 | 2020-04-24 | Packet sending method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711025021.9A CN109728962B (zh) | 2017-10-27 | 2017-10-27 | 一种发送报文的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109728962A CN109728962A (zh) | 2019-05-07 |
CN109728962B true CN109728962B (zh) | 2021-12-21 |
Family
ID=66247164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711025021.9A Active CN109728962B (zh) | 2017-10-27 | 2017-10-27 | 一种发送报文的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11265287B2 (zh) |
EP (1) | EP3694145B1 (zh) |
CN (1) | CN109728962B (zh) |
WO (1) | WO2019080592A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111988266B (zh) * | 2019-05-24 | 2022-05-17 | 华为技术有限公司 | 一种处理报文的方法 |
CN112448891B (zh) * | 2019-09-02 | 2022-10-04 | 中国电信股份有限公司 | 业务链实现方法和系统、业务分类器和业务功能节点 |
CN111130930B (zh) * | 2019-12-16 | 2022-11-01 | 杭州迪普科技股份有限公司 | 双网卡检测方法和装置 |
CN111314200B (zh) * | 2020-02-29 | 2023-10-20 | 新华三技术有限公司 | 一种报文转发方法及装置 |
US11502954B1 (en) * | 2020-12-04 | 2022-11-15 | Juniper Networks, Inc. | Processing segment routing packets with two policy processing instructions in a segment routing domain |
CN113438166B (zh) * | 2021-06-25 | 2022-07-22 | 新华三信息安全技术有限公司 | 一种任播地址确定方法、装置、网络设备及存储介质 |
CN116996435A (zh) * | 2022-04-25 | 2023-11-03 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN114979090B (zh) * | 2022-05-27 | 2024-07-05 | 深圳市领创星通科技有限公司 | IPv6数据包处理方法、装置、计算机设备和存储介质 |
CN116232869B (zh) * | 2023-05-10 | 2023-07-25 | 明阳时创(北京)科技有限公司 | 一种跨协议栈网络故障定位方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1486094A (zh) * | 2002-09-26 | 2004-03-31 | ������������ʽ���� | 用于采用负载均衡的移动通信的方法和装置 |
US7047315B1 (en) * | 2002-03-19 | 2006-05-16 | Cisco Technology, Inc. | Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states |
WO2008015268A1 (en) * | 2006-08-04 | 2008-02-07 | Alcatel Lucent | Routing device, routing module and routing method for an access network |
EP2311234A2 (en) * | 2008-07-31 | 2011-04-20 | Tekelec | Methods, systems, and computer readable media for providing sedation service in a telecommunications network |
WO2011044729A1 (zh) * | 2009-10-14 | 2011-04-21 | 上海贝尔股份有限公司 | 通信网络中用于检测任意播组配置情况的方法和装置 |
CN103650437A (zh) * | 2013-06-28 | 2014-03-19 | 华为技术有限公司 | 任播服务注册、实现方法及装置、交换设备和系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512702B1 (en) * | 2002-03-19 | 2009-03-31 | Cisco Technology, Inc. | Method and apparatus providing highly scalable server load balancing |
US20080123640A1 (en) * | 2006-09-20 | 2008-05-29 | Ravideep Bhatia | Method for discovering outbound sip proxy server |
CN101729307A (zh) * | 2008-10-25 | 2010-06-09 | 华为技术有限公司 | 一种故障检测方法、通信设备及网络系统 |
US9137202B2 (en) * | 2011-06-09 | 2015-09-15 | At&T Intellectual Property I, L.P. | System and method for dynamically adapting network delivery modes of content |
CN102761618A (zh) * | 2012-07-03 | 2012-10-31 | 杭州华三通信技术有限公司 | 实现负载均衡的方法、设备及系统 |
US20170126569A1 (en) * | 2014-06-12 | 2017-05-04 | Convida Wireless, Llc | Enhanced neighbor discovery to support load balancing |
US9800497B2 (en) * | 2015-05-27 | 2017-10-24 | Cisco Technology, Inc. | Operations, administration and management (OAM) in overlay data center environments |
US10454758B2 (en) * | 2016-08-31 | 2019-10-22 | Nicira, Inc. | Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP |
-
2017
- 2017-10-27 CN CN201711025021.9A patent/CN109728962B/zh active Active
-
2018
- 2018-08-08 EP EP18871473.7A patent/EP3694145B1/en active Active
- 2018-08-08 WO PCT/CN2018/099413 patent/WO2019080592A1/zh unknown
-
2020
- 2020-04-24 US US16/857,825 patent/US11265287B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047315B1 (en) * | 2002-03-19 | 2006-05-16 | Cisco Technology, Inc. | Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states |
CN1486094A (zh) * | 2002-09-26 | 2004-03-31 | ������������ʽ���� | 用于采用负载均衡的移动通信的方法和装置 |
WO2008015268A1 (en) * | 2006-08-04 | 2008-02-07 | Alcatel Lucent | Routing device, routing module and routing method for an access network |
EP2311234A2 (en) * | 2008-07-31 | 2011-04-20 | Tekelec | Methods, systems, and computer readable media for providing sedation service in a telecommunications network |
WO2011044729A1 (zh) * | 2009-10-14 | 2011-04-21 | 上海贝尔股份有限公司 | 通信网络中用于检测任意播组配置情况的方法和装置 |
CN103650437A (zh) * | 2013-06-28 | 2014-03-19 | 华为技术有限公司 | 任播服务注册、实现方法及装置、交换设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200252366A1 (en) | 2020-08-06 |
EP3694145B1 (en) | 2022-10-19 |
CN109728962A (zh) | 2019-05-07 |
WO2019080592A1 (zh) | 2019-05-02 |
EP3694145A4 (en) | 2020-12-02 |
EP3694145A1 (en) | 2020-08-12 |
US11265287B2 (en) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109728962B (zh) | 一种发送报文的方法和设备 | |
CA3106407C (en) | Multi-cloud connectivity using srv6 and bgp | |
US11283707B2 (en) | Segment routing with fast reroute for container networking | |
CN113132201B (zh) | 一种vpc之间的通信方法及装置 | |
EP3355553B1 (en) | Reliable load-balancer using segment routing and real-time application monitoring | |
CN107646185B (zh) | 用于覆盖环境中的操作维护管理的方法、系统及存储介质 | |
CN106686085B (zh) | 一种负载均衡的方法、装置和系统 | |
CN110113441B (zh) | 实现负载均衡的计算机设备、系统和方法 | |
CN109768908B (zh) | 一种vxlan的配置方法、设备及系统 | |
US11863454B2 (en) | Systems and methods for scalable validation of multiple paths in a network using segment routing | |
JP7389091B2 (ja) | トラフィックフォワーディングを制御するための方法、装置及びシステム | |
CN115225634B (zh) | 虚拟网络下的数据转发方法、装置及计算机程序产品 | |
US20240129223A1 (en) | Systems and methods for data plane validation of multiple paths in a network | |
CN110022263B (zh) | 一种数据传输的方法及相关装置 | |
US10931565B2 (en) | Multi-VRF and multi-service insertion on edge gateway virtual machines | |
Hamarsheh | Examining the impact of link failures and network performance on a 6to4, 6rd, CHANC and D4across6 tunneling-based networks using various routing protocols | |
CN111224812A (zh) | 网络流量转发方法、装置、电子设备及机器可读存储介质 | |
CN114827027A (zh) | 一种报文处理方法及相关装置 | |
CN117834588A (zh) | 虚拟机元数据获取方法、装置、设备及存储介质 | |
CN114915538A (zh) | 一种故障检测方法、网络设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |