Linux中Dig工具解析DNS名称服务器 (名称服务器 linux dig)

一、引言

在互联网上,每个设备的唯一标识是IP地址,但IP地址对于人来说不直观,经常会给人带来困扰。为了方便人们记忆、使用、管理,DNS(Domn Name System)系统被广泛应用于互联网信息传输。DNS是一种分布式数据库系统,它通过域名将IP地址映射到可读性更高的主机名上。

DNS分层体系结构由多个域名服务器组成,每个域名服务器都负责管理一定范围的域名。当客户端需要访问某个域名时,它将会发送DNS查询请求到联网的某个域名服务器,该服务器会将查询请求转发到它所属的上层域名服务器和下层域名服务器,最终找到目标域名所对应的IP地址,将响应返回给客户端。

虽然DNS在互联网的工作过程中扮演着一种非常重要的角色,但是由于网络运营商的不稳定性、网络拥堵、DNS服务器负载等原因,DNS解析中的错误十分普遍。为了解决这些问题,可以使用一些工具来解析、监视DNS结构。本文将详细介绍Linux中的Dig工具。

二、Dig工具介绍

Dig(Domn Information Groper)是一个轻量级的命令行工具,它可以用来获取DNS信息,例如获取主机名或IP地址、查询和解析任何DNS记录等。它是一个由ISC(Internet Systems Consortium)开发的免费开源软件,适用于Linux和Unix系统,并且在大多数Linux发行版中已经预装。

三、Dig工具的基本用法

Dig工具的基本语法如下所示:

“`

dig [@server] [-b address] [-c class] [-f filename] [-k filename]

[-p port] [-t type] [-x addr] [-y name:key] [-4]

[-6] [name] [type] [class] [queryopt…]

“`

参数含义:

– [@server] 指定要查询的DNS服务器的IP地址或主机名。如果不指定,默认会查询本地DNS服务器。

– [-b address] 指定查询的源地址。

– [-c class] 指定查询的类别号。可以是IN(Internet)、CH(Chaos) 或HS(Hesiod)。

– [-f filename] 从文件中读取命令行的参数。

– [-k filename] 指定信任软件关键和其他属性所需的公钥,以确保解析的信息正确。

– [-p port] 指定使用的端口号。

– [-t type] 指定查询的记录类型。可以是A(IPv4地址)、AAAA(IPv6地址)、CNAME(统一资源定位器重命名)、MX(邮件交换器地址)等。

– [-x addr] 查询反向域名,即通过指定IP地址查询域名。

– [-y name:key] 用于加密DNS查询。

– [-4] 强制使用IPv4地址。

– [-6] 强制使用IPv6地址。

基本查询语法:

– 查询A记录:`dig A www.bdu.com`

– 查询CNAME记录:`dig CNAME www.bdu.com`

– 查询MX记录:`dig MX bdu.com`

– 查询NS记录:`dig NS bdu.com`

四、使用Dig工具解析DNS服务器

1. 查询域名对应IP地址

在Linux命令行中输入以下命令:

“`

dig www.bdu.com

“`

该命令将查询百度的IP地址和其他相关信息。如果成功,将显示以下内容:

“`

; > DiG 9.11.4-P2-RedHat-9.11.4-4.P2.el7_8.6 > www.bdu.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER

;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 9

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.bdu.com. IN A

;; ANSWER SECTION:

www.bdu.com. 167 IN A 39.156.66.15

www.bdu.com. 167 IN A 39.156.69.79

www.bdu.com. 167 IN A 39.156.66.14

www.bdu.com. 167 IN A 39.156.69.75

;; AUTHORITY SECTION:

bdu.com. 921 IN NS ns1.bdu.com.

bdu.com. 921 IN NS ns4.bdu.com.

bdu.com. 921 IN NS ns2.bdu.com.

bdu.com. 921 IN NS ns3.bdu.com.

;; ADDITIONAL SECTION:

ns1.bdu.com. 899 IN A 180.76.130.11

ns1.bdu.com. 899 IN AAAA 2400:da00::a9

ns2.bdu.com. 1084 IN A 61.135.169.121

ns3.bdu.com. 1046 IN A 119.75.222.17

ns3.bdu.com. 1046 IN AAAA 2400:da00::b9

ns4.bdu.com. 858 IN A 115.239.210.38

ns4.bdu.com. 858 IN AAAA 2400:da00::b5

;; Query time: 42 msec

;; SERVER: 192.168.7.1#53(192.168.7.1)

;; WHEN: Sun Oct 03 21:53:48 CST 2023

;; MSG SIZE rcvd: 342

“`

上面的输出信息说明:

– QUESTION SECTION:查询的问题部分,即查询的域名和类型。

– ANSWER SECTION:回答部分,即查询到的域名和对应的IP地址。

– AUTHORITY SECTION:权威部分,即该域名的权威DNS服务器。

– ADDITIONAL SECTION:附加信息部分,即与查询相关的其他信息。

2. 查询PTR记录

通过查询IP地址的PTR记录,可以获得该IP地址所对应的域名。在Linux命令行中,输入以下命令:

“`

dig -x 39.156.66.15 +short

“`

该命令将查询39.156.66.15的PTR记录并返回查询结果。+short参数用来简化查询结果,只显示查询到的域名,而不显示其他信息。输出结果如下所示:

“`

shifen5.bdu.com.

“`

3. 设置DNS服务器

如果要查询网络上的某些特定IP,需要设置自己的DNS服务器来查询。假设我要查询114.114.114.114这个IP的域名,但我的DNS服务器不知道它的域名,此时可以通过设置公共DNS服务器来查询。在Linux命令行中,输入以下命令:

“`

dig @114.114.114.114 -x 114.114.114.114 +trace

“`

该命令将使用114.114.114.114作为DNS服务器查询114.114.114.114的PTR记录,+trace参数用来显示查询过程中每一个DNS服务器的IP地址。结果如下所示:

“`

; > DiG 9.11.4-P2-RedHat-9.11.4-4.P2.el7_8.6 > @114.114.114.114 -x 114.114.114.114 +trace

; (1 server found)

;; global options: +cmd

. 30790 IN NS a.root-servers.net.

. 30790 IN NS c.root-servers.net.

. 30790 IN NS d.root-servers.net.

. 30790 IN NS e.root-servers.net.

. 30790 IN NS f.root-servers.net.

. 30790 IN NS g.root-servers.net.

. 30790 IN NS h.root-servers.net.

. 30790 IN NS i.root-servers.net.

. 30790 IN NS j.root-servers.net.

. 30790 IN NS k.root-servers.net.

. 30790 IN NS l.root-servers.net.

. 30790 IN NS m.root-servers.net.

. 30790 IN NS b.root-servers.net.

. 30790 IN RRSIG NS 8 0 518400 20231015170000 20231002160000 20236 . HUmKA9mSji8q6U1Bo6Umxlr/7mbUtfc2vgkdcBZmTjZXs16N9HnubP+T mNvsIAgdfEuas/swEOGwz0Z0TbagDNsdd+EWMNs9XlyW8sPKfLlD/o1b vwua4zGG4DBiOgtAKxM50AvRvpo9OkS609GBfu6+lO/clLae2Qo52MeF 3=

;; Received 525 bytes from 114.114.114.114#53(114.114.114.114) in 7 ms

114.in-addr.arpa. 172800 IN NS ns1.apnic.net.

114.in-addr.arpa. 172800 IN NS ns2.ln.net.

114.in-addr.arpa. 172800 IN NS ns3.apnic.net.

114.in-addr.arpa. 172800 IN NS snicdns1.apnic.net.

114.in-addr.arpa. 86400 IN DS 19182 8 2 67B7E1D7282F6077D98B44FEE9BF12ED84D67E0C617F8D99E0F87E5D 1BFD864D

114.in-addr.arpa. 86400 IN RRSIG DS 8 1 86400 20231014170000 20231001170000 20236 . SAKgEHzLwJVtGrRHvz/H/QgzsNwj2xMn/At8wmYlcGjrLg84Pc7Vw0H8 nGIZVgDueEjPghsZP6oLlTvg9StTuF+2b2yW6q8zQZkaJ6Byd+p/vSjm 6f8SmL9X4AeVsO/jy4f8mwptIZIAKzHNa+90sZsPtvnW+X9Yv49/HS1M i2c=

C.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.in-addr.arpa. 86400 IN NSEC C.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.in-addr.arpa. NS RRSIG NSEC

C.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.in-addr.arpa. PTR dns.google.

C.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.4.1.1.in-addr.arpa. RRSIG PTR 8 2 86400 20231014170000 20231001170000 20236 . bF0XhtLHbcncjKpZs+o/YhGmZ1NAi8EWeKkcQ2DyYvSiFcWz8qhP6Z+I 72SJB6U3w6PkFILdDP4KHo4L/6p9W6f8ttCkx6lSj6zzxbq6w8eZFyij s4G4bYh9BvpW0RZgprO/RsUTdVmCMEHhO8i6OgYPQwjTavTis9gslyW8 ghw=

;; Received 603 bytes from 192.58.128.30#53(a.root-servers.net) in 1947 ms

;; AUTHORITY SECTION:

114.in-addr.arpa. 172800 IN NS ns3.apnic.net.

114.in-addr.arpa. 172800 IN NS ns1.apnic.net.

114.in-addr.arpa. 172800 IN NS snicdns1.apnic.net.

114.in-addr.arpa. 172800 IN NS ns2.ln.net.

114.in-addr.arpa. 86400 IN DS 19182 8 2 67B7E1D7282F6077D98B44FEE9BF12ED84D67E0C617F8D99E0F87E5D 1BFD864D

114.in-addr.arpa. 86400 IN RRSIG DS 8 1 86400 20231014170000 20231001170000 20236 . SAKgEHzLwJVtGrRHvz/H/QgzsNwj2xMn/At8wmYlcGjrLg84Pc7Vw0H8 nGIZVgDueEjPghsZP6oLlTvg9StTuF+2b2yW6q8zQZkaJ6Byd+p/vSjm 6f8SmL9X4AeVsO/jy4f8mwptIZIAKzHNa+90sZsPtvnW+X9Yv49/HS1M i2c=

;; Received 341 bytes from 202.12.29.59#53(ns3.apnic.net) in 217 ms

4. 监视DNS服务器

Dig工具还可以用来监视DNS服务器的响应情况。在Linux命令行中,输入以下命令:

“`

dig @8.8.8.8 google.com

“`

该命令将查询Google的IP地址,并使用Google的DNS服务器进行查询。在查询过程中,会显示查询状态、响应时间和其他详细信息。用户可以通过从这些信息监视查询响应时间、记录数和DNS服务器中的DNS记录数,以及其他有用的细节信息。

五、

在本文中,我们给出了使用Dig工具查询DNS信息的基本用法。通过使用Dig工具,用户可以轻松地查询域

相关问题拓展阅读:

Linux下常用的DNS服务软件是什么,常用的DNS记录有?

Linux下常用的DNS服务软件是 BIND

以下是一个配置DNS服务的实例:

………………………………………………DNS的配置步骤:……………………………………………………

一、配置静态IP地址:

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.198.0.5

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

#/etc/init.d/network restart

#ifconfig eth0

二、使用BIND构建DNS服务器

1、BIND服务器安装

RHEL4中包括了BIND服务相关的软件包

bind-libs-9.2.4-2

提供了实现域名解析功能必备的库文件旦培 ,系统默认安装

bind-utils-9.2.4-2

提供了对DNS服务器的测试工具程序 ,系统默认安装

bind-9.2. 安装文件位于第4张安装光盘中

# rpm -ivh bind-9.2.4-2.i386.rpm

BIND服务器的服务程序脚本名称是named,默认没有启动,需手动设置。

#rpm -ql bind | grep init.d

/etc/rc.c/init.d/named

#chkconfig –level 35 named on

#chkconfig –list named

三、主域名服务器的举衡配置

1、在named.conf文件中设置域

全局配置

options {

directory “/var/named”;

dump-file “/var/named/data/cache_dump.db”;

statistics-file “/var/named/data/named_stats.txt”;

};

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

建立正向解析域

zone “.” IN { (指定根域)

type hint;

file “named.ca”;

};

zone “benet.com” { (指定本地域)

type master;

file “benet.com.zone”;

};

建立反向解析域

zone “0.168.192.in-addr.arpa” {(指定反向域)

type master;

file “192.168.0.rev”;

};

2、建立正向区域文件 (该文件需要用vi编辑器手动建立在/var/named中,并写其内容)

#cat /var/named/benet.com.zone

$TTL(秒)

@IN SOAbenet.com.hostmaster.benet.com. (

; serial (d. adams) (序列号)

H ; refresh (3小时更新)

5M ; retry (15分钟重试)

W ; expiry (1周模答唯)

D ) ; minimum(1天)

@IN NS ns1.benet.com.

@IN NS ns2.benet.com.

nsIN A.168.0.5

nsIN A.168.0.6

hostIN A.168.0.7

hostIN A.168.0.8

mailIN CNAME host1.benet.com.

wwwIN CNAME host2.benet.com.

@IN MXmail.benet.com.

3、建立反向区域文件 (该文件需要用vi编辑器手动建立在/var/named中,并写其内容)

# cat /var/named/192.168.0.rev

$TTL

@ IN SOA ns1.ltest.com. hostmaster.ltest.com. (

; serial (d. adams)

H; refresh

M; retry

W; expiry

D ); minimum

@ IN NS ns1.ltest.com.

@ IN NS ns2.ltest.com.

IN PTR ns1.ltest.com. (PTR可用IP省略方法,1.168.192.in-addr.rapa表192.168.1.2可写为2)

IN PTR ns2.ltest.com.

IN PTR host1.ltest.com.

IN PTR host2.ltest.com.

4、配置文件和区域文件的测试

A、测试named.conf主配置文件

# named-checkconf (如果不显示任何信息表示语法正确 )

B、测试区域文件

# named-checkzone benet.com /var/named/benet.com.zone

# named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev

(named-checkzone命令对正向区域文件和反向区域文件进行检查语法是否错误,之一个参数指定区域名称,第二个参数指定区域文件名称,如果语法正确将显示OK)

5、重启named服务

#service named restart

四、从域名服务器 的配置

(它做为主域名服务器的辅助和备份服务器,自身不建立区域文件,而是从主域名服务器中查询并保存,它可以与主域名服务器提供相同的域名解析服务,它需要在与主域名服务器不同的主机中构建)

1、在named.conf文件中设置域

建立正向解析域

zone “benet.com” {

type slave; (type设置为“slave”,表示当前DNS服务器是该域的从域名服务器类型 )

file “slaves/benet.com.zone” (从域名服务器中的区域文件应设置保存在 “slaves”子目录中,区域文件将从主域名服务器中获取并保存在该目录中,为了便于管理,尽量使用与主服务器相同的区域文件名称)

masters { 192.168.0.5; };( 使用masters设置主域名服务器的IP地址 )

};

建立反向解析域

zone “0.168.192.in-addr.arpa” {

type slave;

file ” slaves/192.168.0.rev”;

masters { 192.168.0.5; };

};

2、检测配置文件和启动named服务

从域名服务器只需要检测配置文件的语法

# named-checkconf

启动从域名服务器

# service named start

查看区域文件

从服务器启动后将从主域名服务器中获得区域文件并保存在指定的目录中

# ls /var/named/slaves/

192.168.0.rev benet.com.zone

(如果/var/named/slaves/目录中没有发现区域文件,说明从域名服务器和主域名服务器之间传输区域文件不成功,需要排错。)

五、缓存域名服务器的配置

(它应保证能够与互联网中的其他DNS服务器进行连接,它的主要作用是提高域名解析速度和节约出口带宽)

1、安装caching-nameserver软件包

(RHEL4系统为配置缓存域名服务器专门提供了名为“caching-nameserver”的软件包,该软件包保存在第1张安装光盘中,默认没有安装。)

# rpm -ivh caching-nameserver-7.3-3.noarch.rpm

(caching-nameserver软件包安装时将对BIND服务器的配置文件named.conf的内容进行更改,原文件中的内容保存在/etc/named.conf.rpmorig中。)

2、named.conf中的全局设置 (其中以//开头的行是无效行)

options {

directory “/var/named”;(directory用于设置BIND服务器的工作目录,即域名区域文件保存的目录 )

dump-file “/var/named/data/cache_dump.db”; (dump-file用于设置域名缓存文件的保存位置和文件名 )

statistics-file “/var/named/data/named_stats.txt”;

};

3、根区域设置

named.conf中的根区域设置

zone “.” IN {

type hint; (type设置为hint表示该区域的类型是根区域)

file “named.ca”; (file用于设置区域文件,根区域文件的名称是“named.ca” )

};

(named.ca是根区域文件,位于“/var/named/ ”目录中,named.ca中包含全球DNS根服务器的地址信息请不要更改)

4、localhost正向解析

(localhost区域的作用是对主机名称“localhost”和环回地址“127.0.0.1” 进行解析,总是代表本机)

zone “localhost” IN {

type master; ( type设置为master表示区域的类型为主服务器 )

file “localhost.zone”; (file设置区域文件名的名字 ,localhost.zone在/var/named中,是安装caching nameserver时自动安装的,用cat /var/named/localhost.zone查看内容)

};

5、localhost反向解析

zone “0.0.127.in-addr.arpa” IN {

type master;( type设置为master表示区域的类型为主服务器 )

file “named.local”; (file设置区域文件名的名字,named.local在/var/named中,是安装caching-nameserver时自动安装的,用cat /var/named/named.local查看内容)

};

6、缓存域名服务器在安装caching-nameserver软件包后不需要任何其他配置就可以启动运行,并实现域名查询和缓存功能,但它必须能够访问互联网。可以使用nslookup命令进行测试。

六、DNS服务器的测试

1、DNS测试原理

DNS服务器的主要测试方法

使用nslookup、dig和host等专用工具可以对DNS服务器进行较全面的测试

nslookup命令在Linux和Windows系统中都默认安装,是比较常用的测试工具

2、使用nslookup测试DNS服务器

进入nslookup命令交换环境

# nslookup

>

设置使用指定的DNS服务器

> server 192.168.0.5

测试localhost主机域名的正向解析

> localhost

测试localhost主机域名的反向解析

> 127.0.0.1

测试互联网中的域名解析

>

www.benet.com

测试benet.com域中的A记录

> host1.benet.com

测试benet.com域中的PTR记录

> 192.168.0.7

测试benet.com域中的CNAME记录

>

www.benet.com

测试benet.com域中的NS记录

> set type=ns(设置域名查询类型为NS即域名记录)

> benet.com

测试benet.com域中的MX记录

> set type=mx(设置域名查询类型为MX即邮件交换记录)

> benet.com

设置进行A记录的测试

> set type=a(设置域名查询类型为A即地址记录)

>mail.benet.com

3、使用dig测试DNS服务器 (dig只运行在liunx平台,是domain information grep的缩写)

1)#dig –help

dig命令的格式

Usage: dig {q-opt}

{global-d-opt} host {local-d-opt}

{local-d-opt} >

Use “dig -h” (or “dig -h | more”) for complete list of options

2)dig命令可以比nslookup命令显示更多的DNS服务器信息

# dig @192.168.0.5 benet.com (@后是被查询的DNS服务器的IP地址,benet.com域名做为命令参数)

; > DiG 9.2.4 > @192.168.0.5 benet.com

;; global options: printcmd

;; Got answer:

;; ->>HEADER

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;benet.com.IN A

;; AUTHORITY SECTION:

benet.com.IN SOA ns1.benet.com. hostmaster.benet.com.

LINUX的DNS怎么设置

配置文件位于:

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.0.3

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS=192.168.0.5

使IP地址生效:

/in/ifdown eth0

/in/ifup eth0

配置dns解析

echo “nameserver 211.98.1.28”>> /etc/resolv.conf

通知网关更新信息:

/etc/init.d/network restart

下面是配置DNS的过程:

1.简介

DNS就是Domain Name System,它能够把形如

www.21php.com

这样的域名转换为211.152.50.35这样的IP地址;没有DNS,浏览21php.com 这个网站时,就必须用211.152.50.35这么难记的数字来访问。提供DNS服务的就是DNS服务器。DNS服务器可以分为三种,高速缓存服务器 (Cache-only server)、主服务器(Primary Name server)、辅助服务器(Second Name Server)。

2.配置主DNS服务器

首先我们做以下假设:A服务器为21php.com的主域名服务器,其IP地址为11.0.0.1,B服务器为21php.com的辅助域名服务器,其IP地址为11.0.0.2;下面我们配置服务器11.0.0.1为21PHP.COM的主DNS服务器

 Linux下的dns功能是通过bind软件实现的。bind软件安装后,会产生几个固有文件,分为两类,一类是配置文件在/etc目录下,一类是 dns记录文件在/var/named目录下。加上其他相关文件,共同设置dns服务器。下面是所有和dns设置相关文件的列表与说明。

  位于/etc目录下的有:hosts,host.conf,resolv.conf,named.boot,named.conf。

  1、“hosts”文件,定义了主机名和ip地址的对应,其中也有将要运行dns这台电脑的ip地址和主机名。内容:

 纯尘 127.0.0.1 localhost.localdomain localhost

  2、“host.conf”文件,”order hosts bind”语句,指定了对主机名的解析顺序是先到hosts中查做知禅找,然后到dns服务器的猛塌记录里查找。“multi on”则是允许一个主机名对应多个ip地址。内容:

  order hosts, bind

  multi on

  nospoof on

  3、“resolv.conf”文件,“nameserver 10.0.0.211”指定了dns服务器的地址。注意,这个文件对普通非dns服务器的电脑(非windows的系统;Windows系统是在“网络属性”中设置这项的)来说,是必不可少的。你如果没有设置本机为dns服务器,你又要能够解析域名,就必须指定一个dns服务器的地址。你可以最多写上三个地址,作为前一个失败时的候选dns服务器。“domain zrs.com”指定默认的域。文件内容:

  domain 21php.com

  nameserver 11.0.0.1

  4、“named.boot”文件是早期版本的bind软件使用的配置文件,现在新版本中已经让位于“named.conf”。named.conf是dns server配置的核心文件。下面我们一段一段的来解说。

  # named.conf – configuration for bind

  #

  # Generated automatically by bindconf, alchemist et al.

  controls {

  inet 127.0.0.1 allow { localhost; } keys { rndckey; };

  };

  include “/etc/rndc.key”;options {

  directory “/var/named/”;

  };

  zone “.” {

  type hint;

  file “named.ca”;

  };

  zone “0.0.127.in-addr.arpa” {

  type master;

  file “0.0.127.in-addr.arpa.zone”;

  };

  zone “localhost” {

  type master;

  file “localhost.zone”;

  };

  zone “21php.com” {

  type master;

  notify yes;

  file “21php.com”;

  };

  上文中#为注释符号, 其他各行含义如下:

  diretory /var/named

  指定named从 /var/named 目录下读取DNS数据文件,这个目录用户可自行指定并创建,指定后所有的DNS数据文件都存放在此目录下;

  zone “.” {

  type hint;

  file “named.ca”;

  };

  指定named从 named.ca 文件中获得Internet的顶层“根”服务器地址 。

  zone “0.0.127.in-addr.arpa” {

  type master;

  file “0.0.127.in-addr.arpa.zone”;

  };

  指定named作为127.0.0网段地址转换主服务器,named.local文件中包含了127.0.0.*形式的地址到域名的转换数据(127.0.0网段地址是局域网接口的内部 loopback地址);

  zone “localhost” {

  type master;

  file “localhost.zone”;

  };

  指定包含localhost的DNS文件数据存放在/var/named/localhost.zone中;

  zone “21php.com” {

  type master;

  notify yes;

  file “21php.com.zone”;

  };

  以上语句表明域21php.com的DNS数据存放在/var/named/目录下的21php.com.zone中;

  我们可以用文本编辑器打开/var/named/21php.com.zone,其内容如下:

  $TTL@ IN SOA @ root.localhost (

  2 ; serial

; refresh

; retry

; expire

; ttl

  )

  @ IN NS localhost

  www IN A 11.0.0.233

  www2 IN A 11.0.0.23

  forum IN A 11.0.0.10

  @ IN MX 5 mail.21php.com.

  该文件的前部分是相应的参数设置,此部分不需要改动,后面的部分就是具体的DNS数据;

  例如:

  www IN A 11.0.0.233

  将

www.21php.com

解析到地址11.0.0.233;

  www2 IN A 11.0.0.23

  将www2.21php.com 解析到地址11.0.0.23;

  club IN A 11.0.0.10

  将club.21php.com 解析到地址11.0.0.10;

  ③配置辅助DNS服务器

  配置服务器11.0.0.2为21php.com辅助dns服务器

  辅助DNS服务器,可从主服务器中转移一整套域信息。区文件是从主服务器中转移出来的,并作为本地磁盘文件存储在辅助服务器中。在辅助服务器中有域信息的完整拷贝,所以也可以可以回答对该域的查询。这部分的配置内容如下:

  zone “21php.com” IN {

  type slave;

  file “21php.com.zone”;

  masters { 11.0.0.1; };

  };

  可以看到,和主DNS服务器不同地方就是:“type”改为了“slave”,然后指明了主DNS服务器的地址“masters { 11.0.0.1; };”。DNS服务启动时,就会自动连接11.0.0.1,读取21php.com域的信息,然后保存到本机的21php.com.zone文件里。

  ④测试DNS服务器

  改动过DNS的相应文件,用“ndc restart”命令重新启动服务,在redhat 7.1以上版本中使用命令:

  /etc/rc.d/init.d/named restart

  或者

  /etc/rc.d/init.d/named reload

  使改动生效。

linux下如何配置DNS服务器,

在linux下配置DNS服务器,下面是配置过程中设置过的一些文件,

  /etc/hosts 文件的具体内容如下:

  # Do not remove the following line, or various programs

  # that require network functionality will fail.

  127.0.0.1 localhost.localdomain localhost fc4

  192.168.1.3 a.test.com a

  192.168.1.1 b.test.cn b

  /etc/host.conf 文件:

  order hosts,bind

  表示先用hosts文件做解析,春改在用DNS解析

  /etc/resolv.conf 文件:

  ; generated by NetworkManager, do not edit!

  search test.com

  nameserver 127.0.0.1

  search test.cn

 扒谈判 nameserver 192.168.1.1

  nameserver 61.144.56.100

  /etc/named.conf 文侍氏件:

  //

  // named.conf for Red Hat caching-nameserver

  //

  options {

  directory “/var/named”;

  dump-file “/var/named/data/cache_dump.db”;

  statistics-file “/var/named/data/named_stats.txt”;

  /*

  * If there is a firewall between you and nameservers you want

  * to talk to, you might need to uncomment the query-source

  * directive below. Previous versions of BIND always asked

  * questions using port 53, but BIND 8.1 uses an unprivileged

  * port by default.

  */

  // query-source address * port 53;

  };

  //

  // a caching only nameserver config

  //

  controls {

  inet 127.0.0.1 allow { localhost; } keys { rndckey; };

  };

  zone “.” IN {

  type hint;

  file “named.ca”;

  };

  zone “test.com”IN {

  type master;

  file “test.com”;

  allow-update { none; };

  };

  zone “1.168.192.in-addr.arpa”IN {

  type master;

  file “192.168.1.rev”;

  allow-update { none; };

  };

  zone “test.cn”IN {

  type master;

  file “test.cn”;

  allow-update { none; };

  };

  zone “0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN {

  type master;

  file “named.ip6.local”;

  allow-update { none; };

  };

  zone “255.in-addr.arpa” IN {

  type master;

  file “named.broadcast”;

  allow-update { none; };

  };

  zone “0.in-addr.arpa” IN {

  type master;

  file “named.zero”;

  allow-update { none; };

  };

  include “/etc/rndc.key”;

  在/var/name/test.com 文件下:

  $TTL

  @ IN SOA a.test.com. root.a.test.com (

  42 ; serial (d. adams)

  3H ; refresh

  15M ; retry

  1W ; expiry

  1D ) ; minimum

  IN NS a.test.com.

  IN MX 10 mail.test.com.

  a IN A 192.168.1.3

  mail IN A 192.168.1.3

  //其中root.a.test.com的含义是管理员的邮箱

  /var/name/test.cn 文件下:

  $TTL

  @ IN SOA b.test.cn. root.a.test.com (

  42 ; serial (d. adams)

  3H ; refresh

  15M ; retry

  1W ; expiry

  1D ) ; minimum

  IN NS b.test.cn.

  IN MX 10 mail.test.cn.

  b IN A 192.168.1.1

  mail IN A 192.168.1.1

  /var/name/192.168.1.rev 文件下:

  $TTL

  @ IN SOA 1.168.192.in-addr.arpa. root.test.com. (

; Serial

; Refresh

; Retry

; Expire

) ; Minimum

  IN NS a.test.com.

  IN NS b.test.cn.

  IN MX 10 mail.test.com.

  IN MX 10 mail.test.cn.

  3 IN PTR a.test.com.

  3 IN PTR mail.test.com.

  1 IN PTR b.test.cn.

  1 IN PTR mail.test.cn.

  然后用/etc/init.d/named restart重启DNS服务,在重启过程中,我曾经出现过好几次的错误,按照出错的提示,会提示是named.conf文件第几行出错的。或者提示在那些包含文件例如test.cn这些文件里面的问题,然后一个一个排除。

  最后还有一些nslookup的命令比较有用:

  set all用于显示使用nslookup工具这台机器上的DNS服务器的一些信息

  set type=any会显示完整信息包括域中邮件服务器和主从DNS服务器的名字和IP地址

  server 192.168.0.1更换查询的DNS服务器地址

linux DNS服务器配置

基本理论:

DNS系统的作用是把域名和IP对应起来。

正向解析:根据域名(主机名)查找对应的IP地址。

反向解析:根据IP地址查询对应的域名(主机名)。

查询

递归查询:大多数客户机向芦前DNS服务器解析域名的方式。

迭代查询:大多数DNS服务器向其它DNS服务器解析域名的方式。

DNS服务器的类型

缓存域名服务器:也称唯高速缓存服务器。通过向其它域名服务器查询获得域名与IP地址的对应孙伏记录,将域名查询结果缓存到本地,提高重复查询时的速度。

主域名服务器:特定DNS区域的官方服务器陪凯清,具有唯一性。负责维护该区域内的所有域名与IP的映射记录。

从域名服务器:也称辅助域名服务器。其维护的域名与IP地址的映射记录来源于主域名服务器。

环境准备:

临时关闭selinux和iptables

#setenforce 0

#service iptables stop

查询相关软件包:

# yum search bind

Loaded plugins: product-id, refresh-packagekit, subscription-manager

Updating Red Hat repositories.

====================================================================================== N/S Matched: bind ======================================================================================

PackageKit-device-rebind.i686 : Device rebind functionality for PackageKit

bind.i686 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server

bind-chroot.i686 : A chroot runtime environment for the ISC BIND DNS server, named(8)

bind-utils.i686 : Utilities for querying DNS name servers

其中各软件包的作用如下:

bind: 提供域名服务的主要程序及相关文件。

bind-chroot:为bind提供一个伪装的根目录以增强安全性。

bind-utils:提供对DNS服务器测试的工具程序(如nslookup、dig等)。

安装BIND软件包#yum install *bind*

配置DNS服务器:

bind服务器端程序

主要执行程序:/usr/in/named

服务脚本:、etc/init.d/named

默认监听端口:53

主配置文件: /etc/named.conf

保存DNS解析记录的数据文件: /var/named/chroot/var/named

查询bind程序的配置文件列表

# rpm -qc bind

/etc/logrotate.d/named

/etc/named.conf

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named

/var/named/named.ca

/var/named/named.empty

/var/named/named.localhost

/var/named/named.loopback

查看主配置文件named.conf

#vim /etc/named.conf

主配置文件解析:

全局配置部分:

默认的全局配置项如下:

10 options {

listen-on port 53 { 127.0.0.1; }; //监听的端口和接口IP地址

listen-on-v6 port 53 { ::1; };

directory”/var/named”;//dns区域的数据文件默认存放位置

dump-file”/var/named/data/cache_dump.db”;

statistics-file “/var/named/data/named_stats.txt”;

memstatistics-file “/var/named/data/named_mem_stats.txt”;

allow-query { localhost; }; //允许dns查询的客户机列表,any表示所有

recursion yes;//是否允许客户机进行递归查询

19

dnssec-enable yes;

dnssec-validation yes;

dnssec-lookaside auto;

23

/* Path to ISC DLV key */

bindkeys-file “/etc/named.iscdlv.key”;

26 };

全局配置中还有如下选项:

forwarders {202.102.24.68;12.3.3.3;};//将本域名服务器不能解析的条目转发给其它DNS服务器的IP地址

默认的区域配置项如下:

35 zone “.” IN {

type hint; //区域类型。hint为根区域;master为主区域; slave为辅助区域

file “named.ca”;//该区域对应的区域数据配置文件名

38 };

区域配置中还有如下选项:

allow-transfer {189.98.90.23;};//允许下载区域数据库的从域名服务器IP地址

allow-update {none;};//允许动态更新的客户端IP地址(none表示全部禁止)

添加如下区域配置:

zone “my.com” IN {

type master;//主区域

file “my.com”; //该区域对应的区域数据配置文件名

allow-transfer {192.168.153.1;};//允许下载区域数据库的从域名服务器IP地址

allow-update {none;};

};

zone “153.168.192.in-addr.arpa” IN { //表示针对IP192.168.153.130反向解析

type master;//主区域

file “192.168.153.my.arpa”;//该区域对应的区域数据配置文件名

};

配置完了,可以执行如下命令对named.conf文件进行语法检查。

#named-checkconf

注意:倒序网络地址.in-addr.arpa 表示反向区域

主配置文件最后还有一行是:

include “/etc/named.rfc1912.zones”//该文件包含/etc/named.rfc1912.zones文件

区域数据配置文件:

先看一下named.localhost的内容:

$TTL 1D//time to live 生存时间

@IN SOA @ rname.invalid. ( //”rname.invalid”DNS区域地址

; serial //更新序列号

D ; refresh //更新时间

H ; retry //重试延时

W ; expire //失效时间

H ) ; minimum//无效地址解析记录的默认缓存时间

NS @//name server 域名服务记录

A.0.0. //address 只用在正向解析的区域数据文件中

AAAA ::1

新建2个对应的区域数据配置文件:

#touch my.com

#touch 192.168.153.my.arpa

#vim my.com

$TTL 86400

@ IN SOA my.com. admin.my.com (//admin.myNaN为该区域管理员的邮箱地址

201

H

M

W

D

)

@IN NS ns1.my.com.//当前域的DNS服务器地址

IN MXmail.my.com.//用于设置当前域的邮件服务器域名地址,数字10表示优先级别,数字越大优先级越低

ns1 IN A.168.153.130

mail IN A.168.153.130

www IN A.168.153.130

ftp IN CNAME www //CNAME别名(canonical name)记录,表示ftp.my.com和

www.my.com

对应同一个IP.

# vim 192.168.153.my.arpa

$TTL 86400

@ IN SOA my.com. admin.my.com (

201

H

M

W

D

)

@IN NS ns1.my.com.

INPTR ftp.my.com

启动DNS服务

# service named start

测试:

配置一台ftp服务器用于测试:

#service vsftpd start//启动vsftpd服务

当前网卡的配置:

eth0: 192.168.0.1/24

eth1: 192.168.153.130/24

# nslookup 192.168.153.130

Server: 127.0.0.1

Address: 127.0.0.1#53

130.153.168.192.in-addr.arpaname =

www.my.com

.

# nslookup ftp.my.com

Server: 127.0.0.1

Address: 127.0.0.1#53

ftp.my.comcanonical name =

www.my.com

.

Name:

www.my.com

Address: 192.168.153.130

测试成功

答案给出的很详细,可是那是老版本redhat9的配置了。 现在通用的bind9.0使用的是chroot环境,就是说你安装RHEL5.4的时候,在/etc/下面是找不到named.conf文件的.简要说下过程 如果你用的RHEL5的yum库1.安装#yum install bind* -y#yum install caching-nameserver2.配置主配文件#cd /var/named/chroot/etc/ #cp -a named.caching-nameserver.conf named.conf# vim named.conf主游雀要参饥磨滚数和以前的bind差不多,都烂余是写明正向和方向域文件。allow-query 这行要匹配any 否则服务器就只能你本地使用

名称服务器 linux dig的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于名称服务器 linux dig,Linux中Dig工具解析DNS名称服务器,Linux下常用的DNS服务软件是什么,常用的DNS记录有?,LINUX的DNS怎么设置,linux下如何配置DNS服务器,的信息别忘了在本站进行查找喔。


数据运维技术 » Linux中Dig工具解析DNS名称服务器 (名称服务器 linux dig)