lihu129c 发表于 2019-2-17 11:28:14

Linux中的DNS服务

DNS服务

DNS(Domain Name Server,域名服务器)是进行域名和与之对应的IP地址转化的服务器。DNS中保存了一张域名和与之对应的IP地址的表,以解析消息的域名,C/S,53/udp, 53/tcp ,是属于应用层协议

DNS的服务器的分类


[*]
缓存域名服务器
  只提供域名解析结果的缓存功能,目的在于提高数据查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

[*]
主域名服务器
  维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所有负责区域的地址数据文件。
 

[*]
从域名服务器
  与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询结果都是一样的。
 


DNS的服务器的查询模式


[*]
DNS服务器递归查询
  当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的唯高速缓存中查询出结果,反馈给客户机,此过程称为递归查询
 http://i2.运维网.com/images/blog/201809/16/8c072465a4863ef1651ec05791880cb5.jpg
 

[*]
DNS服务器迭代查询

当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的唯高速缓存中查询发现没有结果,此时该DNS服务器以DNS客户的身份向其他DNS服务器发送解析请求或向根域名服务器发送请求,此过程称为迭代查询
http://i2.运维网.com/images/blog/201809/16/a122cfabacc7e16ece5060d511cef550.jpg
 

DNS服务的资源记录

DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型

语法:name IN rr_type value 


[*]
SOA 起始授权记录,一个区域有且只有一个起始授权记录,位于解析库的第一条记录
  name: 当前区域的名字,例如“xxx.com.”
value: 有多部分组成
(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如 linuxedu.magedu.com
(3) 主从服务区域传输相关定义以及否定的答案的统一的TTL

$TTL 1D
@       IN SOA@ admin.xxx.com. (
0       ; serial   序列号
1D      ; refresh    刷新时间
1H      ; retry    重试时间
1W      ; expire   过期时间
3H )    ; minimum    否定答案的TTL值
[*]
A:域名 -> IP正向解析

$TTL 1D
@       IN SOA@ xxx.com.admin.xxx.com. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
xxx.com.                NS   ns1.xxx.com.
ns1.xxx.com.A    192.168.172.129
[*]
AAAA:域名 -> IPv6    正向解析
[*]
PTR:IP -> 域名   反向解析

$TTL 1D
@       IN SOAxxx.com. . admin.magedu.com. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
@                        NS   ns1.xxx.com.
192.168.172.129   PTRns1.xxx.com.
[*]
NS : 标明当前区域的DNS服务器
  name: 当前区域的名字
value: 当前区域的某DNS服务器的名字
注意:一个区域可以有多个NS记录
例如:

xxx.com. IN NSns1.xxx.com.
xxx.com. IN NSns2.xxx.com.
  注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略
(2) 对NS记录而言,任何一个ns 记录后面的服务器名字,都应该在后续有一个A记录

[*]
CNAME :别名记录
[*]
MX : 邮件交换器

 

DNS服务的主从服务器和正反向解析搭建
  
准备条件:192.168.0.254为主服务器,192.168.0.253为从服务器


[*]两台服务器安装bind
# yum -y install bind\
[*]在主服务器上操作编辑配置文件
# vim /etc/named.conf
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; };
allow-transfer { 192.168.0.253; };#授权才可以做从服务器
zone "." IN {
type hint;
file "named.ca";
};
zone "alice.com" IN {
type master;
file "named.alice.com";
};
zone "0.168.192.in-addr-arpa" IN {
type master;
file "named.192.168.0";
};
};
[*]编辑解析库文件和反向解析库文件
# vim /var/named/named.alice.com $TTL 1D
@       IN SOAmaster.alice.com. rname.invalid. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
@       IN NS   master.alice.com.
master.alice.com. IN A192.168.0.254
@       IN NS   slave.alice.com.
slave.alice.com.IN A192.168.0.253
client.alice.com. IN A192.168.0.10
# vim /var/named/named.192.168.0
$TTL 1D
@       IN SOAmaster.alice.com. rname.invalid. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
@       NS      master.alice.com.
@       NS      slave.alice.com.
254   IN PTRmaster.alice.com.
253   IN PTRslave.alice.com.
10      IN PTRclient.alice.com.
[*]开启服务
# service named start
Starting named:                                          
[*]从服务器上的配置文件
# vim /etc/named.conf
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; };
zone "." IN {
type hint;
file "named.ca";
};
zone "alice.com" IN {
type master;
file "slaves/named.alice.com";
};
zone "0.168.192.in-addr-arpa" IN {
type master;
file "slaves/named.192.168.0";
};
[*]从服务器开启服务
[*]从服务器的目录权限
# ll
total 40
-rw-r-----. 1 rootnamed230 Sep 15 05:25 192.168.172.zone
drwxrwx---. 2 named named 4096 Sep 16 03:41 data
drwxrwx---. 2 named named 4096 Sep 16 04:24 dynamic
-rw-r-----. 1 rootnamed 3171 Jan 112016 named.ca
-rw-r-----. 1 rootnamed713 Sep 15 21:13 named.ca.rpmsave
-rw-r-----. 1 rootnamed152 Dec 152009 named.empty
-rw-r-----. 1 rootnamed152 Jun 212007 named.localhost
-rw-r-----. 1 rootnamed168 Dec 152009 named.loopback
drwxrwx---. 2 named named 4096 Sep 16 04:52 slaves
[*]
测试命令,dig或者nslookup即可
 

