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

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; #允许递归查询

};

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

相关推荐

合作伙伴