本章构造

DIND域名服务基础

DNS系统的作用及类型

BIND的安装和配置文件

使用BIND构建域名服务器

构建缓存域名服务器

构建主、从域名服务器

DNS系统的作用


  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的域名
  • DNS系统的分布式数据结构:


DNS域名解析服务_域名服务器

DNS是什么?

DNS域名系统(Domain Name System缩写DNS, DomainName被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

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

反向解析:根据IP地址查找对应的域名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。)

DNS使用的协议及端口号DNS的默认端口为53。DNS端口分为TCP和UDP。

DNS系统类型


缓存域名服务器

也称为DNS高速缓存服务器

通过向其他域名服务器查询获得域名->IP地址记录

将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器

特定DNS区域的权威服务器,具有唯一性

负责维护该区域内所有域名->IP地址的映射记录

需要自行建立所负责区域的地址数据文件

从域名服务器

也称为辅助域名服务器,是对主域名服务器的热备份

其维护的域名->IP地址记录来源于主域名服务器

需要从主域名服务器自动同步区域地址数据库

BIND软件安装

BIND (Berkeley Internet Name Daemon)

BIND是应用最广泛的DNS服务程序

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

相关软件包

bind-9.9.4-37.el7.x86_64.rpm

bind-utils-9.9.4-37.el7.x86_64.rpm

bind-libs-9.9.4-37.el7.x86_64.rpm

bind-chroot-9.9.4-37.el7.x86_64.rpm

BIND服务

BIND服务器端程序

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

默认监听端口:53

主配置文件

/etc/named.conf

保存DNS解析记录的数据文件位于

/var/named/

BIND服务控制

systemctl [statuslstartstoplrestart] named.service

主配置文件named.conf

全局配置部分

设置DNS服务器的全局参数

包括监听地址和端口、区域数据文件存放的目录等

使用options {......};的配置段

options{

listen-on port 53 [173.16.16.1;}; 监听地址和端口

directory "/var/named"; 区域数据文件的默认存放位置

allow-query [ 192.168.1.0/24; 173.16.16.0/24; }; 允许使用本DNS服务的网段

};

主配置文件named.conf

区域配置部分

设置本服务器提供域名解析的特定DNS区域

包括域名、服务器角色、数据文件名等

使用zone “区域名” IN[.....];的配置段

zone "bdqn.com" IN { type:区域类型file:区域数据文件

type master;

file "bdqn.com.zone";

allow-transfer {173.16.16.2; };

}

zone "16.16.173.in-addr.arpa" IN{ 反向173.16.16.0/24区域"IN"关键字可省略

type master;

file "173.16.16.arpa";

区域数据配置文件

全局TTL配置项及SOA记录

$TTL (Time To Live,生存时间)

SOA (Start Of Authority,授权信息开始)

分号“;”开始的部分表示注释信息

$TTL 86400 有效解析记录的生存周期

@ IN SOA bdqn.com. admin.bdqn.com.( SOA标记、域名、 管理邮箱

2011030501 更新序列号,可以是10位以内的整数

3H 刷新时间,重新下载地址数据的间隔

15M 重试延时,下载失败后的重试间隔

1W 失效时间,超过该时间仍无法下载则放弃

1D 无效解析记录的生存周期

区域数据配置文件

正向解析记录

NS域名服务器(Name Server)记录

MX 邮件交换(Mail Exchange)记录

A地址(Address)记录,只用在正向解析区域中

CNAME 别名(Canonical Name)记录

@ IN NS ns1.bdqn.com.

IN MX10 mail.bdqn.com.

ns1 lN A 58.119.74.203

www IN A 173.16.16.1

mail IN A 173.16.16.4

ftp IN CNAME www


区域数据配置文件

反向解析记录

PTR指针(Point)记录

记录的第一列指定IP地址中的主机地址部分

1 IN PTR www.bdqn.com.

4 IN PTR mail.bdqn.com.

区域数据配置文件的特殊应用

基于域名解析的负载均衡

同一域名对应到多个IP地址

www IN A 173.16.16.173 轮询负载均衡

www IN A 173.16.16.174

www IN A 173.16.16.175

泛域名解析

找不到精确对应的A记录时,使用“*”进行匹配

  • IN A 173.16.16.173 泛域名解析


对配置文件进行语法检查

named-checkconf工具

named-checkconf [主配置文件] (-z的意思:尝试加载主配置文件中对应的区域数据库文件)

[root@localhost -] #named-checkconf -z letc/named.conf

zone bdqn.com/IN: loading from master file bdqn.com.zone failed: file not found

...... //省略部分内容I

named-checkzone工具

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

[root@localhost -]# cd /var/named/

[root@localhost named]# named-checkzone bdqn.com bdqn.com.zone

zone bdqn.com/IN: loaded serial 2011030501

OK

实验

实验环境:

主服务器: 192.168.10.20

从服务器: 192.168.10.21

配置主服务器192.168.10.20

vim /etc/named.conf

listen-on port 53() 中值为any

allow-query()中值改为any

vim /etc/named.rfc1912.zone

zone "benet.com" IN {

type master; 类型为主区域

file "benet.com. zone";

allow-transfer { 192.168.10.21; }; 设置从服务器地址

};

zone "10.168.192.in-addr.arpa" IN{

type master;

file "benet.com. zone.local";

allow-transfer{ 192.168.10.21; };

}:

配置从服务器192.168.10.21

yum install -y bind

vim /etc/named.conf

options{

listen-on port 53 ( 192.168.10.21; }; 监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有

#listen-on-v6 port 53 { ::1;} ; ipv6行如不使用可以注释掉或者删除

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 I any; }; 允许使用本DNS解析服务的网段,也可用any代表所有

}

修改从域名服务器区域配置文件,添加正、反区域配置

vim /etc/named.rfc1912. zone

zone "benet.com" IN{

type sldve; 类型为从区域

file "slaves/benet.com.zone"; 下载的区域数据文件保存到slaves/目录下

masters [ 192.168.10.20; );1 设置主服务器地址

};

zone "10.168.192.in-addr.arpa" IN {

type slave;

file "benet.com. zone.local";

masters { 192.168.10.20; };

};

主、从都重启动服务,并查看区域数据文件是否已下载成功

systemctl restart named

lsI-1 /var/named/slaves/

在客户端的域名解析配置文件中添加从DNs服务器地址

echo "nameserver 192.168.10.21" >> /etc/ resolv.conf

测试

host 192.168.10.20

nslookup 192.168.10.21

停止主服务器的服务,模拟主服务器故障

DNS分类解析

实验环境

主服务器: 192.168.10.20 网卡vmnet2 192.168.20.21

Web服务器: 192.168.10.21 网卡vmnet3 10.0.0.101

分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。

注: DNS分离解析即将内外网的相同域名解析为不同的IP地址。现实网络中一些电商网站为了让用户有更好的体验效果解。析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度

配置网关服务器搭建DNS分离解析

在网关服务器搭建DNS分离解析,使局域网主机解析www.benet.com为192.168.10.20,外网主机解析www.benet.com为10.0.0.100。

1,为网关服务器配置双网卡

在关机状态下再添加一-块网卡,重启系统

ens33 192.168.20.21

ifconfig ens37 10.0.0.1/24

ifconfig

2.安装bind软件包

yum install -y bind

3.修改主配置文件

vim /etc/named. conf

options{

flisten-on port 53 { any; }; 监听53端口, ip地址使用提供服务的本地IP,也可用any表示所有

#listen-on-v6 port 53 { ::1; }; fipv6行如不使用可以注释掉或者删除

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 I any; };. 允许使用本DNS解析服务的网段,也可用any代表所有

}

