NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

DNS 域名解析服务

  • 2020-02-13
  • 本文字数:5496 字

    阅读完需:约 18 分钟

DNS域名解析服务

一、历史由来

到 20 世纪 70 年代末,ARPAnet 是一个拥有几百台主机的很小很友好的网络。仅需要一个名为 HOSTS.TXT 的文件就能容纳所有需要了解的主机信息:它包含了所有连接到 ARPAnet 的主机名字到地址的映射(name-to-addressmapping)。


HOSTS.TXT 文件是由 SRI 的网络信息中心(Network Information Center,简称 NIC)负责维护,并且从一台主机 SRI-NIC 上分发到整个网络。ARPAnet 的管理员通常是通过电子邮件通知 NIC,同时定期 FTP 到 SRI-NIC 上获得最新的 HOSTS.TXT 文件。


但是随着 ARPAnet 的增长,这种方法行不通了。每台主机的变更都会导致 HOSTS.TXT 的变化,导致所有主机需要到 SRI-NIC 上获得更新文件。当 ARPAnet 采用 TCP/IP 协议后,网络上的主机爆炸性的增长,出现了下面的问题:


    DNS****介绍

    DNS(Domain Name System,域名系统),万维网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。通过域名,最终得到该域名对应的 IP 地址的过程叫做域名解析(或主机名解析)。DNS 协议运行在 UDP 协议之上,使用端口号 53。在 RFC 文档中 RFC 2181 对 DNS 有规范说明,RFC 2136 对 DNS 的动态更新进行说明,RFC 2308 对 DNS 查询的反向缓存进行说明。


    二、DNS********数据结构


    1545211635193090215.png

    DNS 记录类型

    域名和 IP 之间的对应关系,称为“记录”(record)。根据使用的目的不同,又分为不同的类型,常见的 DNS 记录类型如下:


    A:地址记录(Address),返回域名指向的 IP 地址。


    NS:域名服务器记录(Name Server),返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为 IP 地址。


    MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。


    CNAME:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转。


    PTR:逆向查询记录(Pointer Record),只用于从 IP 地址查询域名。


    工作原理


    DNS 服务的工作过程


    当 DNS 客户机需要查询程序中使用的名称时,它会查询本地 DNS 服务器来解析该名称。客户机发送的每条查询消息都包括 3 条信息,以指定服务器应回答的问题。


    ● 指定的 DNS 域名,表示为完全合格的域名 (FQDN) 。


    ● 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。


    ● DNS 域名的指定类别。


    对于 DNS 服务器,它始终应指定为 Internet 类别。例如,指定的名称可以是计算机的完全合格的域名,如 im.qq.com,并且指定的查询类型用于通过该名称搜索地址资源记录。


    DNS 查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归。


    另外,客户机自己也可尝试联系其他的 DNS 服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代,即 DNS 服务器之间的交互查询就是迭代查询。


    DNS 查询的过程


    1545211651051097977.png

    三、DNS****安装

    YUM 安装


    col 1col 2
    1yum ``install bind* caching-nameserver


    源码安装


    col 1col 2


    1


    2


    3


    4 | tar zxvf bind-9.6.1.tar.gz


    cd bind-9.6.1


    ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --enable-threads --disable-chroot --disable-ipv6


    make && make install


    配置环境变量


    vim /etc/profile.d/bind.sh


    追加以下行


    export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH


    帮助文档的查看


    man -M share/man/ named


    vim /etc/man.config


    追加以下行


    MANPATH /usr/local/bind9/share/man


    DNS 单点配置


    col 1col 2


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11 | #修改/etc/named.conf


    ``listen-on port 53 { any; };


    ``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 { any; };


    ``recursion yes;


    #(此处,做的是dns转发,当本地服务器无法解析的,如公网上的域名时,转发到114.114.114.114上)


    forwarders { 114.114.114.114; };


    };


    col 1col 2


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    17


    18


    19


    20


    21


    22


    23


    24


    25


    26


    27


    28


    29


    30


    31


    32


    33


    34


    35


    36


    37


    38


    39 | #配置/etc/named.rfc1912.zones


    zone ``"test.com" IN {


    type master;


    file ``"test.com.zone"``;


    };


    zone ``"40.168.192.in-addr.arpa" IN {


    type master;


    file ``"40.168.192.in-addr.arpa.zone"``;


    };


    #test.com.zone 配置文件


    $TTL 600


    @ IN SOA ns.test.com. root.test.com. (


    ``201810131834 ; serial


    ``300 ; refresh (5 minutes)


    ``60 ; retry (1 minute)


    ``604800 ; expire (1 week)


    ``3600 ; minimum (1 hour)


    ``)


    @ IN NS ns.test.com.


    ns IN A 192.168.40.105


    mail IN A 192.168.40.103


    rhl IN A 192.168.40.102


    #40.168.192.in-addr.arpa.zone 配置文件


    $TTL 600


    @ IN SOA ns.test.com. root.test.com. (


    ``201810151834 ; serial


    ``300 ; refresh (5 minutes)


    ``60 ; retry (1 minute)


    ``604800 ; expire (1 week)


    ``3600 ; minimum (1 hour)


    ``)


    ``@ IN NS ns.test.com.


    ``103 IN PTR mail.test.com.


    DNS 的主从同步


    1.1、主服务器配置


    col 1col 2


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    17


    18


    19


    20


    21


    22


    23


    24


    25


    26


    27


    28


    29


    30


    31 | #修改/etc/named.conf


    ``options {


    ``listen-on port 53 { any; };


    ``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 { any; };


    ``recursion yes;


    #(此处,做的是dns转发,当本地服务器无法解析的,如公网上的域名时,转发到114.114.114.114上


    ``forwarders { 114.114.114.114; };


    #配置/etc/named.rfc1912.zones


    zone ``"test.com" IN {


    type master;


    file ``"test.com.zone"``;


    allow-update {none;};


    #从服务器地址


    allow-transfer {192.168.40.170;};


    notify yes;


    };


    #反向解析


    zone ``"40.168.192.in-addr.arpa" IN {


    type master;


    file ``"named.192.168.40"``;


    allow-update {none;};


    #从服务器地址


    allow-transfer {192.168.40.170;};


    notify yes;


    };


    1.2、从服务器的配置


    col 1col 2


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    17


    18


    19


    20


    21


    22


    23


    24


    25


    26


    27


    28


    29


    30


    31


    32


    33 | #修改/etc/named.conf


    options {


    ``listen-on port 53 { any; };


    ``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 { any; };


    ``recursion yes;


    ``forwarders { 114.114.114.114; };


    };


    #配置/etc/named.rfc1912.zones


    zone ``"test.com" IN {


    type slave;


    file ``"slaves/test.com.zone"``;


    #设置主dns服务器的地址


    masters { 192.168.40.105; };


    allow-update { none; };


    };


    zone ``"40.168.192.in-addr.arpa" IN {


    type slave;


    file ``"slaves/40.168.192.in-addr.arpa.zone"``;


    masters { 192.168.40.105; };


    allow-update { none; };


    };


    ****DNS 配置文件检查


    col 1col 2


    1


    2


    3


    4


    5


    6


    7


    8 | #检查主配置文件


    named-checkconf


    ``#检查域名配置文件


    named-checkzone test.com /var/named/test.com.zone


    ``#测试正向解析


    dig -t A rhl.test.com @192.168.40.105


    ``#测试反向解析


    dig -x 192.168.40.103 @192.168.40.105


    本文转载自宜信技术学院网站。


    原文链接:http://college.creditease.cn/detail/184


    2020-02-13 21:45746

    评论

    发布
    暂无评论
    发现更多内容

    【死磕JVM】什么是JVM调优?

    Java 程序员 后端

    【玩转Linux】史上最详细的Linux命令大全和线上问题排查手册

    Java 程序员 后端

    一文参透:缓存一致性策略以及雪崩、穿透等问题

    Java 程序员 后端

    一文彻底帮你打通SpringAOP的任督二脉,大厂高薪指日可待,建议收藏!!!

    Java 程序员 后端

    一个CURD三年的Java程序员刷完这份《阿里面试指南(恒山版)》

    Java 程序员 后端

    JDK16的新特性

    程序那些事

    Java 程序那些事 java16 11月日更 JDK16

    【源码分析设计模式 9】SpringIOC中的模板方法模式

    Java 程序员 后端

    一文带你快速搞懂动态字符串SDS,面试不再懵逼

    Java 程序员 后端

    【设计模式系列14】组合模式及其在JDK和MyBatis源码中的运用

    Java 程序员 后端

    存储大师班 | 浅谈 RDMA 与无损网络

    QingStor分布式存储

    网络 分布式存储

    一个SpringBoot问题就干趴下了?我却凭着这份PDF文档吊打面试官

    Java 程序员 后端

    【消息队列最佳实践】消息恰好被消费一次

    Java 程序员 后端

    【程序人生】为什么Java开发人员在简历上不敢轻易写精通Java

    Java 程序员 后端

    一周4大厂Java开发岗面试日记(已拿offer)

    Java 程序员 后端

    【程序人生】为什么Java开发人员在简历上不敢轻易写精通Java(1)

    Java 程序员 后端

    一个简单的字符串,为什么-Redis-要设计的如此特别?

    Java 程序员 后端

    Java程序媛的秋招历程(附字节,阿里,百度,网易,美团等面经)

    Java spring 程序员 面试 大厂

    【设计模式系列17】中介者模式原理及其在JDK源码中的体现

    Java 程序员 后端

    【设计模式系列24】GoF23种设计模式总结及软件设计7大原则

    Java 程序员 后端

    学会了axios封装,世界都是你的

    CRMEB

    【源码分析设计模式 10】SpringMVC中的适配器模式

    Java 程序员 后端

    外包学生管理系统详细架构设计

    stars

    架构训练营

    【数据结构与算法 11】常见的7种排序算法

    Java 程序员 后端

    【消息队列最佳实践】消息恰好被消费一次(1)

    Java 程序员 后端

    音频 AI 算法在 RTC 中的实践

    网易云信

    人工智能 算法 音视频

    《黑客之道》-- 网络安全之利用0day双杀-java环境-宏感染渗透

    学神来啦

    网络安全 漏洞 渗透 kali

    【面试准备】Spring框架面试题

    Java 程序员 后端

    现代APaaS产品的5C特点

    明道云

    做云原生时代标准化工具,实现高效云上研发工作流

    CODING DevOps

    云原生 研发管理工具 CODING

    【数据结构 Java 版】玩转顺序表

    Java 程序员 后端

    一文快速搞懂Redis的几种数据类型

    Java 程序员 后端

    DNS域名解析服务_文化 & 方法_运维组_InfoQ精选文章