DNS原理相关

DNS 为Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种服务机制。 

其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。 DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,服务器之间备份使用TCP。 

全世界只有13台“根”服务器,1个主根服务器放在美国,其他12台为辅根服务器,DNS服务器根据角色可以分为:主DNS, 从DNS, 缓存DNS服务器,DNS转发服务器。


使用bind搭建DNS服务器


1. 安装bind

yum install -y bind

cp /etc/named.conf /etc/named.conf.bak  

>/etc/named.conf

vim /etc/named.conf 

加入如下配置:

options {

    directory "/var/named";

    forward first;

    allow-query { any; };   #转发所有

    forwarders { 114.114.114.114; };


};

zone "." IN  {

    type hint;

    file "named.ca";

};


zone "localhost" IN {

    type master;

    file "localhost.zone";

};


zone "0.0.127.in-addr.arpa" IN {

    type master;

    file "named.local";

};


chown named /etc/named.conf

cd /var/named/

dig -t NS . > named.ca

vim localhost.zone //加入


@                   IN      SOA     localhost.  admin.localhost.     (

                                                                        2015091801

                                                                        1H

                                                                        10M

                                                                        7D

                                                                        1D

                                                                           )

@                   IN          NS          localhost.

localhost.          IN          A           127.0.0.1



vim named.local //加入

$TTL 86400

@                    IN      SOA     localhost.  admin.localhost.      (

                                                                        2015091801

                                                                        1H

                                                                        10M

                                                                        7D

                                                                        1D

                                                                        )

@                    IN          NS          localhost.

1                    IN          PTR         localhost


检测配置是否有问题: named-checkconf 

检测正解析: named-checkzone "localhost" /var/named/localhost.zone 

检测反解析: named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local

rndc-confgen -r /dev/urandom -a  // 这一步是生成 rndc.key, 如果没有这个key namd 是启动不了的。

chown named:named /etc/rndc.key

/etc/init.d/named start

netstat -lnp  |grep named  // 查看一下named进程是否监听了53端口

首先测试正向解析:dig @127.0.0.1 localhost. 

接着测试反解析:dig @127.0.0.1 -x 127.0.0.1




配置DNS转发

配置的DNS是只能解析我们定义的zone的,没有定义的是不能解析的。

配置DNS转发就可以解析其他互联网上的域名了,前提是这个域名在互联网中的确在使用,也就是说这个域名已经被某个DNS服务器解析了。

vim  /etc/named.conf //在options{} 里面增加

forward first;  

forwarders { 114.114.114.114; };

这两行就是用来配置转发的,该DNS服务器不能解析的域名会转发到114.114.114.114这个DNS服务器上去解析。




DNS的相关测试

yum install -y bind-utils  安装测试工具包

 

dig -t NS .    查看DNS的跟有哪些节点



nslookup命令是常用域名查询工具,就是查DNS信息用的命令。

nslookup www.qq.com   查看他的DNS地址和查看这个域名解析到了哪些IP地址

(nslookup www.qq.com 8.8.8.8   使用8.8.8.8 这个dns查询这个域名解析到了哪些IP地址)



dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常。

dig www.qq.com  

(dig @8.8.8.8 www.qq.com)


================================

例子:

[root@dns ~]# nslookup www.qq.com

Server:         218.85.157.99                  ====>这个是他DNS的地址

Address:        218.85.157.99#53


Non-authoritative answer:   ===>下面是这个域名解析的IP地址

Name:   www.qq.com

Address: 14.17.42.40

Name:   www.qq.com

Address: 14.17.32.211

Name:   www.qq.com

Address: 59.37.96.63



[root@dns ~]# nslookup 59.37.96.63   ===>查看这个IP使用的DNS服务是哪个

Server:         218.85.157.99

Address:        218.85.157.99#53



例子

[root@dns ~]# dig www.qq.com


;; QUESTION SECTION:

;www.qq.com.                    IN      A


;; ANSWER SECTION:

www.qq.com.             600     IN      A       14.17.42.40

www.qq.com.             600     IN      A       14.17.32.211

www.qq.com.             600     IN      A       59.37.96.63

代表这个域名绑定的IP地址有三个这里



;; AUTHORITY SECTION:

www.qq.com.             85436   IN      NS      ns-tel1.qq.com.

www.qq.com.             85436   IN      NS      ns-tel2.qq.com.

代表哪个DNS服务器给www.qq.com 这个域名提供服务


;; ADDITIONAL SECTION:

ns-tel1.qq.com.         2715    IN      A       183.2.186.153

ns-tel1.qq.com.         2715    IN      A       182.140.184.140

ns-tel2.qq.com.         3463    IN      A       183.61.47.15

列出提供服务的DNS服务的IP地址


;; Query time: 10 msec

;; SERVER: 218.85.157.99#53(218.85.157.99)   查询的DNS

;; WHEN: Thu Jan 12 20:11:56 2017

;; MSG SIZE  rcvd: 168

查询的统计数据