APP下载

嵌入式设备中IPv6地址自动配置的实现方法

2017-02-09欧洁云

单片机与嵌入式系统应用 2017年1期
关键词:IP地址报文嵌入式

欧洁云

(中国移动通信集团广东有限公司 中山分公司,中山 528400)



嵌入式设备中IPv6地址自动配置的实现方法

欧洁云

(中国移动通信集团广东有限公司 中山分公司,中山 528400)

在嵌入式技术领域中,支持IPv6的嵌入式设备将是一个崭新的发展方向,地址自动配置是嵌入式设备基于IPv6网络互联的关键方式之一。本文探讨了无状态和有状态两种自动配置方式的运作机理和过程,在嵌入式协议栈中设计并实现了两种地址的自动配置。

IPv6;无状态地址自动配置;有状态地址自动配置

引 言

随着网络的不断发展,IPv4已经不能满足IP地址的大量需求,IPv6的128位地址空间解决了这一问题,任何一个设备都可以获得全球唯一IPv6地址,使所有的电子产品连接到Internet成为可能。同时,随着嵌入式技术的不断发展,嵌入式设备的网络互联将成为IPv6新的研究和发展方向。其中,地址的自动配置是嵌入式IPv6的关键技术之一,每个嵌入式设备网络的通信都是基于IP地址的,配置方式有手工和自动两种。手工配置IP,地址配置后一般固定,因此当网络中增加设备或设备从一个子网移动到另一个子网的时候,容易发生地址重复或地址不属于该子网问题。自动配置IP则根据网络实际情况为设备动态分配地址,具有灵活的网络拓扑结构和即插即用的特点,是IPv6地址配置研究的重点。

1 地址自动配置方案

IPv6的地址自动配置有两种方式:无状态地址自动配置和有状态地址自动配置。

1.1 无状态地址自动配置

在无状态地址自动配置的方式下,网络接口接收路由器发出的路由前缀宣告报文,从报文中取出前缀,结合接口ID得到一个可聚集全局单播地址。接口ID长度为64位,由48位的以太网MAC地址根据EUI-64转换得到[1]。其算法如图1所示。

图1 EUI-64算法

1.2 有状态地址自动配置

有状态地址自动配置是通过DHCPv6(Dynamic Host Configuration Protocol for IPv6)[2],即动态主机配置协议实现的。DHCPv6系统包括DHCP服务器、DHCP客户端和DHCP中继三部分组成。客户端、服务器、中继之间通过UDP协议来交换消息。地址获取的消息交换过程如下:为了请求分配一个或多个IPv6地址,客户端会向服务器多播地址发送一个Solicit消息来寻找可用的DHCP服务器,任何符合请求的服务器会返回一个Advertise消息应答。客户端选择其中一个并向其发送Request消息来请求分配IP地址和其他网络配置信息,服务器以Reply消息应答,消息中将包含分配给客户端的确认地址和网络配置信息。当客户端与服务器不在同一链路上时,他们之间的初始化信息转发将由DHCP中继完成。每一个分配给客户端的地址都有服务器指定的更新和有效时间,完成上述的初始化工作后,为了延长地址的租用时间,到了更新时间,客户端需向服务器发送一个Renew消息来延长地址租期。服务器将返回一个Reply消息应答,消息包含地址的更新时间,以允许客户端不中断地使用此地址。若过了有效时间而客户端没有更新地址时间,客户端需向服务器重新申请地址分配。

1.3 两种自动配置方式的比较

两种地址自动配置都能实现节点的即插即用功能,对IP的移动性提供了支持。他们的主要区别是:通过无状态自动配置,设备可以直接从路由器宣告前缀和接口ID直接构造地址,无需配置界面,实现简单,但不能获取其他的网络配置信息(如DNS),而有状态地址自动配置必须有相应的DHCPv6服务器提供支持,除了申请到全局的IPv6地址外,还可以得到DNS、SIP等配置。对于网络的安全性问题,在无状态配置中,任意节点都可以通过本地链路连接路由器获取网络和子网信息,并构造IP地址达到伪地址攻击的目的,因此安全性比较低。而通过有状态配置,网络管理员可通过对DHCPv6进行配置,只有合法的节点才能通过配置,同时可以对节点进行更好的管理。

2 嵌入式地址自动配置的设计与实现

嵌入式设备嵌入了裁剪的IPv6协议栈,在此基础上分别实现了无状态和有状态地址自动配置的功能。

2.1 无状态地址自动配置的实现

在无状态地址自动配置中,协议栈主要进行两种报文的处理: Router Solicitation(路由请求)和Router Advertisement(路由宣告)[3]。RS报文用于促使和节点同一链路的路由器发送RA报文,RA报文包含有宣告的前缀信息和可用时间。两种报文的包格式如图2和图3所示。

图2 Router Solicitation报文结构

图3 Router Advertisement报文结构

协议栈接收RA报文后取出前缀和可用时间,判断前缀合法性,合法则使用前缀和接口ID构造IP地址,若该全球IP地址在地址链中没有,把该地址和可用时间保存在接口地址链中,同时构造该地址的组播地址,方法为:前缀ff02:01::,后24位为接口ID的后24位,然后发送Multicast Listener Discovery(MLD,多播监听发现)报文,该报文作用是向路由器通告加入组,以接收发送该组的报文。报文中的组播地址为上述所构造的组播地址,若地址已存在,则更新地址时间。工作流程如图4所示。

图4 工作流程图

2.2 有状态地址自动配置的实现

嵌入式设备实现有状态地址自动配置时,协议栈需要实现DHCPv6客户端协议[4]。DHCPv6客户端系统组成如图5所示。其中:

图5 系统结构图

① 配置信息文件,主要提供配置客户端工作模式选项。配置文件形式为:

iface number{

interface options

IA option

address options

}

其中,number为需配置的接口号(即说明配置哪个接口),里面的内容分别配置不同范围的选项信息;interface options主要说明接口需要服务器提供哪些网络信息,如DNS等;IA 为逻辑接口地址域,主要说明每个逻辑接口地址信息配置要求;address options主要向服务器说明分配地址的要求,例如需要IP地址210.29.98.104,则在address options选项中说明。

② 网络接收发送处理模块,负责发送和接收来自网络上层的DHCP消息包,并存放在消息队列中。

③ 消息队列,存放接收和将要发送的消息,等待处理。

④ 控制模块,负责DHCP消息的交换和协调上下模块,其中DHCP消息接收模块由2个子模块组成,DHCP消息发送模块由6个子模块组成,负责处理不同的消息。

⑤ 定时器模块,客户端从DHCP服务器获得分配地址的同时将得到该地址的更新期和有效期,定时器根据这些时间对地址作相应处理,主要操作有:分配地址后开启定时器;更新期到向DHCP服务器发送Renew消息续租地址;若有效期到而地址没有续租,则发送Release消息释放地址,并向新DHCP服务器发送地址请求消息。

实现过程为:系统启动后,根据dhcpflag标志量决定是否执行有状态地址自动配置,若dhcpflay为1,则进入配置模块,根据配置信息产生消息。系统先由随机数产生消息ID,填写到Solicit包头的transaction-id,发送消息同时开启定时器。在RT(retransmit timeout)时间内,若收到服务器相应回复的Advertise消息,则关闭RT计时并产生Request消息,否则重新发送Solicit消息并重启RT定时器。在嵌入式系统中为了简化实现,系统不采取选择最优服务器策略,而转为选择最先回复的服务器,然后向该服务器发送Request消息,消息包含一个或多个IA的配置要求信息。服务器根据接收到的Request消息里的配置需求信息回复Reply消息,消息包含分配的地址和网络信息。

结 语

[1] 华为3Com技术有限公司.IPv6技术[M].北京:清华大学出版社,2004.

[2] RFC3315,DHCPv6,2003.

[3] RFC2463,IPv6,1998.

[4] 王平,黄惟一.在智能仪器网络中实现DHCP动态IP地址分配[J].工业仪表与自动化装置,2004(1):39-41.

欧洁云(高级技师),主要研究方向为本地传输网、宽带接入网、IP城域网。

Method of Address Auto-configuration of IPv6 in Embedded Device

Ou Jieyun

(Zhongshan Branch,Guangdong Mobile Communication Co.,Ltd.,Zhongshan 528400,China)

The embedded device supporting IPv6 will be a new direction of development,and the address auto-configuration is one key problem in the network connection of embedded devices based on IPv6.After researching the operating mechanism and processing of the stateless and state address auto-configuration,the design and implementation of them are presented in this paper.

IPv6;stateless address auto-configuration;state address auto-configuration

TP315

A

�士然

2016-07-18)

猜你喜欢

IP地址报文嵌入式
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
铁路远动系统几种组网方式IP地址的申请和设置
浅析反驳类报文要点
搭建基于Qt的嵌入式开发平台
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
嵌入式软PLC在电镀生产流程控制系统中的应用
ATS与列车通信报文分析