DNS服务器的搭建实战案例教程

一、DNS服务器简介

1.1 为什么需要DNS系统?

www.baidu.com 与 119.75.217.56,哪个更好记?

互联网中的114查号台/导航员

1.2 DNS服务器的功能

正向解析:根据注册的域名查找其对应的IP地址

反向解析:根据IP地址查找对应的注册域名,不常用

1.3 DNS服务器分类

根域名服务器、一级DNS服务器、二级DNS服务器、三级DNS服务器

域名系统: 所有的域名都必须要以点作为结尾,树型结构: www.qq.com ,www.qq.com.

根域名 :            .

一级域名:   .cn        .us     .tw     .hk     .jp      .kr    ……….

二级域名:     .com.cn    .org.cn   .net.cn ………

三级域名:   .haha.com.cn    .xixi.com.cn    .nb.com.cn  …..

FQDN(完全合格的域名):站点名+注册的域名

例如:mail.qq.com      dnf.qq.com     lol.qq.com

二、BIND(Berkeley Internet Name Daemon)

2.1 什么是BIND?

——伯克利 Internet 域名服务

——官方站点:https://www.isc.org/

2.2 BIND服务器端程序

  • 主要执行程序:/usr/sbin/named

  • 系统服务:named   

  • DNS协议默认端口:TCP/UDP 53     

  • 运行时的虚拟根环境:/var/named/chroot/

2.3 BIND服务配置文件

/etc/named.conf:主配置文件,控制 BIND 服务的全局设置。

该文件用于配置 DNS 服务器的行为,如区域(zones)、转发器(forwarders)、ACL(访问控制列表)等。

/etc/named.rfc1912.zones - 区域配置文件,控制具体区域。可在该配置设置正反向解析配置。

/var/named/named.ca  - 根区域文件

/var/named/named.localhost - 正向解析区域数据文件,存储区域信息。

/var/named/named.loopback - 反向解析区域数据文件,存储区域信息。

三、环境准备

3.1 准备两台虚拟机

test1:10.100.10.175(DNS服务器)

test2:10.100.10.176(测试服务器或者辅助服务器)

3.2 关闭selinux

[root@test1 ~]# vim /etc/selinux/config

SELINUX=disabled

3.3  关闭防火墙

[root@test1 ~]# systemctl stop firewalld

[root@test1 ~]# systemctl disable firewalld

四、搭建DNS服务器

4.1 test1下载安装软件包

[root@test1 ~]# yum  -y  install   bind    bind-chroot

# bind(主程序)

# bind-chroot(提供牢笼政策)

4.2 主配置文件修改

[root@test1 ~]#  cp -p /etc/named.conf    /root    #备份数据

[root@test1 ~]#  vim   /etc/named.conf

options {

     listen-on port 53 { 10.100.10.175; }; #修改:监听53端口,指定本地IP,也可用any表示所有IP。
     directory     "/var/named";     #定义区域数据文件存放路径
     allow-query     { any; };       #允许使用本DNS服务的网段

};

zone "." IN {        # 正向解析“."根区域
    type hint;       # 类型为根区域(索引)
    file "named.ca"; # 区域数据文件为named.ca
};
# named.ca文件记录了13台根域服务器的域名和IP地址等信息

 演示环境图示

五、正、反向解析配置

 5.1 正、反向解析配置文件修改

编辑区域配置文件 /etc/named.rfc1912.zones,文件里有模版,可复制粘贴后修改,添加正向解析区域。

[root@test1 ~]# vim /etc/named.rfc1912.zones
#正向解析配置
zone "mywangzhanxx.com" IN {       #正向解析"mywangzhanxx.com"区域
        type master;       #声明该区域为主区域
        file "/var/named/mywangzhanxx.com.zone";  #正向解析区域数据文件的路径
        allow-update { none; }; #不允许自动更新区域数据
};

#反向解析配置
提示:解析ip要反写,如ip为192.168.10,2,下面解析书写格式为10.168.192.in-addr.arpa
zone "10.100.10.in-addr.arpa" IN {    #正向解析"10.100.10"区域 
        type master;       #声明该区域为主区域
        file "/var/named/10.100.10.in-addr.arpa.zone";   #反向解析区域数据文件的路径
};

 演示环境图示 

5.2 创建正、反向解析区域数据文件

 保证named用户对区域库文件有读取权限,所有的域名都要以点作为结尾,如果没有以点作为结尾,那么默认补全本地库文件负责的域名。

5.2.1 创建正向解析区域数据文件
[root@test1 ~]# cd  /var/named/

[root@test1 named]# cp  -p named.localhost mywangzhanxx.com.zone #保持权限不变

[root@test1 named]# ll mywangzhanxx.com.zone  #查看权限
-rw-r----- 1 root named 152 10月 18 16:05 mywangzhanxx.com.zone

[root@test1 named]# vim  mywangzhanxx.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@                  IN   NS     www.mywangzhanxx.com.
@                  IN   NS     ns1.mywangzhanxx.com.
@                  IN   NS     mail.mywangzhanxx.com.
www                IN   A      10.100.10.175
ns1                IN   A      10.100.10.176
mail               IN   A      10.100.10.177
*                  IN   A      10.100.10.254

 演示环境图示

5.2.2 创建反向解析区域数据文件
[root@test1 named]# cp  -p named.lookback 10.100.10.in-addr.arpa.zone #保持权限不变


[root@test1 named]# vim  10.100.10.in-addr.arpa.zone
$TTL 1D
@       IN SOA    @      rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      IN         NS      www.mywangzhanxx.com.
@      IN         NS      ns1.mywangzhanxx.com.
@      IN         NS      mail.mywangzhanxx.com.
175    IN         PTR     www.mywangzhanxx.com.
176    IN         PTR     ns1.mywangzhanxx.com.
177    IN         PTR     mail.mywangzhanxx.com.

演示环境图示

 [root@test1 named]# systemctl start named    #启动服务
[root@test1 named]# systemctl enable named  #开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

 5.3 对配置文件进行语法检查

◆修改完区域数据文件以后,可以执行named-checkconf命令对该文件进行语法检查

◆若zone文件中没有语法错误,系统将给出“OK”的提示信息

named-checkconf工具基本格式

named-checkconf -z [主配置文件]

[root@test1 named]# named-checkconf -z /etc/named.conf 
zone mywangzhanxx.com/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.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: loaded serial 0
zone 10.100.10.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0

◆named-checkzone工具基本格式

◆named-checkzone <域名><区域数据文件> 

[root@test1 named]# named-checkzone mywangzanxx.com mywangzhanxx.com.zone 
zone mywangzanxx.com/IN: loaded serial 0
OK

#检查反向区域数据文件

[root@test1 named]# named-checkzone mywangzanxx.com 10.100.10.in-addr.arpa.zone 
zone mywangzanxx.com/IN: loaded serial 0
OK

5.4 区域数据文件说明

5.4.1 模板内容说明
$TTL 1D  # 设置生存周期时间,为1天,$表示宏定义
@       IN SOA  @ rname.invalid. (
# @ :表示zone域,现在表示域名,如baidu.com
# IN SOA : 授权信息开始
# rname.invalid. : 域名管理员的邮箱(不能使用@,使用点替代邮件分隔符@)
                                     0     ; serial  # 序列号,10位以内的整数
                                     1D      ; refresh # 更新频率为1天
                                     1H      ; retry   # 失败重试时间为1小时
                                     1W      ; expire  # 失效时间1周
                                     3H )    ; minimum # 缓存时间为3小时
		IN	NS	ns1.域名.
ns1		IN	A	域名解析服务器IP地址
www		IN	A   域名解析服务器IP地址
mail	IN	A   域名解析服务器IP地址
*       IN  A   域名解析服务器IP地址

# A:表示IPv4地址
# AAAA表示IPv6地址
# * 泛域名解析
 5.4.2 域名解析说明

◆A记录:A 代表 Address,用来指定域名对应的 IP 地址,如将www.mywangzhanxx.com 指定到 10.100.10.175,将 ns1.mywangzhanxx.com 指定到 10.100.10.176

◆MX记录:Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的 Mail Server,如 baidu.com 域名的 A 记录 IP 地址是 39.156.66.xxx,如果将 MX 记录设置为 39.156.66.xxx,即 xxx@baidu.com 的邮件路由,DNS 会将邮件发送到  39.156.66.xxx所在的服务器,而正常通过 Web 请求的话仍然解析到 A 记录的 IP 地址

