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
即可
开机启动项也可在此文件中添加