您的位置:首页 > 其它

DNS and BIND

2016-07-09 18:58 507 查看
目录
DNS基本介绍

DNS服务的搭建
主从复制
子域授权
基于bind view实现智能DNS
一、DNS基本介绍

DNS:Domain Name System,域名系统 。DNS作为域名和IP地址相互映射的一个分布式数据库,能够让用户更加方便的访问互联网。它的正向映射是把一个主机和IP地址关联起来,它的反向映射是把IP地址和主机名关联起来。DNS协议运用在UDP协议上,使用端口号53.

域名:DNS名字空间被组织成一个树形结构,每个完整的域名是这棵树的分支上的一个节点。
域名级别:

根域:/
顶级域:

国际顶级域:.com .net .org .edu等

国家地区顶级域:.cn .de .jp .hk .us等
二级域:www.mage.com,其中.magedu就是一个二级域名

DNS查询类型:

递归查询:客户机向服务器发送请求,根服务器并不返回真实的答案,而是转交给下一级域,一次类似,直到查到客户机请求的域名所对应的IP地址,然后将此IP地址返回给客户机。

迭代查询:客户机向DNS服务器发送请求,DNS服务器不管是否查到对应的IP地址直接返回给客户机答案。

DNS域名解析:
正向解析:FQDN到IP地址的解析

反向解析:IP地址到FQDN的解析

DNS服务器的类型:
主服务器:维护所负责区域内解析库的服务器

从服务器:从主服务器中同步复制对应的解析库文件
缓存服务器:缓存所查询多的解析条目
转发服务器:负责非本地区域内的域名,而通过转发到别的DNS服务器上进行本地查询

DNS一次完整查询的过程:
首先客户机发送一个DNS解析请求,查看host文件中是否有相应的对应解析条目,如果没有就差本地的缓存,缓存没有就向根服务器发送请求查询,根服务器会根据域名来告诉你去哪个对应的域中查询,以此类推,查到对应的 IP然后返回给客户机。

DNS的资源记录:

SOA:定义一个DNS区域

NS:标识域名服务器名称

A:名字到IPv4地址的转换

AAAA:名字到ipv6地址的转换

PTR:地址到名字的转换
MX:邮件记录

CNAME:主机的别名记录

二、DNS服务的搭建

1、安装DNS服务程序包bind:
yum -y install bind

2、修改/ec/named.conf配置文件
[root@bogon ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };####DNS监听的端口号及允许哪些主机监听此端口号
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 yes;
dnssec-validation yes;

recursion yes;

dnssec-enable yes;
dnssec-validation yes;

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

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

pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

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

