0
点赞
收藏
分享

微信扫一扫

linux的dns服务

未定义变量 2022-01-10 阅读 82

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

举报

相关推荐

0 条评论