1、域名服务器简介

域名解析器
host文件:hosts文件记录主机域名和ip的对应文件
NIS服务器:库存放解析记录
DNS服务器:用库存放目录,分布式解析
Centos之DNS服务器的搭建与配置_Linux
1.DNS作用
正向解析:将域名(FQDN)解析成ip
反向解析:将ip解析成域名(FQDN)

FQDN:Full Qualified Domain Name完全合格域名(完整域名)
一个域名对应一个ip
一个ip可以对应多个域名

2.DNS的工作模式
Centos之DNS服务器的搭建与配置_Linux_02
递归查询(不管是否访问成功,访问一去一回)
迭代查询(多次询问,多次返回结果)
3.域名结构
Centos之DNS服务器的搭建与配置_配置文件_03
. 根域
.com .net…顶级域名
.com.cn …二级域
wwwmail…主机名
4.根DNS
共有13台
Centos之DNS服务器的搭建与配置_配置文件_04
M在日本,暂时查不到。
5.域名服务器分类
主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->ip地址的映射记录
从域名服务器
也称为辅助域名服务器
其维护的 域名->ip地址记录 来源于主域名服务器
缓存域名服务器
可运行域名服务器软件,提供间接信息
转发域名服务器
负责所有非本地域名的本地查询
6.bind软件包

BIND
伯克利Internet域名服务
官方站点:https://www.isc.org(ftp://www.isc.org)
软件包:bind-x.x.x…rpm
服务名:named
端口号:53
主配置文件:/etc/named.conf
保存DNS解析记录的数据文件位于:/var/named

2、域名服务器安装和配置

查看默认安装根域名服务器

vi /var/named/named.ca

1.安装

yum -y install bind*

bind:DNS服务器软件包
bind-utils:DNS测试工具
bind-chroot:使bind运行在指定目录(可安装,安装后很多默认位置发生改变)
如果安装bind-chroot(我这里感觉麻烦,没安装)

cp /etc/named.conf /var/nammed/chroot/etc

Centos之DNS服务器的搭建与配置_配置文件_05
caching-nameserver:高速缓冲DNS服务器基本配置文件
配置文件详解
(1)/etc/named.conf主配置文件

vi /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; }; #监听地址和端口,如果删除,会默认在所有接口UDP 53 端口监听服务
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; }; #允许哪些网段的客户端使用DNS进行解析。若设置成any则对所有网段进行解析

(2)/etc/named.rfc1912.zones区域配置文件

zone "localhost.localdomain" IN { #zone表示区域,in跳转指针
        type master; #主DNS服务器
        file "named.localhost"; #指定正向解析数据文件位置
        allow-update { none; }; 
};
zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback"; ##指定反向解析数据文件位置
        allow-update { none; };
};

(3)数据文件
正向解析模板文件:/var/named/named.localhost

$TTL 1D
@       IN SOA  @ rname.invalid. ( #@表示当前所在域域名,配置改成具体域名。rname.invalid.管理员邮箱
                                        0       ; serial 
                                        1D      ; refresh #时间D表示天,W表示周
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @ 
        A       127.0.0.1
        AAAA    ::1

反向解析模板文件:/var/named/named.empty

$TTL 3H
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

2.关闭防火墙和selinux

iptables -F
#检查是否关闭:getenforce
setenforce 0

3.配置文件

配置ip:ifconfig eth0 192.168.1.33

(1)修改主配置文件/etc/named.conf

listen-on port 53 { 192.168.1.33; }; 
allow-query     { 192.168.1.0/24; }; #指定网段,也可以写成any所有网段

(2)修改区域文件/etc/named.rfc1912.zones
1)备份

cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak

2)修改
可删掉注释信息和无用项,只保留正向和反向

zone "qwzf.com" IN { #zone表示区域,in跳转指针
        type master; #主要区域
        file "qwzf.com.zone"; #指定解析记录数据文件位置
        allow-update { none; }; 
};
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.1.zone";
        allow-update { none; };
};

(3)修改数据文件
1)复制模板文件到指定数据文件

cp -p /var/named/named.localhost /var/named/qwzf.com.zone #正向
cp -p /var/named/named.empty /var/named/192.168.1.zone #反向
#-p保存属性

2)修改正向解析文件qwzf.com.zone

$TTL 1D
@       IN SOA  qwzf.com. rname.invalid. ( #@表示当前所在域域名,配置改成具体域名。rname.invalid.管理员邮箱
                                        0       ; serial 
                                        1D      ; refresh #时间D表示天,W表示周
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.qwzf.com.
        MX  5   mail.qwzf.com.       #设置邮件域名服务器,数字越小优先级越高
dns     A       192.168.1.33
mail    A       192.168.1.34
www     A       192.168.1.35
ftp     CNAME   www
*       A       192.168.1.100 #提供泛域名解析

3)修改反向解析文件192.168.1.zone

$TTL 3H
@       IN SOA  qwzf.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.qwzf.com.
        MX  5   mail.qwzf.com.
33      PTR     dns.qwzf.com.
34      PTR     mail.qwzf.com.
35      PTR     www.qwzf.com.
*       PTR     xxx.qwzf.com.

4.启动

service named start

3、客户端验证

添加dns服务器

vi /etc/sysconfig/network-scripts/ifcfg-eth0
#DNS1=192.168.1.33

重启网卡

service network restart

测试

nslookup #安装 nslookup, 直接安装bind-utils即可。yum -y install bind-utils

Centos之DNS服务器的搭建与配置_配置文件_06
测试成功,ok。