首页 > 范文大全 > 正文

嵌入式网络设备DHCP设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇嵌入式网络设备DHCP设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:本文主要描述基于linux软件系统硬件防火墙的DHCP功能的构建。DHCP功能是智能网络设备中最重要的服务之一,帮助被认证客户很简单的接入互联网,对于提高设备易用性上都有积极的作用。

关键词:嵌入式;linux;DHCP

中图法分类号:TP319

1 简介

基于linux环境的嵌入式网络设备越来越多的出现在市场上,dhcp功能是网络服务设备中比较重要的功能之一。在网络设备主打功能的基础上,做到更有特色的附属功能,对设备的销售和营销买点会有很大的帮助。

本文主要在linux环境搭建DHCP服务器,设定开发产品为硬件防火墙,具有更加多样化的网络功能,为该类设备打造具有基础的DHCP功能外,特色化的DHCP Server和DHCP Relay功能。

2 开发环境

开发环境是基于linux的交叉编译环境,采用内核版本2.6.25。编译器版本gcc 4.3.0。编辑器采用vim 7.1,能更好的支持linux程序的开发。

3 开发目标

主要用来实现DHCP Server功能和DHCP Relay功能。

DHCP:动态主机配置协议。

DHCP Server:当一台连接到TCP/IP网络上的计算机启动时,能够自动地为这台计算机配置有关的TCP/IP参数,包括IP地址、子网掩码、缺省网关、DNS等等。

DHCP Relay:如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DCHP Relay Agent(中继)。用DHCP Relay可以免去在每个物理的网段都要有DHCP服务器的必要,它可以把客户机的消息传递到不在同一个物理子网的DHCP服务器,也可以将服务器的消息传回给不在同一个物理子网的DHCP客户机。

4 系统架构

4.1 系统DHCP设计原理

DHCP采用客户/服务器模型,当DHCP客户端程序发出一个广播信息,请求一个动态的IP地址时,DHCP服务器会根据目前已经配置的地址范围中选择一个IP地址,以地址租约形式提供一个可供使用的IP地址和子网掩码给客户端,图1给出的是一个最简单的情况。

客户计算机从DHCP服务器获得租约要经过以下四个步骤:

(1)请求IP租约

当DHCP客户计算机第一次启动或初始化IP时,其IP地址并没有任何设置,使用0.0.0.0作为源地址,将DHCP DISCOVER消息广播发送给本地子网。

DHCP DISCOVER消息中还包含客户的MAC地址和客户机名称,这样DHCP服务器可以确定是哪个客户机发来的请求。

(2)提供IP租约

DHCP服务器收到DHCP DISCOVER消息后,将DHCP OFEER信息直接送到客户机。DHCP OFEER信息中包含了客户机的MAC地址,所提供IP地址,子网掩码以及DHCP服务器的IP地址。

DHCP服务器发送DHCP OFEER信息之后仍暂时保留发送给客户计算机的地址,并等待该地址客户的确认信息。

如果在一秒钟内DHCP客户机没有收到IP地址,就将DHCPDISCOVER消息重复广播四次,四次重试的间隔时间为2、4、8、16秒。四次之后,如果仍未能收到服务器的回应,则运行Windows 2000的DHCP客户机将从169.254.0.0/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址。DHCP客户机仍然每隔5分钟重新广播一次,如果收到某个服务器的回应,则继续IP租用过程。

(3)选择IP租约

因为客户可能收到网络上多个DHCP服务器的DHCP OFEER消息,要决定使用哪一条消息。一般情况下,客户机使用第一条接到的信息,然后广播DHCP REQUEST消息作为响应,消息中还包括它所接受的IP租约的DHCP服务器的MAC地址,这样,其他DHCP服务器可在收到广播后将它们的IP地址释放回可用的地址池。

(4)确认IP租约

当被选择IP租约的DHCP服务器收到DHCPREQUEST消息后,将用DHCP ACK消息应答。DHCP ACK消息告诉客户计算机它现在具有有效租约。一旦客户机接收到DHCP ACK消息,就完成自己的IP配置并成为一个完全受租的客户。

当DHCP客户机在租约期限过了一半的时候,尝试更新租约。DHCP客户机直接给DHCP服务器发送DHCP REQUEST消息。如果DHCP服务器可用,将发回DHCP ACK消息,其中包含新的租约和已更新的参数。DHCP客户机在收到DHCP ACK消息后更新配置。如果DHCP服务器不可用,客户机将继续使用它的租约。然后在租约期限过了87.5%的时候,广播DHCP DISCOVER消息,接受任何DHCP服务器发出的租约。

