| Unix编程/应用问答中文版 ---7.DNS相关问题 |
|
Unix编程/应用问答中文版 ---7.DNS相关问题 |
| 作者:佚名 来源:不详 更新:2006-8-25 21:05:35 错误报告 我要投稿 |
7.1 如何进行DNS区传输 7.2 如何获知权威名字服务器 7.3 如何配置DNS的委托解析 7.4 如何获知BIND的版本号 7.5 Solaris/FreeBSD/Linux如何指定域名解析的顺序 --------------------------------------------------------------------------
7. DNS相关问题
7.1 如何进行DNS区传输
A: scz <scz@nsfocus.com>
用nslookup是最普遍适用的 nslookup > server ns.tsinghua.edu.cn > set type=axfr > ls tsinghua.edu.cn [> tsinghua.txt] (方括号里的可选)
有些系统提供了dig命令 dig @ns.tsinghua.edu.cn axfr tsinghua.edu.cn
A: lgwu
有些系统提供了host命令,这个命令不太保险 host -l net.tsinghua.edu.cn (后面指定域) host -l ncic.ac.cn
7.2 如何获知权威名字服务器
A: scz <scz@nsfocus.com>
nslookup > set query=ns > ncic.ac.cn (获知管辖该域的权威名字服务器) Authoritative answers can be found from: gatekeeper.ncic.ac.cn internet address = 159.226.41.188 > server gatekeeper.ncic.ac.cn > set type=axfr (准备区传输) > ls ncic.ac.cn > ncic.txt
7.3 如何配置DNS的委托解析
Q: 我想把子域DNS解析下放到下面去,在我这里如何配置
A: zhangql@bbs.tsinghua.edu.cn
子域 IN NS <负责子域DNS解析的IP>
7.4 如何获知BIND的版本号
Q: 如何识别当前运行的bind是什么版本
A: M. Zuber <helmlein@hotmail.com>
dig @<victim_ip> txt chaos version.bind
或者
nslookup server <victim_ip> set query=txt set class=chaos version.bind
但是这个返回结果可以通过/etc/named.conf自己设置,并不可靠。如果你正在运 行BIND 8,可以执行
/usr/sbin/ndc status
A: backend <backend@nsfocus.com>
#!/bin/sh # bv (Bind Version) script # written by backend@nsfocus.com
USAGE="Usage: $0 <address>"
if [ $# -ne 1 ]; then echo $USAGE exit fi
if [ ! -f /usr/bin/dig ]; then echo -en "\\033[1;31mCan't find \"dig\" program.\\033[0;39m\n\n" exit fi
VER=`/usr/bin/dig @$1 version.bind chaos txt | grep "VERSION.BIND"`
if [ "x$VER" = "x" ]; then echo -en "\\033[1;31mSorry. Can't get BIND version.\\033[0;39m\n\n" else echo -en "BIND version of \\033[1;33m$1\\033[0;39m = " echo -en "\\033[1;33m" echo $VER | awk '{print $5;}'
echo -en "\\033[0;39m\n" fi
A: deepin <deepin@nsfocus.com>
很多主机没有dig,最方便的办法是 nslookup -q=txt -class=chaos version.bind IP-addr 如果要美观一点,所以可以用这样的一个小脚本
#!/bin/sh if [ $# = 0 ];then echo "useage: $0 IP-Addr."; exit 1;fi VER=`nslookup -q=txt -class=chaos version.bind $1 | grep "VERSION.BIND"` if [ $? = 0 ];then echo -en "BIND version of \\033[1;33m$1\\033[0;39m = " `echo $VER | awk '{print $4,$5,$6;}'` "\\033[0;39m\n" else echo -en "\\033[1;31mSorry. Can't get BIND version.\\033[0;39m\n\n" fi
命令行上直接指定IP,会进行反向域名解析,有可能失败,进入nslookup之后server 指定IP,则无此问题。
7.5 Solaris/FreeBSD/Linux如何指定域名解析的顺序
Q: 如何在Solaris中使/etc/resolv.conf的设置生效
A: cp /etc/nsswitch.dns /etc/nsswitch.conf 或者 vi /etc/nsswitch.conf
hosts: files dns
Q: FreeBSD中有类似Solaris的/etc/nsswitch.conf的文件吗
A: /etc/host.conf
-------------------------------------------------------------------------- # First try the /etc/hosts file hosts # Now try the nameserver next. # 如果不希望做反向域名解析,则注释掉下面这行 # bind # If you have YP/NIS configured, uncomment the next line # nis --------------------------------------------------------------------------
Q: Linux中有类似Solaris的/etc/nsswitch.conf的文件吗
D: /etc/host.conf
-------------------------------------------------------------------------- order hosts, bind, nis multi on --------------------------------------------------------------------------
D: rai@SMTH Unix 2001-11-28 09:42
改了/etc/host.conf还是不行,后来试了一下/etc/nsswitch.conf就可以了,Linux 也有这个文件的,必须保证下一行中有dns
-------------------------------------------------------------------------- # hosts: db files nisplus nis dns hosts: files nisplus nis dns --------------------------------------------------------------------------
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |