您的位置:首页 > 其它

DNS服务及BIND基础应用

2017-05-31 20:59 323 查看

DNS服务及BIND基础应用

DNS :Domain Name Service,一种重要的网络基础服务协议,采用C/S架构,属于应用层协议

BIND :Berkerley Internet Name Domain,ISC组织负责维护,是DNS协议的一种实现,监听于53/tcp端口,53/udp端口,named是bind程序的运行的服务进程名

DNS协议是基于两个更基础的协议,使用情况为:

使用UDP协议 :主机名称解析过程时使用

使用TCP协议 :区域传输时使用

 

本地名称解析配置文件:hosts

CentOS系统的位置:/etc/hosts

Windows系统位置 :%WINDOWS%/system32/drivers/etc/hosts

 

DNS服务器:向客户端提供域名解析服务的服务器·

DNS服务器的类型;

4.1. 主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;读写操作均可进行;

4.2从DNS服务器:从主DNS服务器或从其他的从DNS服务器那里区域传递(类似“复制”)一份解析库,只能进行读操作

4.3缓存DNS服务器:负责代理客户机的递归查询工作,并且采用迭代查询的服务器

4.4转发器:如果目标域名在本DNS服务器辖区内,直接转发

完整的DNS解析请求经过的流程:

客户端首先检查本机hosts文件中是否对目标域名已经定义,然后对客户端本地的DNS缓存内容检查,不成功后向DNS服务器发出【递归】请求,DNS服务器收到请求后,首先检查目标域名是否为自己辖区内的主机名,如果是直接返回答案,如果不是则检查本服务器自己的缓存信息,不成功则进行【迭代】搜寻。

Client –> 本机hosts文件 –> Local Cache –> DNS Server(recursion,递归) –> Server Cache –> iteration(迭代) –> 根 –> 顶级域 –> 对应的二级域 –> … –> 得出最终解析答案

DNS解析响应生效优先级:从高到低排序为:

客户端的hosts文件 –> 客户端本地的DNS缓存 –> 服务器端DNS缓存 –> 客户端委托的DNS服务器实际查询请求的结解析答案

DNS查询类型

递归查询:只发出一次请求,就可以得到最终答案,过程中要委托服务器完成整个查询过程;一般来说,客户端向DNS服务端发出的都是递归查询请求,该请求只发出一次,就可以静候服务器给出解析答案。

迭代查询:服务器查询目标域名的过程中,需要从根开始,一直到目标域,得出最终结果的过程;DNS服务器端向根服务器询问、向目标域名的对应在根下的顶级域服务器询问,向下一级服务器询问,… ,直至查询到最终精确的解析答案的过程。

区域解析库:由众多RR组成

资源记录:Resource Record,RR,DNS条目,记录类型包括:

SOA :Start Of Authority , 起始授权记录;一个区域解析库有且仅能有一个SOA记录,且必须位于解析库的第一条记录

A :internet Address , FQDN –> IPv4

AAAA :FQDN –> IPv6

PTR :PoinTeR ,指针记录, IP –> FQDN

NS :Name Server , 专用于标明当前区域的DNS服务器

CNAME :Canonical Name , 别名记录

MX :Mail eXchanger , 邮件交换器

注意:

(1) TTL可以从全局继承,TTL : Time to Live,缓存时长,此项内容可省略,如果TTL值未明确单位的话,默认单位为秒

(2) @ 可用于表示当前域名

(3) 相邻的两个资源记录的name相同时,后续的可以省略

(4) 同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮调方式响应并解析

(5) 同一个值也可能有不同的定义名字,通过多个不同的名字指向同一个值进行定义,此仅表示通过多个不同的名字可以找到同一个主机而已,无特殊含义,此种情况也可以写成CNAME格式的条目。

bind配置:

主配置文件:/etc/named.conf

或包含进来其它文件;

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

解析库文件:

/var/named/目录下;

一般名字为:ZONE_NAME.zone

注意:

(1) 一台DNS服务器可同时为多个区域提供解析;

(2) 必须要有根区域解析库文件: named.ca;

(3) 还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;

正向:named.localhost

反向:named.loopback

DNS服务配置实例

准备两台虚拟机A,B(以CentOS6为例),分别安装bind程序包,进行如下操作

1.配置主DNS服务器(A号虚拟机):

service named start;ss -tnl


2.设置服务主配置文件

