# Linux公共服务组件之DNS

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/9981.html | 发布：2022-09-14 | 更新：2022-09-14 | 分类：建站教程、投稿分享

#### 一、简介

 

DNS域名解析

 

服务(**D**omain **N**ame **S**ystem)是用于解析域名与IP地址对应关系的服务，功能上可以实现**正向解析**与**反向解析**：

 

**正向解析**:根据主机名(域名)查找对应的IP地址。

 

**反向解析**:根据IP地址查找对应的主机名(域名)。

 

**应用场景**：**正向解析**较好理解，为域名解析为ip地址；**反向解析**主要用于垃圾邮件拦截，例如使用xx@xx.com的邮箱给用户发送邮件，用户邮箱所在服务器会查询该邮件的ip地址，进行反向解析，若对应的域名是xx.com则接收邮件，否则放弃接收。

 

由于在域名系统中，一个IP地址可以对应多个域名，因此从IP出发去找域名，理论上应该遍历整个域名树，但是这在internet上是不现实的。为了完成逆向域名解析，系统提供一个特别域，该特别域称为逆向解析域in-addr.arpa.这样欲解析的IP地址就会被表达城一种像域名一样的可显示串形式，后缀以逆向解析域域名“in-addr.arpa”结尾。

 

#### 二、安装配置

 

安装bind软件包

 

yum install bind -y  
systemctl start named  
systemctl enable named

 

修改配置文件`vi /etc/named.conf`

 

options {  
 # 默认放行地址均修改成any  
 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; };  
 recursion yes;  
 dnssec-enable yes;  
 # 服务器不备案，这里写no  
 dnssec-validation no;  
 /* Path to ISC DLV key */  
 bindkeys-file "/etc/named.root.key";  
 managed-keys-directory "/var/named/dynamic";  
 pid-file "/run/named/named.pid";  
 session-keyfile "/run/named/session.key";  
};

 

logging {  
 channel default_debug {  
 file "data/named.run";  
 severity dynamic;  
 };  
};

 

zone "." IN {  
 type hint;  
 file "named.ca";  
};

 

include "/etc/named.rfc1912.zones";  
include "/etc/named.root.key";

 

解析示例：

 

# 正向解析  
# 这个位置实际要填写的是解析的完整域，就是要解析的域名  
zone "localhost" IN {  
 # 表示dns类型，如果是type hint ，表明是根dns。这里的master，表明是主dns，还有一个值是slave，表明是从dns  
 type master;  
 # 解析的记录文件。这个named.localhost可以自己定义，定义完成后需要在 /var/named/ 目录下有一个名称相同的文件与之匹配  
 file "named.localhost";  
 # 是否允许客户端动态更新，none表明不允许  
 allow-update { none; };  
};  
# 反向解析  
zone "1.0.0.127.in-addr.arpa" IN {  
 type master;  
 file "named.loopback";  
 allow-update { none; };  
};

 

#### 三、新建正向解析实例

 

修改 `vi /etc/named.rfc1912.zones`文件，新增以下内容：

 

zone "mytest.com" IN {  
 type master;  
 file "mytest.com.zone";  
 allow-update { none; };  
};

 

在`/etc/named`目录下，新增`mytest.com.zone`文件，可用同目录模板，复制使用`cp -a`命令带权限复制操作

 

# 定义DNS服务器查询缓存数据的时间为1天  
$TTL 1D  
# @符表示该文件的父域名称 “mytest.com“  
# IN代表类型属于ininternet类，因为现在的互联网就是TCP/IP协议的应用，DNS服务在TCP/IP中的位置是应用层，所以这里写的IN，这一般来说是不可改变的  
# SOA表示设置授权主机名，上图中定义了负责该区域域名解析的授权主机名，该主机必须在区域文件中有一个A资源记录  
# dns.mytest.com ：表示声明的服务器主机名称，即这台DNS服务器的完整域名  
# ptm.mytest.com ：代表设置DNS服务器系统管理员的电子邮箱所对应主机的域名为ptm.life.net  
@ IN SOA dns.mytest.com. ptm.mytest.com (  
 # 正向解析区域的序列号。若当你更改过主DNS服务器的数据后，  
 # 要将该数值加大，这样辅DNS服务器才会更新数据  
 0 ; serial  
 # refresh的功能主要是高速辅DNS服务器多长时间与主DNS  
 # 服务器做一次serial的序列号对比  
 1D ; refresh  
 # retry表示在refresh失败后，经过指定的时间再去尝试  
 1H ; retry  
 1W ; expire  
 3H ) ; minimum  
 # 定义mytest.com域的域名解析服务器为 dns.mytest.com  
 NS dns.mytest.com.  
# 定义域名解析服务器的地址为 120.10.10.10  
dns A 120.10.10.10  
# 定义home二级域名的正向解析记录  
home A 120.10.10.11  
# 定义mu.mytest.com的别名music.mytest.com  
mu CNAME music  
music A 120.10.10.10

 

重启服务，`systemctl restart named`

 

验证：局域网客户端安装dig,`yum install bind-utils`

 

使用`dig mu.mytest.com`查询解析情况

 

#### 四、新建反向解析实例

 

修改 `vim /etc/named.rfc1912.zones`

 

zone "10.10.120.in-addr.arpa" IN {  
 type master;  
 file "mytest.com.ptr";  
 allow-update { none; };  
};

 

新增反向解析实例，`cp -a /var/named/named.loopback /var/named/mytest.com.ptr`

 

$TTL 1D  
@ IN SOA ns.myexample.com. root.myexample.com. (  
 0 ; serial  
 1D ; refresh  
 1H ; retry  
 1W ; expire  
 3H ) ; minimum  
 NS ns.myexample.com.  
ns A 120.10.10.12  
12 PTR ns.myexample.com.  
12 PTR www.myexample.com.  
100 PTR test.myexample.com

 

![Linux公共服务组件之DNS](https://www.mfisp.com/wp-content/uploads/2022/01/139c1bf7e6eb677_1_post.jpg)

 

``

 

``

 

``

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
