DHCP是Dynamic Host Configuration Protocol的缩写,即动态主机配置协议。DHCP是一个很重要的局域网的网络协议,使用UDP协议实现动态配置功能,主要有以下用途:

1、为内部网络或网络服务供应商自动分配IP地址;

2、为用户或者内部网络管理员作为对所有计算机作中央管理的手段;

3、为内部网络用户接受IP租约。

        DHCP包括DHCP服务器和DHCP客户端两种模式,其中DHCP服务器用于设置IP分配规则、IP分配范围等管理功能;DHCP客户端提出分配请求,自动获得IP地址。本节介绍基于arm64的嵌入式linux移植udhcp搭建DHCP服务器的详细过程。本文采用udhcp源码压缩包进行aarch64交叉编译移植,并利用计算机作为客户端进行测试。

1.首先下载udhcp的压缩包udhcp-0.9.8.tar.gz,本文从厦门大学ftp路径下载。Index of /gentoo/distfiles/93/

图1 下载udhcp源码压缩包

2.拷贝udhcp源码压缩包到工作目录,并解压到当前目录,如下图所示:

图2 拷贝、解压udhcp压缩包

3.进入udhcp-0.9.8目录,修改dhcpc.c的源码,并保存修改后的源码。如下图所示(注意:如不修改,编译将报错):

图3 修改dhcpc.c的源码文件

4.在udhcp源码目录下,新建编译脚本build.sh,编译脚本内容下所示:

图4 新建编译脚本build.sh

 5.给编译脚本build.sh添加可执行权限,并运行编译脚本,如下所示:

图5 运行编译脚本

6.编译生成udhcpd和udhcpc的应用软件,其中udhcpd为服务器软件;udhcpc为客户端软件。本节仅介绍udhcpd的服务器的搭建。

图6 编译完成

7.查看udhcp目录下的samples/udhcpd.conf的dhcp服务器的配置文件,并进行如下的设置。如下所示:

图7 udhcpd.conf配置文件与修改

8.拷贝udhcpd到嵌入式linux的/sbin目录(注意:udhcpd添加可执行权限);拷贝samples中的udhcpd.conf文件嵌入式linux的/etc目录。

图8 udhcp拷贝到/sbin目录

图9 udhcpd.conf拷贝到/etc目录

9.在嵌入式linux的/var/lib/misc子目录下新建udhcpd.leases的空白文件,如下图所示:

图10 新建udhcpd.leases的空白文件

10.在嵌入式linux下调用如下指令(注意:由于嵌入式板卡ip地址为192.168.0.10eth0为默认网卡,因此配置文件仅需要修改路由信息router),运行udhcpd的服务器。

图11 运行udhcpd的服务器

11、电脑连接到嵌入式linux板卡,采用自动获取ip地址(DHCP)模式,windows利用cmd命令进入dos界面,使用ipconfig命令查看当前网口的ip地址分配是否符合udhcpd.conf配置文件要求。

图12  服务器打印显示为客户端分配的ip地址
图13 dhcp客户端分配ip地址成功

 12.ping指令测试结果如下所示:

图14 ping指令测试结果

Logo

更多推荐