dns 从哪里获取 ip 地址?
- 本地缓存: dns服务器会将先前查询过的域名和对应的ip地址存储在本地缓存中,以便在后续查询中加快响应速度。如果之前已经查询过某个域名,dns服务器会直接从本地缓存中获取对应的ip地址。
- 递归查询: 如果本地缓存中没有目标域名的ip地址,dns服务器会发起递归查询。它首先向根域名服务器发送查询请求,根域名服务器会返回指向负责顶级域(如.com、.net、.org等)的权威域名服务器的ip地址。然后,dns服务器会向权威域名服务器发送查询请求,直到获取到目标域名的ip地址或者查询失败。
- 转发查询: dns服务器还可以配置为转发查询,即将未命中本地缓存的查询请求转发给其他dns服务器处理。通常情况下,本地dns服务器会将这些请求发送给isp(internet service provider,互联网服务提供商)提供的dns服务器或者其他可靠的dns服务器进行处理。
dns的作用
- 域名解析: dns最主要的作用是将域名解析为对应的ip地址。当用户在浏览器中输入一个域名时,dns系统会将这个域名转换为相应的ip地址,然后浏览器才能通过ip地址找到并访问目标网站。
- 负载均衡: 通过dns解析可以实现负载均衡,即将多个服务器的域名解析为不同的ip地址并在不同的时间将其返回给用户。这样可以分散流量到多台服务器上,提高网站的访问速度和稳定性。
- 邮箱服务器定位: dns也用于指定邮件服务器的ip地址。当发送电子邮件时,邮件服务器通过dns解析找到收件人域名的邮件服务器ip地址,然后发送邮件。
- 防止dns劫持: dns还能够通过各种方式来防止dns劫持,即恶意修改dns解析结果以实施网络攻击或监视用户活动的行为。例如,dnssec(dns security extensions)可以通过数字签名来保护dns解析结果的完整性和真实性。
- 提供其他网络服务: dns还可以用于提供其他网络服务,如反向dns解析(将ip地址解析为域名)、动态域名解析(将动态ip地址映射到域名)、域名注册等。
接下来讲讲我们在本地搭建dns解析
以下实验测试均在vmware中 centos操作系统
首先服务器的配置
1.服务器配置
配置ip,关闭防火墙和selinux
安装bind包他就是dns的安装包需要下载它
yum install bind -y
2.编辑配置文件
/etc/named.conf 是dns的配置文件
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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; };
以下是详细配置解释:
大家了解即可 主要还是图中红色框中的字母
options: 这个部分包含了dns服务器的一般选项设置。
listen-on port 53 { any; }: 指定dns服务器监听的端口。在这个示例中,dns服务器监听在53端口,允许任何ip地址连接到该端口。这意味着dns服务器会接受来自任何ip地址的dns查询请求。
listen-on-v6 port 53 { ::1; }: 指定ipv6地址的监听端口。在这个示例中,dns服务器监听ipv6地址的53端口,只允许本地ipv6地址(::1)连接到该端口。
directory "/var/named";: 指定存储dns服务器相关数据文件的目录路径。在这个示例中,数据文件存储在/var/named目录下。
dump-file "/var/named/data/cache_dump.db";: 指定dns服务器在关闭时将缓存内容写入的文件路径。这个文件通常用于调试和故障排除。
statistics-file "/var/named/data/named_stats.txt";: 指定dns服务器的统计信息输出文件路径,用于记录dns服务器的运行统计数据。
memstatistics-file "/var/named/data/named_mem_stats.txt";: 指定dns服务器的内存使用统计输出文件路径,用于记录dns服务器的内存使用情况。
recursing-file "/var/named/data/named.recursing";: 指定dns服务器递归查询的记录文件路径。
secroots-file "/var/named/data/named.secroots";: 指定dns服务器的安全根文件路径。
allow-query { any; };: 指定允许查询的ip地址范围。在这个示例中,允许任何ip地址进行dns查询。
定义正向查询
正向查询是最常见的dns查询方式之一。
正向查询用于将域名解析为ip地址,这样用户就可以使用易记的域名来访问互联网上的各种网络资源,而不需要记忆ip地址。
在dns配置文件中加入如下信息:
zone "example.com" in { type master; file "example.com.zone"; allow-update { none; }; };
红色框框里边的就是
以下是配置详解:
需要强调的是file指定的是文件路径
type master;
: 表明这是主 dns 服务器,负责提供 "example.com" 区域的数据。
file "example.com.zone";
: 指定了包含 "example.com" 区域数据的文件的路径。
allow-update { none; };
: 指定了允许对区域进行动态更新的权限。在这种情况下,none
表示不允许任何动态更新,因此区域数据只能通过手动编辑区域文件来更新。
定义反向查询
反向查询是一种从ip地址到域名的查询方式。
反向查询主要用于安全审计、网络管理和验证ip地址归属等方面。例如,当收到来自某个ip地址的网络流量时,可以通过反向查询确认该ip地址对应的域名,从而了解到流量的来源。
zone "180.168.192.in-addr.arpa" in { type master; file "example.com.arpa"; allow-update { none; }; };
如图红色框框
检测是否语法错误
named-checkconf /etc/named.conf
编辑完成之后保存退出并且重启
systemctl restart named
修改正反区域文件(重点)
进入到dns服务器相关文件存储目录 /var/named/
cd /var/named/
观察这两个文件 其实是一个实例文件接下来我们复制两份用(找任意一个都可以)
如下
cp -p named.empty example.com.zone cp -p named.empty example.com.arpa
如下就是我复制的文件
example.com.zone 当做正向查询解析来用
example.com.arpa 当做反向查询来使用
加入解析信息(正向)
vim example.com.zone
观看如下配置
格式就是这样的 请大家按照这样写
红色框框里边可以修改
example.com.
: 指定了主域名为example.com
。
root.example.com.
: 这个字段指定了负责管理该域名的dns服务器的邮箱地址,形式为root@example.com
。root
是指定了这个域名的管理员(或者叫根管理员),而example.com
是该管理员的邮箱地址的域名部分。
@ in ns dns.example.com.
:这行指定了域名example.com
的dns服务器是dns.example.com
。ns记录(name server)指定了管理特定区域的dns服务器。
dns in a 192.168.180.188
:这行指定了主机名dns
对应的ip地址是192.168.180.188
。a记录(address record)用于将域名解析为ipv4地址。
www in a 192.168.180.189
:这行指定了主机名www
对应的ip地址是192.168.180.189
。
exam in a 192.168.180.190
:这行指定了主机名exam
对应的ip地址是192.168.180.190
。
ftp in a 192.168.180.191
:这行指定了主机名ftp
对应的ip地址是192.168.180.191
。
sun in a 192.168.180.44
:这行指定了主机名sun
对应的ip地址是192.168.180.44
。
加入解析信息(反向)
vim example.com.arpa
观看如下配置
格式就是这样的 请大家按照这样写
红色框框里边可以修改
ptr 记录将 ip 地址映射到相应的域名。
@ in ns dns.example.com.:这行指定了该反向区域的dns服务器是 dns.example.com。ns记录(name server)指定了管理特定区域的dns服务器。
188 in ptr dns.example.com.:这行指定了ip地址以 188 结尾的主机对应的域名是 dns.example.com。ptr记录(pointer record)用于将ip地址解析为域名。
189 in ptr www.example.com.:这行指定了ip地址以 189 结尾的主机对应的域名是 www.example.com。
190 in ptr exam.example.com.:这行指定了ip地址以 190 结尾的主机对应的域名是 exam.example.com。
191 in ptr ftp.example.com.:这行指定了ip地址以 191 结尾的主机对应的域名是 ftp.example.com。
44 in ptr sun.example.com.:这行指定了ip地址以 44 结尾的主机对应的域名是 sun.example.com。
此刻已经写完了所有的配置信息 重启服务
3.客户机测试
配置ip,关闭防火墙和selinux
[root@localhost ~] vim /etc/resolv.conf
/etc/resolv.conf
是一个用于配置 dns 解析的重要文件
将它指向dns服务器ip地址
正向解析测试
通过测试发现一切都如配置文件对应关系那样
反向解析测试
通过测试发现一切都如配置文件对应关系那样
注意事项
如果重启发现
job for named.service failed because the control process exited with error code. see "systemctl status named.service" and "journalctl -xe" for details.
那就是配置文件在你编辑时候出现了错误
vim /etc/named.conf 编辑这个文件 仔细的去观察你编辑的信息
如果解析发现解析失败 那就是正反解析文件中的问题
还有就是.记得加上去
以上就是linux中搭建dns域名解析服务器的详细过程的详细内容,更多关于linux中搭建dns域名的资料请关注代码网其它相关文章!
发表评论