一、DNS域名解析
1.1 什么是DNS域名解析
DNS(Domain Name System)是互联网中用于将域名(例如 www.example.com)转换为 IP 地址的系统。它充当了互联网的地址簿,允许人们使用易记的域名而不是记住复杂的 IP 地址来访问网站、发送电子邮件等。
1.2 DNS 的主要功能:
-
域名解析: DNS 将人类可读的域名翻译成计算机能够理解的 IP 地址。当您在浏览器中输入一个域名时,DNS 就会将该域名映射到相应的 IP 地址,以便数据包能够准确地路由到正确的服务器。
-
分层结构: DNS 是一个分层的系统,由多个服务器组成。这些服务器分为不同的层次,包括根域、顶级域(TLD)、二级域等。每个域都有一个负责管理该域的域名服务器。
-
缓存: DNS 使用缓存来提高查询效率。当一个域名解析为 IP 地址时,这个映射信息会被缓存在本地,以便将来再次查询相同域名时可以更快地获取结果。
-
递归查询和迭代查询: DNS 查询可以是递归的或者是迭代的。递归查询是指 DNS 客户端向 DNS 服务器发出请求,而服务器负责查找答案并返回给客户端。迭代查询是指 DNS 服务器根据请求逐级查询其他服务器,最终找到答案并返回给客户端。
1.3 正向解析和反向解析
DNS(Domain Name System)解析包括正向解析和反向解析,它们分别用于不同的目的。
-
正向解析(Forward DNS Resolution):
-
定义: 正向解析是将域名转换为相应的 IP 地址的过程。
-
使用场景: 当用户在浏览器中输入一个域名时,正向解析被触发,将域名解析为对应的 IP 地址,以便网络通信。
-
示例:
- 输入域名 "www.example.com",正向解析将返回对应的 IP 地址,比如 "203.0.113.1"。
-
过程:
- 本地计算机首先检查本地 DNS 缓存。
- 如果缓存中没有,计算机将向递归 DNS 服务器发起请求。
- 递归 DNS 服务器根据 DNS 的层次结构,逐步查询根、顶级域、权限 DNS 服务器,最终获取到域名对应的 IP 地址。
-
-
反向解析(Reverse DNS Resolution):
-
定义: 反向解析是将 IP 地址转换为相应的域名的过程。
-
使用场景: 反向解析常用于网络安全、日志分析等情境,通过 IP 地址查找与之相关联的域名。
-
示例:
- 输入 IP 地址 "203.0.113.1",反向解析可能返回域名 "www.example.com"。
-
过程:
- 计算机向递归 DNS 服务器发起反向解析请求。
- 递归 DNS 服务器向相应的反向区域查询 PTR 记录(Pointer Record)。
- PTR 记录包含了 IP 地址和对应的域名。递归 DNS 服务器将查询结果返回给请求的计算机。
-
需要注意的是,并非所有的 IP 地址都有对应的域名,因此反向解析不总是成功。域名到 IP 地址的映射是一个静态的过程,而反向解析则需要查找相关的 DNS 数据库。
二、DNS软件bind
2.1 bind
BIND(Berkeley Internet Name Domain)是一个开源的域名系统(DNS)服务器软件。它最初由加州大学伯克利分校开发,是互联网上最常用的 DNS 服务器之一。BIND 负责将域名映射到与之相关联的 IP 地址,以便网络设备可以正确地定位和通信。
BIND 提供了 DNS 协议的实现,支持域名的解析、域名到 IP 地址的映射、反向解析(根据 IP 地址查找域名)、权威服务等功能。它被广泛应用于互联网上的服务器、路由器等网络设备,同时也被用于构建私有网络和局域网。
由于其开源性质,BIND 的源代码是公开可用的,用户可以根据需要进行修改和定制。BIND 通常在类Unix系统(如Linux、BSD)上运行,但也可以在其他操作系统上使用。
BIND 的版本不断更新以适应新的互联网标准和安全性需求。系统管理员和网络工程师可以配置和管理 BIND 服务器,确保域名系统在网络中运行正常。
2.2 在Linux中安装配置bind
yum install bind* -y #安装bind软件以及一些所需要的配置文件
systemctl stop firewalld.service #关闭防火墙
setenforce 0 #关闭安全机制
systemctl start named #开启服务
ss -natp |grep named #过滤出named服务程序,注:bind软件的服务名叫named
主配置文件在 /etc/named.conf;区配置文件在/etc/named.conf
查看DNS
在centos7中,NDS解析文件通常在/etc/resolv.conf中,我们可以cat查看配置文件
修改NDS
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #配置文件
#把NDS1修改成本机ip地址
systemctl restarl network #重启网络服务
2.3 使用named服务完成正向解析
1.修改主配置文件
vim /etc/named.conf
#可以修改配置,注释,或者删除这两行
listen-on port 53 { any; };
allow-query { any; };
systtemctl restarl named #重启服务
2. 写区域配置文件
vim /etc/named.rfc1912.zones
#编写域名
zone "xiaobu.com" {
type master;
file "xiaobu.com.zone";
};
cd /var/named/
#切换目录
ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
cp -a named.localhost ./xiaobu.com.zone
#保留权限复制
ls
data dynamic kgc.com.zone named.ca named.empty named.localhost named.loopback slaves
vim kgc.com.zone
#编辑数据库文件,解析记录对应关系
systemctl restart named #重启服务
host www.xiaobu.com #解析域名
或者用nslookup
2.3 使用named完成主从复制
- 主服务器:192.168.50.104
- 从服务器:192.168.50.103
1.从服务器安装关闭防火墙,安全机制,并安装bind软件
[root@localhost etc]systemctl stop firewalld.service
[root@localhost etc]setenforce 0
[root@localhost etc]yum install bind* -y
#安装后启动服务
修改客户端配置文件vim /etc/named.conf,注释掉13,21行
添加服务端配置文件:vim /etc/named.rfc1912.zones
zone "xiaobu.com" IN {
type slave;
#类型从
file "slaves/xiaobu.com.zone";
#文件地址在/var/named/slaves/ 下
masters { 192.168.50.104; };
#申明主服务器的地址
};
修改主服务器配置
vim /etc/named.rfc1912.zones
验证:
客户端:
服务端: