Hiveboard实现域名解析服务

文件系统udhcpc 获取ip ,能ping 通ip ,但ping 域名时提示如"ping : bad address 'www.baidu.com' " 。使用busybox 构建文件系统,busy

文件系统udhcpc 获取ip ,能ping 通ip ,但ping 域名时提示如"ping : bad address 'www.baidu.com' " 。使用busybox 构建文件系统,busybox 中部分命令需要依赖库libnss*,如ping 、nslookup 等命令,busybox 选择了静态编译。因此文件系统实现域名解析功能,还需要配置一些必要的库与配置文件。

1. 创建/etc/resolv.conf

该文件是DNS 域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。

nameserver #定义DNS 服务器的IP 地址

domain #定义本地域名

search #定义域名的搜索列表

sortlist #对返回的域名进行排序

resolv.conf 文件中,nameserver 关键字必须存在,它用于指定DNS 服务器,其它关键字可选。该文件也可通过执行udhcpc 生成,生成文件内容如: nameserver 221.228.255.1 #主DNS 地址

/ # cat /etc/resolv.conf

nameserver 221.228.255.1

可以试下 我们能不能ping 同DNS 的地址

/etc # ping 221.228.255.1

PING 221.228.255.1 (221.228.255.1): 56 data bytes

64 bytes from 221.228.255.1: seq=0 ttl=252 time=4.000 ms

64 bytes from 221.228.255.1: seq=1 ttl=252 time=20.000 ms

2. 创建/etc/hosts

hosts 是一个没有扩展名的系统文件,其作用就是将主机名映射到对应的ip 地址。当用户执行一条ping 命令时(如ping www.baidu.com),系统会首先自动从hosts 文件中寻找www.baidu.com 对应的ip 地址,一旦找到,系统会立即对相应的ip 执行ping 命令,否则系统将域名提交DNS 域名解析服务器进行ip 地址的解析。通常地,为方便快速连接,可把需要经常连接的域名与其ip 记录在hosts 文件。 #cat /etc/hosts

127.0.0.1 localhost

3. 创建/etc/host.conf

当系统中同时存在DNS 域名解析与/etc/hosts主机表制时,host.conf 用于确定主机名解析顺序。它每行含一个配置关键字,其后跟着合适的配置信息。系统识别的关键字有:order 、trim 、multi 、nospoof 和reorder 。

#cat /etc/host.conf

order hosts,bind #名称解析顺序

multi on #允许主机拥有多个IP 地址

,

nospoof on #禁止IP 地址欺骗

/ # cat /etc/host.conf

order hosts,bind

4. 创建 /etc/nsswitch.conf nsswitch.conf 保存的是域名检索顺序。在一些系统配置中,NIS (Network Information System )可能会引起SCAN 域名解析异常。为了避免这种问题的发生,对nsswitch.conf 做如下调整。编辑/etc/nsswitch.conf文件,找到hosts 开头的行,在该行的最后加入nis. 此文件最初由主机上拷贝过来 ,适当修改恩

/ # cat /etc/nsswitch.conf

# /etc/nsswitch.conf

#

# Example configuration of GNU Name Service Switch functionality.

# If you have the `glibc-doc-reference' and `info' packages installed, try:

# `info libc "Name Service Switch"' for information about this file.

passwd: files

group: files

shadow: files

hosts: files dns nis

networks: files

protocols: db files

services: db files

ethers: db files

rpc: db files

netgroup: nis

6. 拷贝必要的库:

从交叉工具链的库目录

(/usr/unicore/gnu-toolchain-unicore/uc4-1.0-beta-hard-RHELAS5/unicore32-linux/lib ) 拷贝需要的库文件到文件系统lib 目录。

#cp -a libc.so.6 libdl.so.2 ./rootfs/lib

#cp -a libnss_dns.so libnss_dns.so.2 lib libnss_dns-2.3.6.so ./rootfs/lib #cp -a libresolv.so libresolv.so.2 libresolv-2.3.6.so ./rootfs/lib

文件系统域名解析环境配置完成。

注: 拷贝动态库时cp -a -a 一定要加 否侧拷贝没有用

cp -a libc* /lib

cp -a libd* /lib

,

cp -a libnss* /lib

cp -a libreso* /lib

6. 验证域名服务

/etc # nslookup www.baidu.com

Server: 221.228.255.1

Address 1: 221.228.255.1 b.center-dns.jsinfo.net

Name: www.baidu.com

Address 1: 115.239.210.26

Address 2: 115.239.210.27

至此 成功

补充 :可在/etc/init.d/rcS 设置开发板ip 和路由路径 添加 ifconfig eth0 172.16.1.200

ifconfig lo 127.0.0.1

route add default gw 172.16.1.254

即可

开机启动项也可在此文件中添加

标签: