Linux教程

Linux公共服务组件之DNS篇

本文主要是介绍Linux公共服务组件之DNS篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、简介

DNS域名解析服务(Domain Name System)是用于解析域名与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

使用 dig -x验证

也可以用nslookup查看具体ip的反向解析内容

这篇关于Linux公共服务组件之DNS篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!