◆NS记录:为某个域名指定 DNS 解析服务器,也就是这个域名由指定的 IP 地址的 DNS 服务器取解析

●cname 记录:Canonical Name,即别名解析。所谓别名解析就是可以为一个域名设置一个或者多个别名,如将 aaa.com 解析到 bbb.net、将 ccc.com 也解析到 bbb.net,其中 bbb.net 分别是 aaa.com 和 ccc.com 的别名

●TXT 记录:为某个主机名或域名设置说明,如可以为 ddd.net 设置 TXT 记录为 “这是 XXX 的博客” 这样的说明

 5.5 test2测试服务器域名解析测试

在test2测试服务器的/etc/resolv.conf配置文件中添加主DNS服务器地址

[root@test2 ~]# encho   "nameserver   10.100.10.175"  >  /etc/resolv.conf

[root@test2 ~]# cat /etc/resolv.conf
nameserver 10.100.10.175

#正向解析测试
[root@test2 ~]# nslookup 
> www.mywangzhanxx.com
Server:		10.100.10.175
Address:	10.100.10.175#53

Name:	www.mywangzhanxx.com
Address: 10.100.10.175
> ns1.mywangzhanxx.com
Server:		10.100.10.175
Address:	10.100.10.175#53

Name:	ns1.mywangzhanxx.com
Address: 10.100.10.176
> mail.mywangzhanxx.com
Server:		10.100.10.175
Address:	10.100.10.175#53

Name:	mail.mywangzhanxx.com
Address: 10.100.10.177

#反向解析测试
[root@test2 ~]# nslookup 
> 10.100.10.175
175.10.100.10.in-addr.arpa	name = www.mywangzhanxx.com.
> 10.100.10.176
176.10.100.10.in-addr.arpa	name = ns1.mywangzhanxx.com.
> 10.100.10.177
177.10.100.10.in-addr.arpa	name = mail.mywangzhanxx.com.

#test1关闭DNS服务测试 (解析失败)
[root@test1 ~]# systemctl stop named
[root@test2 ~]# nslookup 
> www.mywangzhanxx.com
;; connection timed out; no servers could be reached
> 10.100.10.176
;; connection timed out; no servers could be reached

六、DNS主从架构及数据同步

6.1 搭建主从架构

 DNS划分若干区域进行管理,每个区域由一个或多个域名服务器负责解析。对于存在多个域名服务器的区域,必须选择一台主域名服务器(master),保存并管理整个区域的信息,其他服务器称为辅助(从)域名服务器(slave)。

        管理区域时,使用辅助域名服务器有如下几点好处。    

        (1)辅助(从)DNS服务器提供区域冗余,能够在该区域的主服务器停止响应时为客户端解析该区域的DNS名称。     

        (2)创建辅助(从)DNS服务器可以减少DNS网络通信量。采用分布式结构,在低速广域网链路中添加DNS服务器能有效地管理和减少网络通信量。    

        (3)辅助服(从)务器可以用于减少区域的主服务器的负载

6.6.1 搭建环境

test1:10.100.10.175(主服务器,引用以上)

tets2:10.100.10.176(辅助服务器)

测试机:Windows客户机

6.6.2 配置文件主要修改部分
/etc/named.rfc1912.zones   (主服务器)
allow-transfer { 域名辅助服务器地址}

/etc/named.rfc1912.zones   (辅助服务器)
masters {主域名服务器地址}
6.6.3 搭建辅助DNS服务器

1)test2辅助服务器下载安装bind安装包

[root@test2 ~]# yum -y install bind bind-chroot

2)test2主配置文件修改

[root@test2 ~]# vim /etc/named.conf		
    ...省略内容
options {
        listen-on port 53 { 10.100.10.176; };	'修改为本机ip'
 #      listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
  ...省略
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };	'修改成any'
...省略内容

6.6.4 修改主从域名解析配置文件
#test1域名解析配置文件修改(主)
[root@test1 ~]# vim /etc/named.rfc1912.zones 
    ...省略内容  '添加以下内容'