DNS服务的模拟跟服务器及主从同步
  
准备条件:
client:192.168.153.5
caching: 192.168.153.10
. : 192.168.152.9
com: 192.168.153.8
magedu: master 192.168.153.7slave 192.168.153.6


[*]除client以外,所以有服务器安装bind,并清空防火墙和selinux
# yum -y install bind;setenforce 0;iptables -F
[*]  安装bind的服务器的配置文件

    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 no;#caching服务器写为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";};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
[*]除.服务器以外,其他服务器修改named.ca文件
# vim /var/named/named.ca
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A   192.168.153.9
[*]配置.服务器
a. name.conf中删除name.ca的项目
b.rfc1912文件
    zone "." IN {
type master;
file "root.zone";
};
  c. root.zone

    $TTL 1D
@   IN SOAns. admin. (
0   ; serial
1D; refresh
1H; retry
1W; expire
3H )    ; minimum
NSns.
ns. A   192.168.153.9
com.    NSns.com.
ns.com. A   192.168.153.8
  d.启动named

[*]配置.com服务器
a. rfc1912文件
    zone "com" IN {
type master;
file "com.zone";
};
  b. com.zone

    $TTL 1D
@   IN SOAns.com. rname.invalid. (
0   ; serial
1D; refresh
1H; retry
1W; expire
3H )    ; minimum
NSns.com.
ns.com. A   192.168.153.8
magedu.com. NS ns1.magedu.com.
magedu.com. NS ns2.magedu.com.
ns1.magedu.com. A   192.168.153.7
ns2.magedu.com. A   192.168.153.6
  c.启动named

[*]配置主magedu.com
a. rfc1912文件
    zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
  b. magedu.com.zone

    $TTL 1D
@   IN SOAns1.magedu.com. rname.invalid. (
2018091301; serial
1D; refresh
1H; retry
1W; expire
3H )    ; minimum
NSns1.magedu.com.
NSns2.magedu.com.
A   192.168.153.7
ns2 A   192.168.153.6
www A   1.1.1.1
ftp A   2.2.2.2
*   A   10.10.10.10
  c.启动named

[*]配置从magedu.com
a. rfc1912文件
    zone "magedu.com" IN {
type slave;
masters { 192.168.153.7; };
file "slaves/MAGEDU.COM.ZONE";
};
  b. 启动named

[*]client修改/etc/resolv.conf
# vim /etc/resolv.conf
domain magedu.com
search magedu.com localdomain
nameserver 172.18.0.1
nameserver 192.168.172.1
nameserver 192.168.153.10   #指向缓存caching
[*]  测试

# nslookup ftp.magedu.com
Server:   192.168.83.132
Address:    192.168.83.132#53
Non-authoritative answer:
Name:   ftp.magedu.com
Address: 2.2.2.2
# nslookup hsh.magedu.com
Server:   192.168.83.132
Address:    192.168.83.132#53
Non-authoritative answer:
Name:   hsh.magedu.com
Address: 10.10.10.10
[*]注意:测试时要清空caching-server上的缓存 rndc flush



页: [1]
查看完整版本: Linux中的DNS服务