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
查询的统计数据