Linux文件系统域名解析实现
2019-07-13 08:45发布
生成海报
http://blog.csdn.net/water_cow/article/details/6901981
简介本文旨在为以龙芯1B开发板为平台,文件系统添加解析域名功能提供技术文档。系统环境:龙芯1B开发板(mips32指令)、Linux2.6.21 / Linux3.0.0内核、busybox1.19.2编译环境:ubuntu10.04、gcc-3.4.6-2f问题描述
文件系统udhcpc获取ip,能ping通ip,但ping域名时提示如"ping : bad address 'www.baidu.com' "。使用busybox构建文件系统,busybox中部分命令需要依赖库libnss*,如ping、nslookup等命令,即使busybox选择了静态编译也是如此。因此文件系统实现域名解析功能,还需要配置一些必要的库与配置文件。创建必须的配置文件:
1.创建/etc/resolv.conf该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。resolv.conf的关键字主要有四个:
nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序
resolv.conf文件中,nameserver关键字必须存在,它用于指定DNS服务器,其它关键字可选。该文件也可通过执行udhcpc生成,生成文件内容如:nameserver 221.5.88.88 #主DNS地址nameserver 210.21.4.130 #备用DNS地址
2.创建/etc/hostshosts是一个没有扩展名的系统文件,其作用就是将主机名映射到对应的ip地址。当用户执行一条ping命令时(如ping www.baidu.com),系统会首先自动从hosts文件中寻找www.baidu.com对应的ip地址,一旦找到,系统会立即对相应的ip执行ping命令,否则系统将域名提交DNS域名解析服务器进行ip地址的解析。通常地,为方便快速连接,可把需要经常连接的域名与其ip记录在hosts文件。#cat /etc/hosts127.0.0.1 localhost:localdomain localhost3.创建/etc/host.conf当系统中同时存在DNS域名解析与/etc/hosts主机表制时,host.conf用于确定主机名解析顺序。它每行含一个配置关键字,其后跟着合适的配置信息。系统识别的关键字有:order、trim、multi、nospoof和reorder。#cat /etc/host.conforder hosts,bind #名称解析顺序multi on #允许主机拥有多个IP地址nospoof on #禁止IP地址欺骗拷贝必要的库:从交叉工具链的库目录(./gcc-3.4.6-2f/mipsel-linux/lib)拷贝需要的库文件到文件系统lib目录。#cd ./gcc-3.4.6-2f/mipsel-linux/lib#cp libc.so.6 ld.so.1 libdl.so.2 ./rootfs/lib#cp libnss_dns.so libnss_dns.so.2 lib libnss_dns-2.3.6.so ./rootfs/lib#cp libresolv.so libresolv.so.2 libresolv-2.3.6.so ./rootfs/lib文件系统域名解析环境配置完成。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