CN113660357A - 一种IPv6双栈系统自动获取IP地址的方法和装置 - Google Patents

一种IPv6双栈系统自动获取IP地址的方法和装置 Download PDF

Info

Publication number
CN113660357A
CN113660357A CN202110945170.7A CN202110945170A CN113660357A CN 113660357 A CN113660357 A CN 113660357A CN 202110945170 A CN202110945170 A CN 202110945170A CN 113660357 A CN113660357 A CN 113660357A
Authority
CN
China
Prior art keywords
address
ipv6
ipv4
message
option
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
Application number
CN202110945170.7A
Other languages
English (en)
Other versions
CN113660357B (zh
Inventor
张铭诺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN202110945170.7A priority Critical patent/CN113660357B/zh
Publication of CN113660357A publication Critical patent/CN113660357A/zh
Application granted granted Critical
Publication of CN113660357B publication Critical patent/CN113660357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2542Translation of Internet protocol [IP] addresses involving dual-stack hosts

Abstract

本发明涉及网络通信领域,特别是涉及一种IPv6双栈系统自动获取IP地址的方法和装置。主要包括:根据直接的转发接口,构造RA报文中的IPv4前缀选项和/或IPv6前缀选项,其中,IPv4前缀选项根据IPv4地址映射的IPv6地址进行构造;在RA报文中扩展第一D标记,并将第一D标记设置为有效;周期性发送构造好的RA报文。本发明可以在支持双栈的系统中,借助IPv6的无状态地址自动分配方案,通过合理的扩展,同时完成IPv4地址的分配,计算简单易行,且不需要额外的专用地址池,降低了网络运营成本。

Description

一种IPv6双栈系统自动获取IP地址的方法和装置
【技术领域】
本发明涉及网络通信领域,特别是涉及一种IPv6双栈系统自动获取IP地址的方法和装置。
【背景技术】
IPv6的地址自动配置分为两种:一种是传统的有状态(stateful),典型的就是与IPv4时代的DHCP相对应的DHCPV6。另一种是IPv6的无状态(stateless)自动配置,典型代表是路由器通告守护程序(Router Advertisement Daemon,简写为RADVD),无状态自动配置是IPv6协议的一个突出特点,能够支持网络节点的地址自动配置,无状态自动配置系统中。
在无状态地址自动配置方式下,网络接口接收路由器宣告的全局地址前缀,再结合接口ID得到一个可聚集全局单播地址。在有状态地址自动配置的方式下,主要采用动态主机配置协议(Dynamic Host Configuration Protocol,简写为DHCP),需要配备专门的DHCP服务器,网络接口通过客户机/服务器模式从DHCP服务器处得到地址配置信息。以RADVD为代表的无状态自动配置不需要消耗很多机器资源,也不需要像传统DHCP一样需要维护一个本地数据库来维护地址分配状态,仅广播前缀地址,每个客户端收到广播后再使用EUI64算法生成全球唯一的IPv6地址进行自我配置。DHCPv6完全相反,地址池的计算、管理全部是在服务端进行,客户端只是简单的从服务器端取得在服务端已经计算好的地址和其他设置并进行应用。
在同时支持IPv4和IPv6的Dual Stack(双栈)系统中,若网络设备,如光线路终端(optical line terminal,简写为OLT)作为客户端,常规方式是IPv4地址使用有状态的DHCP自动获取,配置较为复杂,而IPv6地址使用无状态地址自动分配方式获取,配置比较简单。在双栈系统中,如果需要同时自动获取IPv6和IPv4地址,就需要同时配置两套协议。DHCP需要同时配置客户端和服务端,配置方式较为复杂,协议层面需要多次报文交互,也十分复杂。IPv6的无状态地址自动分配方式使用IPv6 ND协议中的RA报文携带地址前缀自动分配,实现较为简单,且不需要复杂的配置。目前,IPv6地址也支持使用DHCPv6进行有状态地址分配,但是DHCPv6协议独立于DHCPv4,配置和协议的分配方式更为复杂。所以常规不使用DHCPv6有状态地址分配。而IPv4地址不支持无状态地址自动分配,通常通过DHCP自动获取地址。
鉴于此,如何克服现有技术所存在的缺陷,解决双栈系统中IPv4地址不支持无状态地址自动分配的现象,是本技术领域待解决的问题。
【发明内容】
针对现有技术的以上缺陷或改进需求,本发明解决了双栈系统中IPv4地址自动分配的问题。
本发明实施例采用如下技术方案:
第一方面,本发明提供了一种IPv6双栈系统自动获取IP地址的方法:服务器端,具体为:根据直接的转发接口,构造RA报文中的IPv4前缀选项和/或IPv6前缀选项,其中,IPv4前缀选项根据IPv4地址映射的IPv6地址进行构造;在RA报文中扩展第一D标记,并将第一D标记设置为有效;周期性发送构造好的RA报文。
优选的,当客户端不存在已配置的DNS信息时,还包括:服务器端在RA报文中预留DNS扩展选项,配置RA报文中的DNS参数和DNS扩展选项;在DNS扩展选项中扩展第二D标记,并将第二D标记设置为有效。
优选的,还包括:当服务器端使能IPv6双栈分配,根据转发接口的端口号,根据IPv6前缀选项的标准构造规则进行构造至少一个IPv6前缀选项,和/或根据IPv4地址映射的IPv6地址进行构造,IPv4前缀选项,并将第一D标记设置为有效;当服务器端去使能IPv6双栈分配时,使用标准构造方法生成IPv6地址前缀,并将第一D标记设置为无效。
第二方面,本发明提供了一种IPv6双栈系统自动获取IP地址的方法:客户端,具体为:根据RA报文中M标记、O标记和第一D标记的值获取IPv6前缀和IPv4前缀的解析规则;根据RA报文中IPv6前缀选项生成相应的IPv6地址;和/或,根据RA报文中IPv4前缀选项中携带的IPv4地址和IPv4前缀选项的长度获取IPv4地址的网络号,随机生成IPv4地址的主机号,将网络号和主机号组合为完整的IPv4地址。
优选的,随机生成IPv4地址的主机号,具体包括:根据主机位数值的位数确定主机位数值的范围,随机生成主机位数值范围内的可选数字;若可选数字不为合法数字,或可选数字与对端地址的主机位数值重复,重新生成可选数字;若可选数字为合法数字,且可选数字与对端地址的主机位数值不重复,将合法数字作为主机位数值。
优选的,根据RA报文中IPv6前缀选项生成相应的IPv6地址和/或所述将网络号和主机号组合为完整的IPv4地址之后,还包括:对分配的IPv6地址和IPv4地址进行冲突检测,若IPv6地址和/或IPv4地址与网络中其它节点的地址冲突,不使用冲突的地址,在下一周期接收到新的RA报文后再次进行地址分配。
优选的,当客户端不存在已配置的DNS信息时,还包括:根据DNS扩展选项中第二D标记的值获取DNS信息的配置规则;根据RA报文中的DNS参数和DNS扩展选项,使用RA报文中携带的IPv6和/或IPv4的DNS参数配置IPv6和/或IPv4的DNS信息。
优选的,根据接收到的RA报文的源地址生成默认网关路由;和/或,根据IPv4前缀选项中的IPv4地址生成默认网关路由
第三方面,本发明提供了一种IPv6双栈系统自动获取IP地址的装置:服务器端,具体为:包括至少一个第一处理器和第一存储器,所述至少一个第一处理器和第一存储器之间通过数据总线连接,所述第一存储器存储能被所述至少一个第一处理器执行的指令,所述指令在被所述第一处理器执行后,用于完成第一方面中提供的IPv6双栈系统自动获取IP地址的方法。
第四方面,本发明提供了一种IPv6双栈系统自动获取IP地址的装置:客户端,具体为:包括至少一个第二处理器和第二存储器,所述至少一个第二处理器和第二存储器之间通过数据总线连接,所述第二存储器存储能被所述至少一个第二处理器执行的指令,所述指令在被所述第二处理器执行后,用于完成第二方面中提供的IPv6双栈系统自动获取IP地址的方法。
与现有技术相比,本发明实施例的有益效果在于:在服务器端对RA报文进行扩展和配置,由RA报文携带IPv4前缀选项传递至客户端,再根据IPv4前缀选项为报文分配相应的IPv4地址。通过该方式,可以在支持双栈的系统中,借助IPv6的无状态地址自动分配方案,通过合理的扩展,同时完成IPv4地址的分配,计算简单易行,且不需要额外的专用地址池,降低了网络运营成本。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种IPv6双栈系统自动获取IP地址的方法服务器端步骤的流程图;
图2为本发明实施例提供的一种IPv6双栈系统自动获取IP地址的方法客户端步骤的流程图;
图3为RA报文前缀选项的字段定义示意图;
图4为RA报文前缀选项的结构示意图;
图5为本发明实施例提供的另一种IPv6双栈系统自动获取IP地址的方法流程图;
图6为现有RA报文的字段定义示意图;
图7为现有RA报文的字段格式示意图;
图8为本方案扩展后的RA报文的字段定义示意图;
图9为本方案对RA报文中RDNSS选项扩展的字段定义示意图;
图10为本方案对RA报文中DNSSL选项扩展的字段定义示意图;
图11为本发明实施例提供的另一种IPv6双栈系统自动获取IP地址的方法流程图;
图12为本发明实施例提供的另一种IPv6双栈系统自动获取IP地址的方法流程图;
图13为本发明实施例提供的一种IPv6双栈系统自动获取IP地址的装置结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
实施例1:
IPv6的无状态地址自动分配方式使用隶属于IPv6协议的邻居发现(NeighborDiscovery,简写为ND)协议中的路由器通告(Router Advertisement,简写为RA)报文,该报文中,IPv6地址的配置和分配方式都十分简单,如果能利用RA报文同时分配IPv4地址,将对同时使用IPv4和IPv6地址的场景提供极大的便利。本实施例在支持双栈的系统中,借助IPv6的无状态地址自动分配方案,通过合理的扩展,在RA报文中同时分配IPv4地址,使得RA报文可以同时完成IPv6地址和IPv4地址的配置和分配,减少配置的复杂性。
本实施例提供的自动获取IP地址的方法中,由RA报文的发送设备将IPv6地址写入RA报文的IPv6前缀中,并将IPv4地址映射为IPv6地址写入RA报文的IPv4前缀中,再由RA报文的接收设备将RA报文中携带的IPv4地址和IPv6地址解析出来,以达到自动获取IP地址的效果。实际使用中,网络设备通常同时具备发送和接收的功能,在本实施例中,为了描述简便,将作为发送设备使用的网络设备称为服务器端,将作为接收设备使用的网络设备称为客户端。
如图1所示,本发明实施例提供的IPv6双栈系统自动获取IP地址的方法中,服务器端构造RA报文的具体步骤如下。
步骤101:根据直接的转发接口,构造RA报文中的IPv4前缀选项和/或IPv6前缀选项。
如图3所示,为现有RA报文前缀选项的字段说明,其中,Prefix部分可以保存IPv6或IPv4地址,图4中为相应报文前缀选项结构示意图。在RA报文中,可以仅携带IPv6地址或IPv4地址中的任一种,也可以以双栈的方式同时携带IPv6地址和IPv4地址。双栈场景下,为了同时获取IPv6地址和IPv4地址,RA报文同时携带多个前缀选项,每一个前缀选项携带一个IP地址。根据通信协议的规定,可以分配多个IPv6地址,因此可以携带多个包含IPv6地址的前缀选项;而IPv4地址仅能分配一个,因此仅能携带一个包含IPv4地址的前缀选项。
在具体实施中,两种前缀地址需要使用不同的方式进行构造。
(1)现有ND协议中,已包含了IPv6地址的构造方式,IPv6前缀选项根据IPv6前缀选项的标准构造规则进行构造。例如,遵照RFC4861协议标准进行实现,或根据后续出现的相应标准协议进行实现。
(2)对于IPv4前缀选项,由于现有协议中不存在标准构造方式,可以根据需要自定义地址映射方法,在客户端能够完成对应解析即可。本实施例中提供了几种可用的构造方法:(a)IPv4前缀选项根据IPv4地址映射的IPv6地址进行构造,其中,映射的IPv6地址后32位为IPv4地址。具体的,对于携带IPv4地址的前缀选项,前缀长度即为掩码长度,取值范围为0-32,RA报文中的prefix字段使用IPv4映射IPv6地址,格式为::ffff:a.b.c.d,其中最后32位的a.b.c.d为IPv4地址,地址的具体值根据服务器直连接口的IPv4地址的值确定。(b)使128位IPv6地址的前96位全部为0,后32位为IPv4地址,格式表示为::a.b.c.d,其中最后32位的a.b.c.d为IPv4地址,地址的具体值根据服务器直连接口的IPv4地址的值确定。上述构造方式对应规则简单,便于IPv4前缀选项的构造和解析。在实际使用中,也可以根据需要使用其它构造方法,能够在IPv4前缀选项中携带需要的IPv4地址并获得唯一的解析结果即可。
通过上述方式构造RA报文中的地址时,直接构造IPv6地址,或将服务端直连接口的IPv4地址映射为IPv6地址填写在前缀选项中。在服务端不需要配置地址池,而是在RA报文中直接携带直连接口的IPv4地址和前缀长度。
步骤102:在RA报文中扩展第一D标记,并将第一D标记设置为有效。
本实施例提供的IPv4地址自动获取方法,基于现有的RA报文结构和字段定义进行扩展,无需额外处理即可在现网中传输,因此可以与现有的双栈RA报文同时使用。为了将使用本方案的RA报文与现有的双栈RA报文进行区分,使得客户端方便的识别可以获取到IPv4地址的RA报文,不需要进行解析后再判断是否同时携带了IPv6和IPv4地址,还可以进一步对RA报文进行扩展,加入相应的标识。
现有的RA报文结构中,如图6所示的字段定义,目前使用的原始RA报文中,为了区别有DHCPv6状态协议和ND协议等无状态协议,包含了标识符:(1)管理地址配置标识(Managed Address Configuration,简写为M字段),标识地址的分配方式是否为无状态分配方式;(2)其他有状态配置标识(Other Configuration,简写为O字段),标除地址外设为其他配置信息,如DNS,SIP服务器信息是否为无状态分配方式。进一步的,在M标记、O标记之后有6bit位的预留字段,对应的RA报文格式如图7所示。为了对本方案的RA报文的双栈模式进行标识,本实施例在RA报文进行了扩展,增加了双栈模式的D标记,意为“dual stack(双栈)”。在具体是使用中,可以取预留字段6bit位中任意一位或多位的组合来表示D标记均可,为了方便表示,图7中以取预留字段中第1bit位为例。由于RA报文中还包含DNS扩展选项等可选结构,每个可选结构中也包含D选项,本实施例中为了进行区别描述,将RA报文中标识IP地址解析方式的D标记称为第一D标记,将DNS扩展选项中的D标记称为第二D标记。当第一D标记置为1时,标识此报文是符合本实施例中扩展结构的报文,能够在双栈场景下同时分配IPv6地址和IPv4地址。加入第一D标记后的RA报文结构如图8所示。为了确保本实施例提供的RA报文能够被正确解析,客户端可以获取到正确的IPv4地址,在服务端构造RA报文时,需要将M标记和O标记都置0,将第一D标记置为有效。在一般的实施场景中,为了与其它标记的有效值对应,第一D标记和第二D标记通常也使用1标识有效,0表示无效。
进一步的,本实施例提供的方法中,RA报文的基本结构并没有进行更改,依然可以使用现有的方式进行构造和解析,若不需以双栈方式同时分配IPv6地址和IPv4地址,则可将第一D标记设置为无效,客户端依照DHCPv6协议等现有方式,根据M标记和O标记对RA报文进行解析使用。通过设置第一D标记,可以在不改变系统配置的情况下,方便的实现本实施例提供的方法和现有IP地址分配方法的兼容使用。
步骤103:周期性发送构造好的RA报文。
构造好RA报文后,为了使客户端及时获取到需要的IP地址,服务器端向客户端周期性发送RA报文,向客户端传输所需的IP地址。由于RA报文的周期性发送通常在设备中是默认抑制的。因此,服务器端还需要去使能IPv6 NDRA的抑制功能,使RA报文可以根据需要周期性发送。
经过步骤101-步骤103,服务器端完成了对RA报文的扩展,将IPv6地址和IPv4地址写入相应的前缀选项中,以便于客户端进行使用。
进一步的,为了便于控制,对于提供地址的服务端来说,为了与以前的IPv6无状态地址自动分配相兼容,在本实施例的优选方案中,可以在服务器端新增一条控制命令,用来控制双栈地址的自动分配。具体实施中,命令可以根据需要定义,例如:IPv6 dual stackaddress auto config—使能IPv6双栈地址分配;No IPv6 dual stack address autoconfig—去使能IPv6双栈地址分配。
进一步的,为了对地址的生命周期进行管理,进行IPv4和IPv6的地址分配后,类似DHCP协议对地址的租期规定,可以使用前缀选项中的Valid Lifetime和PreferredLifetime指定IP地址的生命周期,若指定为全f,说明是永久使用。
另一方面,如图2所示,本发明实施例提供的IPv6双栈系统自动获取IP地址的方法中,客户端解析RA报文的具体步骤如下。
步骤201:根据RA报文中M标记、O标记和第一D标记的值获取IPv6前缀和IPv4前缀的解析规则。
由于本实施例提供的地址分配方法可以与现有的地址分配方法并行使用,为了确认RA报文是否为双栈分配,客户端接收到RA报文后,需要解析接收到的所述RA报文中的M标记、O标记和第一D标记,以避免IP地址分配方式错误。具体的,在RFC4861协议中,使用M标记和O标记标识不同的配置方式,当M标记或O标记为1时,表明RA报文为一般RA报文,此时忽略第一D标记,根据相应标记使用DHCP或者DHCPv6进行配置。由于本专利方案不使用DHCP或者DHCPv6参与配置,所以使用本方案的RA报文中的M标记和O标记必须同时为0,通过进一步识别第一D标记的值选择相应的处理方式。
不同标识值对应的处理方式具体如下。
(1)当M标记为1时,IPv6地址通过根据标准分配方式进行分配,例如通过DHCPv6分配IPv6地址。当M标记为0时,可以使用无状态协议自动分配地址,如直接通过IPv6协议进行分配。
(2)当O标记为1时,RA报文中除IPv6地址之外的配置选项根据标准分配方式进行配置,例如使用DHCPv6分配DNS信息、默认路由地址等。当O标记为0时,根据需要使用ND协议中的其它可选扩展项进行扩展和分配。根据协议规定,为了使分配方式保持一致,当M标记为1时,O标记也需要为1。
(3)当M标记和O标记都为0且第一D标记为1时,为本实施例提供的RA报文扩展格式,通过RA报文中的IPv6前缀选项和IPv4前缀选项分配IPv6地址和IPv4地址。该标识值表明该RA报文在服务器端根据本实施例提供的方法同时构造了IPv4地址前缀和IPv6地址前缀,在发送至客户端时同时携带了IPv6地址前缀和IPv4地址前缀。因此,在同一条RA报文中,既可以使用无状态地址分配方式完成IPv6地址的自动分配和传递,又可以通过IPv4地址映射的IPv6地址完成IPv4地址的自动分配和传递,无需进行额外的设置或地址分配就可以完成双栈系统下两种地址的自动获取。通过解析M标记、O标记和第一D标记获取到RA报文的解析方式后,即可根据RA报文中的前缀选项使用相应的方式分配相应的地址。
与构造方法对应,IPv6地址和IPv4地址使用不同的方式进行分配。
(1)对于IPv6地址,前缀选项中根据标准构造规则进行构造,在进行解析时,也按照相应的标准构造规则进行解析,根据RA报文中IPv6前缀选项生成相应的IPv6地址。
(2)对于IPv4地址,根据本实施例提供的构造规则进行解析。IPv4地址中需要网络号和主机号,因此需要根据RA报文中IPv4前缀选项中后32位和IPv4前缀选项的长度获取IPv4地址的网络号,随机生成IPv4地址的主机号,将网络号和主机号组合为完整的IPv4地址。
具体的,在实际使用中,IPv4地址无法使用IPv6的eui-64算法生成主机位,本实施例中可以根据掩码长度,随机生成主机位,生成最终的IPv4地址。基于IP地址的一般规则,随机生成的主机位不能为全0或全f,也不能和前缀携带的地址主机位相同。
如图5所示,可以使用如下步骤完成主机位生成。
步骤301:根据主机位数值的位数确定主机位数值的范围,随机生成主机位数值范围内的可选数字。
根据主机位数和基本原则,随机出一个在范围内的可选数字,例如掩码为24位,则主机位为8位,则可选数字的数值范围为0-255。
步骤302:若可选数字不为合法数字,或可选数字与对端地址的主机位数值重复,重新生成可选数字。
根据基本规则,在步骤301的数值范围中,不合法数字为0(全0)和255(全f),假设携带的对端地址的主机位是10,则10也为不合法数字。当可选数字为上述数字时,不使用该可选数字作为主机位,需要再随机出一个合法的可选数字作为主机位。
步骤303:若可选数字为合法数字,且可选数字与对端地址的主机位数值不重复,将合法数字作为主机位数值。
若随机出的可选数字为合法数字,则该数字可以作为主机位的数值使用。通过步骤301-步骤303,可以获取到IPv4的主机位,与RA报文中携带的IPv4网络号相结合,即可得到完整的IPv4地址。
在本实施例的具体使用中,根据步骤101,RA报文可以仅携带IPv6前缀选项,也可以仅携带IPv4前缀选项,还可以同时携带IPv6前缀选项和IPv4前缀选项。因此,在客户端进行解析时,根据需要,可以根据每个前缀选项的具体内容,使用步骤202或步骤203中的方法进行相应的解析,以获取前缀选项中携带的IP地址。
进一步的,由于RA报文中可以携带多个前缀选项,在处理完一个前缀选项后,还需要对其它前缀选项依次进行处理。具体的,由于IPv4地址只能配置一个主地址,在主地址已存在的情况下,需要忽略携带IPv4地址的前缀选项。而IPv6地址可以配置多个,因此可以根据前缀选项的数量继续配置IPv6地址,具体数量受限于设备支持的前缀选项规格和可以配置的IPv6地址规格。
进一步的,在某些实施场景中,为了降低本技术方案的复杂性,不考虑在客户端维护已冲突IP地址表,以降低分配地址冲突的可能性。具体的,可以参考IPv6地址的地址重复性检测(Duplicate Address Detection,简写为DAD)机制,在客户端得到分配地址后,使用arp协议的地址冲突检测做检查,例如使用freearp等方式,对分配的IPv6地址和IPv4地址进行冲突检测,若IPv6地址和/或IPv4地址与网络中其它节点的地址冲突,不使用冲突的地址,在下一周期接收到新的RA报文后再次进行地址分配。在需要维护已冲突IP地址表的场景中,可以使用IP地址和其它设备标识结合以避免冲突,例如,在路由器的arp cache中记录报文的IP地址及其对应的mac地址,以IP地址和mac地址共同标识转发路径。
通过步骤101-步骤103,以及步骤201-步骤203,在服务器端自动构造IPv4地址的网络号,将构造出的IPv4地址的网络号通过RA报文的前缀选项传递至客户端,并在客户端与随机生成的主机号相结合,完成IPv4地址的自动获取。
进一步的,在进行路由时,还需要使用DNS服务器地址、DNS域名等DNS信息。对于现有的RA报文结构,可以通过手动配置DNS信息或按照RFC6106自动配置DNS信息。在本实施例中,无法直接使用现有的自动配置DNS的方式,当客户端不存在已配置的DNS信息或用户未手动配置DNS信息时,还需要对RA报文中的DNS选项进行配置。
为了对DNS选项进行配置和传输,需要在RA报文中预留DNS扩展选项,服务器端配置RA报文中的DNS参数和DNS扩展选项。同样的,为了将普通RA报文和使用本实施例中方案扩展后的RA报文进行区分,需要在DNS选项中扩展第二D标记,将DNS选项中的第二D标记置1。在具体实施中,有RDNSS选项扩展和DNSSL选项扩展两种方式。图9是RDNSS选项扩展示意图,图9中的第二D标记称为第三D标记,当第三D标记置为1时,标识此选项是在双栈场景下自动配置IPv4的DNS服务器地址列表。图10是DNSSL选项扩展示意图,图10中的第二D标记称为第四D标记,当第四D标记置为1时,标识此选项是在双栈场景下自动配置IPv4的DNS域名搜索列表。
另一方面,当RA报文传输至客户端后,客户端根据RA报文中的DNS参数和DNS扩展选项,自动配置相应的DNS信息。配置DNS信息时,首先根据RA报文中的第一D标记值判断RA报文中是否按照本实施例提供的方式对DNS信息进行了扩展。当DNS选项中的第二D标记为0时,表明按照现有规则对DNS信息进行扩展,按照标准规则配置IPv6的DNS信息,例如,可以根据RFC6106中的RA报文DNS选项扩展规则,在IPv6无状态地址自动配置场景给IPv6客户端自动配置DNS信息。当DNS选项中的第二D标记为1时,表明按照本实施例提供的方法对DNS信息进行扩展,使用RA报文中携带的IPv6和/或IPv4的DNS参数配置IPv6和/或IPv4的DNS信息,即通过服务器端配置的DNS参数获取DNS信息。
通过上述过程,可以利用RA报文的DNS选项扩展,实现双栈场景下客户端同时自动配置IPv4和IPv6的DNS信息。
进一步的,对于本实施例提供的双栈场景下的RA报文,在未对默认路由进行手动配置的情况下,还需要客户端根据接收到的RA报文的源地址生成默认网关路由。具体的,在IPv6无状态地址自动配置场景下,即第一D标记为0的情况下,客户端根据接收到的RA报文的源地址,即网关的linklocal地址,生成默认网关路由。使用本实施例中RA报文扩展的场景下,即第一D标记为1的情况下,在RA报文携带了IPv4信息的前缀选项中获取的地址,即是与客户端直连的路由器接口地址,可以以此地址作为默认网关地址生成IPv4的默认网关路由,即客户端根据IPv4前缀选项中的IPv4地址生成默认网关路由。
将本实施例中提供的标记扩展、DNS信息配置、默认路由配置等步骤与步骤101-步骤103,以及步骤201-步骤203相结合后,服务器端和客户端的处理过程扩展如下。
如图11所示,为服务端处理流程。各步骤可以根据使用场景的实际支持情况和需求调整顺序或多步骤同步进行。
步骤401:服务端根据与客户端直接的接口构造RA报文中的IPv6前缀选项和IPv4前缀选项。
步骤402:判断是否需要配置DNS参数,若是,转步骤403;若否,转步骤404。
步骤403:在服务端配置IPv6和IPv4的DNS参数信息。
步骤404:去使能IPv6 ND RA的抑制功能。
步骤405:使用服务器端控制命令使能IPv6双栈地址自动分配功能。
步骤406:在RA报文的前缀选项中携带IPv6地址信息、IPv4地址信息。
步骤407:将RA报文前缀选项中的M标记置0,O标记置0,第一D标记置1。
步骤408:判断是否需要配置DNS参数,若是,转步骤409;若否,转步骤411。
步骤409:在DNS选项中携带DNS参数信息。
步骤410:将DNS选项中的第二D标记置为1。
步骤411:向客户端发送构造好的扩展后的RA报文。
通过步骤401-步骤411,可以完成步骤101-步骤103中服务器端执行的功能,并对功能进行扩展。
图12所示,为客户端处理流程。各步骤可以根据使用场景的实际支持情况和需求调整顺序或多步骤同步进行。
步骤501:客户端接收服务端发送的RA报文。
步骤502:判断M标记和O标记是否都为0,若否,转步骤503;若是,转步骤504。
步骤503:遵照RFC4861或其它现有规则,按照普通RA报文的处理方式生成IPv6地址和默认路由。
步骤504:判断第一D标记是否为1,若否,转步骤503;若是,转步骤505。
步骤505:检查是否携带了前缀选项,若是,转步骤506;若否,转步骤510。
步骤506:判断前缀地址是否为IPv4映射IPv6,若是,转步骤507;若否,转步骤503。
步骤507:按照步骤203中的方法生成完整的IPv4地址。
步骤508:根据解析出的IPv4地址生成IPv4的默认路由。
步骤509:判断RA报文中的前缀选项是否处理完成,若是,转步骤510;若否,转步骤502。
步骤510:检查RA报文中是否携带了DNS选项,若是,转步骤511;若否,转步骤514。
步骤511:判断DNS选项中的第二D标记是否为1,若是,转步骤512;若否,转步骤514。
步骤512:按照IPv4 DNS参数对客户端进行配置。
步骤513:按照IPv6 DNS参数对客户端进行配置。
步骤514:判断是否存在其它选项,若是,转步骤515;若否,结束处理。
步骤515:处理其它选项。
步骤516:判断是否所有选项都处理完成,若是,结束处理;若否,转步骤515。
通过步骤501-步骤516,可以完成步骤201-步骤203中客户端执行的功能,并对功能进行扩展。
本实施例提供的IPv6双栈系统自动获取IP地址的方法,能够在同时支持IPv6和IPv4的双栈系统中,使用IPv6无状态地址分配的方式同时分配IPv6地址和IPv4地址。避免为了同时自动获取IPv4和IPv6地址需要同时配置DHCP和IPv6、甚至需要同时配置DHCP、DHCPv6和IPv6的复杂场景。通过本实施例提供的简单易行的双栈地址自动分配方案,可以快速自动获得IPv4和IPv6地址,减少系统的运算和存储开支,降低开局和运维的成本。
实施例2:
在上述实施例1提供的IPv6双栈系统自动获取IP地址的方法的基础上,本发明还提供了一种可用于实现上述方法的IPv6双栈系统自动获取IP地址的装置。
实际使用中,网络设备通常同时具备发送和接收的功能,因此,同样的装置既可以作为客户端使用,又可以作为服务器端使用。在本实施例中,为了避免重复描述,不对设备的具体使用方式进行区分,在实际使用场景中,该设备进行RA报文发送时即可视为服务器端装置,进行RA报文接收时即可视为客户端装置。
如图13所示,是本发明实施例的服务器端或客户端装置架构示意图。本实施例的IPv6双栈系统自动获取IP地址的装置包括一个或多个处理器11以及存储器12。其中,图13中以一个处理器11为例。
处理器11和存储器12可以通过总线或者其他方式连接,图13中以通过总线连接为例。
存储器12作为一种IPv6双栈系统自动获取IP地址方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的IPv6双栈系统自动获取IP地址方法。处理器11通过运行存储在存储器12中的非易失性软件程序、指令以及模块,从而执行IPv6双栈系统自动获取IP地址的装置的各种功能应用以及数据处理,即实现实施例1至的IPv6双栈系统自动获取IP地址的方法。
存储器12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器12可选包括相对于处理器11远程设置的存储器,这些远程存储器可以通过网络连接至处理器11。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
程序指令/模块存储在存储器12中,当被一个或者多个处理器11执行时,执行上述实施例1中的IPv6双栈系统自动获取IP地址的方法,例如,执行以上描述的图1、图2、图5、图11和图12所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为:ROM)、随机存取存储器(Random AccessMemory,简写为:RAM)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种IPv6双栈系统自动获取IP地址的方法:服务器端,其特征在于:
根据直接的转发接口,构造RA报文中的IPv4前缀选项和/或IPv6前缀选项,其中,IPv4前缀选项根据IPv4地址映射的IPv6地址进行构造;
在RA报文中扩展第一D标记,并将第一D标记设置为有效;
周期性发送构造好的RA报文。
2.根据权利要求1所述IPv6双栈系统自动获取IP地址的方法:服务器端,其特征在于,当客户端不存在已配置的DNS信息时,还包括:
服务器端在RA报文中预留DNS扩展选项,配置RA报文中的DNS参数和DNS扩展选项;
在DNS扩展选项中扩展第二D标记,并将第二D标记设置为有效。
3.根据权利要求1所述的IPv6双栈系统自动获取IP地址的方法:服务器端,其特征在于,还包括:
当服务器端使能IPv6双栈分配,根据转发接口的端口号,根据IPv6前缀选项的标准构造规则进行构造至少一个IPv6前缀选项,和/或根据IPv4地址映射的IPv6地址进行构造,IPv4前缀选项,并将第一D标记设置为有效;
当服务器端去使能IPv6双栈分配时,使用标准构造方法生成IPv6地址前缀,并将第一D标记设置为无效。
4.一种IPv6双栈系统自动获取IP地址的方法:客户端,其特征在于:
根据RA报文中M标记、O标记和第一D标记的值获取IPv6前缀和IPv4前缀的解析规则;
根据RA报文中IPv6前缀选项生成相应的IPv6地址;
和/或,根据RA报文中IPv4前缀选项中携带的IPv4地址和IPv4前缀选项的长度获取IPv4地址的网络号,随机生成IPv4地址的主机号,将网络号和主机号组合为完整的IPv4地址。
5.根据权利要求4所述的IPv6双栈系统自动获取IP地址的方法:客户端,其特征在于,所述随机生成IPv4地址的主机号,具体包括:
根据主机位数值的位数确定主机位数值的范围,随机生成主机位数值范围内的可选数字;
若可选数字不为合法数字,或可选数字与对端地址的主机位数值重复,重新生成可选数字;
若可选数字为合法数字,且可选数字与对端地址的主机位数值不重复,将合法数字作为主机位数值。
6.根据权利要求4所述的IPv6双栈系统自动获取IP地址的方法:客户端,其特征在于,所述根据RA报文中IPv6前缀选项生成相应的IPv6地址和/或所述将网络号和主机号组合为完整的IPv4地址之后,还包括:
对分配的IPv6地址和IPv4地址进行冲突检测,若IPv6地址和/或IPv4地址与网络中其它节点的地址冲突,不使用冲突的地址,在下一周期接收到新的RA报文后再次进行地址分配。
7.根据权利要求4所述的IPv6双栈系统自动获取IP地址的方法:客户端,其特征在于,当客户端不存在已配置的DNS信息时,还包括:
根据DNS扩展选项中第二D标记的值获取DNS信息的配置规则;
根据RA报文中的DNS参数和DNS扩展选项,使用RA报文中携带的IPv6和/或IPv4的DNS参数配置IPv6和/或IPv4的DNS信息。
8.根据权利要求4所述的IPv6双栈系统自动获取IP地址的方法:客户端,其特征在于:
根据接收到的RA报文的源地址生成默认网关路由;
和/或,根据IPv4前缀选项中的IPv4地址生成默认网关路由。
9.一种IPv6双栈系统自动获取IP地址的装置:服务器端,其特征在于:
包括至少一个第一处理器和第一存储器,所述至少一个第一处理器和第一存储器之间通过数据总线连接,所述第一存储器存储能被所述至少一个第一处理器执行的指令,所述指令在被所述第一处理器执行后,用于完成权利要求1-3中任一项所述的IPv6双栈系统自动获取IP地址的方法。
10.一种IPv6双栈系统自动获取IP地址的装置:客户端,其特征在于:
包括至少一个第二处理器和第二存储器,所述至少一个第二处理器和第二存储器之间通过数据总线连接,所述第二存储器存储能被所述至少一个第二处理器执行的指令,所述指令在被所述第二处理器执行后,用于完成权利要求4-8中任一项所述的IPv6双栈系统自动获取IP地址的方法。
CN202110945170.7A 2021-08-17 2021-08-17 一种IPv6双栈系统自动获取IP地址的方法和装置 Active CN113660357B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110945170.7A CN113660357B (zh) 2021-08-17 2021-08-17 一种IPv6双栈系统自动获取IP地址的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110945170.7A CN113660357B (zh) 2021-08-17 2021-08-17 一种IPv6双栈系统自动获取IP地址的方法和装置

Publications (2)

Publication Number Publication Date
CN113660357A true CN113660357A (zh) 2021-11-16
CN113660357B CN113660357B (zh) 2023-10-27

Family

ID=78480725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110945170.7A Active CN113660357B (zh) 2021-08-17 2021-08-17 一种IPv6双栈系统自动获取IP地址的方法和装置

Country Status (1)

Country Link
CN (1) CN113660357B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190109A (zh) * 2022-07-12 2022-10-14 中国工商银行股份有限公司 IPv6地址配置方法及装置

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744596A (zh) * 2004-09-01 2006-03-08 华为技术有限公司 IPv6网络中主机获取网络配置参数的方法
CN101848247A (zh) * 2009-03-26 2010-09-29 华为技术有限公司 实现IPv6主机访问IPv4主机的方法、获取IPv6地址前缀的方法和转换装置
US20120011234A1 (en) * 2009-03-26 2012-01-12 Huawei Technologies Co., Ltd. Method for enabling ipv 6 host to access ipv4 host, method for obtaining ipv6 address prefix, and translation apparatus
CN102469176A (zh) * 2010-11-18 2012-05-23 中国移动通信集团公司 Ip地址分配的方法及设备
WO2013123763A1 (zh) * 2012-02-20 2013-08-29 烽火通信科技股份有限公司 家庭网关动态配置ipv6的方法
US20130279518A1 (en) * 2012-04-19 2013-10-24 Futurewei Technologies, Inc. System and Apparatus for Router Advertisement Options for Configuring Networks to Support IPv6 to IPv4 Multicast Translation
CN103384282A (zh) * 2013-07-31 2013-11-06 北京华为数字技术有限公司 一种获取ipv6nd地址的方法及bars
US20150180823A1 (en) * 2012-07-25 2015-06-25 Zte Corporation System and data card for stateless automatic configuration of IPv6 address and method for implementing the same
CN104883407A (zh) * 2014-02-28 2015-09-02 中兴通讯股份有限公司 IPv6地址处理方法、装置及DHCPv6中继设备
CN105120014A (zh) * 2015-09-08 2015-12-02 烽火通信科技股份有限公司 一种LTE上行家庭网关中的IPv6实现系统及方法
CN105407540A (zh) * 2014-09-08 2016-03-16 思科技术公司 网络环境中基于ip协议的多接入点名称支持的系统和方法
CN105591848A (zh) * 2014-10-20 2016-05-18 中兴通讯股份有限公司 一种IPv6无状态自动配置的认证方法及装置
US20160253134A1 (en) * 2015-02-26 2016-09-01 Canon Kabushiki Kaisha Information processing apparatus and control method for information processing apparatus
US20170034125A1 (en) * 2014-02-28 2017-02-02 Zte Corporation Method for Processing NAT64 Prefix, Network Equipment and DHCPv6 Server
CN108848100A (zh) * 2018-06-27 2018-11-20 清华大学 一种有状态IPv6地址生成方法及装置
US20200314059A1 (en) * 2019-03-28 2020-10-01 New H3C Technologies Co., Ltd. Ipv6 stateless address auto-configuration

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744596A (zh) * 2004-09-01 2006-03-08 华为技术有限公司 IPv6网络中主机获取网络配置参数的方法
CN101848247A (zh) * 2009-03-26 2010-09-29 华为技术有限公司 实现IPv6主机访问IPv4主机的方法、获取IPv6地址前缀的方法和转换装置
US20120011234A1 (en) * 2009-03-26 2012-01-12 Huawei Technologies Co., Ltd. Method for enabling ipv 6 host to access ipv4 host, method for obtaining ipv6 address prefix, and translation apparatus
CN102469176A (zh) * 2010-11-18 2012-05-23 中国移动通信集团公司 Ip地址分配的方法及设备
WO2013123763A1 (zh) * 2012-02-20 2013-08-29 烽火通信科技股份有限公司 家庭网关动态配置ipv6的方法
US20130279518A1 (en) * 2012-04-19 2013-10-24 Futurewei Technologies, Inc. System and Apparatus for Router Advertisement Options for Configuring Networks to Support IPv6 to IPv4 Multicast Translation
US20150180823A1 (en) * 2012-07-25 2015-06-25 Zte Corporation System and data card for stateless automatic configuration of IPv6 address and method for implementing the same
CN103384282A (zh) * 2013-07-31 2013-11-06 北京华为数字技术有限公司 一种获取ipv6nd地址的方法及bars
CN104883407A (zh) * 2014-02-28 2015-09-02 中兴通讯股份有限公司 IPv6地址处理方法、装置及DHCPv6中继设备
US20170034125A1 (en) * 2014-02-28 2017-02-02 Zte Corporation Method for Processing NAT64 Prefix, Network Equipment and DHCPv6 Server
CN105407540A (zh) * 2014-09-08 2016-03-16 思科技术公司 网络环境中基于ip协议的多接入点名称支持的系统和方法
CN105591848A (zh) * 2014-10-20 2016-05-18 中兴通讯股份有限公司 一种IPv6无状态自动配置的认证方法及装置
US20160253134A1 (en) * 2015-02-26 2016-09-01 Canon Kabushiki Kaisha Information processing apparatus and control method for information processing apparatus
CN105120014A (zh) * 2015-09-08 2015-12-02 烽火通信科技股份有限公司 一种LTE上行家庭网关中的IPv6实现系统及方法
CN108848100A (zh) * 2018-06-27 2018-11-20 清华大学 一种有状态IPv6地址生成方法及装置
US20200314059A1 (en) * 2019-03-28 2020-10-01 New H3C Technologies Co., Ltd. Ipv6 stateless address auto-configuration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190109A (zh) * 2022-07-12 2022-10-14 中国工商银行股份有限公司 IPv6地址配置方法及装置

Also Published As

Publication number Publication date
CN113660357B (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
US7046666B1 (en) Method and apparatus for communicating between divergent networks using media access control communications
US7339895B2 (en) Gateway device and control method for communication with IP and IPV6 protocols
US6697360B1 (en) Method and apparatus for auto-configuring layer three intermediate computer network devices
US10931549B2 (en) Communication device of an industrial automation system and method for configurating the communication device
US10931628B2 (en) Duplicate address detection for global IP address or range of link local IP addresses
US8054839B2 (en) Apparatus and method of processing stateful address auto-configuration protocol in IPv6 network
US20120324063A1 (en) Method, network device, and system for automatically configuring network device in ipv6 network
US8478891B1 (en) Employing socket ranges to ascertain layer 2 addresses
US7764691B2 (en) Allowing IPv4 clients to communicate using teredo addresses when both clients are behind a NAT
KR100484145B1 (ko) 중복 주소 노드에 가상 주소를 자동으로 할당하는 장치 및방법
WO2009117963A1 (zh) 地址配置方法、装置和系统
KR20040065643A (ko) IPv6 프로토콜을 위한 IP 주소 및 도메인명자동등록 방법
CN112840601B (zh) 用于配置待命名的装置的方法、装置和计算机可读介质
CN102404718B (zh) 一种无线传感网络的IPv6地址无状态自动配置方法
WO2021253481A1 (zh) 一种面向工业异构网络设备的地址统一分配方法及装置
CN103384282B (zh) 一种获取ipv6nd地址的方法及bras
CN102118453B (zh) Ip地址自动配置方法、服务端设备、客户机和通信系统
CN112654049B (zh) 用于配置无线通信覆盖扩展系统的方法、系统、节点和介质
US8194683B2 (en) Teredo connectivity between clients behind symmetric NATs
US20120198091A1 (en) Network system, control apparatus and network apparatus
US20060067350A1 (en) Method of assigning network identifiers by means of interface identifiers
KR100587560B1 (ko) 링크 로컬 주소를 가지는 시스템에서 외부 시스템과통신하는 방법 및 장치
CN113660357B (zh) 一种IPv6双栈系统自动获取IP地址的方法和装置
EP3248335B1 (en) Server-based local address assignment protocol
US7693091B2 (en) Teredo connectivity between clients behind symmetric NATs

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