dns

2020-04-25  本文已影响0人  路破格

1 DNS工作原理概述

域名系统(DNS)是一种包含 DNS 主机名到 IP 地址映射的分布式、分层式数据库。

DNS解析程序的查询流程 :

image.png

2 安装配置DNS服务端(BIND)

BIND是加州大学伯克利分校在Unix系统上完成的名称服务,全称是Berkeley Internet Name Domain,是目前互联网上使用最为广泛的DNS服务软件。

2.1 安装BIND主程序

yum install bind-*

2.2 修改BIND主配置文件

vim /etc/named.conf


options {
 // 监听的IP和端口
 listen-on port 53 { any; };
 #listen-on-v6 port 53 { ::1; };
 // dns的根目录
 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";
 // 配置转发器,当无法从本地区域解析后转发的地址
 forwarders {
 114.114.114.114;
 8.8.8.8;
 };
 // 配置允许哪些客户端查询解析
 allow-query { any; };
 // 配置是否启用dns完整性验证功能,这样服务器只能与开启了dnssec功能的转发器发送请求
 dnssec-enable no;
 dnssec-validation no;
};
// 配置记录日志类型和路径
logging {
 channel default_debug {
 file "data/named_debug.log";
 severity dynamic;
 };
 channel update_log {
 file "data/named_update.log";
 severity info;
 };
 category update {
 update_log;
 };
 channel general_log {
 file "data/named.log";
 severity info;
 };
 category general {
 general_log;
 };
 channel query_log {
 file "data/named_query.log";
 print-time yes;
 severity dynamic;
 };
 category queries {
 query_log;
 };
};
// 加载配置文件
include "/etc/named.rfc1912.zones";
include "/etc/ops.cn.conf";
include "/etc/arpa.conf";
include "/etc/named.root.key";

2.3 DNS区域文件配置

vim /var/named/chroot/etc/ops.cn.conf


zone "ops.cn." IN {
 // 区域类型
 type master;
 // 区域解析文件位置
 file "/etc/zones/ops.cn.zone";
 // 允许哪些客户端可以修改区域解析文件
 allow-update { none; };
};

区域类型(type):

master:主服务器,拥有区域数据文件,并对此区域提供管理数据;

slave:从服务器,拥有主服务器区域数据文件的副本,从主服务器同步所有区域数据。

stub:与slave类似,只复制主服务器上的NS记录。

forward:forward zone是每个域的配置转发的主要部分,它会在域名称给定的域中查询。

hint:根域名服务器的初始化组指定使用的线索区域,服务启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表。

2.4 DNS区域解析文件配置

mkdir /var/named/chroot/etc/zones/

正向区域

vim /var/named/chroot/etc/zones/ops.cn.zone

$ORIGIN @
$TTL 86400
@ IN SOA ops.cn root (
 42 ; serial (d. adams)
 3H ; refresh
 15M ; retry
 1W ;expires
 1D ) ; minimum
@ IN NS dns.ops.cn.
dns  IN A 10.0.1.1
root  IN A 10.0.1.3

反向区域

vim /var/named/chroot/etc/zones/ops.cn.arpa.zone

$TTL 3600
@ IN SOA ops.cn. root (
 55   ;serial
 8M ;refresh
 14400 ;retry
 360000 ;expire
 1D ;minimum
)
@ IN NS ops.cn.
187 IN PTR ns1.ops.cn.
1 IN PTR puppet-01.ops.cn.
2 IN PTR fastdfs-tracker-01.ops.cn.

**ORIGIN @**:该语句放在文件头部说明所有解析记录都属于同一个域,@表示下面配置的都是ops.cn域,如果ORIGIN .则下面的记录都必须使用FQDN。

$TTL 3600:全局选项,将覆盖minimum里面设置的值,TTL用于标识域名在slave或缓存DNS服务器中保存在本地高速缓存区的时间,这样slave或缓存服务器在TTL还没过期前不需要再将请求转发到主DNS服务器上。

@:为named.conf里面zone配置的SOA区域名称,本例为ops.cn

字段说明:

serial:这个区信息文件的版本号,它是一个整数。辅助域名服务器用它来确定这个区信息的文件是何时改变的。每次改变信息文件时都应该把这个数加1

refresh:辅助域名服务器在试图检查主域名服务器的SOA记录之前应等待的秒数。SOA记录不经常改变,因此可以把这个值设置为一天。

retry:辅助服务器在主服务器不能使用时,重试对主服务器的请求应等待的秒数。

expire:这是辅助服务器在不能与主服务器取得联系的情况下丢掉区信息之前应等待的秒数,一般应该设置成30天左右

minimum:当没有指定ttl资源记录时默认的ttl值。如果网络没有太大的变化,那么这个数可以设得很大。可以在资源记录中指定一个ttl值来代替它。

zone配置文件中的参数的默认单位是秒,可以修改为1D,表示1天,其余如:W(星期),M(分),H(时),D(天)。

2.4.1 资源记录类型

记录类型 描述
主机(A) 解析主机名称到 IP 地址
反向指针(PTR) 解析 IP 地址到主机名称
起始授权机构(SOA) 区域文件的第一条记录
服务(SRV) 解析提供服务的服务器名称
名称服务器(NS) 标识每个区域的 DNS 服务器
邮件交换器(MX) 邮件服务器
别名(CNAME) 从主机名称解析到主机名称
HINFO 描述主机硬件和操作系统信息
TXT 文本描述信息

2.4.2 特殊主机记录类型

顶级域名:

@ IN A 1.1.1.1

泛域名:

2.5 启动BIND并加入开机自启动

/etc/init.d/named start

chkconfig named on

2.6 named.ca最新配置文件下载地址

ftp://ftp.internic.net,domain目录下的named.root

3 DNS主从复制配置

3.1 主DNS区域文件配置

vim /var/named/chroot/etc/ops.cn.conf

zone "ops.cn." IN {
 // 区域类型
 type master;
 // 区域解析文件位置
 file "/etc/zones/ops.cn.zone";
 // 允许哪些客户端可以修改区域解析文件
 allow-update { none; };
 // 允许复制区域解析文件,从DNS使用
  allow-transfer { 10.0.1.214; };
 // 当区域解析文件更新时主动通知从DNS
  notify yes;
 // 配置通知的DNS服务器IP地址
   also-notify{ 10.0.1.214; };
};

3.2 从DNS区域文件配置

mkdir /var/named/chroot/etc/slave/

zone "ops.cn." IN {
 type slave; #区域类型
 file "/etc/slave/ops.cn.zone"; #从主DNS服务器下载的区域解析文件存放位置
 masters {1.1.1.1;}; #主DNS服务器IP地址
};

3.3 添加一条主机记录

在ops.cn.zone文件中添加一条A记录,并将serial的值加1或变大,如下:

43 ; serial (d. adams)
test IN A 10.0.11.1

DNS服务器重新载入配置

/etc/init.d/named reload
nslookup test.ops.cn 1.1.1.1

Server: 1.1.1.1
Address: 1.1.1.1#53
Name: test.ops.cn
Address: 10.0.11.1

3.4 验证从DNS是否收到通知

tail -f /var/log/message

Sep 24 09:05:38 localhost named[9476]: client 10.0.1.1#19342: received notify for zone 'ops.cn'

Sep 24 09:05:38 localhost named[9476]: transfer of 'ops.cn/IN' from 10.0.1.1#53: connected using 10.0.1.214#59201

Sep 24 09:05:38 localhost named[9476]: transfer of 'ops.cn/IN' from 10.0.1.1#53: Transfer completed: 1 messages, 21 records, 540 bytes, 0.001 secs (540000 bytes/sec)

4 BIND日志级别

示例:

logging {
 channel query_log {
 file "log/named_query.log";
 print-time yes;
 print-severity yes;
 print-category yes;
 severity info;
 };
 category queries {
 query_log;
 };
 channel default_log {
 file "log/named_error.log";
 print-time yes;
 print-severity yes;
 print-category yes;
 severity error;
 };
 category default {
 default_log;
 };
};

默认情况下,BIND把日志消息写到/var/log/messages文件中,而这些日志消息是非常少的,主要就是启动,关闭的日志记录和一些严重错误的消息,

在日志中主要有两个概念:通道(channel)和类别(category)。通道指定了应该向哪里发送日志数据:是发送给syslog,还是写在一个文件里,或是发送给named的标准错误输出,还是发送到位存储桶(bit bucket)。类别则规定了哪些数据需要记录。下面我们主要介绍一下文件通道和类别。

在定义通道的语句中,severity是指定记录消息的级别。在bind中主要有以下几个级别(按照严重性递减的顺序):

category语句是指定哪一种类别的数据使用哪个或者哪几个已经定义了的通道。在bind9中类别有:

5 DNS客户端配置

DNS客户端的DNS查询服务由/etc/host.conf/etc/resolv.conf/etc/hosts三个配置文件组成。

5.1 /etc/host.conf

cat /etc/host.conf

# 定义解析器先查询文件/etc/hosts,如果没有则发送请求到 DNS,默认值为hosts,bind
order hosts,bind 
# 允许主机拥有多个ip地址
multi on 
# 禁止ip地址欺骗
nospoof on 

5.2 /etc/resolv.conf

cat /etc/resolv.conf

search test.com
nameserver 1.1.1.1
nameserver 114.114.114.114

domain:声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS 查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( . )前面的内容。

search****:如果它有多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search 声明的域中分别查找。domain 和search 不能共存;如果同时存在,后面出现的将会被使用。

6 dig管理工具

7 nsupdate管理工具

更新脚本:

nsupdate << EOF
server 127.0.0.1
zone 123ths.com
update delete cachet1.123ths.com
update add cachet.123ths.com 600 A 1.1.1.1
send
quit
EOF

执行更新后named服务会暂时将更新写入域名配置文件加上.jnl的临时文件里面,可以通过以下2个命令将变更写入到文件中

/usr/sbin/rndc freeze

/usr/sbin/rndc thaw

8 rndc

重新生成key

rndc-confgen -r /dev/urandom -a

上一篇 下一篇

猜你喜欢

热点阅读