CN111866212B - 一种网关为下挂路由器自动分配ipv6 pd前缀的方法 - Google Patents

一种网关为下挂路由器自动分配ipv6 pd前缀的方法 Download PDF

Info

Publication number
CN111866212B
CN111866212B CN202010692791.4A CN202010692791A CN111866212B CN 111866212 B CN111866212 B CN 111866212B CN 202010692791 A CN202010692791 A CN 202010692791A CN 111866212 B CN111866212 B CN 111866212B
Authority
CN
China
Prior art keywords
address
router
prefix
gateway
hash table
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
Application number
CN202010692791.4A
Other languages
English (en)
Other versions
CN111866212A (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.)
Xinhe Semiconductor Technology Wuxi Co Ltd
Original Assignee
Xinhe Semiconductor Technology Wuxi 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 Xinhe Semiconductor Technology Wuxi Co Ltd filed Critical Xinhe Semiconductor Technology Wuxi Co Ltd
Priority to CN202010692791.4A priority Critical patent/CN111866212B/zh
Publication of CN111866212A publication Critical patent/CN111866212A/zh
Application granted granted Critical
Publication of CN111866212B publication Critical patent/CN111866212B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种网关为下挂路由器自动分配IPV6PD前缀的方法,包括以下步骤:步骤1、网关等待接收下挂路由器的PD请求信息;步骤2、在双向链表中查找路由器的duid值;步骤3、查找到该值,网关会把之前分配给该路由器的PD前缀再次分配给该路由器;步骤4、查找不到该值,网关会从PD前缀地址池中选择一个PD地址,并会在hash表中查找,直至找到不存在于hash表中的PD地址为止;步骤5、将找到后的PD地址分配给此次请求PD前缀的下挂路由器。本发明无需用户任何操作,网关会为路由器自动分配PD地址;网关会为不同的下挂路由器分配不同的PD地址,对同一个路由器多次请求时分配同一个PD地址。

Description