zone "." IN {
type hint;
file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


3、编辑/etc/named.rfc1912.zones文件,建立正向区域文件和反向区域文件
[root@bogon ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {        ##正向解析
type master;          ##类型为主DNS
file "magedu.com.zone";###正向解析库文件
};

zone "1.168.192.in-addr.arpa" IN {   ##反向解析
type master;                ##反向解析类型为主DNS
file "192.168.1.zone";       ##反向解析库文件
};


4、在/var/named目录下建立正向区域和反向区域文件的解析库数据
[root@bogon named]# vim magedu.com.zone######建立正向解析库数据
$TTL  1D
@   IN   SOA   ns1.magedu.com.  admin.magedu.com. (
2016070901
1H
2M
3D
1D
)

IN  NS  ns1.magedu.com.
IN  MX  10  mx1.magedu.com.
ns1     IN  A   192.168.1.104
mx1     IN  A   192.168.1.10
www     IN  A   192.168.1.20
web     IN  CNAME www

[root@bogon named]# vim 192.168.1.zone####建立反向解析库数据
$TTL   1D
@   IN    SOA   ns1.magedu.com.   admin.magedu.com.(
2016070901
1H
2M
3D
1D
)
IN   NS  ns1.magedu.com.
104     IN   PTR  ns1.magedu.com.
10      IN   PTR  mx1.magedu.com.
20      IN   PTR  www.magedu.com.
20      IN   PTR  web.magedu.com.
~


5、文件限制已经建立好了我们需要来修改下权限所属组为named
[root@bogon named]# chown :named magedu.com.zone 192.168.1.zone
[root@bogon named]# ll
-rw-r--r--. 1 root  named  273 Jul  9 16:28 192.168.1.zone
-rw-r--r--. 1 root  named  268 Jul  9 16:23 magedu.com.zone


6、检查配置文件和区域文件语法是否正确
[root@bogon named]# named-checkconf
[root@bogon named]# named-checkzone magedu.com.zone /var/named/magedu.com.zone
zone magedu.com.zone/IN: loaded serial 2016070901
OK
[root@bogon named]# named-checkzone 1.168.192.in-addr.arpa  /var/named/192.168.1.zone
zone 1.168.192.in-addr.arpa/IN: loaded serial 2016070901
OK


7、启动named服务然后测试是否正常
[root@bogon named]# systemctl restart named.service

[root@bogon ~]# dig www.magedu.com @192.168.1.104  ##正向解析

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.magedu.com @192.168.1.104
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9645
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		86400	IN	A	192.168.1.20

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

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 1 msec
;; SERVER: 192.168.1.104#53(192.168.1.104)
;; WHEN: Tue Jun 21 22:15:50 2016
;; MSG SIZE  rcvd: 82

[root@bogon ~]# dig -x 192.168.1.20 @192.168.1.104  ###反向解析

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x 192.168.1.20 @192.168.1.104
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60239
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;20.1.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
20.1.168.192.in-addr.arpa. 86400 IN	PTR	www.magedu.com.
20.1.168.192.in-addr.arpa. 86400 IN	PTR	web.magedu.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.	86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.1.104#53(192.168.1.104)
;; WHEN: Tue Jun 21 22:17:12 2016
;; MSG SIZE  rcvd: 123


三、主从复制

1、从DNS的/var/named.conf配置文件同主DNS服务器是一样的,所有此处就不进行展示了。
2、编辑/etc/named.rfc1912.zones文件配置从服务器的正向和反向区域的解析区域
[root@bogon ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type slave;
masters {192.168.1.104;};
file "slaves/magedu.com.slave.zone";
};

zone "1.168.192.in-addr.arpa" IN {
type slave;
masters {192.168.1.104;};
file "slvaes/192.168.1.slave.zone";
};
3、启动服务查看/var/named/slaves目录下面会出现
192.168.1.slave.zone magedu.com.slave.zone这两个文件:
[root@bogon slaves]# ll
total 8
-rw-r--r-- 1 named named 413 May 11 23:37 192.168.1.slave.zone
-rw-r--r-- 1 named named 396 May 11 23:39 magedu.com.slave.zone
4、测试,此时我们把客户机的DNS指向到我们的从服务器地址然后看看是否可以使用呢

[root@bogon ~]# dig -x 192.168.1.20 @192.168.1.100(192.168.1.100是从DNS服务器的地址)

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x 192.168.1.20 @192.168.1.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16233
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;20.1.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
20.1.168.192.in-addr.arpa. 86400 IN	PTR	web.magedu.com.
20.1.168.192.in-addr.arpa. 86400 IN	PTR	www.magedu.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.	86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 31 msec
;; SERVER: 192.168.1.100#53(192.168.1.100)
;; WHEN: Tue Jun 21 22:39:33 2016
;; MSG SIZE  rcvd: 123

[root@bogon ~]# dig www.magedu.com @192.168.1.100(192.168.1.100是从DNS服务器的地址)

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.magedu.com @192.168.1.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10729
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		86400	IN	A	192.168.1.20

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

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.1.100#53(192.168.1.100)
;; WHEN: Tue Jun 21 22:39:53 2016
;; MSG SIZE  rcvd: 82

ok经过测试时我们的从DNS服务器是没有问题的。但是如果主DNS中有更新条目那么我们从服务器此时是
每有办法同步过来的,那么我们下一步就是做主从同步啦!


5、主从同步
在主DNS服务器的/var/named/magedu.com.zone中添加一条NS记录,此记录指向我们从DNS服务器的IP地址

在主DNS服务器/var/named/192.168.1.zone中添加一个NS记录同时做相应的反向IP解析
$TTL  1D
@       IN   SOA   ns1.magedu.com.    admin.magedu.com.  (
2016070902###版本号需要更改
1H
2M
3D
1D
)
IN  NS  ns1.magedu.com.
IN  NS  ns2.magedu.com.###此条为添加的ns记录
IN  MX  10  mx1.magedu.com.
ns1     IN  A   192.168.1.104
ns2     IN  A   192.168.1.100####对应的ns解析地址,此地址为从DNS服务器的地址
mx1     IN  A   192.168.1.10
www     IN  A   192.168.1.20
web     IN  CNAME www
~
$TTL   1D
@       IN      SOA     ns1.magedu.com.     admin.magedu.com. (
2016070902###版本号需要更改
1H
2M
3D
1D
)
IN   NS  ns1.magedu.com.
IN   NS  ns2.magedu.com.###此条为添加的ns记录
100     IN   PTR  ns2.magedu.com.###对应的解析地址
104     IN   PTR  ns1.magedu.com.
10      IN   PTR  mx1.magedu.com.
20      IN   PTR  www.magedu.com.
20      IN   PTR  web.magedu.com.
~
重新加载主DNS服务器的服务:rndc reload,然后我们到从DNS中查看是已经同步了。
[root@bogon slaves]# cat 192.168.1.slave.zone
$ORIGIN .
$TTL 86400	; 1 day
1.168.192.in-addr.arpa	IN SOA	ns1.magedu.com. admin.magedu.com. (
2016070902 ; serial
3600       ; refresh (1 hour)
120        ; retry (2 minutes)
259200     ; expire (3 days)
86400      ; minimum (1 day)
)
NS	ns1.magedu.com.
NS	ns2.magedu.com.
$ORIGIN 1.168.192.in-addr.arpa.
10			PTR	mx1.magedu.com.
100			PTR	ns2.magedu.com.
104			PTR	ns1.magedu.com.
20			PTR	www.magedu.com.
PTR	web.magedu.com.

[root@bogon slaves]#
[root@bogon slaves]# cat magedu.com.slave.zone
$ORIGIN .
$TTL 86400	; 1 day
magedu.com		IN SOA	ns1.magedu.com. admin.magedu.com. (
2016070902 ; serial
3600       ; refresh (1 hour)
120        ; retry (2 minutes)
259200     ; expire (3 days)
86400      ; minimum (1 day)
)
NS	ns1.magedu.com.
NS	ns2.magedu.com.
MX	10 mx1.magedu.com.
$ORIGIN magedu.com.
mx1			A	192.168.1.10
ns1			A	192.168.1.104
ns2			A	192.168.1.100
web			CNAME	www
www			A	192.168.1.20
ok经过查此处已经完成了同步了。

四、子域授权
我们已经拥有域magedu.com
现在我有一个子域sport.magedu.com需要对此子域进行解析
1)主DNS服务器上编辑/var/named.rfc1912.zones文件在此中添加子域的区域文件
[root@bogon named]# vim /etc/named.rfc1912.zones
zone "sport.magedu.com" IN {
type master;
file "sport.magedu.com.zone";
};
2)在/var/named/目录下建立sport.magedu.com.zone的区域解析数据

