您的位置:首页 > 运维架构 > Linux

Linux基础服务_DNS原理以及正反向DNS配置

2017-05-29 21:18 871 查看
DNS服务的原理介绍:
dns(Domain Name Service,域名解析服务) 为c/s架构的服务

通常默认的监听的端口为:53/tcp 53/udp
将dns服务实现的应用程序为:bind (rpm包 )

DNS的树状结构:




根域为:.

tld:(Top Level Domain 顶级域)组织域:.com, .net, .org, .gov, .edu, .mil国家域:.iq, .tw, .hk, .jp, .cn, ...

DNS查询内型:


递归查询:DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。





迭代查询:DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止。



DNS客户端设置使用的DNS服务器一般都是递归服务器,它负责全权处理客户端的DNS查询请求,直到返回最终结果。而DNS服务器之间一般采用迭代查询方式。

DNS解析方式:

正向解析: 名称(域名)——>IP

反向解析: IP——>名称(域名)
**二者的名称空间,非为同一个空间,即非为同一棵树;因此,也不是同一个解析库


DNS服务器类型:


主DNS服务器;从DNS服务器:负责解析一个域或多个域。

缓存服务器:不负责解析域名

区域(zone)和域(domain)

例:

xxxx.com为域:
将xxx.com进行正向解析时:正向解析库为区域

将xxx.com进行反向解析时:反向解析库为区域

区域传送:
全量传送:axfr, 传送整个数据库;
增量传送:ixfr, 仅传送变量的数据;

区域的数据库文件中相关参数含义:

资源记录:Resource Record, 简称rr;
记录有类型:A, AAAA, PTR, SOA, NS, CNAME, MX

SOA:Start Of Authority,起始授权记录;
NS:Name Service,域名服务记录;
A: Address, 地址记录,FQDN --> IPv4;
AAAA:地址记录, FQDN --> IPv6;
CNAME:Canonical Name,别名记录;
PTR:Pointer,IP --> FQDN
MX:Mail eXchanger,邮件交换器;
优先级:0-99,数字越小优先级越高;

资源记录的定义格式:语法: name [TTL] INRR_TYPE value