如果租约到期,客户机必须停止使用当前的IP地址。然后开始新的租约过程。

在客户机请求一个非法的或重复的IP地址,DHCP服务器用DHCP NAK消息拒绝,迫使客户机重新获得一个新的合法的地址。

4.2 DHCP Server服务

DHCP Server主要作用是为网络客户机分配动态的IP地址,从而提供安全、可靠的TCP/IP网络配置,保证IP地址不发生冲突,减少了在TCP/IP网络上增添、移动和配置计算机的管理负担,使IP地址管理自动化。

4.3 DHCP Relay服务

DHCP Relay在处于不同子网间的DHCP客户机和服务器之间承担中继服务,可以将DHCP协议报文中继到跨网段的目的DHCP服务器(或客户机),于是不同网络上的DHCP客户机可以使用同一个DHCP服务器。这样,既节省开销又便于集中管理。

DHCP Relay工作原理如下:

当DHCP客户机启动并进行DHCP初始化时,它会在本网络广播配置请求报文;如果本网络存在DHCP服务器则不需要配置DHCP Relay直接就可以进行DHCP配置操作;如果本网络里没有DHCP服务器,则与本网络相连的带DHCP Relay功能的网络设备在收到该广播报文并适当处理后,会将该广播报文转发给其它网络中的DHCP服务器;DHCP服务器根据客户机提供的信息,为其作相应的配置,并通过DHCP Relay将该配置信息发送给客户机,完成对客户机的动态配置。

5 性能测试

采用的基准测试平台是:EM系列平台,发往外部服务器的处理能力为10K/s。硬件性能1.5G Atom处理器,2G内存。超过处理能力时会丢弃日志,比如队列满了的时候会丢弃该日志。当高处理能力为1K/s时,不会发生丢弃日志的情况,大于1K/s发生日志丢失。

性能测试目标

(1)可以配置得DHCP得VLAN接口和VLAN得个数一样,4094个。

(2)每个VLAN接口最多可以配一个DHCP Server,每个DHCP Server可以最多配置512个静5.3态IP。

(3)静态IP的最大数目是4k个。

(4)1s内可以为100个主机成功分配IP。

(5)启动DHCP Relay服务和DHCP Server服务的VLAN接口个数限制为512个。

6 结束语

按照上述模式成型的DHCP能基本满足设备应用。但测试中发现在极端测试环境中还存在对其他模块配合不够精细的情况,也就是DHCP Relay服务是个全局得模块,并没有实现只是针对单个DHCP接口启动relay服务的功能,后续开发中继续针对这种情况作优化。

参考文献:

[1]Gary R.Wright,W.Richard Stevens TCP/IP详解卷2:实现[M].北京:机械工业出版社,2000,7.

[2]W.Richard Stevens TCP/IP详解卷1:协议[M].北京:机械工业出版社,2007,8.

[3]W.Richard Stevens TCP/IP详解卷3:TCP事务协议、HTTP、NNTP和UNIX域协议[M].北京:机械工业出版社,2000,9.

[4]Daniel.P.Bovet,Marco Cesati深入理解LINUX内核[M].北京:中国电力出版社,2007,9.

[5]毛德操,胡希明.LINUX内核源代码情景分析上册[M].浙江:浙江大学出版社,2001,9.

[6]毛德操,胡希明.LINUX内核源代码情景分析下册[M].浙江:浙江大学出版社,2001,9.

[7]Robert Love LINUX内核设计与实现(第二版)[M].北京:机械工业出版社,2006,1.

[8]Claudia Salzberg LINUX内核编程[M].北京:机械工业出版社,2006,7.

[9]Qing Li.KeiichiShima IPv6详解:卷1:核心协议实现[M].北京:人民邮电出版社,2009,1.

[10]Qing Li.KeiichiShima IPv6详解:卷2:高级协议实现[M].北京:人民邮电出版社,2009,1.

[11]M.Rose,K.McCloghrie.Concise MIB definitions[S].RFC 1212,Mar,1991.

[12]赵清晨,李同芳.Linux操作系统实用教程[M].北京:机械工业出版社,2008,2.

[13]孙斌,高翔.linux操作系统[M].西安:西安电子科技出版社,2011,2.

作者简介:唐婷(1983.1-),女,四川省遂宁市船山区人,助教,本科,主要研究方向:嵌入式系统开发。

作者单位:四川职业技术学院,四川遂宁 629000