include "/etc/named. rfc1912.zones" ;

4.修改区域配置文件

vim fetc/ named.rfc1912.zones

view "lan"{ 定义内网view. view代表容器分割

match-clients {192.168.20.0/24;}; 匹配内网A网内段

zone "benet.com"IN{ 设置要解析的区域

type master;

file "benet.com . zone . lan" ; 数据配置文件

};

zone "."IN{ 可将根域配置从主配置文件剪切过来, dd+p

type hint; hint是根区域类型

file "named.ca" ;

};

view "wan" { 定义外网view

match-clients any; } ; 匹配除了内网网段以外的任意地址

zone "benet.com" IN {

type master;

file "benet.com.zone. wan";

};

};

注意:一旦启用view,所有的zone必须都在view下,所以要把系统默认的自检用的zone也放在view下或者删除

修改区域数据配置文件

cd /var/named

cp -p named.localhost benet.com.zone.lan

cp -p named.localhost benet.com.zone.wan

vim benet.com. zone.lan

$TTL 1D 有效解析记录的生存周期

@ in SOA benet.com. admin.benet.com.( "@"符号表示当前的DNS区域名

0 ;serial 更新序列号,可以是10位以内的整数

1D ; refresh 刷新时间,重新下载地址数据的间隔

1H i retry 重试延时,下载失败后的重试间隔

1W ; expire 失效时间,超过该时间仍无法下载则放弃

3H) ; minimum 无效解析记录的生存周期

NSbenet.com. 记录当前区域的DNS服务器的名称

A 192.168.80.10 记录主机IP地址

wwwIN A192.168.80.10 记录正向解析www.benet.com对应的IP

vim benet. com. zone. wan

$TTL 1D 有效解析记录的生存周期

@ in SOA benet.com. admin.benet.com. ( "@"符号表示当前的DNS区域名;

0;serial 更新序列号,可以是10位以内的整数

1D ; refresh 刷新时间,重新下载地址数据的间隔

1H ; retry 重试延时,下载失败后的重试间隔

1W ; expire 失效时间,超过该时间仍无法下载则放弃#

3H) ; minimum 无效解析记录的生存周期,

NS benet, com. 记录当前区域的DNS服务器的名称,

Α 10.0.0.1 记录主机IP地址

WWW IN A 10.0.0.100 记录正向解析www.benet.com对应的IP

启动服务

systemctl start named

在内、外网客户端的域名解析配置文件中添加DNS服务器地址

echo "nameserver 192.168.20.80" >> /etc/resolv.conf 内网客户端

echo "nameserver 10.0.0.1" >> /etc/resolv.conf 外网客户端

在内、外网客户端上测试

nslookup www.benet.com

总结:

  1. DNS 正向 反向2. DNS工作原理包含递归、选代查询原理3、王从原理4、缓存原理分离解析6、服务配置文件ی6.1 bind服务注配置文件6.2 bind服务区域配置文件6.3 bind服务区域数据配置文件n


  1. DNS 正向 反向


  1. DNS工作原理包含递归、选代查询原理


  1. 主从原理


  1. 缓存原理


  1. 分离解析


  1. 服务配置文件


bind服务注配置文件

bind服务区域配置文件

bind服务区域数据配置文件n