DNS 说明及安装

主机名:FQDN:Full Qualified Domain Name 完全限定域名

互联网查询分两段,第一段:递归,客户端找NS

第二段:迭代,NS找答案并缓存

DNS服务器类型:

主DNS服务器:数据修改

辅助DNS服务器:请求数据同步

serial number

refresh

retry

expire

nagative answer TTL

数据库中的每一个条目,都称作资源记录(Resource Record,RR)

资源记录格式:

NAME         TTL  IN   RRT  VALUE

www.ckl.com  300  IN    A   2.2.2.2

2.2.2.2      300  IN   PTR  www.ckl.com

解释:

NAME:名称

TTL:生存时间

IN:Inter Net

RRT Resource Record Type:资源记录类型

VALUE:数据

资源记录类型:

SOA(Start Of Authority):

ZONE NAME  TTL   IN   SOA  ADMIN_MAILBOX (

serial number

refresh

retry

expire

na ttl

)

时间单位:M:(分钟)、H(小时)、D(天)、W(周),默认单位是秒

邮箱格式:[email protected] -> admin.ckl.com

ckl.com.   600   IN   SOA    ns1.ckl.com.  admin.ckl.com. (

201505291716  #序列号

1H  #刷新时间

5M  #重试时间

1W  #过期时间    1D  #否定回答TTL值

)

NS(Name server):Domain Name -> FQDN

ckl.com.   600   IN    NS    ns.ckl.com.

ns.ckl.com. 600  IN    A     3.3.3.3

ns1.ckl.com  600  IN   A     1.1.1.2

ns2.ckl.com  600  IN   A     2.2.2.4

MX(Mail Exchange):ZONE NAME --> FQDN

ZONE NAME   TTL   IN    MX  Pri   VALUE

优先级,数字越小级别越高

ckl.com.   600  IN  MX   10  mail.ckl.com.

mail.ckl.com.  600 IN  A  1.1.2.3

A(Address): FQDN -> IPv4

AAAA : FQDN -> IPv6

PTR:IP-> FQDN

CNAME: FQDN -> FQDN.

区域传送类型:

完全区域传送:axfr

增量区域传送:ixfr

区域类型:

主区域:master

从区域:slave

提示区域:hint

转发区域:forward

bind:

/etc/named.conf

bind进程工作属性

区域的定义文件

/var/named:

区域数据文件

named.ca 13根节点文件

查询根节点记录:

# dig -t NS .

named.localhost:

专门将localhost解析成127.0.0.1

named.loopback:

DNS端口:

53/udp

53/tcp

953/tcp,rndc

定义配置文件:

(1)创建配置文件

#mv /etc/named.conf /etc/named.conf.bak

#编辑定义配置文件

#vi /etc/named.conf

options {

directory "/var/named";

allow-recursion { 192.168.1.0/24; };

#允许192.168.1.0网段递归查询

allow-quey {}  #定义只允许谁来查询

allow-transfer {}  #允许谁来传送

};

zone "." IN {

type hint;

file "named.ca";

};

zone "localhost" IN {

type master;

file "named.localhost";

};

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

type master;

file "named.loopback";

};

zone "ckl893.com" IN {

type master;

file "ckl.com.zone";

};

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

type master;

file "192.168.1.zone";

};

#编辑区域配置文件

#正向区域配置文件

#vi ckl.com.zone

$TTL  600

ckl893.com. IN    SOA   ckl893.com.   admin.ckl893.com (

201505301240

1H

5M

1W

2D)

IN  NS ns1.ckl893.com.

IN  MX 10 mail

ns1 IN   A 192.168.1.189

mail IN   A 192.168.1.190

www IN   A 192.168.1.190

ftp IN CNAME www

#编译反向区域配置文件

# cat 192.168.1.zone

$TTL  600

@ IN    SOA   ckl893.com.   admin.ckl893.com (

201505301240

1H

5M

1W

2D)

IN NS ns1.ckl893.com.

189 IN PTR ns1.ckl893.com.

189 IN PTR mail.ckl893.com.

190 IN PTR www.ckl893.com.

修改权限

# chown root.named /etc/named.conf

# chown root.named /var/named/ckl.com.zone

# chown root.named /var/named/192.168.1.zone

# chmod 640 /etc/named.conf

# chmod 640 /var/named/ckl.com.zone

# chomd 640 /var/named/192.168.1.zone

(2)检查语法错误:

# named-checkconf

(3)检查区域:

# named-checkzone "ckl893.com" /var/named/named.localhost

# named-checkzone "1.168.192.in-addr.arpa" 192.168.1.zone

(4)测试解析

# dig -t A www.ckl893.com

# dig -t MX ckl893.com

dig 用法:

-t 资源记录  #host -t A www.ckl893.com 一样的

# dig -t SOA ckl893.com

# dig -t A www.ckl893.com  #查询www.ckl893.com A记录

# dig -t CNAME ftp.ckl893.com  #查询ftp.ckl.com CNAME 记录

# dig -t NS ckl893.com.  #查询ckl893.com  NS 记录

# dig -t MX ckl893.com

-x IP

根据IP查找FQDN 记录

nslookup:

server IP

set q=RT

NAME

递归查询:

# dig +recurse -t A www.sohu.com @192.168.1.189

不递归查询(迭代):

# dig +norecurse -t A www.xiaomi.com @192.168.1.189

返回结果是根,让自己去查找根

追踪查询过程:

# dig +trace -t A www.baidu.com @192.168.1.189

建立slave

1.安装bind bind-utils 略过

2.修改slave配置文件:

zone "ckl893.com" IN {

type slave;

masters { 192.168.1.189; };  #定义传送的主服务器地址

file "slaves/ckl.com.zone";  #定义传送的文件,不需要建立,自动同步

};

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

type slave;

masters { 192.168.1.189; };   #定义传送的主服务器地址

file "slaves/192.168.1.zone"; #定义传送的文件,不需要建立,自动同步

};

3.启动服务器

# /etc/init.d/named start

4.查看文件是否同步

# ls /var/named/slaves/

192.168.1.zone  ckl.com.zone

salve增量传送:

(1).在主服务上修改:

$TTL  600

@ IN    SOA   ckl893.com.   admin.ckl893.com (

201505301245   *** 如果修改,此处序列号必须加1 ***

1H

5M

1W

2D)

IN NS ns1

IN NS ns2   #增加从服务器,主服务上必须定义

IN MX  10 mail

ns1 IN A 192.168.1.189

ns2 IN A 192.168.1.190 #同理A记录也必须添加

mail IN A 192.168.1.190

www IN A 192.168.1.190

bbs IN A 192.168.1.193 #这是添加的行

ftp IN CNAME www

重新加载服务器:

# /etc/init.d/named reload

(2).在从服务器上查看

$ORIGIN .

$TTL 600 ; 10 minutes

ckl893.com IN SOA ckl893.com. admin.ckl893.com.ckl893.com. (

3936805629 ; serial

3600       ; refresh (1 hour)

300        ; retry (5 minutes)

604800     ; expire (1 week)

172800     ; minimum (2 days)

)

NS ns1.ckl893.com.

NS ns2.ckl893.com.

MX 10 mail.ckl893.com.

$ORIGIN ckl893.com.

bbs A 192.168.1.193  #此行已经同步

ftp CNAME www

mail A 192.168.1.190

ns1 A 192.168.1.189

ns2 A 192.168.1.190

www A 192.168.1.190

(3).反向解析亦是如此,则不再赘述

使用rndc

(1)生成rndc配置文件

# rndc-confgen > /etc/rndc.conf

# cat /etc/rndc.conf

# Start of rndc.conf

key "rndc-key" {

algorithm hmac-md5;

secret "bdtU+h6JudUooIjZLI9TmA==";

};

options {

default-key "rndc-key";

default-server 127.0.0.1;

default-port 953;

};

# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:

# key "rndc-key" {

# algorithm hmac-md5;

# secret "bdtU+h6JudUooIjZLI9TmA==";

# };

#

# controls {

# inet 127.0.0.1 port 953

# allow { 127.0.0.1; } keys { "rndc-key"; };

# };

# End of named.conf

(2) 将下面注释的行追加到named.conf

:,$-1w >> /etc/named.conf

(3)编辑named.conf

:,$s/# //g

重启服务进程

(4)完成后可以通过rndc控制服务器

查看进程状态

# rndc -c /etc/rndc.conf status

version: 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3

CPUs found: 1

worker threads: 1

number of zones: 20

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

手动通知区域:

# rndc -c /etc/rndc.conf notify "ckl893.com"

清空缓存:

# rndc -c /etc/rndc.conf flush

使用rndc远程控制,一般不开启的,知晓可以

本机是:192.168.1.189

远程slave是:192.168.1.190

允许远程192.168.1.190控制本地

(1)修改named.conf配置文件打开ip

controls {

inet 192.168.1.189 port 953 #修改为外网地址

allow { 192.168.1.190; } keys { "rndc-key"; };  #远程可以控制的主机

};

重启进程

(2)拷贝配置文件

scp 192.168.1.189:/etc/rndc.conf /root

(3)修改配置文件

options {

default-key "rndc-key";

default-server 192.168.1.189;  #修改为要远程控制的主机

default-port 953;

};

(4)远程控制

DNS子域

增加两个子域测试

(1) 编辑ckl.com.zone 配置文件(增加两条子域):

dx    IN NS ns1.dx

ns1.dx IN A 192.168.1.66

mk    IN NS ns1.mk

ns1.mk IN NS 192.168.1.77

(2)配置子域服务器

安装包,配置文件,跟主的雷同,不在赘述

默认子域找不到父域

配置子域找父域(转发)

forward{only|fist}

first:首先转发

only:配置自己查找根

配置所有的转发:

options {

directory "/var/named";

forward first;               #此行

forworders {192.168.1.189;}; #此行

allow-recursion { 192.168.1.0/24; };

notify yes;

};

如果配置只对一个区域的解析转发:

zone  "ckl89.com" IN  {

type  forward;

forwarders { 192.168.1.189;};

}

acl

定义在文件最上方:

acl innet {

192.168.1.0/24;

127.0.0.1;

}

zone  "ckl89.com" IN  {

type  forward;

forwarders { inet;};

}

view视图

*** 所有区域必须定义在视图中 ***

(1)定义服务器配置内容

acl tnet {

192.168.1.0/24;   #定义电信区域

};

options {

directory "/var/named";

allow-recursion { tnet; };

};

//电信区域视图

view telcom {

match-clients { tnet; };

zone "ckl893.com" IN {

type master;

file "telckl.com.zone";

};

};

//联通区域视图

view unicom {

match-clients { any; };

zone "ckl893.com" IN {

type master;

file "unickl.com.zone";

};

};

(2)定义区域文件,定义两个,一个电信,一个联通

电信区域文件

# cat telckl.com.zone

$TTL 86400

@ IN SOA    ns1.ckl893.com.   admin.ckl893.com. (

201506011138

1H

5M

1W

2D)

IN NS ns1.ckl893.com.

IN MX  10 mail

ns1 IN A 192.168.1.189

mail IN A 192.168.1.190

www IN A 192.168.1.190

联通区域文件

# cat unickl.com.zone

$TTL 86400

@ IN SOA    ns1.ckl893.com.   admin.ckl893.com. (

201506011138

1H

5M

1W

2D)

IN NS ns1.ckl893.com.

IN MX  10 mail

ns1 IN A 192.168.1.189

mail IN A 10.10.8.88

www IN A 10.10.8.99

(3)测试解析

在192.168段主机测试:

# dig -t A www.ckl893.com @192.168.1.189

...

www.ckl893.com.  86400 IN A 192.168.1.190

在10.10段主机测试:

...

www.ckl893.com.         86400   IN      A       10.10.8.99

log 日志系统:

category:日志源

查询

区域传送

可以通过category自定义日志来源

channel:日志保存位置

syslog

file

定义查询日志:

....

logging  {

channel  querylog {

file "/var/log/named/bind_query.log" versions 3;   #日志路径及保留三个版本

severity dynamic;    #日志级别

print-category yes;  #打印日志信息

print-time yes;      #打印时间

print-severity yes;  #打印级别

};

category queries { querylog; };

};

....

定义传输日志:

logging  {

channel  querylog {

file "/var/log/named/bind_query.log" versions 3;

severity dynamic;

print-category yes;

print-time yes;

print-severity yes;

};

channel xfer_log {

file "/var/log/named/transfer.log" versions 3;  #定义传输文件路径

severity debug 3; #定义级别

print-time yes;   #定义传输时间

};

category queries { querylog; };

category xfer-out { xfer_log; };  #定义传输日志

};

传输:

# dig -t axfr ckl893.com @192.168.1.189

查看日志

bind压力测试

queryperf

安装:

# tar -xf bind-9.9.2.tar.gz

# cd bind-9.9.2/contrib/queryperf

# ./configure

# make

# cp queryperf /bin/

queryperf:

-d 指定datafile

-s 指定服务器

-p 指定port

-q 指定查询次数

查询测试:

(1)编辑文件

vim cf

www.ckl893.com  A

mail.ckl893.com MX

ns1.ckl893.com NS

(2)查询测试:

# queryperf -d cf -s 192.168.1.189

dnstop 压力测试:

#tar -xf dnstop-20140915.tar.gz

#cd dnstop-20140915

#make && make install

# /usr/local/bin/dnstop -4 -Q -R eth0

-4 ipv4

-Q 显示查询

-R 显示响应

eth 端口

时间: 2024-10-24 08:28:40

DNS 说明及安装的相关文章

Linux DNS源代码编译安装(五)

DNS源代码的编译安装. 官方bind下载地址:www.isc.org这里我们编译的是bind-9.9.5.tar.gz版本 1.编译环境  Desktop Platform Development  Development tools  Server Platform Development 2.展开安装包查看编译命令 首先我们应该先看下服务器时间,[[email protected] ~]# tar xf bind-9.9.5.tar.gz -----展开安装包[[email protect

DNS及编译安装MariaDB

1.简述DNS服务器原理,并搭建主-辅服务器. DNS(domain name server),域名解析服务器.dns域结构:是一颗倒树状结构,分为根域.一级域.二级域...127级域.每一级的域名服务器管理自己的子域. dns工作原理,以访问www.baidu.com为例: 1) 首先浏览器会查看本地dns,也就是系统的host文件,可以解析的话就返回对应的ip,否则就会查询本地缓存 2) 如果本地缓存不起作用,就把请求发送给网络提供商的dns服务器(例如电信dns服务器),可以解析的话就返回

CentOS6上DNS服务器的安装配置-基础篇

一. DNS简介: DNS(Domain Name System),是互联网的一种很重要的基础服务,DNS服务作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.当在DNS区域传送机制运行在TCP协议,使用端口号53. 二. DNS查询方式: DNS共有两种查询方法: 递归查询 由局部DNS服务器自己负责向

DNS服务编译安装,及配置

DNS服务是域名转换服务. 原理及功能可以参考http://kmk0226.blog.51cto.com/5975994/1678180 今天的博客是介绍DNS服务的编译安装,以及安装之后如何配置DNS服务,让服务能正常运行. 在Linux系统中,DNS服务在Bind这个程序中配置的. 首先,要编译安装DNS服务,需要先去下载源码包. 源码包可以在bind官方网站下载 bind官方站点:www.isc.org 有9.9.X与9.10.X的版本,我们这里以9.9.X的版本来编译安装. X代表子版本

dns介绍,安装和主从同步

DNS的知识 1.dns的相关介绍 2.dns的安装和配置文件的解释,启动并测试 3.新建dns的实例 4.dns的主从设置实例 一.DNS介绍 1.DNS(domain name server)是域名解析服务器,提供域名和IP地址之间一种相互转换的机制,目的是为了方便人们的记忆和管理 .  (根域) | ---------------------------------- |                                    |                       

centOS建立bind服务,做为内网DNS解析服务安装记录

因为内网换了路由器,这个路由器不支持静态域名解析服务.所以只能自己建立一个DNS服务. DNS服务端软件选用bind,直接yum在线安装bind.此时会直接更新另外两个软件包bind-libs,bind-utils: yum -y install bind 安装过程不放了. 装完以后,配置文件:/etc/named.conf(没有装bind-chroot,可以增加安全性,只是内网用就没装了) 编辑named.conf配置文件: // // named.conf // // Provided by

DNS服务器的安装与配置

## 主机名 hadoop4 IP 192.168.0.106 作为DNS服务器 ## 安装bind相应的软件包: [[email protected] ~]# yum -y install bind bind-utils bind-chroot ## 检查是否安装bind: [[email protected] ~]# rpm -qa | grep '^bind' bind-chroot-9.8.2-0.30.rc1.el6_6.2.x86_64 bind-9.8.2-0.30.rc1.el6

服务1RHEL6.5下DNS服务器的安装

环境介绍: node1.cn:slave node2.cn:masters 1.软件包安装 [[email protected] ~]# yum -y install bind [[email protected] ~]# rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm  [[email protected] ~]# rpm -ivh /mnt/Packages/bind-chroot-9.8.2-0.17.rc1.el

DNS介绍与安装使用

DNS简介 DNS是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP的53号端口. DNS服务的基本概念 在使用DNS前需要了解一些和DNS相关的概念这样有助于更好的理解DNS原理和使用. 域 域简单理解就是我们使用的域名,只是域名是有划分的,分为根域,顶级域等等,域的划分如下: 我们平时浏览互联网使用的域名.com..org等都是顶级域. FQDN:完全域名限定 每一个域名在全球网络中都是唯一的,比如gudaoyufu.c