一种网关为下挂路由器自动分配IPV6 PD前缀的方法
技术领域
本发明属于网关分配技术领域,具体是一种网关为下挂路由器自动分配IPV6 PD前缀的方法。
背景技术
众所周知,32位的ipv4地址资源已经耗尽,国家也在大力推广128的ipv6地址,ipv6地址拥有巨大的地址空间,现在通信运营商在家庭网关采购中也均要求网关支持ipv6地址分配。
网关下挂的路由器除了需要网关分配一个ipv6地址外,还需要从网关获取到ipv6PD(prefix delegation)前缀,该PD前缀用来为路由器下挂的PC等终端设备分配IPV6地址。IPV6地址分配分为无状态地址分配(SLAAC)和DHCPV6方式。路由器从网关获取到的PD前缀小于等于64位。
路由器如果采用SLAAC方式下发IPV6地址,它会先把PD前缀扩展到64位(PD前缀小于64位时),然后通过广播形式把PD前缀告知下挂PC等设备,PC根据收到的64位前缀和自己的MAC地址或序列号等信息来组成128位IPV6地址。
路由器如果采用DHCPV6方式为下挂PC等设备分配IPV6地址,它会把从网关获取到的PD前缀扩展到64位作为IPV6地址的前64位,后64位地址根据路由器自身设定的地址分配范围确定。然后路由器通过DHCPV6方式直接为下挂设备分配128位的IPV6地址。
综上路由器如果无法从网关获取到IPV6 PD前缀,也就无法为下挂设备分配IPV6地址。路由器从网关获取IPV6 PD前缀是通过DHCPV6方式获取。所以网关需要支持通过DHCPV6方式来为下挂路由器分配PD前缀。
现有技术面临的问题是:网关是通过wide-dhcpv6模块中的的dhcp6s进程来作为DHCPV6 server为下挂路由器分配IPV6地址和PD前缀,但现有的wide-dhcpv6模块的dhcp6s进程只能是提前知道下挂路由器的MAC地址信息,并把该MAC值和一个固定的PD前缀写到dhcp6s的配置文件中,然后重启dhcp6s进程,这样下挂路由器才能获取的PD前缀。这样的方法非常的不实用,用户每需要把一台路由器接到网关下,都需要用户自己把据路由器的MAC地址填写到网关dhcp6s进程的配置文件里,还要重启dhcp6s进程,这对专业的通信运维人员都有很高的要求,而且非常的繁琐。用户在实际使用过程中,只希望把路由器接到网关下路由器就能自动获取PD前缀,然后为路由器的下挂PC分配IPV6地址。中间用户不需要进行任何操作。
本发明设计一种网关为下挂路由器自动分配IPV6 PD前缀的方法,能为下挂路由器自动分配PD前缀,并且为不同的路由器分配不同的PD前缀,同一个路由器多次请求分配PD前缀时,为其分配同一个PD前缀。
发明内容
本发明的目的在于提供一种网关为下挂路由器自动分配IPV6 PD前缀的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种网关为下挂路由器自动分配IPV6 PD前缀的方法,具体方法如下:
网关首先把PD前缀的地址池范围(PD前缀的最小值和最大值)写进dhcp6s进程的配置文件中,然后起dhcp6s进程;dhcp6s进程启动以后会解析配置文件获取PD前缀地址池范围,然后进入while()循环一直等待接收下挂路由器的PD请求信息。
其后,网关会根据路由器的请求信息中的duid值来从网关建立的一个双向链表中查找是否有该值的信息(双向链表中存储的有duid值和对应的PD前缀地址)。
如果查找到该值,说明该路由器之前成功从网关请求过PD前缀,网关会把之前分配给该路由器的PD前缀再次分配给该路由器;如果在双向链表找不到该duid值信息,说明网关之前未给该路由器分配PD前缀,网关会从PD前缀地址池中按从小到大顺序选择一个PD地址,并会在hash表中查找该地址是否已经在hash表中(hash表中存储的是已经分配给下挂路由器的PD前缀地址)。
如果在hash表中查找不到该地址,说明该地址未被占用,可以分配给路由器,并且把该地址加入到hash表中,并把该地址和路由器的duid值做绑定并存储到双向链表中;如果在hash表中查找到该地址,说明该地址已经被分配给网关下其他下挂路由器,网关会从PD地址池中再选择一个PD地址,然后再次在hash表中查找,直至找到未被占用的PD前缀地址,然后分配给路由器,并且把该地址加入到hash表中,并把该地址和路由器的duid值做绑定并存储到双向链表中。
网关为路由器分配PD前缀的流程图如图1所示。
从图1中可以看出当在双向链表中查找到路由器的duid值后,会把之前已经分配给这个路由器的PD前缀地址再次分配给该路由器,从而实现了同一个路由器多次请求PD前缀时分配同一个PD前缀地址。
在为路由器从PD地址池中选择一个新的地址时,会查找hash表进行检查,如果该地址已经在hash表中,说明该地址已被分配给其他路由器,如果hash表中未找到该地址,将该地址分配给路由器,从而实现了不同的路由器分配不同的PD前缀地址。
与现有技术相比,本发明的优点是:
1.无需用户任何操作,网关会为路由器自动分配PD地址;
2.网关会为不同的下挂路由器分配不同的PD地址,对同一个路由器多次请求时分配同一个PD地址。
附图说明
图1为网关为下挂路由器自动分配IPV6 PD前缀地址的流程图。
图2为一种网关为下挂路由器自动分配IPV6 PD前缀的实施流程框图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
请参阅图2,一种网关为下挂路由器自动分配IPV6 PD前缀的方法,包括以下步骤:
步骤1.网关将PD地址池范围写入到dhcp6s进程的配置文件中,并起dhcp6s进程,dhcp6s进程解析配置文件获取到PD地址池范围,然后进入到while()循环中等待下挂路由器请求PD前缀地址;
步骤2.在网关收到下挂路由器的PD请求信息后,会调用make_pd()函数对该请求信息进行处理,在make_pd()函数中首先会调用find_binding(client->duid,binding)函数判断该路由器的duid值是否已经在双向链表中,find_binding()函数中的client->duid是指路由器的duid值,binding是一个双向链表,该双向链表的结构体定义类型如下:
上述结构体中client中携带的有路由器的duid值,addr是PD前缀地址;
步骤3.在find_binding()函数,如果发现路由器的duid值已经在双向链表中,说明网关之前已经为该路由器分配过PD前缀,则将该PD前缀地址再次分配给该路由器,实现了同一个路由器每次请求PD前缀时总是会分到同一个PD前缀地址;
步骤4.如果该duid值不在双向链表中,则调用make_iapd_from_pool()函数从PD地址池中按从小到大顺序选择一个PD地址,然后再调用is_leased_prefix()函数判断该PD地址是否已经在hash表中,如果该PD地址已经在hash表中,则再从PD地址池中选择一个PD地址,再次调用is_leased_prefix()进行判断,直至找到不存在于hash表中的PD地址为止;
步骤5.找到不存在于hash表中的PD地址以后,将该PD地址分配给此次请求PD前缀的下挂路由器,并调用lease_address()函数将该PD地址加入到hash表中;再调用add_binding()函数将路由器的duid值和PD地址存入到双向链表中,以上实现了为不同的路由器分配不同的PD前缀地址。
本发明无需用户任何操作,网关会为不同的下挂路由器分配不同的PD地址,对同一个路由器多次请求时分配同一个PD地址。
以上所述实施方式仅为本发明的优选实施例,而并非本发明可行实施的穷举。对于本领域一般技术人员而言,在不背离本发明原理和精神的前提下对其所作出的任何显而易见的改动,都应当被认为包含在本发明的权利要求保护范围之内。