SOA:起始授权记录
name: 当前区域的名字;
value:有多部分组成
(1) 当前区域的区域名称(也可以使用主DNS服务器名称);
(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代;
(3) (主从服务协调属性的定义以及否定答案的TTL)
注意:任何解析库文件的第一个记录的类型必须是SOA

例:
@     IN     SOA     xxx.com    mailxxx.com  (
20000001  ; serial    序列号#每增加配置版本号+1
1D      ; refresh   刷新时间间隔
1H      ; retry     重式时间间隔
1W      ; expire    过期时常
3H )    ; minimum   否定答案的缓存时长

NS:Name Service,域名服务记录
name: 当前区域的区域名称
value:当前区域的某DNS服务器的名字,例如dns.xxx.com.;
注意:一个区域可以有多个ns记录;
例:
xxx.com    IN     NS          dns1.xxx.com
xxx.com    IN     NS          dns2.xxx.com

MX:Mail eXchanger,邮件交换器;
name: 当前区域的区域名称
value:当前区域某邮件交换器的主机名;

优先级:0-99,数字越小优先级越高;

注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级;
例:
xxx.com    IN  MX     20   mx1.xxx.com
xxx.com    IN  MX     10   mx2.xxx.com

A:Address, 地址记录,FQDN --> IPv4;
name:某FQDN,例如www.xxx.com.
value:某IPv4地址;
例:
www.xxx.com        IN   A   172.16.0.55
www.xxx.com        IN   A   172.16.1.11
edu.xxx.com        IN   A   172.16.0.55


AAAA:地址记录, FQDN --> IPv6;
name:FQDN    //表示的为域
value: IPv6    //代表的IPV6


PTR:Pointer,IP --> FQDN:反向解析
name:IP地址,有特定格式,IP反过来写,而且加特定.in-ddar.arpa后缀;

例如172.16.0.55的记录应该写为55.0.16.172.in-addr.arpa.;
value:FQND
例:
172.16.0.55.in-ddar.arpa  IN  PTR   www.xxx.com

CNAME:Canonical Name,别名记录;
name:FQDN格式的别名;
value:FQDN格式的正式名字;
例:
edu.xxx.com      IN  CNAME      www.xxx.com
sss.xxx.xom      IN  CNAME      www.xxx.com


区域的数据库文件中定义时要注意:
(1) TTL可以从全局继承;
(2) @表示当前区域的名称;
(3) 相邻的两条记录其name相同时,后面的可省略;
(4) 对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有一个A记录

配置正反向的DNS服务前的环境!
linux中提供的DNS服务包为bind(bekerley internet name domain)
使用 yum install 安装bind;并使用 rpm -ql 查看安装的程序的环境
程序环境:

主程序:/usr/sbin/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones
区域解析库文件:/var/named/
主配置文件中定义域类型分为:
主域(master)、从域(slave)、缓存域(hint)、转发域(forward)
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
bind程序安装完成之后,默认即可做缓存名称服务器使用;
如果没有专门负责解析的区域,直接即可启动服务;
CentOS 6与CentOS 7的bind启动方法:

CentOS 6: service  named  start
CentOS 7: systemctl  start  named.service
[b]DNS服务的正反向解析配置![/b]
案例:
为xxx.ss域配置一个dns服务

dns服务器地址为:172.16.254.188
www : 172.16.254.188

mail: 172.16.252.177
ftp别名www,指向www

第一步安装:bind

第二步修改/etc/named.conf配置文件:
[root@localhost ~]# vim /etc/named.conf

options {                                                #全局配置
//listen-on port 53 { 127.0.0.1; };              #注释后监听全部IP的53端口
//listen-on-v6 port 53 { ::1; };
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     { localhost; };          #访问控制,注释后允许所有IP访问或改为any
allow-query     { any; };
recursion yes;                             #是否递归

//dnssec-enable yes;                       //是否启用dns校验的服务注销或者改为no
//dnssec-validation yes;

dnssec-enable no;
dnssec-validation no;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

logging {                                           #定义日志
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

第三步:在/etc/named.rfc1912.zones创建正反向区域或在/etc/named.conf内配置
zone "xxx.ss" IN {               //正向区域
type master;
file "xxx.ss.zone";
};
zone "16.172.in-addr.arpa" IN {         //反向区域   在配置反向区域时IP为反写的并在后加特定的后缀.in-addr.arpa
type master;
file "172.16.zone";
第四步:在/var/named/ 下创建相关的正反向区域的配置文件
创建正向区域文件

[root@localhost named]# vim xxx.ss.zone   #必须与区域文件名保持一致

$TTL 2000
@       IN      SOA     dns.xxx.ss.     admin.xxx.ss. (
2017052901
1H
5M
6D
1D )
@       IN      NS      dns
@       IN      MX 10   mail
dns     IN      A       172.16.254.188
mail    IN      A        172.168.252.177
www     IN      A       172.16.254.188
ftp     IN      CNAME   www

创建反向区域文件

[root@localhost named]# vim 172.16.zone    #必须与区域文件名保持一致

$TTL 2000
@     IN    SOA    dns.xxx.ss.      admin.xxx.ss. (
2017052901
1H
5M
6D
1D )
@               IN      NS      dns.xxx.ss.
188.254         IN      PTR     dns.xxx.ss.
177.252         IN      PTR     mail.xxx.ss.
188.254         IN      PTR     www.xxx.ss.
第五步:检查并修改文件权限,检查配置文件语法;
修改创建配置文件的权限
# chgrp  named   ZONE_FILE NAME
# chmod  o=      ZONE_FILE NMAE
检查配置文件是否语法错误:
# named-checkzone  ZONE_NAME   ZONE_FILE
# named-checkconf
第六步开启服务:
# rndc  reload   服务重载
# systemctl  reload  named.service   重启服务
第七步:产看本地53号端口是否正常监听
ss -tnl
第八步测试:
正向解析:
dig  -t A  www@xxx@ss 【将@换为.】   @172.16.254.188
反向解析:
dig  -x 172.16.254.188   @172.16.254.188
更多的dig命令请自行查找以上仅为个人学习整理,如有错漏,大神勿喷~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  DNS 服务器 应用程序