CN103581353A - 网关设备的自动配置方法及系统 - Google Patents

网关设备的自动配置方法及系统 Download PDF

Info

Publication number
CN103581353A
CN103581353A CN201210273687.7A CN201210273687A CN103581353A CN 103581353 A CN103581353 A CN 103581353A CN 201210273687 A CN201210273687 A CN 201210273687A CN 103581353 A CN103581353 A CN 103581353A
Authority
CN
China
Prior art keywords
automatic configuration
global address
state
dns information
message
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
CN201210273687.7A
Other languages
English (en)
Other versions
CN103581353B (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.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201210273687.7A priority Critical patent/CN103581353B/zh
Publication of CN103581353A publication Critical patent/CN103581353A/zh
Application granted granted Critical
Publication of CN103581353B publication Critical patent/CN103581353B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种网关设备的自动配置方法,包括:启用自动配置进程为WAN侧的每个IPv6接口建立一个状态机;在第一次收到RA报文或本次接收的RA报文中的M/O标识位信息与前次接收的M/O标识位信息不一致时状态机进入接收路由公告本文状态,内核将RA报文中的M/O标识位信息告知自动配置进程;内核根据RA报文生成全局地址和DNS信息;内核将全局地址和DNS信息告知自动配置进程;自动配置进程将全局地址和DNS信息告知网关管理进程以完成自动配置。本发明还公开了一种网关设备的自动配置系统。本发明使网关设备能够监控各个WAN接口的ipv6自动配置状态,进而实现ipv6相关应用进程和链路状态间的同步。

Description

网关设备的自动配置方法及系统
技术领域
本发明涉及一种网关设备的自动配置方法及系统,特别是涉及一种IPv6(IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”,IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议)网络中网关设备的自动配置方法及系统。
背景技术
为了解决IP地址枯竭等问题,IPv6在1994年就已被IETF指定作为IPv4的下一代标准,经过多年的发展,IPv6基本标准日益成熟,各种不同类型的支持IPv6的网络设备相继问世,并逐渐进入商业应用。在运营领域,国外部分电信运营商已经建立IPv6网络,并开始提供接入服务以及一些基于IPv6的增值业务,我国在2003年底启动了中国的下一代互联网工程一直在大力推进IPv6的发展,政府部门频频出台推进政策,而运营商也已着手布局并确了IPv6发展目标。
家庭网关、企业网关凭借接入能力和地址转换成为电信网络中不可或缺的设备。后续发展起来的远程管理能力(TR069),更加方便了运营商对终端设备的管理和新业务的布局。在IPv6网络中网关设备的接入能力和远程管理能力同样无可替代,因此网关设备对IPv6的支持是下一代互联网演进的必要环节。
自动配置(例如IPv6全局地址和DNS的自动配置,其中全局地址是指在因特网上可以被任意网段主机直接访问的地址,相对于全局地址的本地链路地址只能在本链路内使用,不能在不同链路间使用)是IPv6相较于IPv4的主要优势之一,使得网络(尤其是局域网)的管理更加方便和快捷,IPv6主机(IPv6主机是指支持IPv6协议的网络终端设备,可以是个人电脑,手机,机顶盒等)只有在完成了自动配置之后才能和骨干网进行通信,而IPv6全局地址和DNS(Domain Name System,域名系统)的自动配置正是自动配置中的两个重要部分。目前大部分的网关软件都是基于Linux(Linux是一种自由和开放源码的类Unix操作系统(UNIX操作系统,是美国AT&T公司于1971年在PDP-11上运行的操作系统。具有多用户、多任务的特点,支持多种处理器架构,最早由肯·汤普逊(Kenneth Lane Thompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie)和Douglas McIlroy于1969年在AT&T的贝尔实验室开发))实现的,但目前Linux系统没有完整的关于IPv6全局地址和DNS的自动配置方案。
参与IPv6自动配置的主体和角色主要有以下两类:服务申请者(ipv6主机、DHCPv6客户端),服务提供者(ipv6路由器、DHCPv6服务器)。家庭网关和企业网关在ipv6网络中兼有这两类角色:网关设备的WAN侧相对于WAN侧的ISP网络是服务申请者;网关设备的LAN侧相对于LAN侧PC、家庭设备等是服务提供者(DHCPv6协议,即动态主机配置协议(DHCP)曾设计用来处理向计算机分配IP地址和其他网络信息,以便计算机可以在网络上自动通信,通过使用IPv6网络,DHCP for IPv6(DHCPv6)可以向IPv6主机提供有状态的地址配置或无状态的配置设置)。
对于网关设备而言,有两个自动配置过程,一个是WAN(广域网,WideArea Network)侧的自动配置过程,另一个是LAN(局域网,Local AreaNetwork)侧的自动配置过程。在WAN侧的自动配置过程中网关设备WAN侧的ipv6主机和DHCPv6客户端需要和ISP网络中的IPv6路由器和DHCPv6服务器进行一系列的报文交互。IPv6提供了三种关于地址的自动配置方法:无状态自动配置、全状态自动配置以及两者混合的状态。其中,无状态方式为IPv6主机根据RA报文(RA是Router Advertisement的缩写,即路由公告,RA报文的发送端为IPv6路由器,接收端为IPv6主机,RA报文的作用为通告路由器的存在、网络前缀、DNS信息、全局地址和DNS的配置方式等信息)中的前缀生成全局地址;而全状态方式为IPv6主机通过DHCPv6客户端向DHCPv6服务器请求;混合方式,是前两种的叠加情形。关于DNS的自动配置,也有两种方法:根据RA报文的RDNSS字段和通过DHCPv6客户端向DHCPv6服务器请求。IPv6主机是否用DHCPv6客户端请求全局地址和DNS,是由IPv6路由器下发的RA报文中的M/O标识位的值决定的,详细情形在表1中。(其中,RDNSS字段即为DNS服务器地址信息字段,该RDNSS字段中DNS服务器地址用16的整数倍个字节表示,16个字节刚好对应一个用16进制表示的完整的ipv6地址,如果是1个DNS服务器用16个字节表示,如果是2个DNS服务器地址用32个字节表示,以次类推。M/O标识位中M标识位用来指示全局地址的获取方式,O标识位用来指示DNS的获取方式,详细的情形见表1)
表1:IPv6主机的四种自动配置过程
Figure BDA00001967097000031
目前网关设备大多数采用Linux系统进行开发,版本2.6.30之后的内核都可以接收ICMPv6(ICMPv6是Internet Control Message Protocol Version 6的简称,译为第六版互联网控制信息协议)报文,并支持IPv6地址的无状态配置。DHCPv6客户端可以根据配置文件的设置完成和服务器的DHCPv6报文交互,从服务器获取全局的IPv6地址,DNS。但是仍有下面两个缺陷:
1、如果DNS服务器通过RA报文下发到网关WAN侧,用户空间进程无法知道该配置,以致不能进行IPv6DNS解析;
2、没有现成机制可以根据RA报文的信息自动配置DHCPv6客户端的配置文件,以致不能无干预地完成IPv6地址和DNS的配置过程。
发明内容
本发明要解决的技术问题是为了克服现有技术中DNS服务器通过RA报文下发到网关WAN侧、由于用户空间进程无法知道该配置以致不能进行IPv6DNS解析和不能无干预地完成IPv6地址和DNS的配置过程的缺陷,提供一种能够监控各个WAN接口的ipv6自动配置状态、能够进行IPv6 DNS解析且能无干预地完成IPv6地址和DNS的配置过程的网关设备的自动配置方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
一种网关设备的自动配置方法,其特点在于,该网关设备包括DHCPv6客户端,该自动配置方法包括以下步骤:
步骤S1、启用一自动配置进程为该网关设备的WAN侧的每个IPv6接口建立一个状态机,该状态机用于记录该IPv6接口的自动配置状态,该自动配置状态包括:接收到路由公告本文状态、获得全局地址状态、获得DNS信息状态、获得全局地址和DNS信息状态;
步骤S2、内核接收RA报文,若是第一次收到RA报文或者本次接收的RA报文中的M/O标识位信息与前次接收的RA报文中的M/O标识位信息不一致,则进入步骤S3
步骤S3、该状态机进入该接收到路由公告本文状态,内核将该RA报文中的M/O标识位信息告知该自动配置进程;
步骤S4、该内核根据该RA报文生成全局地址和DNS信息;或者,该内核根据该RA报文生成全局地址或DNS信息,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP(Internet Service Provider,互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商)网络中的服务器请求DNS信息或全局地址;
步骤S5、该内核将全局地址和DNS信息告知该自动配置进程;或者,该内核将全局地址或DNS信息告知该自动配置进程,并且DHCPv6客户端将DNS信息或全局地址告知该自动配置进程,该状态机进入该获得全局地址和DNS信息状态;
步骤S6、该自动配置进程将全局地址和DNS信息告知一网关管理进程以完成自动配置。
优选地,步骤S4包括以下步骤时:该内核根据该RA报文生成全局地址,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息;
步骤S5包括以下步骤:该内核将全局地址告知该自动配置进程,该状态机进入该获得全局地址状态;DHCPv6客户端将DNS信息告知该自动配置进程,该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态;或者,DHCPv6客户端将DNS信息告知该自动配置进程,该状态机进入该获得DNS信息状态;该内核将全局地址告知该自动配置进程,该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;
或者,步骤S4包括以下步骤时:该内核根据该RA报文生成DNS信息,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求全局地址;
步骤S5包括以下步骤:该内核将DNS信息告知该自动配置进程,该状态机进入该获得DNS信息状态;DHCPv6客户端将全局地址告知该自动配置进程,该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;或者,DHCPv6客户端将全局地址告知该自动配置进程,该状态机进入该获得全局地址状态;该内核将DNS信息告知该自动配置进程,该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态。
优选地,步骤S4中该内核根据该RA报文的前缀生成该全局地址,根据该RA报文的OPTION字段生成该DNS信息。
优选地,步骤S5中该内核通过netlink(Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC),也是网络应用程序与内核通信的最常用的接口)消息将全局地址和/或DNS信息告知该自动配置进程。
优选地,步骤S1之前还包括:
步骤S0、该网关管理进程新建IPv6接口,并发送消息通告至该自动配置进程以告知该自动配置进程为新建的该IPv6接口建立一个状态机。
本发明还提供一种网关设备的自动配置系统,其特点在于,该网关设备包括DHCPv6客户端,该自动配置系统还包括:
一自动配置装置,用于启用一自动配置进程为该网关设备的WAN侧的每个IPv6接口建立一个状态机,该状态机用于记录该IPv6接口的自动配置状态,该自动配置状态包括:接收到路由公告本文状态、获得全局地址状态、获得DNS信息状态、获得全局地址和DNS信息状态;
一内核,用于接收RA报文,若是第一次收到RA报文或者本次接收的RA报文中的M/O标识位信息与前次接收的RA报文中的M/O标识位信息不一致,则更新该状态机以进入该接收到路由公告本文状态,该内核还用于将该RA报文中的M/O标识位信息告知该自动配置进程;以及,该内核还用于根据该RA报文生成全局地址和/或DNS信息,以及将全局地址和DNS信息告知该自动配置进程;
该自动配置进程还用于生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息和/或全局地址;
该DHCPv6客户端用于将DNS信息和/或全局地址告知该自动配置进程;
该自动配置进程还用于在该状态机进入该获得全局地址和DNS信息状态后将全局地址和DNS信息告知一网关管理进程以完成自动配置。
优选地,该内核用于根据该RA报文生成全局地址,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息时,
该内核还用于将全局地址告知该自动配置进程以使得该状态机进入该获得全局地址状态;并且该DHCPv6客户端还用于将DNS信息告知该自动配置进程以使得该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态;或者,该DHCPv6客户端用于将DNS信息告知该自动配置进程以使得该状态机进入该获得DNS信息状态;该内核还用于将全局地址告知该自动配置进程以使得该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;
或者,该内核用于根据该RA报文生成DNS信息,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求全局地址时,
该内核还用于将DNS信息告知该自动配置进程以使得该状态机进入该获得DNS信息状态;该DHCPv6客户端还用于将全局地址告知该自动配置进程以使得该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;或者,该DHCPv6客户端用于将全局地址告知该自动配置进程以使得该状态机进入该获得全局地址状态;该内核还用于将DNS信息告知该自动配置进程以使得该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态。
优选地,该内核还用于根据该RA报文的前缀生成该全局地址,根据该RA报文的OPTION字段生成该DNS信息。
优选地,该内核还用于通过netlink消息将全局地址和/或DNS信息告知该自动配置进程。
优选地,该自动配置系统还包括:一网关管理装置,用于启用该网关管理进程新建IPv6接口,并发送消息通告至该自动配置进程以告知该自动配置进程为新建的该IPv6接口建立一个状态机。
本发明的积极进步效果在于:使网关设备能够监控各个WAN接口的ipv6自动配置状态,进而实现ipv6相关应用进程和链路状态间的同步,使网关设备在地址和DNS的自动配置方面能够完全符合IPv6的协议规范,方便电信IPv6网络的管理。
附图说明
图1为本发明实施例1所述的网关设备的自动配置方法的流程图。
图2为本发明实施例1和2所述的网关设备的自动配置系统的结构框图。
图3为本发明实施例2所述的网关设备的自动配置方法的流程图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
实施例1
参考图1,本实施例所述的网关设备的自动配置方法中,该网关设备包括DHCPv6客户端,该自动配置方法包括以下步骤:
步骤S1、启用一自动配置进程为该网关设备的WAN侧的每个IPv6接口建立一个状态机,该状态机用于记录该IPv6接口的自动配置状态,该自动配置状态包括:接收到路由公告本文状态、获得全局地址状态、获得DNS信息状态、获得全局地址和DNS信息状态;
步骤S2、内核接收RA报文,若是第一次收到RA报文或者本次接收的RA报文中的M/O标识位信息与前次接收的RA报文中的M/O标识位信息不一致,则进入步骤S3;当然,若一致,则不执行任何步骤;
步骤S3、该状态机进入该接收到路由公告本文状态,内核将该RA报文中的M/O标识位信息告知该自动配置进程;
步骤S4、该内核根据该RA报文生成全局地址和DNS信息;
步骤S5、该内核将全局地址和DNS信息告知该自动配置进程;
步骤S6、该自动配置进程将全局地址和DNS信息告知一网关管理进程以完成自动配置。
其中,步骤S5中该内核通过netlink消息将全局地址和/或DNS信息告知该自动配置进程。
也就是说,当RA报文中带有前缀信息时,内核会根据rfc(Request ForComments,是一系列以编号排定的文件)的规定逻辑生成全局地址,在全局地址生成成功时,内核通过netlink消息告知自动配置进程全局地址;当RA报文中带有DNS信息时,则根据该RA报文的OPTION(选项)字段生成该DNS信息,之后内核通过netlink消息告知自动配置进程DNS信息。
具体来说,步骤S1之前还包括:
步骤S0、该网关管理进程新建IPv6接口,并发送消息通告至该自动配置进程以告知该自动配置进程为新建的该IPv6接口建立一个状态机。
参考图2,本实施例所述的网关设备的自动配置系统中,该网关设备包括DHCPv6客户端,该自动配置系统还包括:
一自动配置装置1,用于启用一自动配置进程为该网关设备的WAN侧的每个IPv6接口建立一个状态机,该状态机用于记录该IPv6接口的自动配置状态,该自动配置状态包括:接收到路由公告本文状态、获得全局地址状态、获得DNS信息状态、获得全局地址和DNS信息状态;
一内核2,用于接收RA报文,若是第一次收到RA报文或者本次接收的RA报文中的M/O标识位信息与前次接收的RA报文中的M/O标识位信息不一致,则更新该状态机以进入该接收到路由公告本文状态,该内核还用于将该RA报文中的M/O标识位信息告知该自动配置进程;以及,该内核还用于根据该RA报文生成全局地址和/或DNS信息,以及将全局地址和DNS信息告知该自动配置进程;
该自动配置进程还用于生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息和/或全局地址;
该DHCPv6客户端用于将DNS信息和/或全局地址告知该自动配置进程;
该自动配置进程还用于在该状态机进入该获得全局地址和DNS信息状态后将全局地址和DNS信息告知一网关管理进程以完成自动配置。
其中,该内核2用于根据该RA报文生成全局地址,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息时,
该内核2还用于将全局地址告知该自动配置进程以使得该状态机进入该获得全局地址状态;并且该DHCPv6客户端还用于将DNS信息告知该自动配置进程以使得该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态;或者,该DHCPv6客户端用于将DNS信息告知该自动配置进程以使得该状态机进入该获得DNS信息状态;该内核还用于将全局地址告知该自动配置进程以使得该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;
或者,该内核2用于根据该RA报文生成DNS信息,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求全局地址时,
该内核2还用于将DNS信息告知该自动配置进程以使得该状态机进入该获得DNS信息状态;该DHCPv6客户端还用于将全局地址告知该自动配置进程以使得该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;或者,该DHCPv6客户端用于将全局地址告知该自动配置进程以使得该状态机进入该获得全局地址状态;该内核2还用于将DNS信息告知该自动配置进程以使得该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态。
具体来说,该内核2还用于根据该RA报文的前缀生成该全局地址,根据该RA报文的OPTION字段生成该DNS信息。
更具体地,该内核2还用于通过netlink消息将全局地址和/或DNS信息告知该自动配置进程。
除此之外,该自动配置系统还包括:一网关管理装置3,用于启用该网关管理进程新建IPv6接口,并发送消息通告至该自动配置进程以告知该自动配置进程为新建的该IPv6接口建立一个状态机。
实施例2
参考图3,实施例2的基本原理与实施例1相同,不同之处在于:
在该状态机进入该接收到路由公告本文状态,内核将该RA报文中的M/O标识位信息告知该自动配置进程之后,
步骤S4、该内核根据该RA报文生成全局地址,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息;
步骤S5、该内核将全局地址告知该自动配置进程,并且DHCPv6客户端将DNS信息告知该自动配置进程,该状态机进入该获得全局地址和DNS信息状态。
其中,该内核将全局地址告知该自动配置进程,该状态机即进入该获得全局地址状态;DHCPv6客户端将DNS信息告知该自动配置进程,该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态;或者,DHCPv6客户端将DNS信息告知该自动配置进程,该状态机进入即该获得DNS信息状态;该内核将全局地址告知该自动配置进程,该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态。这就是说,DHCPv6客户端进程和内核告知自动配置进程全局地址和DNS获取情况的消息没有固定的时序,可能内核消息先到,也可能是DHCPv6客户端进程的消息先到。
其余为提及之处均与实施例1相同。
除了以上两个实施例的介绍之外,为了使本领域技术人员更容易理解本发明,结合用户的使用角度、实际的开发角度和应用流程,再次说明本发明的技术方案,为了便于描述,将状态机的4个状态:接收到路由公告本文状态、获得全局地址状态、获得DNS信息状态和获得全局地址和DNS信息状态分别简单表达为:Got RA状态、A Ready状态、D Ready状态和All Ready状态,并在下文引用上述简单表达。
在网关设备上可能存在多个WAN侧ipv6接口,自动配置进程为每个接口都维护了一个状态机。当接口建立时状态会被建立,当接口被删除时状态机会被删除。以接口名称作为状态机的标识和查询关键字,状态机和接口名称一一对应。
其实,对于网关设备WAN侧IPv6接口定义了五个状态:初始状态,Got RA状态,A Ready状态,D Ready状态,All Ready状态。
初始状态:ipv6接口进行全局地址和DNS配置的初始状态
Got RA状态:ipv6接口收到了第一个RA或者RA中的M/O信息变更
A Ready状态:ipv6接口获得了全局地址
D Ready状态:ipv6接口获得了DNS
All Ready状态:ipv6接口获得了全局地址和DNS
在某个网络接口物理层链路由DOWN(低电平)变成UP(高电平)后,内核会通过RS(路由请求报文)请求路由器下发RA报文。除了这种情形,路由器可以配置成周期性地广播RA报文,也可以不周期性地广播。网关设备只有在第一次收到RA或收到的RA中的M/O信息有变化时才重置自动配置状态机。
具体的状态迁移及处理过程是这样的:当网关管理进程新建一个wan侧ipv6接口时,会通过消息通告自动配置进程,自动配置进程创建一个状态机,为该状态机分配一个描述符,并将状态置为初始状态。
在本发明中,获得全局地址有两个途径:通过DHCPv6交互获得和根据RA中的前缀生成,前者是由DHCPv6客户端进程告知自动配置进程,后者是内核通过netlink消息告知自动配置进程,当自动配置进程得知已获得全局地址后,更新状态机(可能是由Got RA状态迁移到A READY状态,也可能是由D RRADY状态迁移到ALL READY状态);同样地,获得DNS信息也有两个途径:通过DHCPv6交互获得和根据RA中的OPTION字段获得,前者是由DHCPv6客户端进程告知自动配置进程,后者是内核通过netlink消息告知自动配置进程,当自动配置进程得知已获得DNS后,更新状态机(可能是由Got RA状态迁移到D READY状态,也可能是由A RRADY状态迁移到ALLREADY状态);另外,对于M/O=1/1的情形,DHCPv6客户端会通知自动配置进程既获得了全局地址也获得了DNS,则状态机从Got RA状态直接迁移到ALL READY状态;对于一次确定的自动配置过程,DHCPv6客户端进程和内核告知自动配置进程全局地址和DNS获取情况的消息没有固定的时序,可能内核消息先到,也可能是DHCPv6客户端进程的消息先到。而当状态机进入ALL READY状态后会通知网关管理进程。具体来说,
内核在任何WAN接口上收到RA消息时,通过netlink消息将相关的M/O信息告知自动配置进程。当某个WAN侧ipv6接口对应的状态机建立后收到该接口自状态机建立后的第一个RA报文或收到的RA报文中的M/O信息与之前收到的RA报文中的M/O信息不一致时,状态机即进入Got RA状态。
进入Got RA状态后,自动配置进程根据RA中的M/O信息生成DHCPv6客户端的配置文件,并发起一个DHCPv6客户端的实例进程向ISP网络中的服务器请求全局地址或DNS。对于M=0,O=0的情形,DHCPv6客户端无需请求全局地址和DNS。
DHCPv6客户端在成功获得全局地址或DNS后,发送消息给自动配置进程,告知全局地址和DNS信息。当RA报文中带有前缀信息时,内核会根据rfc的规定逻辑生成全局地址,在全局地址生成成功时,内核通过netlink消息告知自动配置进程全局地址的信息;当RA报文中带有DNS信息时,内核通过netlink消息告知自动配置进程DNS的信息。
当状态机处于Got RA状态,并且该接口获得了ipv6全局地址时进入AReady状态。
当状态机处于Got RA状态,该接口获得了ipv6 DNS服务器地址时,或者当状态机处于All Ready状态,内核或DHCPv6客户端通知自动配置进程全局地址不可用时,状态机进入D Ready状态。对于后一种情形,自动配置进程发消息给网关管理进程,告知全局地址已不可用。
当状态机处于A Ready状态,该接口获得了ipv6 DNS服务器地址时;或者当状态机处于D Ready状态,该接口获得了ipv6全局地址时;或者当状态机处于All Ready状态,内核或DHCPv6客户端向自动配置进程变更全局地址或DNS时,状态机进入All Ready状态。自动配置进程发送消息给网关管理进程,告知自动配置过程已经完成,并附带全局地址和DNS服务器的信息。
在本发明中,软件实现的关键环节有以下几点:
第一,自动配置进程和网关管理进程间的通信
通信采用Unix domain socket(socket API(socket为使用标准Unix文件描述符(filedescriptor)和其它程序通讯的方式,API,应用程序编程接口)原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket)实现。
网关管理进程会向自动配置进程发送两个消息:WAN侧ipv6接口注册消息和解注册消息。消息体的定义如下:
Figure BDA00001967097000151
●ifName表示对应wan侧ipv6接口的网络设备名称。
●isAdd为真表示新建该接口,为假表示删除该接口。
自动管理进程会向网关管理进程发送一个消息:自动配置状态更新消息。消息的定义如下:
●ifName表示对应wan侧ipv6接口的网络设备名称。
●isAllReady为真表示自动配置过程成功,该接口可用;为假,表示自动配置过程失败,该接口不可用。
●globalAddress表示ipv6全局地址。
●v6Dns1表示主DNS服务器地址。
●v6Dns2表示备用DNS服务器地址。
注:全局地址和DNS用字符串形式表示,例如:2001:3000::1/64,其中‘/’后面的64表示前缀长度。
第二,自动配置进程和内核的通信
自动配置进程和内核的通信通过Linux的netlink消息实现,并且是单向的,内核发送消息,在自动配置进程接收。
下面根据具体的netlink消息做详细说明:
1.WAN侧接口收到RA消息,内核需要发送RTM_RARCVD消息,并且携带M/O的信息。2.6.30的内核没有该机制,需要扩充,使用协议类型RTNLGRP_IPV6_IFADDR实现的代码如下:
Figure BDA00001967097000171
调用形式为:
inet6_firstra_notify(RTM_FISTRARCVD,in6_dev);
自动配置进程可以从该netlink消息中直接获取接口的名称,从而更新对应的状态机。如果找不到状态机则不做任何处理。
2.无状态模式下生成或删除ipv6地址,需要发送RTM_NEWADDR/RTM_DELADDR消息,使用的协议类型是RTNLGRP_IPV6_IFADDR。
自动配置进程根据netlink消息中的ifa_index字段,得到对应的WAN侧接口名称,从而找到对应的状态机。根据地址地址是不是fe80以开头,来判断是不是全局地址,从而决定是否需要更新该状态机。如果找不到状态机则不做任何处理。
3.当收到的RA报文中带有DNS信息时,内核需要发送RTM_NEWNDUSEROPT消息,使用的协议类型是RTNLGRP_ND_USEROPT
自动配置进程根据netlink消息中的ifa_index字段,得到对应的WAN侧接口名称,从而找到对应的状态机,更新该状态机的状态。如果找不到状态机则不做任何处理。
第三,自动配置进程和DHCPv6客户端的通信
自动配置进程通过写配置文件的方式告知DHCPv6客户端实例进程,是否需要请求全局地址,是否需要请求DNS.
DHCPv6客户端在和DHCPv6客户端交互成功之后,或者在全局地址租约期满后发送给自动配置进程的消息,通过Unix domain socket实现。
交互成功的消息定义如下:
Figure BDA00001967097000181
●ifName表示对应wan侧ipv6接口的网络设备名称。
●isAddrAssigned为真表示获取全局地址成功;为假,表示没有获取到或者没有获取全局地址。
●isAddrAssigned为真表示获取DNS成功;为假,表示没有获取到或者没有获取DNS。
●globalAddress表示ipv6全局地址。
●v6Dns1表示主DNS服务器地址。
●v6Dns2表示备用DNS服务器地址。
全局地址租约期满(不可用)的消息定义如下:
Figure BDA00001967097000182
Figure BDA00001967097000191
●ifName表示对应wan侧ipv6接口的网络设备名称。
●globalAddress表示到期(不可用)的全局地址。
关于IPv6全局地址和DNS的自动配置实现方法,状态机是核心,内核netlink消息机制是手段。同样的思想可以用于IPv6默认路由的管理,进而衍生为Linux内核和用户控件配置管理进程的桥梁,进一步完善IPv6配置管理方面的其他功能,推进IPv6在现网中的应用。
本发明提供了一种基于Linux内核2.6.30以上版本开发的网关设备软件解决了如果DNS服务器通过RA报文下发到网关WAN侧,用户空间进程无法知道该配置,以致不能进行IPv6DNS解析的问题和没有现成机制可以根据RA报文的信息自动配置DHCPv6客户端的配置文件,以致不能无干预地完成IPv6地址和DNS的配置过程的问题;并且提供了一种机制,使网关设备能够监控各个WAN接口的ipv6自动配置状态,进而实现ipv6相关应用进程和链路状态间的同步,使网关设备在地址和DNS的自动配置方面能够完全符合IPv6的协议规范,方便电信IPv6网络的管理。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (10)

1.一种网关设备的自动配置方法,其特征在于,该网关设备包括DHCPv6客户端,该自动配置方法包括以下步骤:
步骤S1、启用一自动配置进程为该网关设备的WAN侧的每个IPv6接口建立一个状态机,该状态机用于记录该IPv6接口的自动配置状态,该自动配置状态包括:接收到路由公告本文状态、获得全局地址状态、获得DNS信息状态、获得全局地址和DNS信息状态;
步骤S2、内核接收RA报文,若是第一次收到RA报文或者本次接收的RA报文中的M/O标识位信息与前次接收的RA报文中的M/O标识位信息不一致,则进入步骤S3
步骤S3、该状态机进入该接收到路由公告本文状态,内核将该RA报文中的M/O标识位信息告知该自动配置进程;
步骤S4、该内核根据该RA报文生成全局地址和DNS信息;或者,该内核根据该RA报文生成全局地址或DNS信息,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息或全局地址;
步骤S5、该内核将全局地址和DNS信息告知该自动配置进程;或者,该内核将全局地址或DNS信息告知该自动配置进程,并且DHCPv6客户端将DNS信息或全局地址告知该自动配置进程,该状态机进入该获得全局地址和DNS信息状态;
步骤S6、该自动配置进程将全局地址和DNS信息告知一网关管理进程以完成自动配置。
2.如权利要求1所述的网关设备的自动配置方法,其特征在于,
步骤S4包括以下步骤时:该内核根据该RA报文生成全局地址,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息;
步骤S5包括以下步骤:该内核将全局地址告知该自动配置进程,该状态机进入该获得全局地址状态;DHCPv6客户端将DNS信息告知该自动配置进程,该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态;或者,DHCPv6客户端将DNS信息告知该自动配置进程,该状态机进入该获得DNS信息状态;该内核将全局地址告知该自动配置进程,该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;
或者,步骤S4包括以下步骤时:该内核根据该RA报文生成DNS信息,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求全局地址;
步骤S5包括以下步骤:该内核将DNS信息告知该自动配置进程,该状态机进入该获得DNS信息状态;DHCPv6客户端将全局地址告知该自动配置进程,该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;或者,DHCPv6客户端将全局地址告知该自动配置进程,该状态机进入该获得全局地址状态;该内核将DNS信息告知该自动配置进程,该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态。
3.如权利要求1所述的网关设备的自动配置方法,其特征在于,步骤S4中该内核根据该RA报文的前缀生成该全局地址,根据该RA报文的OPTION字段生成该DNS信息。
4.如权利要求1所述的网关设备的自动配置方法,其特征在于,步骤S5中该内核通过netlink消息将全局地址和/或DNS信息告知该自动配置进程。
5.如权利要求1-4中任意一项所述的网关设备的自动配置方法,其特征在于,步骤S1之前还包括:
步骤S0、该网关管理进程新建IPv6接口,并发送消息通告至该自动配置进程以告知该自动配置进程为新建的该IPv6接口建立一个状态机。
6.一种网关设备的自动配置系统,其特征在于,该网关设备包括DHCPv6客户端,该自动配置系统还包括:
一自动配置装置,用于启用一自动配置进程为该网关设备的WAN侧的每个IPv6接口建立一个状态机,该状态机用于记录该IPv6接口的自动配置状态,该自动配置状态包括:接收到路由公告本文状态、获得全局地址状态、获得DNS信息状态、获得全局地址和DNS信息状态;
一内核,用于接收RA报文,若是第一次收到RA报文或者本次接收的RA报文中的M/O标识位信息与前次接收的RA报文中的M/O标识位信息不一致,则更新该状态机以进入该接收到路由公告本文状态,该内核还用于将该RA报文中的M/O标识位信息告知该自动配置进程;以及,该内核还用于根据该RA报文生成全局地址和/或DNS信息,以及将全局地址和DNS信息告知该自动配置进程;
该自动配置进程还用于生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息和/或全局地址;
该DHCPv6客户端用于将DNS信息和/或全局地址告知该自动配置进程;
该自动配置进程还用于在该状态机进入该获得全局地址和DNS信息状态后将全局地址和DNS信息告知一网关管理进程以完成自动配置。
7.如权利要求6所述的网关设备的自动配置系统,其特征在于,
该内核用于根据该RA报文生成全局地址,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求DNS信息时,
该内核还用于将全局地址告知该自动配置进程以使得该状态机进入该获得全局地址状态;并且该DHCPv6客户端还用于将DNS信息告知该自动配置进程以使得该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态;或者,该DHCPv6客户端用于将DNS信息告知该自动配置进程以使得该状态机进入该获得DNS信息状态;该内核还用于将全局地址告知该自动配置进程以使得该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;
或者,该内核用于根据该RA报文生成DNS信息,并且该自动配置进程生成该DHCPv6客户端的配置文件并发起DHCPv6客户端的一实例进程向ISP网络中的服务器请求全局地址时,
该内核还用于将DNS信息告知该自动配置进程以使得该状态机进入该获得DNS信息状态;该DHCPv6客户端还用于将全局地址告知该自动配置进程以使得该状态机从该获得DNS信息状态进入该获得全局地址和DNS信息状态;或者,该DHCPv6客户端用于将全局地址告知该自动配置进程以使得该状态机进入该获得全局地址状态;该内核还用于将DNS信息告知该自动配置进程以使得该状态机从该获得全局地址状态进入该获得全局地址和DNS信息状态。
8.如权利要求6所述的网关设备的自动配置系统,其特征在于,该内核还用于根据该RA报文的前缀生成该全局地址,根据该RA报文的OPTION字段生成该DNS信息。
9.如权利要求6所述的网关设备的自动配置系统,其特征在于,该内核还用于通过netlink消息将全局地址和/或DNS信息告知该自动配置进程。
10.如权利要求6-9中任意一项所述的网关设备的自动配置系统,其特征在于,该自动配置系统还包括:一网关管理装置,用于启用该网关管理进程新建IPv6接口,并发送消息通告至该自动配置进程以告知该自动配置进程为新建的该IPv6接口建立一个状态机。
CN201210273687.7A 2012-08-02 2012-08-02 网关设备的自动配置方法及系统 Expired - Fee Related CN103581353B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210273687.7A CN103581353B (zh) 2012-08-02 2012-08-02 网关设备的自动配置方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210273687.7A CN103581353B (zh) 2012-08-02 2012-08-02 网关设备的自动配置方法及系统

