专栏首页用户3029758的专栏十四.Linux域名服务DNS

十四.Linux域名服务DNS

什么是 DNS

DNS 全称是 Domain Name System,大意是域名解析系统,它的职责是把域名翻译成一个一个可以识别的 IP 供不同的计算机设备连接。

linux 有关 DNS 解析的配置和文件

linux 中有三个文件是关于 dns 解析的:

  • /etc/hosts 记录 hostname 对应的ip地址
  • /etc/resolv.conf 设置DNS服务器的ip地址
  • /etc/host.conf 指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析)

/etc/hosts 的存在是早期网络并不是特别发达,仅仅在 hosts 中保存主机名和 ip 地址的对应关系即可满足需要,随着网络的发展逐渐出现分布式 DNS 服务,但是 /etc/hosts 形式保留下来了。

/etc/resolv.conf 是配置DNS 域名和 ip 地址的,网上有很多资料可以参考一下。

一个域名是如何被解析的

How the Domain Name System (DNS) Works 这篇大致解释了域名被解析的过程,基本可以分为:

  • 向根域名服务请求顶级域名所在所在域名服务
  • 向顶级域名服务请求二级域名服务
  • 向二级域名服务请求具体的 ip 地址

简易DNS配置案例(基于CentOs7)

服务器端

1.安装bind

yum install bind

2.修改/etc/named.conf配置文件

vim /etc/named.conf
options {
        listen-on port 53 { any; };    //开启监听端口53,接受任意IP连接
        listen-on-v6 port 53 { ::1; };    //支持IP V6
        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";
        allow-query     { 0.0.0.0/0; };    //允许任意IP查询

        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";

};

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";

3.修改/etc/named.rfc1912.zones文件,添加duiyi.com的正向区域

vim /etc/ named.rfc1912.zones
zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};
zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

//duiyi.com的正向区域
zone "duiyi.com" IN {
        type master;
        file "duiyi.com.zone";
        allow-update { none; };
};

4.创建正向区域资源文件

vim /var/named/duiyi.com.zone
$TTL 1D
@    IN SOA  duiyi.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
www    IN A 192.168.81.1
mail    IN A 192.168.81.2
ftp    IN A 192.168.81.3

5.启动named服务

systemctl start named

6.开机自启动

systemctl enable named

## 客户端 操作系统:windows和linux都可以 IP地址:能够ping通DNS服务器的IP(192.168.81.133)都可以, 作用:测试DNS服务器是否正常工作。

1.修改DNS:

2.ping 服务端ip(192.168.81.133),测试能否访问服务器

3.使用nslookup命令测试三个DNS解析能否成功

如图所示则表示DNS正向解析成功

Linux作为客户端测试:

1. 安装bind-utils包,以便能使用nslookup、dig和host工具

yum install bind-utils

2. 修改DNS配置使用我们的DNS服务器

vim /etc/resolv.conf
nameserver 192.168.81.133
nameserver 114.114.114.114
nameserver 8.8.8.8

3. 正向解析测试,使用nslookup命令(与windows测试一致)

nslookup

声明:本文为原创,作者为 对弈,转载时请保留本声明及附带文章链接:http://www.duiyi.xyz/%e5%8d%81%e5%9b%9b-linux%e5%9f%9f%e5%90%8d%e6%9c%8d%e5%8a%a1dns/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux搭建www,mail,ftp三大DNS服务器

    ##############################-----服务器端----############################### 1. 安...

    对弈
  • 设计模式—–开放封闭原则

    在面向对象的设计中有很多流行的思想,比如说 "所有的成员变量都应该设置为私有(Private)","要避免使用全局变量(Global Variables)","...

    对弈
  • 阶段01Java基础day13常见对象02

    声明:本文为原创,作者为 对弈,转载时请保留本声明及附带文章链接:http://www.duiyi.xyz/c%e5%ae%9e%e7%8e%b0%e9%9b%...

    对弈
  • kubeadm实现K8S的HA

    (1)k8s各节点SSH设置免密登录 所有节点用root用户操作,全部设置免密登陆,不做细分。

    用户1499526
  • Linux笔记(7)| 获取系统信息

    time能得到一个当前时间距离标准起点时间1970-01-0100:00:00 +0000(UTC)过去了多少秒。

    飞哥
  • Hinton是如何理解PCA?

    “深度学习名校课程大全” 里面给出了很多深度学习的课程, 但是说到书的话, 还是推荐 Ian Goodfellow的 “Deep Learning”, 张志华老...

    史博
  • 死磕 java同步系列之ReentrantLock VS synchronized——结果有点出乎意外

    synchronized是Java原生提供的用于在多线程环境中保证同步的关键字,底层是通过修改对象头中的MarkWord来实现的。

    彤哥
  • CCF 画图

    问题描述   用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术。例如,下图是用 ASCII 字符画出来的 CSPR...

    用户1148523
  • 全球金融市场通用语言FIX API|深度解析

    随着金融市场电子交易趋势的逐步形成,FIX已经成为全球金融市场的通用语言之一,被交易者、交易平台甚至监管机构广泛应用。今天和大家一起聊一聊基于FIX协议而诞生的...

    BestSDK
  • 斯坦福大学人工智能中心专家访问腾讯

    近日,斯坦福大学人工智能中心负责人李飞飞教授、Silvio Savarese教授应邀访问腾讯,与腾讯研究团队深入沟通,并带来了领域前沿学术报告。腾讯公司高级副总...

    腾讯高校合作

扫码关注云+社区

领取腾讯云代金券