vim /etc/named.conf
#修改以下内容
options {
#监听能与外部主机通信的地址;
listen-on port 53 { 172.16.254.22;127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
allow-query { any; };
recursion yes;
#学习时,建议关闭dnssec
dnssec-enable no;
dnssec-validation no;


3.检查配置文件语法错误:

named-checkconf   [/etc/named.conf]


4.修改域配置文件,包含正反解

vim /etc/named.rfc1912.zones
#增加以下内容
zone "main.cjl.io" IN {
type master;
file "main.cjl.com.zone";
};

zone "16.172.in-addr.arpa" IN {
type master;
file "16.172.zone";
};


5.配置正解的解析库文件cjl.io.zone

cd /var/named/;ls
vim cjl.io.zone
$TTL 86400
$ORIGIN cjl.io.
@               IN      SOA     ns.cjl.io.nsadmin.cjl.io.   (
20170523
4000
05      ;serial number
1H              ;refresh
5M              ;retry
1W              ;deadline
1D  )           ;neagtive TTL
IN      NS      ns1.cjl.io.
IN      NS      ns2.cjl.io.
ns1.cjl.io.     IN      A       172.16.254.22
ns2.cjl.io.     IN      A       172.16.253.30
www.cjl.io.     IN      A       172.16.254.1
web             IN      CNAME   www
bbs             IN      A       172.16.254.2


6.配置反解的解析库文件16.172.zone

$TTL 86400
$ORIGIN 16.172.in-addr.arpa.
@       IN      SOA     ns1.cjl.com.    admin.cjl.com.  (
2017052901
1H
10M
1W
1D  )
IN      NS      ns1.cjl.com.
22.254  IN      PTR     ns1.cjl.com.
30.253  IN      PTR     ns2.cjl.com.
1.254   IN      PTR     www.cjl.com.
2.254   IN      PTR     bbs.cjl.com.


注意

(1)” com “后面的 ” . “符号为必须,不可省略; 分号 ; “后为注释内容

(2) TTL可以从全局继承,TTL : Time to Live,缓存时长,此项内容可省略,如果TTL值未明确单位的话,默认单位为秒

(3) @ 可用于表示当前域名

(4) 相邻的两个资源记录的name相同时,后续的可以省略

(5) 同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮调方式响应并解析

(6)对SOA记录而言:

当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字:@ 符号

当前区域管理员的邮箱地址,地址中不能使用@符号,一般用 ” . “符号替换,例如:linuxedu.magedu.com.

括号内的内容:(主从服务器协调属性的定义以及否定答案统一的TTL值)

(7)对NS记录而言:

任何一个NS记录后面的服务器名字都应该在后续有一个A记录

(8)对MX记录而言:

一个区域内,MX记录可以有多个,但每个value之前应该有一个数字(0-99),表示此服务器的优先级,数字越小表示优先级越高

(9)对A或AAAA记录而言:

为了避免用户写错名称而无法得到正确答案,可通过泛域名解析进行解析至某特定地址,如:

*.achudk.com. IN A 1.1.1.4

achudk.com. IN A 1.1.1.4

(10)对PTR记录而言:

正解与反解是两个不同的解析库文件,所以二者没有任何关系,这里将正解的一级域设置为.io. ,反解的一级域设置为.com. ,以示区分。网络地址和后缀可省略,但主机地址不可省且需要反过来写。

权限及属组修改:

chgrp  named  /var/named/cjl.io.zone
chmod  o=  /var/named/cjl.io.zone


7.检查语法错误:

named-checkzone  ZONE_NAME   ZONE_FILE
named-checkconf


8.让服务器重载配置文件和区域数据文件

rndc  reload
#或
systemctl  reload  named.service


9.测试A号DNS服务器的解析功能是否实现:

测试正解

dig www.cjl.io
#查看解析结果,以下为成功示例
;; ANSWER SECTION:
www.cjl.io.     86400   IN  A   172.16.254.1


dig bbs.cjl.io
#查看解析结果,以下为成功示例
;; ANSWER SECTION:
bbs.cjl.io.     86400   IN  A   172.16.254.1


测试反解

dig -x 172.16.254.1
#查看解析结果,以下为成功示例
;; ANSWER SECTION:
1.254.16.172.in-addr.arpa. 86400 IN PTR www.cjl.com.


dig -x 172.16.254.2
#查看解析结果,以下为成功示例
;; ANSWER SECTION:
1.254.16.172.in-addr.arpa. 86400 IN PTR bbs.cjl.com.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  应用 DNS BIND 基础服务