Claims (3)

1.一种网关为下挂路由器自动分配IPV6 PD前缀的方法,其特征在于,包括以下步骤:
步骤1、网关首先把PD前缀的地址池范围写进dhcp6s进程的配置文件中,然后起dhcp6s进程;dhcp6s进程启动以后会解析配置文件获取PD前缀地址池范围,然后进入while()循环一直等待接收下挂路由器的PD请求信息;
步骤2、在网关收到下挂路由器的PD请求信息后,网关会根据路由器的请求信息中的duid值,来从网关建立的一个双向链表中查找是否有该duid值的信息;
步骤3、如果查找到该duid值,说明该路由器之前成功从网关请求过PD前缀,网关会把之前分配给该路由器的PD前缀再次分配给该路由器;
步骤4、如果该duid值不在双向链表中,网关会从PD前缀地址池中按从小到大顺序选择一个PD地址,并会在hash表中查找该地址是否已经在hash表中;如果该PD地址已经在hash表中,则再从PD地址池中选择一个PD地址,然后再次在hash表中查找,直至找到不存在于hash表中的PD地址为止;
步骤5、找到不存在于hash表中的PD地址以后,将该PD地址分配给此次请求PD前缀的下挂路由器,并且把该地址加入到hash表中,并把该地址和路由器的duid值做绑定并存储到双向链表中;
所述双向链表中存储的有duid值和对应的PD前缀地址;
所述hash表中存储的是已经分配给下挂路由器的PD前缀地址。
2.根据权利要求1所述的一种网关为下挂路由器自动分配IPV6 PD前缀的方法,其特征在于,在为路由器从PD地址池中选择一个新的PD前缀地址时,在hash表中进行检查,从而确保为不同的路由器分配不同的PD前缀地址。
3.根据权利要求1所述的一种网关为下挂路由器自动分配IPV6 PD前缀的方法,其特征在于,根据路由器的duid值,通过查找存储duid值和对应的PD前缀地址的双向链表,为同一个路由器分配同一个PD地址。
CN202010692791.4A 2020-07-17 2020-07-17 一种网关为下挂路由器自动分配ipv6 pd前缀的方法 Active CN111866212B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010692791.4A CN111866212B (zh) 2020-07-17 2020-07-17 一种网关为下挂路由器自动分配ipv6 pd前缀的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010692791.4A CN111866212B (zh) 2020-07-17 2020-07-17 一种网关为下挂路由器自动分配ipv6 pd前缀的方法

Publications (2)

Publication Number Publication Date
CN111866212A CN111866212A (zh) 2020-10-30
CN111866212B true CN111866212B (zh) 2023-08-15

Family

ID=73001173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010692791.4A Active CN111866212B (zh) 2020-07-17 2020-07-17 一种网关为下挂路由器自动分配ipv6 pd前缀的方法

Country Status (1)

