DNS概念
DNS(Domain Name Server)是计算机域名服务的缩写,能够提供域名与IP地址的解析服务。它包含了用来按照一种分层结构定义Internet上使用的主机名字的语法,还有名字的授权规则,以及为了定义名字和IP 地址的对应,系统需要进行的所有设置。
实际上,DNS 是一个分布式数据库。它允许对整个数据库的各个部分进行本地控制;同时整个网络也能通过客户——服务器方式访问每个部分的数据,借助备份和缓存机制,DNS 将更强壮和足够的性能。
域名:
域名又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
FQDN:
FQDN(Fully Qualified Domain Name) 全质量域名/完全合格域名,实际上指的是主机名的全路径,从全质量域名可以看出一台主机在域名树中的位置
DNS域名服务器
DNS的结构体系(树状结构体系)
常见的域名后缀
com:Commercial organizations,商业组织,公司
net:Network operations and service centers,网络服务商
org:Other organizations,非盈利组织
gov:Governmental entities,政府部门
edu:Educational institutions,教研机构
int:International organizations,国际组织
DNS查询方式
递归查询:客户机向dns服务器发送请求,DNS服务器会使用一个准确的查询结果回复给客户机,如果DNS服务器本地没有储存查询的DNS信息,那么它会查询其他的DNS服务器,并将查询结果提交给客户机。对于客户机来讲只发出一次请求。
迭代查询:客户机向dns服务器发送请求,如果该服务器本地没有储存查询的DNS信息,那么它会告诉客户机另一台DNS服务器的地址,客户机在向这台DNS服务器查询DNS信息,依次循环直到返回结果。
DNS服务配置
1.软件安装
yum install -y bind
2.查看安装文件
rpm -ql bind
3.主要文件
/etc/logrotate.d/named …DNS服务的日志滚动文件
/etc/named.conf …DNS服务的主配置文件
/var/named …解析文件的的根目录
/var/named/slaves …从服务器同步的默认目录
DNS解析配置文件
4.编辑DNS服务的主配置文件
vim /etc/named.conf
options { …全局配置段
listen-on port 53 { 127.0.0.1; }; …监听IPv4的端口和地址
listen-on-v6 port 53 { ::1; }; …监听IPv6的端口和地址
directory “/var/named”; …定义解析文件的根目录
dump-file “/var/named/data/cache_dump.db”; …缓存文件
allow-query { localhost; }; …允许给那些主机解析
pid-file “/run/named/named.pid”; …进程文件
};
logging { …DNS服务日志配置
};
zone “.” IN { …正向解析域
type hint; …DNS服务器类型
file “named.ca”; …DNS解析文件路径
};
******DNS服务类型分为:master(主) forward (转发) slave(从)
zone “IP地址网段反写.in-addr.arpa” IN {
type master;
file “解析文件名”;
};
编辑DNS解析文件
在/var/named下创建一个解析文件,解析文件名为主配置文件中定义的文件名
*****注意:named进程要对解析文件有读权限
vim 解析文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
5.重启
systemctl start named
systemctl enable named
6.关闭防火墙
systemctl stop firewalld.service
7.客户端测试解析
把nds指向dns服务器,再使用nslookup命令解析
nslookup 域名 …把域名解析为IP地址
nslookup ip地址 …把IP地址解析为域名
或者
dig 域名 …把域名解析为IP地址
dig -x IP地址 …把IP地址解析为域名
DNS泛解析
在解析文件中使用关键词 $GENERATE
1.正向解析的泛解析 $GENERATE 10-20 www$ IN A 192.168.0.$
把www10-www20的主机解析为192.168.0.10-20
2.反向解析的泛解析 $GENERATE 10-20 $ PTR www$.example.com.
把所在网段下的10-20的地址解析为www(10-20).example.com
****$引用$GENERATE定义的范围
DNS的访问控制
在主配置文件的开头定义一个acl
vim /etc/named.conf
acl test { …定义acl名单
127.0.0.1; …允许的IP地址
!192.168.0.200; …不允许的IP地址
192.168.0.0/24 …允许的网段
};
options {
…
allow-query { test; }; …acl的应用
…
};
DNS的主从
1.DNS的从服务器
vim /etc/named.conf
zone “example.com” IN {
type slave;
file “slaves/example.com.slave.zone”;
masters { 172.30.110.28; };
};
2.重启从服务器:重启后从服务器会向主服务器同步DNS解析文件,存储在slaves/example.com.slave.zone文件中,实现读写分离,减轻主服务器解析压力
systemctl restart named
3.客户端把dns指向从服务器,再做测试
DNS子域
子域授权的作用:
适用于同一个 DNS 组织
父/子域的解析工作由不同的 DNS 服务器负责
父 DNS 服务器应该有为子域迭代的能力
1.DNS父域配置主配置文件
vim /etc/named.conf
options {
…
dnssec-enable no; …是否允许DNS之间安全通信
dnssec-validation no; …是否允许DNS安全生效
…
};
zone “example.com” IN {
type master;
file “example.com.zone”;
};
2.设置父域解析文件
vim /var/named/example.com.zone
…
NS node3.example.com.
node3 A 192.168.0.10
test.example.com. IN NS node4.test.example.com. …子域. NS 子域的DNS 服务器的FQDN
node4.test.example.com. IN A 172.30.110.27 …子域DNS服务器 A 子 域DNS服务器的IP地址
3.子域DNS服务器的配置文件
vim /etc/named.conf
…
zone “test.example.com” IN {
type master;
file “test.example.com.zone”;
};
…
4.子域DNS服务器的解析文件
vim test.example.com.zone
…
NS node4.test.example.com.
node4 A 172.30.110.27
www A 192.168.2.222
5.测试
把客户端的DNS指向父域DNS服务器
[root@node3 named]# host node3.example.com …解析example.com域
node3.example.com has address 192.168.0.10
[root@node3 named]# host node4.test.example.com …解析test.example.com子域
node4.test.example.com has address 172.30.110.27
DNS补充(递归/迭代)
如何开启/禁用递归
递归查询是默认开启的
也可以设置 recursion yes;来明确启用
若要禁止递归
需要设置 recursion no;
修改配置文件:
[root@svr7 ]# vim etc/named. conf
options {
directory “/var/named”;
recursion no; / /禁用递归
};
……
验证迭代查询
● dig 命令,更专业的 DNS 测试工具
-由软件包 bind- utils 提供
-格式:dig @DNS服务器 目标地址
[root@svr7-]#dig @192.168.4.7 www.bj.cs2c.cn
;;AUTHORITY SECTION:
bj .cs2c. cn. 86400 IN NS pc207.bj.cs2c.cn.
;;ADDITIONAL SECTION:
pc207.bj.cs2c.cn. 86400 IN A 192.168.4.207