[root@bogon named]# vim /var/named/sport.magedu.com.zone
$TTL  1D
@       IN   SOA   ns1.sport.magedu.com.    admin.sport.magedu.com.  (
2016070902
1H
2M
3D
1D
)
IN  NS  ns1.sport.magedu.com.
ns1     IN  A   192.168.1.100
www     IN  A  192.168.1.200
3)重启服务或者重新加载服务rndc reload
4)测试我们子域解析是否正常
[root@bogon ~]# dig www.sport.magedu.com @192.168.1.104

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.sport.magedu.com @192.168.1.104
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31997
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.sport.magedu.com.		IN	A

;; ANSWER SECTION:
www.sport.magedu.com.	86400	IN	A	192.168.1.200

;; AUTHORITY SECTION:
sport.magedu.com.	86400	IN	NS	ns1.sport.magedu.com.

;; ADDITIONAL SECTION:
ns1.sport.magedu.com.	86400	IN	A	192.168.1.100

;; Query time: 0 msec
;; SERVER: 192.168.1.104#53(192.168.1.104)
;; WHEN: Tue Jun 21 23:12:13 2016
;; MSG SIZE  rcvd: 88


五、基于bind view实现智能DNS
由于我们网络访问时候可能使用的是电信和联通的IP地址,现在我想要实现用户DNS请求的时候能够判断用户是电信还是联通从而给用户对应网络运营商IP地址。
###此实验是单独的与以上没关系。

1、安装bind服务
2、在主配置文件中定义acl规则
acl liantong {                ###此处定义联通的acl
192.168.1.104;        ###模拟192.168.1.104是联通客户端
};

acl dianxin {                ###定义电信acl
192.168.1.100;       ###模拟192.168.1.100是电信客户端
};
####此规则需要添加到options前面
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; };


3、定义view
view  liantong {
match-clients {liantong;};  调用lingtong定义的acl
include "/etc/liantong.zones"; 定义linatong区域数据存放位置
};
view  dianxin {
match-clients {dianxin;};
include "/etc/dianxin.zones"
};
view  otherview  {
match-clients  {any;};
include "/etc/named.rfc1912.zones";
};

//include "/etc/named.rfc1912.zones";###此行注释掉
include "/etc/named.root.key";


4、将/etc/named.conf中的根区域移动到/etc/naemd.rfc1912.zones此处来,把原来的根文件需要给删除了
[root@bogon ~]# vim /etc/named.rfc1912.zones
zone "." IN {
type hint;
file "named.ca";
};

5、建立数据区域文件
[root@bogon ~]# vim /etc/liantong.zones
zone "magedu.com." IN {
type master;
file liantong.zone;
};

[root@bogon ~]# vim /etc/dianxin.zones
zone "magedu.com" IN {
type master;
file "dianxin.zone";
};


6、更改权限:
[root@bogon ~]# chown :named /etc/liantong.zones /etc/dianxin.zones
[root@bogon ~]# ll /etc/liantong.zones
-rw-r--r--. 1 root named 64 6月  21 23:54 /etc/liantong.zones
[root@bogon ~]# ll /etc/dianxin.zones
-rw-r--r--. 1 root named 62 6月  21 23:55 /etc/dianxin.zones


7、建立数据区域文件的解析库数据
[root@bogon ~]# vim /var/named/liantong.zone
$TTL 1D

@    IN  SOA  ns1.magedu.com. admin.magedu.com. (
2016070401
1D
1H
1W
3H
)

IN  NS   ns1
ns1    IN   A  192.168.1.108
www    IN   A  5.5.5.5  (模拟联通IP)
[root@bogon ~]# vim /var/named/dianxin.zone
$TTL  1D
@   IN  SOA  ns1.magedu.com.   admin.magedu.com. (
2016070401
1D
1H
1W
3H
)
IN  NS   ns1

ns1    IN   A  192.168.1.108
www     IN  A  6.6.6.6(模拟电信IP)


8、更改权限
[root@bogon named]# chown :named dianxin.zone liantong.zone
drwxrwx---. 2 named named 4096 5月  11 07:07 data
-rw-r--r--. 1 root  named  410 6月  22 00:05 dianxin.zone
drwxrwx---. 2 named named 4096 5月  11 07:07 dynamic
-rw-r--r--. 1 root  named  407 6月  22 00:05 liantong.zone
-rw-r-----. 1 root  named 3171 1月  11 22:12 named.ca
-rw-r-----. 1 root  named  152 12月 15 2009 named.empty
-rw-r-----. 1 root  named  152 6月  21 2007 named.localhost
-rw-r-----. 1 root  named  168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 4096 5月  11 07:07 slaves
9、重启服务测试:
[root@bogon ~]# dig www.magedu.com @192.168.1.108

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.magedu.com @192.168.1.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17536
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
###此处可以看到电信模拟地址以解析

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

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.108

;; Query time: 1 msec
;; SERVER: 192.168.1.108#53(192.168.1.108)
;; WHEN: Thu May 12 01:22:51 2016
;; MSG SIZE  rcvd: 82
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: