DNS的简单实现

DNS的安装和主从区域的简单配置:

环境:

正反向主为10.1.19.1(hostname:centos7-1) ,从服务器为10.1.19.2(hostname:centos7-2),系统为centos7.2

软件安装:

[[email protected] ~]# yum -y install bind bind-libs bind-utils #安装dns软件bind
[[email protected] ~]# vim /etc/named.conf
cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
//listen-on port 53 { any; }; #修改的地方,注释掉该行
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     { any; }; #允许递归的用户
recursion 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;
        };
};
zone "." IN {
    type hint;
    file "named.ca";
};

zone "hello.com" IN {         #添加一个正向zone,记得加分号
        type master;
        file "hello.com";   
};
     
zone "19.1.10.in-addr.arpa" IN {    #添加一个反向zone,记得加分号
        type master;             #反向正向的master可以不再一台主机上,也就是一个服务器可以是正向的主,同时是反向的从
        file "named.19.1.10";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
 [[email protected] named]# cat magedu.com named.19.1.10 
$TTL 600
$ORIGIN magedu.com    #可以自己重新定义zone,默认是主配置文件中定义的域名
@  IN SOA  ns1.magedu.com.  admin.magedu.com. (
 	2016110501  #serial(序列号),表示该DNS数据库文件的新老程度,序列号越大表示数据越新,主要用于主从同步,每修改一次文件,务必将序号加1
	2H          #refresh(更新频率),表示从服务器多长时间向主服务器同步一次数据,判断依据是序列号的变化,如果内容改变,序列号未改变,也不会同步
	10M         #retry(重试时间),当因为某些因素从服务器无法连接到主服务器时的重连时间,默认是同步时间的一半
	1W          #expire(失效时间),表示从服务器连接主服务器一直失败,持续时间达到这个值时,从服务器将放弃尝试,并且不再提供服务
	1D)         #否定答案的TTL值,也称快取时间
@ IN NS ns1.magedu.com.   #该区域DNS服务器的主机名
@ IN MX 10 mail.magedu.com.  #注意优先级
ns1 IN A 10.1.19.1            #每个NS和MX都有一个A记录
mail IN A 10.1.19.1 
www IN A 10.1.19.10
www IN A 10.1.19.11
ftp IN cname files

$TTL 6400
@ IN SOA ns1.magedu.com. admin.magedu.com. (
	2015110501          #反向区域文件的序列号可以不和正向的一致,只要保持反向主从的就行
	1H
	30M
	5H
	10M)     
@ IN NS ns1.magedu.com.        #MX,cname等不用定义反向解析
1 IN PTR ns1.magedu.com. 
10 IN PTR www.magedu.com.
11 IN PTR www.magedu.com.
[[email protected] named]# chown named.named magedu.com 1.10.magedu.com #修改权限

启动服务:
[[email protected] named]# systemctl start named #服务名称为named
[[email protected] named]# ss -ntl 
State      Recv-Q Send-Q                Local Address:Port                               Peer Address:Port              
LISTEN     0      50                                *:3306                                          *:*                  
LISTEN     0      10                        10.1.19.1:53          #监听在tcp53端口,是为了主从同步                                    *:*                  
LISTEN     0      10                        127.0.0.1:53                                            *:*                  
LISTEN     0      5                     192.168.122.1:53                                            *:*                  
LISTEN     0      128                               *:22                                            *:*      
[[email protected] named]# ss -nul 
State      Recv-Q Send-Q                Local Address:Port                               Peer Address:Port              
UNCONN     0      0                                 *:162                                           *:*                  
UNCONN     0      0                                 *:33497                                         *:*                  
UNCONN     0      0                                 *:5353                                          *:*                  
UNCONN     0      0                     192.168.122.1:53     #在udp53端口,是响应查询                                       *:*                  
UNCONN     0      0                         10.1.19.1:53                                            *:*    

[[email protected] named]# named-checkconf                     #检查语法
[[email protected] named]# named-checkzone magedu.com magedu.com  #检查数据zone
zone magedu.com/IN: loaded serial 2016110501
OK
[[email protected] named]# named-checkzone 19.1.19.in-addr.arpa named.19.1.10 
zone 19.1.19.in-addr.arpa/IN: loaded serial 2015110501
OK
[[email protected] named]# rndc reload 
server reload successful

正反向测试:

[[email protected] named]# dig -x 10.1.19.10 @10.1.19.1         #检查反向解析,dig -x ip @server == dig -t PTR ip @server
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 10.1.19.10 @10.1.19.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9069
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;10.19.1.10.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
10.19.1.10.in-addr.arpa. 6400	IN	PTR	  

;; AUTHORITY SECTION: #权威回答区域
19.1.10.in-addr.arpa.	6400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.1.19.1

;; Query time: 1 msec
;; SERVER: 10.1.19.1#53(10.1.19.1)
;; WHEN: Sun Nov 06 11:31:51 CST 2016
;; MSG SIZE  rcvd: 114

[[email protected] named]# dig -t A www.magedu.com @10.1.19.1  #检查正向解析

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com @10.1.19.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38899
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		600	IN	A	10.1.19.11
www.magedu.com.		600	IN	A	10.1.19.10

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.1.19.1

;; Query time: 1 msec
;; SERVER: 10.1.19.1#53(10.1.19.1)
;; WHEN: Sun Nov 06 11:32:04 CST 2016
;; MSG SIZE  rcvd: 10

主动服务器的配置:

从服务器是某个区域的从,不一定是某个服务器的从,因为主服务器可以有多个区域,如果从服务器只同步某个区域,那么是区域的从,如果同步住上的所有区域,可以成为某个主服务器的从,同样正反解析也一样;

本次主从的实验只配置了正向;

配置主服务器:

  任务:1.定义允许同步的从服务器ip
        2.添加从服务器的ns记录
  
 a)主配置文件/etc/named.conf 需更该的部分:       
zone "magedu.com" IN {
        type master;
        file "magedu.com";
        allow-transfer { 10.1.19.2; }; 
};
 
 b) 修改zone文件
 [[email protected] named]# vim magedu.com 
 $TTL 600
@  IN SOA  ns1.magedu.com.  admin.magedu.com. (
        2016110501
        2H
        10M
        1W
        1D)
@ IN NS ns1.magedu.com.
@ IN NS slave.magedu.com.      #添加从服务器的ns记录
@ IN MX 10 mail.magedu.com.
ns1 IN A 10.1.19.1
ns1 IN A 10.1.19.2        #添加从服务器ns记录的A记录
mail IN A 10.1.19.1
www IN A 10.1.19.10
www IN A 10.1.19.11  

配置从服务器:
  任务:1.安装bind软件
        2,配置主配置文件,从服务器不需要定义数据文件,从主服务器同步即可
        
  a)安装
  [[email protected] ~]# yum -y install bind bind-libs bind-utils
  b)编辑主配置文件
  
 options {
        listen-on port 53 { any; };   #监听的地址
        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     { any; };  #允许访问的
 
        recursion yes;      

        dnssec-enable no;        #关闭
        dnssec-validation no;    #关闭
 
 

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};
zone "magedu.com" IN {         #添加区域文件
        type slave;
        file "slaves/magedu.com"; #定义的目录为slaves,因为该目录的权限设置为了named可写
        masters { 10.1.19.1; };   #定义自己的主服务器IP
}

重启主从服务器的named服务,观察日志/var/log/messaages,查看从服务器的解析库文件是否进行了同步

[[email protected] named]# tail /var/log/messages
Nov  6 12:12:25 centos7-2 named[4418]: transfer of ‘magedu.com/IN‘ from 10.1.19.1#53: connected using 10.1.19.2#56438
Nov  6 12:12:25 centos7-2 named[4418]: zone magedu.com/IN: transferred serial 2016110501
Nov  6 12:12:25 centos7-2 named[4418]: transfer of ‘magedu.com/IN‘ from 10.1.19.1#53: Transfer completed: 1 messages, 9 records, 237 bytes, 0.055 secs (4309 bytes/sec)

[[email protected] named]# ls /var/named/slaves/  #从服务器上已经同步了文件
magedu.com

进行数据更改和查询的测试:

[[email protected] named]# dig -t A www.magedu.com @10.1.19.2  #注意,此处指定的是从服务器IP,表示从服务器也可进行查询了

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com @10.1.19.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59292
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		600	IN	A	10.1.19.10
www.magedu.com.		600	IN	A	10.1.19.11

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.1.19.1

在主服务器上添加一个条目:
[[email protected] named]# vim magedu.com  
@  IN SOA  ns1.magedu.com.  admin.magedu.com. (
        2016110502   #序列号加1
        2H
        10M
        1W
        1D)
@ IN NS ns1.magedu.com.
@ IN NS slave.magedu.com.
@ IN MX 10 mail.magedu.com.
ns1 IN A 10.1.19.1
slave IN A 10.1.19.2
mail IN A 10.1.19.1
www IN A 10.1.19.10
www IN A 10.1.19.11
hello IN A 10.1.19.12   #添加的条目

[[email protected] named]# rndc reload  #rndc 重载
server reload successful

查看从服务上的日志,查看是否同步:
Nov  6 14:04:35 centos7-2 named[4628]: transfer of ‘magedu.com/IN‘ from 10.1.19.1#53: Transfer completed: 1 messages, 11 records, 271 bytes, 0.016 secs (16937 bytes/sec)
Nov  6 14:04:35 centos7-2 named[4628]: zone magedu.com/IN: sending notifies (serial 2016110503)

[[email protected] named]# dig -t A hello.magedu.com @10.1.19.2

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A hello.magedu.com @10.1.19.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25591
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;hello.magedu.com.		IN	A

;; ANSWER SECTION:
hello.magedu.com.	600	IN	A	10.1.19.12

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	slave.magedu.com.
magedu.com.		600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.1.19.1
slave.magedu.com.	600	IN	A	10.1.19.2

;; Query time: 1 msec
;; SERVER: 10.1.19.2#53(10.1.19.2)
;; WHEN: Sun Nov 06 14:05:11 CST 2016
;; MSG SIZE  rcvd: 131

子域授权:

在DNS的查询过程中,我们将DNS解析请求发给我们所指定的DNS服务器后,它会以及以及的查找域名进行解析,这里的每一级都是一个域,并且每个域都为上级域的子域,当我们想要将本公司的主机添加为子域时,可以设置。

其原理就是在本域名服务器上的正向解析库文件当中定义子域对应的DNS服务器的主机名和其A记录即可

本域名服务器

主配置文件/etc/named.conf :
    allow-query     { any; };  #设置打开此项,表示允许查询递归的地址

[[email protected] named]# cat magedu.com 
$TTL 600
@  IN SOA  ns1.magedu.com.  admin.magedu.com. (
 	2016110504
	2H
	10M
	1W
	1D) 
@ IN NS ns1.magedu.com.
@ IN NS slave.magedu.com.
@ IN MX 10 mail.magedu.com.
ops.magedu.com. IN NS  ns1.ops.magedu.com.   #添加子域服务器的ns记录
ns1.ops.magedu.com. IN A 10.1.19.5           #添加子域服务器ns记录的A记录
ns1 IN A 10.1.19.1
slave IN A 10.1.19.2
mail IN A 10.1.19.1
www IN A 10.1.19.10
www IN A 10.1.19.11
hello IN A 10.1.19.12

子域服务器配置:
[[email protected] named]# cat /etc/named.conf 
zone "ops.magedu.com" IN {             #定义本地的zone文件
	type master; 
	file "ops.magedu.com";
};

zone "magedu.com" IN {                 #定义对自己本域的设置,把请求转发
	type forward;
	forward first;
	forwarders { 10.1.19.1; };
};

[[email protected] named]# cat ops.magedu.com 
$TTL 6400
@ IN SOA ns1.ops.magedu.com. admin.ops.magedu.com. (
	2015030210
	2H
	1H
	1D
	10M)
@ IN NS ns1.ops.magedu.com.
ns1.ops.magedu.com. IN A 10.1.19.2
fff IN A 10.1.19.20

[[email protected] named]#named-checkconf 
[[email protected] named]#named-checkzone ops.magedu.com ops.magedu.com 
[[email protected] named]#systemctl start named 
[[email protected] named]# dig -t A www.magedu.com @10.1.19.1   #解析主域的

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com @10.1.19.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22640
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		600	IN	A	10.1.19.10
[[email protected] named]# dig -t A fff.ops.magedu.com  @10.1.19.2  #解析子域的

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A fff.ops.magedu.com @10.1.19.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31939
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;fff.ops.magedu.com.		IN	A

;; ANSWER SECTION:
fff.ops.magedu.com.	6400	IN	A	10.1.19.20

;; AUTHORITY SECTION:
ops.magedu.com.		6400	IN	NS	ns1.ops.magedu.com.

;; ADDITIONAL SECTION:
ns1.ops.magedu.com.	6400	IN	A	10.1.19.2

批量添加

[[email protected] named]# dig -t A test24.magedu.com @10.1.19.1
 
;; ANSWER SECTION:
test24.magedu.com.	600	IN	A	10.1.19.24

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	slave.magedu.com.
magedu.com.		600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.1.19.1
slave.magedu.com.	600	IN	A	10.1.19.2

view视图和智能解析:

访问控制是只仅对定义的网络进行解析,视图也称为只能解析,是指根据访问者来源ip信息解析不同的结果,这个通常用来解决南北不同运行商之间网络访问缓慢的问题,如联通来源的ip的用户解析到联通服务器ip上。

访问控制是通过acl函数来实现的,acl把一个或多个地址归并为一个集合,并通过一个统一的名称调用,需要注意的是:acl函数只能先定义,后使用。

acl acl_name {

ip;

net/prelen;

};

示例:

acl mynet {

192.168.0.0/16;

192.0.0.0/8;

};

bind 四个内置的acl

none : 没有一个主机

any : 任意主机

local : 本机

localnet : 本机所在的ip所属的网络

访问控制指令:

allow-query {}; 允许查询的主机

allow-transfer {}; 允许向哪些主机做区域传送,默认为向所有主机,应该配置为仅允许从服务器

如果在zone内写,那么表示只允许该zone传送

可以先在主配置文件定义:

acl slaves {

10.1.2.34;

3.22.123.44;

};

然后写到zone 内

allow-transfer { slaves; };

allow-recursion {}; 允许哪些主机向当前DNS服务器发送递归查询请求

allow-update {}; DDNS,允许动态更新区域数据库文件中内容

dns的视图(view)功能也是结合acl实现的,view也是一个函数,通常view有多个,每个view当中定义一组zone,用于实现不同的来源ip解析不同的结果。

acl mynet { 192.168.99.0/24; };

acl other { !192.168.88.0/24;any; };  感叹号便是取反

时间: 2024-10-22 11:12:53

DNS的简单实现的相关文章

DNS服务器简单配置和view实现

简介: DNS服务器的作用就是就好比生活中的电话簿.114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名. DNS系统的作用: 正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的) 反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时.) 根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色: 缓存域名服务器 也称为 唯高速缓存服务器 通过向其他域名服务器查询获得域名->IP地址记录 将域名查询结果缓存到本地,提高重复查询

DNS服务器简单架设测试

   空闲时间够充裕,准备架设个LAMP和用POSTFIX架设个webmail.这两个SERVER都需要用到DNS.于是先弄个DNS,做个记录,以方便后面参考.具体步骤如下:    1.DNS用的软件名字bind.先确定下,安装了bind木有?      参考命令:      rpm -qa |grep "bind"   2.DNS主要文件说明     /etc/named.conf     zone文件位置     /var/named/        3.主配置文件的配置     

bind DNS 的简单搭建

由于我这里只是测试所以直接做的是master 跟yum 安装的 1  yum  install  bind  -y 2  修改主配置文件:  我的配置文件如下 options { listen-on port 53 { any; };  #修改为any #        listen-on-v6 port 53 { ::1; };  #注 directory       "/var/named"; dump-file       "/var/named/data/cache_

DNS服务器简单部署

简单粗暴的装bind ~]# yum install bind* -y 然后修改主配置文件/etc/named.config zone "." IN { type hint; file "named.ca"; }; zone "songhe.com" IN { type master; file "songhe.com.zone"; }; include "/etc/named.rfc1912.zones"

DNS查询过程及DNS服务器简单搭建

1.描述DNS查询过程以及DNS服务器类别. DNS查询过程: 一次完整的查询请求经过的流程: Client--> hosts文件 --> DNS Local Cache --> DNS Server (recursion) --> 自己负责解析的域:直接查询数据库并返回答案: 不是自己负责解析域:ServerCache --> iteration(迭代) DNS服务器类别: 主-辅DNS服务器: 主DNS服务器:维护所负责解析的域数据库的那台服务器:读写操作均可进行: 从D

ubuntu配置DNS

众所周知,centos配置DNS很简单,修改下/etc/resolv.conf,就可以生效.但是ubuntu中,resolv.conf文件却说明写入会被覆盖,不能写在这里. 方法一: 修改/etc/network/interfaces(interfaces文件是万能的,能配IP.路由.DNS) dns-nameservers 114.114.114.114 方法二: 修改/etc/resolvconf/resolv.conf.d/base文件,该文件默认是空的.(或者新建tail文件写入name

Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)

虚拟机里设置上网方式为NAT最方便,因为无需手动设置即可上网,但是NAT的上网方式默认是DHCP动态分配IP的,这意味着你每次重启虚拟机都 有不一样的IP地址,这对一般用户没任何问题.但是如果你的机子有特殊用处,比如作为服务器,需要IP地址信息,亦或者像我一样,作为一个云计算的节点, 其IP都是在配置文件里配置好的,如果每次重启系统都要跑过去修改下配置文件里的IP,那简直是不可取的做法,因此为虚拟机设置固定IP上网非常的有必 要! 设置固定IP的方法很多,大家都知道虚拟机上网有三种模式:brid

bind的简单配置

bind的简单配置 摘要:DNS  bind简单配置        FQDN        http://www.178linux.com.  WWW是主机名  .178linux.COM.是私有域名  .com.是DNS一级域名 .是根域 DNS解析顺序 /etc/hosts→DNS缓存→DNS域服务器 主机优先查找本地的hosts(/etc/hosts)文件,没有想对应的记录则去查找本地DNS客户端的解析缓存库,缓存库没有想对应的记录则询问本地配置的DNS服务器(DNS服务器配饰文件 /et

2-7-搭建DNS服务器实现域名解析

学习服务的方法: 了解服务的作用:名称,功能,特点 安装服务 配置文件的位置,端口 服务开启和关闭的脚本 修改配置文件(实战举例) 排错(从上到下,从内到外) ---------------------------------------- 大纲: DNS服务器常见概念 DNS服务器安装及相关配置 实战:配置DNS服务器解析 实战:使用DNS支持递归查询. 实战:搭建DNS转发服务器 实战:搭建DNS主从服务器 实战:zone文件中的其它记录信息. 通过DNS做负载均衡 实战:DNS主从密钥认证