Hiveboard實(shí)現(xiàn)域名解析服務(wù)
文件系統(tǒng)udhcpc 獲取ip ,能ping 通ip ,但ping 域名時(shí)提示如"ping : bad address 'www.baidu.com' " 。使用busybox 構(gòu)建文件系統(tǒng),busy
文件系統(tǒng)udhcpc 獲取ip ,能ping 通ip ,但ping 域名時(shí)提示如"ping : bad address 'www.baidu.com' " 。使用busybox 構(gòu)建文件系統(tǒng),busybox 中部分命令需要依賴庫libnss*,如ping 、nslookup 等命令,busybox 選擇了靜態(tài)編譯。因此文件系統(tǒng)實(shí)現(xiàn)域名解析功能,還需要配置一些必要的庫與配置文件。
1. 創(chuàng)建/etc/resolv.conf
該文件是DNS 域名解析的配置文件,它的格式很簡單,每行以一個(gè)關(guān)鍵字開頭,后接配置參數(shù)。
nameserver #定義DNS 服務(wù)器的IP 地址
domain #定義本地域名
search #定義域名的搜索列表
sortlist #對(duì)返回的域名進(jìn)行排序
resolv.conf 文件中,nameserver 關(guān)鍵字必須存在,它用于指定DNS 服務(wù)器,其它關(guān)鍵字可選。該文件也可通過執(zhí)行udhcpc 生成,生成文件內(nèi)容如: 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 是一個(gè)沒有擴(kuò)展名的系統(tǒng)文件,其作用就是將主機(jī)名映射到對(duì)應(yīng)的ip 地址。當(dāng)用戶執(zhí)行一條ping 命令時(shí)(如ping www.baidu.com),系統(tǒng)會(huì)首先自動(dòng)從hosts 文件中尋找www.baidu.com 對(duì)應(yīng)的ip 地址,一旦找到,系統(tǒng)會(huì)立即對(duì)相應(yīng)的ip 執(zhí)行ping 命令,否則系統(tǒng)將域名提交DNS 域名解析服務(wù)器進(jìn)行ip 地址的解析。通常地,為方便快速連接,可把需要經(jīng)常連接的域名與其ip 記錄在hosts 文件。 #cat /etc/hosts
127.0.0.1 localhost
3. 創(chuàng)建/etc/host.conf
當(dāng)系統(tǒng)中同時(shí)存在DNS 域名解析與/etc/hosts主機(jī)表制時(shí),host.conf 用于確定主機(jī)名解析順序。它每行含一個(gè)配置關(guān)鍵字,其后跟著合適的配置信息。系統(tǒng)識(shí)別的關(guān)鍵字有:order 、trim 、multi 、nospoof 和reorder 。
#cat /etc/host.conf
order hosts,bind #名稱解析順序
multi on #允許主機(jī)擁有多個(gè)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 )可能會(huì)引起SCAN 域名解析異常。為了避免這種問題的發(fā)生,對(duì)nsswitch.conf 做如下調(diào)整。編輯/etc/nsswitch.conf文件,找到hosts 開頭的行,在該行的最后加入nis. 此文件最初由主機(jī)上拷貝過來 ,適當(dāng)修改恩
/ # 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)境配置完成。
注: 拷貝動(dòng)態(tài)庫時(shí)cp -a -a 一定要加 否側(cè)拷貝沒有用
cp -a libc* /lib
cp -a libd* /lib
,cp -a libnss* /lib
cp -a libreso* /lib
6. 驗(yàn)證域名服務(wù)
/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
至此 成功
補(bǔ)充 :可在/etc/init.d/rcS 設(shè)置開發(fā)板ip 和路由路徑 添加 ifconfig eth0 172.16.1.200
ifconfig lo 127.0.0.1
route add default gw 172.16.1.254
即可
開機(jī)啟動(dòng)項(xiàng)也可在此文件中添加