Linux中的DNS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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服务器从服务器本地的唯高速缓存中查询出结果,反馈给客户机,此过程称为递归查询
?
-
DNS服务器迭代查询
当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的唯高速缓存中查询发现没有结果,此时该DNS服务器以DNS客户的身份向其他DNS服务器发送解析请求或向根域名服务器发送请求,此过程称为迭代查询
?
?
DNS服务的资源记录
?
DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型
?
语法:name[TTL] 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 SOA xxx.com. . admin.magedu.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS ns1.xxx.com. 192.168.172.129 PTR ns1.xxx.com.
-
NS : 标明当前区域的DNS服务器
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字
注意:一个区域可以有多个NS记录
例如:xxx.com. IN NS ns1.xxx.com. xxx.com. IN NS ns2.xxx.com.
注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略
(2) 对NS记录而言,任何一个ns 记录后面的服务器名字,都应该在后续有一个A记录 -
CNAME :别名记录
-
MX : 邮件交换器
?
?
DNS服务的主从服务器和正反向解析搭建
?
准备条件:192.168.0.254为主服务器,192.168.0.253为从服务器
- 两台服务器安装bind
[[email protected] ~]# yum -y install bind
- 在主服务器上操作编辑配置文件
[[email protected] ~]# 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"; }; };
- 编辑解析库文件和反向解析库文件
[[email protected] ~]# vim /var/named/named.alice.com $TTL 1D @ IN SOA master.alice.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS master.alice.com. master.alice.com. IN A 192.168.0.254 @ IN NS slave.alice.com. slave.alice.com. IN A 192.168.0.253 client.alice.com. IN A 192.168.0.10 [[email protected] ~]# vim /var/named/named.192.168.0 $TTL 1D @ IN SOA master.alice.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS master.alice.com. @ NS slave.alice.com. 254 IN PTR master.alice.com. 253 IN PTR slave.alice.com. 10 IN PTR client.alice.com.
- 开启服务
[[email protected] ~]# service named start Starting named: [ OK ]
- 从服务器上的配置文件
[[email protected] ~]# 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"; };
- 从服务器开启服务
- 从服务器的目录权限
[[email protected] named]# ll total 40 -rw-r-----. 1 root named 230 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 root named 3171 Jan 11 2016 named.ca -rw-r-----. 1 root named 713 Sep 15 21:13 named.ca.rpmsave -rw-r-----. 1 root named 152 Dec 15 2009 named.empty -rw-r-----. 1 root named 152 Jun 21 2007 named.localhost -rw-r-----. 1 root named 168 Dec 15 2009 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.7 slave 192.168.153.6
- 除client以外,所以有服务器安装bind,并清空防火墙和selinux
[[email protected] ~]# 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文件
[[email protected] ~]# 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 SOA ns. admin. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.
ns. A 192.168.153.9
com. NS ns.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 SOA ns.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.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 SOA ns1.magedu.com. rname.invalid. (
2018091301 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.magedu.com.
NS ns2.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
- A 10.10.10.10
- 配置从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
[[email protected] ~]# 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
-
测试
[[email protected] ~]# 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 [[email protected] ~]# 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
以上是关于Linux中的DNS的主要内容,如果未能解决你的问题,请参考以下文章