zone "mywangzhanxx.com" IN {
        type master;	'设置类型为主服务器'
        file "mywangzhanxx.com.zone";	'生成区域配置文件'
        allow-transfer { 10.100.10.176; };	'设置辅助服务器IP地址'
};



#test2域名解析配置文件修改(从)
[root@test2 ~]# vim /etc/named.rfc1912.zones 
...省略内容		'添加以下内容'
zone "yourwangzhanxx.com" IN {		'设置域名'
        type slave;		'类型设置成域名辅助服务器'
        file "slaves/mywangzhanxx.com.zone";	'指定文件'
        masters {10.100.10.175; };	'设置主域名服务器的IP地址'
};
...省略内容

◆启动DNS主从服务

[root@test1 ~]# systemctl restart named

[root@test2 ~]# systemctl restart named

'# 此时slave服务器同步生成区域数据文件mywangzhanxx.com.zone'

[root@test2 ~]# ll /var/named/slaves/mywangzhanxx.com.zone 
-rw-r--r-- 1 named named 419 10月 24 11:32 /var/named/slaves/mywangzhanxx.com.zone

6.2 用Windows客户机测试

6.2.1Windows客户机配置主从DNS

6.2.2 域名解析测试

同时按Windows + R打开命令输入框,输入cmd进入命令窗口

1、当主从同时开启是,主服务器解析
C:\Users\Administrator>nslookup www.mywangzhanxx.com
服务器:  www.mywangzhanxx.com
Address:  10.100.10.175

名称:    www.mywangzhanxx.com      “解析成功”
Address:  10.100.10.

2、当停掉DNS主服务器
[root@test1 ~]# systemctl stop named

C:\Users\Administrator>nslookup www.mywangzhanxx.com
DNS request timed out.
    timeout was 2 seconds.
服务器:  UnKnown
Address:  10.100.10.175

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** 请求 UnKnown 超时           “解析失败”

3、Windows客户机将DNS辅助服务器改为首选
C:\Users\Administrator>nslookup www.mywangzhanxx.com
服务器:  UnKnown
Address:  10.100.10.176

名称:    www.mywangzhanxx.com
Address:  10.100.10.175         “解析成功”

七、配置转发服务和缓存服务

7.1 配置转发服务

按照转发类型的区别,转发服务器可以分为以下两种类型。

1)完全转发服务器

 DNS服务器配置为完全转发会将所有区域的DNS查询请求发送到其他DNS服务器。可以通过设置named.conf文件的options字段实现该功能。

[root@test1 ~]#  vim   /etc/named.conf

options {

     directory     "/var/named";     #定义区域数据文件存放路径
     recursion      yes;            #允许递归查询
     forwarders {10.100.10.175;};  #指定转发查询请求DNS服务器列表
     forward        only;           #仅执行转发操作

};

2)条件转发服务器

该服务器类型只能转发指定域的DNS查询请求,需要修改named.conf文件并添加转发区域的设置。

例如:对域mywangzhanxx.com设置转发服务10.100.10.176和10.100.10.177。

[root@test1 ~]# vim /etc/named.rfc1912.zones 
    ...省略内容  '添加以下内容'
zone "mywangzhanxx.com" IN {
        type forword;	'设置类型为转发类型'
        forwarders { 10.100.10.176; 10.100.10.177 };	'设置转发服务器列表'
};

设置转发服务器的注意事项如下: 

        1) 转发服务器的查询模式必须允许递归查询,否则无法正确完成转发。

        2)转发服务器列表如果为多个DNS服务器则会依次为尝试,直到获得查询信息为止。

        3)配置区域委派时如果使用权转发服务器,有可能会产生区域引用的错误。

搭建转发服务器需要掌握以下操作技巧: ① 转发列表配置精简。 ② 避免链接转发器。 ③ 减少转发器负荷。 ④ 避免转发器配置错误。

7.2 配置缓存服务器

 缓存服务器不需要建立独立的区域,可以直接对named.conf文件进行设置,实现缓存的功能。

[root@test1 ~]#  vim   /etc/named.conf

options {

     directory     "/var/named";     #定义区域数据文件存放路径
     datasize      300M;            #DNS服务器缓存设置为300M
     recursion      yes;            #允许递归查询
};

本期内容已完结,感谢观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值