admin管理员组文章数量:1530059
DNS详解
- DNS简介
- 权威名称服务器
- 非权威 / 递归名称服务器
- 部署DNS服务器
- DNS高速缓存
- DNS资源记录
- DNS排错
- 实验测试
- DNS正向解析
- DNS轮询机制(负载均衡)
- DNS邮件服务
- DNS反向解析
- DNS双向解析
- 辅助DNS
- DNS远程更新
- 基于IP
DNS简介
- 百度百科:域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
更多有关DNS原理的知识,查看这篇文章。
权威名称服务器
- 权威名称服务器:存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。
- 权威名称服务器的类型包括:
Master :包含原始区域数据。有时称作 “主要“名称服务器。
Slave:备份服务器 , 通过区域传送从 Master 服务器获得的区域数据的副本。有时称作 “次要 ”名称服务器。
非权威 / 递归名称服务器
- 非权威 / 递归名称服务器:客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括仅缓存名称服务器:仅用于查找, 对于非重要数据之外的任何内容都不具有权威性。
部署DNS服务器
- 我们的dns服务器以我电脑的一台虚拟机为实验平台进行部署。
- (1)打开虚拟机,配置其网络。
图 - (2)在真机开启火墙伪装功能。(目的?)
systemctl start firewalld.service
firewall-cmd --list-all
firewall-cmd --add-masquerade ##开启火墙伪装
- (3) 修改虚拟机主机名,为了明确看到是dns服务器。
图 - (4)搭建yum源,并且安装dns服务器软件。
yum search dns ##找dns相关软件,发现是bind。
systemctl start named ##开启dns服务,就是named
rpm -ql bind ##查看DNS服务在系统中的安装文件路径
配置文件 | 作用 |
---|---|
/etc/named.conf | 主配置文件 |
/etc/named.rfc1912.zones | 子配置文件,防护主配置文件难读,把dns的域名文件分离:主文件有说明:named.rfc1912.zones,这里会记录相关的域名dns类型和对应的文件 |
/etc/rndc.conf | 加密文件 |
/var/named | 数据文件所在目录,DNS服务器所使用的一些数据文件 |
/var/named/named.localhost | DNS服务器所使用的其他数据文件,正向解析 |
/var/named/named.loopback | DNS服务器所使用的其他数据文件,反向解析 |
/var/named/slaves | 备份主机 |
- (5)在dns服务器端需要在火墙列表中加入dns服务
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
firewall-cmd --list-all
这里,我们的DNS服务器的基础配置就完成了,接下来,需要进行各项具体的DNS服务配置。
DNS高速缓存
- 存储已经查找到的有效名和地址的DNS服务器,同时检测无效名和地址。任何DNS服务器可以缓冲数据,其中包括主、次和只高速缓存DNS服务器。
- 简而言之,就是为了提高域名解析速度。
- 我们的实验过程就是在企业内部使用一台服务器作为我们的DNS高速缓存服务器,其作用是通过该dns高速缓存服务器去请求权威dns服务器请求域名解析,当成功时,形成对应缓存,当企业内部其他主机再次需要请求已缓存的域名解析时,响应速度会非常快。
DNS资源记录
- 在实验开始之前,需要先了解一些dns服务器的相关信息。
- DNS采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型。
资源记录类型 | 含义 |
---|---|
A | 将域名解析到IPv4地址的DNS记录 |
AAAA | 用来将域名解析到IPv6地址的DNS记录 |
CNAME | 别名记录。允许将多个名字映射到同一台计算机。 |
PTR | 反向解析,用来将IPv4/IPv6地址解析为域名 |
MX | 用域名的邮件交换器 ( 向何处发送电子邮件 ) |
NS | 指定该域名由哪个DNS服务器来进行解析 |
SOA | 授权起始 , DNS 区域的信息 ( 管理信息 ) |
DNS排错
- 显示来自DNS查找的详细信息,其中包括为什么查询失败。
错误信息 | 含义 |
---|---|
NOERROR | 查询成功 |
NXDOMAIN | 服务器提示不能存在这样的名称 |
SERVFAIL | DNS服务器停机或DNSSEC响应验证失败 |
REFUSED | DNS服务器拒绝回答(也许是出于访问控制) |
实验测试
- 第一步,启动dns服务。
系统中加密字符保存在加密设别里----->cat /dev/random
,因为是初次启动,系统加密字符不够,需要在虚拟机(也就是我们的DNS服务器)中敲击键盘或者晃动键盘。
systemctl start named ##然后就可以成功开启服务。
- 第二步,查看named服务(也就是dns服务)开启的ip及端口
netstat -antlupe | grep named
关于netstat,主要用来显示网络状态,这里是相关详细介绍。
参数 | 含义 |
---|---|
a | all 显示所有连线中的Socket |
n | 不做解析只显示IP地址 |
t | tcp协议 |
l | 活跃的 |
u | udp协议 |
p | 进程名称 |
e | 扩展信息 |
使用netstat可以发现,named服务只在本地回环地址127.0.0.1上53号端口开启,所以需要修改其主配置文件。
- 第三步,修改
/etc/named
配置文件内容,完成后重启服务。
13行 listen-on port 53 { any; }; ##将53端口的ip设置为本机ip,这样同一网段的的ip就可以访问
19行 allow-query { any; }; ##允许哪台主机询问,该为所有都可以
20行 forwarders{114.114.114.114;}; ##添加这行的目的是,不问根域名.,直接询问114.114.114.114,为了加快访问速度
34行 dnssec-validation no; ##不进行安全检测
- 测试
新开一台虚拟机和真机模拟,配置其DNS客户机配置文vim resolv.conf
,添加nameserver为刚刚配置好的dns服务器IP。
图
图 - 我们使用dig命令进行测试,注意,dig 命令主要用来从 DNS 域名服务器查询主机地址信息。
图
可以发现,当一台主机解析过某域名后,另一台主机再次查询时,响应时间非常短,说明了我们的dns高速缓存的作用。
DNS正向解析
- 顾名思义,正向解析就是将域名解析为ip地址的过程。
- (1)在dns子配置文件
vim /etc/named.rfc1912.zones
中,复制第19-23行的内容,并修改这几行为:
zone "westos" IN { ##你要维护的域,这里是westos
type master; ##类型是主DNS
file "westos.zone"; ##在这个文件中查询
allow-update { none; };
};
- (2)然后找到named服务的数据文件
cd /var/named
,找到一个模板named.localhost,复制为你刚指定的文件,因为涉及权限,所以,复制一定要-p复制权限。
cp -p named.localhost westos.zone
- (3)修改westos.zone的文件内容
修改之前,我们对这里的一些参数进行说明:
参数 | 说明 |
---|---|
ttl 1D | 客户端缓存能保存的时间 1天 |
@ | 是用来补全正常域名。没有. 就会补齐域名,有.就不会补齐 |
图
- (4)重启服务,进行测试。
图
有关dig输出部分内容的含义如下:
相关内容 | 含义 |
---|---|
标题 | 指出关于查询和答案的信息 , 其中包括响应状态和设置的任何特殊标记 |
QUESTION | 提出实际的 DNS 查询 |
ANSWER | 响应 ( 如果有 ) |
AUTHORITY | 负责域 / 区域的名称服务器 |
ADDITIONAL | 提供的其他信息 , 通常是关于名称服务器 |
底部的注释 | 指出发送查询的递归名称服务器以及获得响应所花费的时间 |
DNS轮询机制(负载均衡)
- DNS的轮询是指一个域名针对多个ip的A记录的解析,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的ip上,而不同的ip可能对应不同的主机,这样就避免了单一主机负载过高,这样就实现了简单的负载均衡。
- 实现方式:CNAME——把外部域名转化成内部域名。这样就可以,一个域名对应多台主机,当请求来时,轮询访问RR,降低负载。
- (1)在westos.zone文件中加入以下内容,并重启服务
图 - (2)使用dig进行测试,可以发现,两次访问同一域名,得到IP顺序不一样,侧面避免了一台主机的负载过大。
图
DNS邮件服务
- SMTP:简单邮件传输协议(发送方)。SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange) DNS。
- POP3:全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”(接收方)。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。端口号:110。
- MX记录:邮件交换记录 (MX record)是域名系统(DNS)中的一种资源记录类型,用于指定负责处理发往收件人域名的邮件服务器。MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器。简单邮件传输协议(SMTP)会根据MX记录的值来决定邮件的路由过程。
- 实验:
- (1)在DNS服务端,westos.zone文件中加入以下内容,并重启服务
图 - (2)在客户端进行测试,注意我们这里并没有在服务器端开启master(邮件服务)的IP和端口。
图
DNS反向解析
- PTR记录(Pointer Record):是电子邮件系统中的邮件交换记录的一种,常被用于反向地址解析,也就是将ip地址解析为域名的过程。
- (1)在dns子配置文件
vim /etc/named.rfc1912.zones
中,复制第36-40行的内容,并修改这几行为:
zone "254.25.172.in-addr.arpa" IN { ##反向的网络位
type master; ##类型是主DNS
file "172.25.254.ptr"; ##在这个文件中查询
allow-update { none; };
};
- (2)然后进入/var/named/ 复制named.loopback模板文件到172.25.254.ptr文件,注意复制时要加-p, 权限也要复制。
图
- (3)编辑文件
vim 172.25.254.ptr
,并重启服务:
图 - (4)dns客户端进行测试:
图
DNS双向解析
- 目的:实现内网主机和外网主机访问同一网站域名,定义到不同的ip
- 注意,这里本机相当于内网 其他主机相当于外网(测试用,效果更明显)
- (1)我们在数据目录/var/named下建立一个外网的域名文件,复制-p westos.zone相应的域名具体文件 为外网的westos.inter.zone
cp -p westos.zone westos.inter.zone ##注意,一定要-p复制
vim westos.inter.zone
:%s/172.25.254/1.1.1/ ##vim下修改所有172.25.254网段为1.1.1网段
图
- (2)建立一个外网的子配置文件,修改其内容,读外网的域名文件:复制 -p /etc/named.rfc1912.zones 外网域名统一文件
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter.zones ##复制加-p
图
- (3)使用man 5 named.conf 查看client使用方法
图 - (4)打开named.conf 注释原来的zone ,复制相关方法进来,view 内部网,写匹配的用户网段,写include 指向的文件;view 外部网,写匹配的用户网段,写include 指向的文件
图 - (5)重启服务并测试:本虚拟机(DNS服务器)代表内部网,其他虚拟机或真机代表外部网。
图
辅助DNS
- 辅助dns是针对外网。形成dns集群:主dns通知辅助dns ,形成数据同步。
注意:DNS主配置文件中注释掉即表示全部打开。 - (1)首先,为了避免出错,将主dns中还原原来的环境,及还原双向解析之前的配置。
图 - (2)再在一台虚拟机里部署dns服务, (注释就是any) 记得关火墙。操作与之前相同,修改其主机名为dns_slave,并修改配置文件/etc/resolv.conf中的nameserver为他自己(辅助dns)的ip。
- (3)
netstat -antlupe | grep named
查看是否成功
图 - (4)关键点:在辅助DNS服务器中,修改/etc/named.rfc1912.conf 内容
zone "westos" IN {
type slave;
masters { 172.25.254.125; };
file "slaves/westos.zone";
allow-update { none; };
};
- (5) 一定注意符号和名字写对
- (6)此时重启named服务 会发现slaves下有同步的westos.zone
图 - (7)以上操作都在dns辅助服务器侧,接下来在主机侧进行
8 测试 dig 指定域名
主机侧: - (8) 修改 /etc/named.rfc1912.conf 内容 加
also-notify{辅助dnsIP;};
图 - (9)
vim /var/named/westos.zone
修改完域名对应IP后,记得修改标示符号serial 最长10位,可以记录当天日期下天几次修改 ,每一次都必须写,而且是这个标识符只能更大,手动通知。
图
注意:
标识 | 含义 |
---|---|
serial: | 变化标示符 |
refresh | 自动刷新(不要太频繁) |
retry | 不成功再次通知 |
expire | 过期时间 |
mini | 最小更新频率 |
- (10) 重启服务并测试:
图
主dns发生变化,辅助dns就会更新了。
DNS远程更新
- 前提:在进行此实验之前,需要先将要欲更新的DNS服务器(也就是主dns服务器)的selinux设置为disabled,或者在enforcing的状态下将这个的bool值设为1
图
基于IP
- (1)在需要更新的DNS服务器中,首先将数据目录/var/named下的域名文件复制到一个目录下,保留备份。
cp -p westos.zone /opt/
- (2)修改要更新的DNS服务器其子配置文件
vim /etc/named.rfc1912.conf.
,并重启服务:
zone "westos" IN {
type master;
file "westos.zone";
also-notify {172.25.254.225};
allow-update { 172.25.254.125; }; ##允许本机更新
};
图
- (3)使用
nsupdate
测试
图 - (4)查看日志,排查错误。
图 - (5)更改/var/named权限为775,否则无法创建.jnl文件。
图 - (6)测试:添加和删除对应的域名
版权声明:本文标题:企业级DNS详解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726533564a1074434.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论