DNS域名解析服务

DNS(Domain Name System)  软件:bind   服务:named
 
DNS有4类
① 缓存域名服务器:帮你去找域名解析的,本身并不能解析
② 主域名解析服务器:也就是他自己维护一个域名的解析记录本(百度的域名解析就叫baidu.com,维护所有和baidu有关的)
③从域名解析服务器:主从复制,高可用。
④智能解析服务器:根据不同地域的用户返回不同的解析包结果
 
密码本(解析记录本)有两种解析记录:
主、从域名解析服务器都有密码本
①正向解析记录:域名====>IP
A记录:域名===>IP
Cname:别名,不能直接解析你要的域名,给了你另一个,让你去解析另一个(多个域名同一个IP解析)
②反向解析记录:IP=====>域名
PTR反向解析
DNS的几种查询方式:
递归查询:
①系统先去自己的缓存查找,有没有要访问的IP
②缓存里没找到,再找本地映射文件hosts
③如没有就去找本地的LDNS,LDNS先查看自己的缓存记录
④如没找到,LDNS再去找自己的映射文件
⑤接着LDNS去找域名记录本,如果还LDNS找不到域名解析信息,就会请求外援进行迭代查询
迭代查询:
①LDNS会从DNS系统的(.)服务器请求域名的解析,点服务器就把(.com)对应的DNS服务器地址发给了LDNS
②LDNS会从DNS系统的(.com)服务器请求域名的解析,(.com)服务器会把(baidu.com)对应的DNS服务器地址返回给LDNS
③LDNS再去baidu.com服务器请求域名的解析,(baidu.com)服务器会反馈www.baidu.com对应的IP解析记录
DNS的端口号:53
 
一、配置DNS缓存域名服务器
DNS master端(IP:192.168.204.129)
①先装两个支持包
[root@zhangmingjuan ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   18G  1.3G   16G   8% /
tmpfs                         491M     0  491M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/sr0                      4.2G  4.2G     0 100% /media/cdrom
[root@zhangmingjuan ~]# rpm -qa | grep -w bind
[root@zhangmingjuan ~]# yum -y install bind bind-chroot bind-utils
 
BIND是DNS协议的一种实现。BIND包含了一个DNS Server(服务名叫named),用来解析主机名到ip地址;一个解析库;一些辅助工具,还有一个安全目录工具,分别属于下面几个包:
bind:包里主要包含:
    named DNS服务
    named-checkconf(named.conf文件检查工具)
    named-checkzone(zone文件检车工具)
    rndc(本地和远程dns控制工具)
bind-libs:named DNS服务的库
bind-utils:包含一系列辅助工具来测试
    host
    dig
    nslookup
    nsupdate
bind-chroot:切根程序,用来切换默认目录到另外一个深层的安全的目录/var/named/chroot,类似于前面光盘进入救援模式的那种情况。
②主配置文件/etc/named.conf
[root@zhangmingjuan ~]# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.204.129; };      ##将里面的IP改成本机的
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";           ##目录
        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     { any; };             ##允许哪些地址的客户端提出查询
        recursion yes;               ##是否进行迭代查询
 
        dnssec-enable yes;       ##用来设置是否启用DNSSEC支持,DNS安全扩展(DNSSEC)提供了验证DNS数据由效性的系统
        dnssec-validation no;        ##指定在DNS查询过程中是否加密,为了加快效率这里设置为no
!!初次之外其他配置不修改,让他区中点服务器去
还有可以指定让他去找另一个DNS服务器:forwarders    { 202.105.0.20; };
工作中往往两个都有,先找指定的去,解析不到就去找点服务器去
 
③将域名解析服务打开:
[root@zhangmingjuan ~]# named-checkconf /etc/named.conf          ##检查一下配置文件有无错误
[root@zhangmingjuan ~]# /etc/init.d/named start                ##将域名解析服务打开
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]
[root@zhangmingjuan ~]# netstat -antup | grep 53
tcp        0      0 192.168.204.129:53          0.0.0.0:*                   LISTEN      2229/named          
tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      2229/named          
tcp        0      0 192.168.204.129:54582       156.154.126.65:53           ESTABLISHED 2229/named          
tcp        0      0 192.168.204.129:46423       192.112.36.4:53             FIN_WAIT2   -                   
tcp        0      0 192.168.204.129:36399       156.154.126.65:53           TIME_WAIT   -                   
tcp        0      0 ::1:53                      :::*                        LISTEN      2229/named          
tcp        0      0 ::1:953                     :::*                        LISTEN      2229/named          
udp        0      0 192.168.204.129:35504       128.8.10.90:53              ESTABLISHED 2229/named          
udp        0      0 192.168.204.129:53          0.0.0.0:*                               2229/named          
udp        0      0 ::1:53                      :::*                                    2229/named          
 
DNSslave端(192.168.204.130)
④解析
[root@zhangmingjuan ~]# cat /etc/resolv.conf             ##只需要修改这个文件,次改nameserver LDNS立马变,但是重启网卡被覆盖
; generated by /sbin/dhclient-script
search juanne
nameserver 192.168.204.2
!!!修改后
[root@zhangmingjuan ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search juanne
nameserver 192.168.204.129
!!!测试
[root@zhangmingjuan ~]# ping www.baidu.com
PING www.a.shifen.com (111.13.100.91) 56(84) bytes of data.
64 bytes from 111.13.100.91: icmp_seq=1 ttl=128 time=64.0 ms
64 bytes from 111.13.100.91: icmp_seq=2 ttl=128 time=17.9 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2581ms
rtt min/avg/max/mdev = 17.983/41.023/64.063/23.040 ms
[root@zhangmingjuan ~]# nslookup www.baidu.com
Server:        192.168.204.129
Address:    192.168.204.129#53
 
Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 111.13.100.92
Name:    www.a.shifen.com
Address: 111.13.100.91
 
 
可能用到的:
 
[root@zhangmingjuan ~]# yum  provides  */nslookup            ###查看命令是由哪个软件包提供
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* c6-media:
32:bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64 : Utilities for querying DNS
                                            : name servers
Repo        : c6-media
Matched from:
Filename    : /usr/bin/nslookup
 
 
 
zsh-4.3.10-7.el6.x86_64 : A powerful interactive shell
Repo        : c6-media
Matched from:
Filename    : /usr/share/zsh/4.3.10/functions/nslookup
[root@zhangmingjuan ~]# yum -y install bind-utils
[root@zhangmingjuan ~]# which nslookup
/usr/bin/nslookup
!!!关于nslookup命令
nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
查询一个域名的A记录:nslookup domain [dns-server]
直接查询返回的是A记录,我们可以指定参数,查询其他记录,比如AAAA、MX等:nslookup -qt=type domain [dns-server]
其中,type可以是以下这些类型:
 
A 地址记录
AAAA 地址记录
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME 别名记录
HINFO 硬件配置记录,包括CPU、操作系统信息
ISDN 域名对应的ISDN号码
MB 存放指定邮箱的服务器
MG 邮件组记录
MINFO 邮件组和邮箱的信息记录
MR 改名的邮箱记录
MX 邮件服务器记录
NS 名字服务器记录
PTR 反向记录
RP 负责人记录
RT 路由穿透记录
SRV TCP服务器信息记录
TXT 域名对应的文本信息
X25 域名对应的X.25地址记录
 
二、配置主域名解析服务器(解析yunjisuan.com这个域名)
DNS master配置
①先装支持包
[root@zhangmingjuan ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   18G  1.3G   16G   8% /
tmpfs                         491M     0  491M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/sr0                      4.2G  4.2G     0 100% /media/cdrom
[root@zhangmingjuan ~]# rpm -qa | grep -w bind
[root@zhangmingjuan ~]# yum -y install bind bind-chroot bind-utils
②修改配置文件
[root@zhangmingjuan ~]# vim /etc/named.conf         //注释,不起作用
options {
        listen-on port 53 { 192.168.204.130; };     ##改成自己的IP 
//      listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        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     { any; };      ##允许哪些地址的客户端提出查询
        recursion yes;         ##是否进行迭代查询
 
//      dnssec-enable yes;
 
options {
        listen-on port 53 { 192.168.204.130; };        ##改成自己的IP
//      listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        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     { any; };           ##允许哪些地址的客户端提出查询
        forwarders      { 202.106.0.20; };       ##指定一个DNS服务器让他去找
        recursion yes;             ##是否进行迭代查询
 
//      dnssec-enable yes;
//      dnssec-validation yes;
//      dnssec-lookaside auto;
 
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
 
        managed-keys-directory "/var/named/dynamic";
};
 
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
 
!!!自己维护的区域(正向解析)
zone "yunjisuan.com" IN {           ##要维护的域名
        type master;               ##类型master
        file "yunjisuan.com.zone";          ##记录本的位置
};
zone "." IN {
        type hint;
        file "named.ca";
};
 
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
 
 
③建立正向区域数据文件(解析的密码本
[root@zhangmingjuan ~]# cd /var/named/       ##放解析记录本的位置
[root@zhangmingjuan named]# ls
chroot  dynamic   named.empty      named.loopback
data    named.ca  named.localhost  slaves
[root@zhangmingjuan named]# cp -p named.empty yunjisuan.com.zone        ##复制一个模板文件,连同各种属性一并复制,尤其注意权限问题
[root@zhangmingjuan named]# vim yunjisuan.com.zone
 
其中,
第一行,3H:为时间周期,生存周期
第二行,要解析的域名(以点结尾) 管理员的邮箱(管理员账号.管理员地址nsl当前的.服务主机名)
第三行,一般写当前的日期(实际上是从域名服务器用来和主域名服务器做比对的,如果主域名服务器的数字比从域名服务器的数字大,从就找主下载记录本,每次主更新,从也跟着更新)
第八行,NS代表DNS解析服务器的位置
CNAME别名记录,说明bbs和news是一个IP
表示所有与yunjisuan.com有关的域名解析与IP对应关系
④测试域名解析文件有没有问题
[root@zhangmingjuan named]# named-checkzone yunjisuan.comyunjisuan.com.zone
zone yunjisuan.com/IN: loaded serial 20181205
OK
⑤启动named服务器或重载配置
[root@zhangmingjuan named]# /etc/init.d/named start
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]
DNS slave端
⑥修改配置
[root@zhangmingjuan ~]# vim /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.204.130       ##修改
⑦测试
[root@zhangmingjuan ~]# ping www.yunjisuan.com
PING www.yunjisuan.com (192.168.204.130) 56(84) bytes of data.
64 bytes from www.yunjisuan.com (192.168.204.130): icmp_seq=1 ttl=64 time=0.439 ms
64 bytes from www.yunjisuan.com (192.168.204.130): icmp_seq=2 ttl=64 time=0.401 ms
64 bytes from www.yunjisuan.com (192.168.204.130): icmp_seq=3 ttl=64 time=0.484 ms
^C
--- www.yunjisuan.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2334ms
rtt min/avg/max/mdev = 0.401/0.441/0.484/0.038 ms
 
[root@zhangmingjuan ~]# nslookup www.yunjisuan.com
Server:        192.168.204.130
Address:    192.168.204.130#53
 
Name:    www.yunjisuan.com
Address: 192.168.204.2
 
[root@zhangmingjuan ~]# nslookup ns1.yunjisuan.com
Server:        192.168.204.130
Address:    192.168.204.130#53
 
Name:    ns1.yunjisuan.com
Address: 192.168.204.130
变1:
在DNS master端配置文件中正向解析后加入反向解析内容
[root@zhangmingjuan ~]# vim /etc/named.conf
zone "204.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.204.arpa";
};
[root@zhangmingjuan ~]# named-checkconf /etc/named.conf       ##修改完后检测有无问题
[root@zhangmingjuan log]# cd /var/named/
[root@zhangmingjuan named]# ls
chroot  dynamic   named.empty      named.loopback  yunjisuan.com.zone
data    named.ca  named.localhost  slaves
[root@zhangmingjuan named]# cp -p named.empty 192.168.204.arpa
[root@zhangmingjuan named]# vim 192.168.204.arpa
测试
[root@zhangmingjuan ~]# nslookup 192.168.204.79
Server:        192.168.204.130
Address:    192.168.204.130#53
 
79.204.168.192.in-addr.arpa    name = nsl.yunjisuan.com.
 
[root@zhangmingjuan ~]# nslookup 192.168.204.130
Server:        192.168.204.130
Address:    192.168.204.130#53
 
130.204.168.192.in-addr.arpa    name = www.yunjisuan.com.

3. 主从服务器

在DNS域名解析服务中,从服务器可以从主服务器中获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。

主服务器

  1. 修改主配置文件
    vim /etc/named.conf
  1. 修改区域配置文件

 

vim /etc/named.rfc1912.zones
 
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "test.com" IN {
type master; //类型为主服务器
file "test.com.zone";
allow-transfer { 192.168.100.6; }; //允许从服务器更新区域信息的请求,此处IP为从服务器地址
};
zone "100.168.192.in-addr.arpa" IN {
type master; //类型为主服务器
file "test.com.arpa";
allow-transfer { 192.168.100.6; }; //允许从服务器更新区域信息的请求,此处IP为从服务器地址
};
  1. 重启服务使其生效
service named restart

从服务器

  1. 修改主配置文件
    vim /etc/named.conf
  1. 修改区域配置文件

 

vim /etc/named.rfc1912.zones
 
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "test.com" IN {
type slave; //类型为从服务器
masters {192.168.100.5;}; //主服务器地址
file "slaves/test.com.zone"; //同步数据配置文件后保存到slaves目录下
};
zone "100.168.192.in-addr.arpa" IN {
type slave; //类型为从服务器
masters {192.168.100.5;}; //主服务器地址
file "slaves/test.com.arpa"; //同步数据配置文件后保存到slaves目录下
};
  1. 重启服务使其生效
service named restart

检验解析结果

 
 
posted @ 2018-12-06 00:30  juanne1106  阅读(564)  评论(0编辑  收藏  举报