Hiveboard實現域名解析服務
文件系統(tǒng)udhcpc 獲取ip ,能ping 通ip ,但ping 域名時提示如"ping : bad address 'www.baidu.com' " 。使用busybox 構建文件系統(tǒng),busy
文件系統(tǒng)udhcpc 獲取ip ,能ping 通ip ,但ping 域名時提示如"ping : bad address 'www.baidu.com' " 。使用busybox 構建文件系統(tǒng),busybox 中部分命令需要依賴庫libnss*,如ping 、nslookup 等命令,busybox 選擇了靜態(tài)編譯。因此文件系統(tǒng)實現域名解析功能,還需要配置一些必要的庫與配置文件。
1. 創(chuàng)建/etc/resolv.conf
該文件是DNS 域名解析的配置文件,它的格式很簡單,每行以一個關鍵字開頭,后接配置參數。
nameserver #定義DNS 服務器的IP 地址
domain #定義本地域名
search #定義域名的搜索列表
sortlist #對返回的域名進行排序
resolv.conf 文件中,nameserver 關鍵字必須存在,它用于指定DNS 服務器,其它關鍵字可選。該文件也可通過執(zhí)行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. 創(chuàng)建/etc/hosts
hosts 是一個沒有擴展名的系統(tǒng)文件,其作用就是將主機名映射到對應的ip 地址。當用戶執(zhí)行一條ping 命令時(如ping www.baidu.com),系統(tǒng)會首先自動從hosts 文件中尋找www.baidu.com 對應的ip 地址,一旦找到,系統(tǒng)會立即對相應的ip 執(zhí)行ping 命令,否則系統(tǒng)將域名提交DNS 域名解析服務器進行ip 地址的解析。通常地,為方便快速連接,可把需要經常連接的域名與其ip 記錄在hosts 文件。 #cat /etc/hosts
127.0.0.1 localhost
3. 創(chuàng)建/etc/host.conf
當系統(tǒng)中同時存在DNS 域名解析與/etc/hosts主機表制時,host.conf 用于確定主機名解析順序。它每行含一個配置關鍵字,其后跟著合適的配置信息。系統(tǒng)識別的關鍵字有: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. 創(chuàng)建 /etc/nsswitch.conf nsswitch.conf 保存的是域名檢索順序。在一些系統(tǒng)配置中,NIS (Network Information System )可能會引起SCAN 域名解析異常。為了避免這種問題的發(fā)生,對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 ) 拷貝需要的庫文件到文件系統(tǒng)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
文件系統(tǒng)域名解析環(huán)境配置完成。
注: 拷貝動態(tài)庫時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 設置開發(fā)板ip 和路由路徑 添加 ifconfig eth0 172.16.1.200
ifconfig lo 127.0.0.1
route add default gw 172.16.1.254
即可
開機啟動項也可在此文件中添加