Publications (2)

Publication Number Publication Date
CN103581353A true CN103581353A (zh) 2014-02-12
CN103581353B CN103581353B (zh) 2018-06-19

Family

ID=50052261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210273687.7A Expired - Fee Related CN103581353B (zh) 2012-08-02 2012-08-02 网关设备的自动配置方法及系统

Country Status (1)

Country Link
CN (1) CN103581353B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511910A (zh) * 2015-11-30 2016-04-20 北京新能源汽车股份有限公司 接口配置方法和装置
CN107231448A (zh) * 2016-03-25 2017-10-03 中兴通讯股份有限公司 一种链路建立方法、设备和系统
CN112449752A (zh) * 2018-12-26 2021-03-05 华为技术有限公司 一种IPv6地址的配置方法及路由设备
CN114938347A (zh) * 2021-02-04 2022-08-23 青岛海信宽带多媒体技术有限公司 一种路由器和路由器ipv6自适应方法、装置
CN115695303A (zh) * 2023-01-05 2023-02-03 北京中科网威信息技术有限公司 DHCPv6服务器联动路由通告启停系统及方法
CN115766687A (zh) * 2022-11-15 2023-03-07 四川天邑康和通信股份有限公司 一种家庭网关ipv6文件系统及其交互方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1798136A (zh) * 2004-12-20 2006-07-05 上海贝尔阿尔卡特股份有限公司 IPv6无状态地址配置中主机的DNS更新方法和装置
US20090225680A1 (en) * 2008-03-07 2009-09-10 Samsung Electronics Co. Ltd. Apparatus and method of processing stateful address auto-configuration protocol in ipv6 network
CN101883155A (zh) * 2010-05-19 2010-11-10 中兴通讯股份有限公司 一种家庭网关获取wan侧信息的方法和装置
CN101888319A (zh) * 2009-05-11 2010-11-17 华为技术有限公司 获取终端设备的网络接入信息的方法和装置
CN102333131A (zh) * 2010-07-13 2012-01-25 中国电信股份有限公司 提供域名服务的方法、系统及代理dns
WO2012035198A1 (en) * 2010-09-13 2012-03-22 Nokia Corporation Method and apparatus for joint association and address provisioning

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1798136A (zh) * 2004-12-20 2006-07-05 上海贝尔阿尔卡特股份有限公司 IPv6无状态地址配置中主机的DNS更新方法和装置
US20090225680A1 (en) * 2008-03-07 2009-09-10 Samsung Electronics Co. Ltd. Apparatus and method of processing stateful address auto-configuration protocol in ipv6 network
CN101888319A (zh) * 2009-05-11 2010-11-17 华为技术有限公司 获取终端设备的网络接入信息的方法和装置
CN101883155A (zh) * 2010-05-19 2010-11-10 中兴通讯股份有限公司 一种家庭网关获取wan侧信息的方法和装置
CN102333131A (zh) * 2010-07-13 2012-01-25 中国电信股份有限公司 提供域名服务的方法、系统及代理dns
WO2012035198A1 (en) * 2010-09-13 2012-03-22 Nokia Corporation Method and apparatus for joint association and address provisioning

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
T.NARTEN 等: "《Neighbor Discovery for IP Version 6(IPv6)》", 《NETWORK WORKING GROUP RFC4861》 *
钟锐 等: "《基于Linux 环境的IPv6 的自动配置分析及试验》", 《计算机应用》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511910A (zh) * 2015-11-30 2016-04-20 北京新能源汽车股份有限公司 接口配置方法和装置
CN107231448A (zh) * 2016-03-25 2017-10-03 中兴通讯股份有限公司 一种链路建立方法、设备和系统
CN112449752A (zh) * 2018-12-26 2021-03-05 华为技术有限公司 一种IPv6地址的配置方法及路由设备
CN114938347A (zh) * 2021-02-04 2022-08-23 青岛海信宽带多媒体技术有限公司 一种路由器和路由器ipv6自适应方法、装置
CN114938347B (zh) * 2021-02-04 2024-05-10 青岛海信宽带多媒体技术有限公司 一种路由器和路由器ipv6自适应方法、装置
CN115766687A (zh) * 2022-11-15 2023-03-07 四川天邑康和通信股份有限公司 一种家庭网关ipv6文件系统及其交互方法
CN115766687B (zh) * 2022-11-15 2024-05-28 四川天邑康和通信股份有限公司 一种家庭网关ipv6文件系统及其交互方法
CN115695303A (zh) * 2023-01-05 2023-02-03 北京中科网威信息技术有限公司 DHCPv6服务器联动路由通告启停系统及方法
CN115695303B (zh) * 2023-01-05 2023-03-10 北京中科网威信息技术有限公司 DHCPv6服务器联动路由通告启停系统及方法

Also Published As

Publication number Publication date
CN103581353B (zh) 2018-06-19

Similar Documents

Publication Publication Date Title
US9485147B2 (en) Method and device thereof for automatically finding and configuring virtual network
EP2562973B1 (en) Virtual machine migration method, switch, virtual machine system
CN100477619C (zh) 用于建立双向隧道的方法和系统
CN110677405B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN103581353A (zh) 网关设备的自动配置方法及系统
RU2683630C2 (ru) Способ обновления дескриптора сетевой службы nsd и устройство
US8842577B2 (en) Enabling media access control address mobility in an ethernet virtual private network
US9319377B2 (en) Auto-split DNS
EP2579519A1 (en) Method, network device and system for automatically configuring network device in internet protocol version 6 network
CN110213391B (zh) 一种网络协议地址的配置方法及装置
CN107342925B (zh) 一种报文传输方法及装置
CN103580921A (zh) 一种网络设备自动升级的方法及自动升级系统
CN110474960B (zh) 一种虚拟化网络中业务部署的方法和装置
CN103384282A (zh) 一种获取ipv6nd地址的方法及bars
US11882090B2 (en) Efficiently mapping a distributed resource to a virtual network
CN105049546A (zh) 一种dhcp服务器为客户端分配ip地址的方法及装置
CN110278558B (zh) 报文的交互方法及wlan系统
US10050932B2 (en) Method, user node and remote access server for releasing address
CN105337766A (zh) 一种基于dhcp协议的网元自动发现方法及系统
CN103200593B (zh) 基站自启动和自启动辅助方法及设备
WO2017000669A1 (zh) 域名资源记录缓存的集中管控方法、装置和相关设备
CN109819059B (zh) 管理网络设备的方法、装置、设备及存储介质
CN112910767B (zh) 选择网关的方法、设备和系统
CN102891763B (zh) 一种获取cim资源的方法和装置
CN104539455A (zh) 一种分组终端配置方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180619

Termination date: 20190802

CF01 Termination of patent right due to non-payment of annual fee