Country Link
CN (1) CN111866212B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500258B (zh) * 2021-12-14 2023-08-15 四川天邑康和通信股份有限公司 家庭智能网关下wifi6路由器下ipv6自动上网配置方法
CN116938805A (zh) * 2022-03-31 2023-10-24 腾讯科技(深圳)有限公司 数据包传输方法、装置、设备、存储介质及程序产品
CN115767510B (zh) * 2022-11-16 2024-05-28 烽火通信科技股份有限公司 一种ipv6自适应组网方法、系统及PD客户端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404006B1 (en) * 2002-12-20 2008-07-22 Symantec Operating Corporation Publishing a network address in a computer network
CN101335706A (zh) * 2008-07-21 2008-12-31 北京星网锐捷网络技术有限公司 对路由表进行空间管理的方法、装置、交换机及路由器
CN101448237A (zh) * 2008-02-02 2009-06-03 中兴通讯股份有限公司 移动ip中家乡链路的发现方法
CN101753635A (zh) * 2008-12-17 2010-06-23 华为技术有限公司 Ipv6地址配置方法和系统
CN101771668A (zh) * 2008-12-29 2010-07-07 华为技术有限公司 获取IPv6地址信息的方法、网关、服务器及系统
CN103384282A (zh) * 2013-07-31 2013-11-06 北京华为数字技术有限公司 一种获取ipv6nd地址的方法及bars

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404006B1 (en) * 2002-12-20 2008-07-22 Symantec Operating Corporation Publishing a network address in a computer network
CN101448237A (zh) * 2008-02-02 2009-06-03 中兴通讯股份有限公司 移动ip中家乡链路的发现方法
CN101335706A (zh) * 2008-07-21 2008-12-31 北京星网锐捷网络技术有限公司 对路由表进行空间管理的方法、装置、交换机及路由器
CN101753635A (zh) * 2008-12-17 2010-06-23 华为技术有限公司 Ipv6地址配置方法和系统
CN101771668A (zh) * 2008-12-29 2010-07-07 华为技术有限公司 获取IPv6地址信息的方法、网关、服务器及系统
CN103384282A (zh) * 2013-07-31 2013-11-06 北京华为数字技术有限公司 一种获取ipv6nd地址的方法及bars

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周杨."IPv6动态主机地址配置的研究与实现".《《中国硕士学位论文全文数据库信息科技辑》》.2013,全文. *

Also Published As

Publication number Publication date
CN111866212A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111866212B (zh) 一种网关为下挂路由器自动分配ipv6 pd前缀的方法
CN101951417B (zh) 多服务器地址分配方法、系统及中继设备
CN111432044B (zh) 多链路设备mac地址管理方法、装置和多链路设备
US8103784B2 (en) Communication device and communication control method using efficient echonet address determination scheme
CN102098354B (zh) 动态主机配置协议地址分配方法及服务器
US8005056B2 (en) Internet protocol address allocation method using base station and mobile terminal, and system therefor
CN107396447B (zh) LoRa星型组网的时隙分配方法、装置及系统
US20150237007A1 (en) Method, device, and system for automatically selecting ipv6 address transmission mode
CN1949784A (zh) Dhcp中继为dhcp客户端请求ip地址的方法
WO2011072540A1 (zh) 一种ip地址分配方法和网关
CN105847464A (zh) 一种多dhcp服务器网络环境下的ip地址管理方法和dhcp客户机
JP6715425B2 (ja) インターネットワークアドレスを割り当てる装置および方法
JP2003521166A (ja) 端末へのサーバアドレスの割当て
CN114363881B (zh) 一种ip地址的分配方法、装置、设备及介质
JP2000112851A (ja) ダイナミック・ドメイン・ネーム・システムおよびダイナミック・ドメイン・ネーム管理方法
CN102611623A (zh) 基于网络访问的端口配置处理方法、装置和系统
CN102025797A (zh) 地址前缀处理方法、装置、系统及网络设备
US20170222970A1 (en) Ipv6 address assignment method and apparatus
KR20000047702A (ko) 하드웨어 요소를 고유하게 식별하는 어드레스를다이나믹하게 결정하는 방법 및 시스템과 다수의 하드웨어요소에 의해 사용되는 공통 버스상에 어드레스 공간을할당하는 시스템
JPH09282259A (ja) ネットワークシステム
CN112600765B (zh) 一种配置资源调度方法及装置
CN101345669A (zh) 一种uwb系统中解决设备地址冲突的实现方法及装置
CN103546588A (zh) Dns查询方法与mme
CN113542444B (zh) 一种ip地址分配方法及装置
CN113497811A (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