zoukankan      html  css  js  c++  java
  • Linux DNS原理简介及配置

    Linux DNS原理简介及配置

    1. DNS简介
    2. DNS原理
    3. 域名解析的过程
    4. 资源记录
    5. DNS BIND安装配置

    一、简介

    一般来讲域名比IP地址更加的有含义、也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了。

    域名:www.baidu.com(也叫做FQDN:Full Qualified Domain Name, 完全限定域名,同时带有主机名和域名的名称)

    通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。

    TLD(top level domain)

    组织域:.com, .org, .net, .cc

    国家域: .cn, .tw, .hk, .iq, .ir, .jp

    反向域: IP-->FQDN 将IP地址转换成主机名,早期只能正向解析,后来引入了一个机制。指针;但是从IP转换成FQDN是另外一套数据库。

    DNS服务协议采用类似目录树的层次结构记录域名与IP地址的映射对应关系,形成一个分布式的数据库系统,上级仅知道其直接下级,下级只知道根的位置。结构模型:

        DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析反向解析

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

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

     

    二、原理

    Linux下nsswitch(network service switch)是一个通用框架,与各种类型存储交互的公共实现,实现名称解析服务。其中有库文件,libnss_files.so库文件就是实现查找文件时, 其应该调用的文件。其展现的就是一个配置文件,/etc/nssitch.conf,此配置文件中

    这个files就是通过libnss_files来查找/etc/hosts

    hosts可通过两种方式来查找:     files    dns

    file: /etc/hosts配置文件

    dns: DNS服务器

    系统中stub resolver:名称解析器,根据配置文件来查找对应的ip地址。

    ping www.itodo.com此过程就是先查找本地/etc/hosts文件,如果没有再查找dns服务器。

    hosts格式:

        IPADDR FQDN    Ailases

        192.168.100.1    www.ss.com     www

    三、域名解析的过程

        当应用过程需要将一个主机域名映射为IP地址时,就调用域名解析函数,解析函数将待转换的域名放在DNS请求中,以UDP报文方式发给本地域名服务器。本地的域名服务器查到域名后,将对应的IP地址放在应答报文中返回。

        

    dns查询:

        递归查询:主机向本地域名服务器的查询一般都是采用递归查询,只发出一次请求。

        迭代查询:本地域名服务器向根域名服务器的查询的迭代查询,发出多次请求。

    以上简单理解来说,主机1访问主机2的域名a.zz.com,首先向本机域名服务器发起请求主机2的ip,本机没有,向根域名服务器查询,根返回消息说顶级域名服务器那里知道,本机又向顶级域名服务器查询,顶级域名服务器又返回消息说二级域名服务器那里有答案,本机又向二级域名查询,最后经过本机域名服务器的缓存之后,返回主机2的域名对应的ip地址。

    四、资源记录

    数据库中的每一个条目称作一个资源记录(Resource Record,RR)

    资源记录的格式:

    $TTL 600;

    NAME            [TTL]            IN            RRT            VALUE

    www.ss.com                        IN            A            1.1.1.1

    1.1.1.1                        IN            PTR            www.ss.com

    资源记录类型(RRT):

    SOA(start of authority)

        ZONE_NAME    TTL        IN    SOA        FQDN        ADMINISTRATOR_MAILBOX(

                                serial number 版本号

                                refresh    刷新时间

                                retry    重试时间

                                expire    过期时间

                                na ttl )    否定答案的ttl

    时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒

    邮箱格式:admin@ss.com -写为-> admin.ss.com

    @:也就是ZONE_NAME

    NS(Name Server): ZONE_NAME --> FQDN

        magedu.com.        600        IN        NS        ns1.magedu.com.

        ns1.magedu.com.    600        IN        A        1.1.1.2

        

    MX(Mail eXchanger): ZONE_NAME --> FQDN

        ZONE NAME    TTL        IN        MX pri        VALUE

        优先级:0-99,数字越小级别越高

            magedu.com.    600        IN        MX    10    mail.magedu.com.

            mail.magedu.com.    600        IN    A    1.1.1.3

    A(address):    FQDN-->IPv4    

    AAAA:FQDN-->IPv6

    PTR(pointer):IP-->FQDN

    CNAME(Canonical NAME): FQDN-->FQDN

        www2.magedu.com.        IN        CNAME        www.magedu.com.

    TXT:文本字符串

    DNS区域:

    正向区域文件

        magedu.com.        IN        SOA    

    www.maged.com.   IN    A    192.168.0.1

    简写为:

    www          IN    A    192.168.0.1

    反向区域文件

    0.168.192.in-addr.arpa.       IN    SOA    

    1.0.168.192.in-addr.arpa.      IN    PTR        www.magedu.com.

    简写为:

    1       IN       PTR       www.magedu.com.

    区域传送

        区域传送的类型:

        完全区域传送: axfr

        增量区域传送:ixfr

        

    区域类型:

        主区域:master

        从区域:slave

        提示区域:hint

        转发区域:forward

        

    五、DNS BIND安装配置

    DNS所用的最常用软件为BIND

    bind:

        

        /etc/named.conf

            BIND进程的工作属性

            区域的定义

        /etc/rndc.key

            rndc: Remote Name Domain Controller

            密钥文件

            配置信息:/etc/rndc.conf    

        /var/named/

            区域数据文件

    bind-chroot:为了提高系统安全新,把系统中的一个子目录作为bind运行时的目录。

        默认:named

            用户:named

            组:named        

        /var/named/chroot/

            etc/named.conf

            etc/rdnc.key

            sbin/named

            var/named/

    安装配置:

    1.安装bind,查看是否安装成功

     yum -y install bind bind-utils bind-chroot

     rpm –qa | grep "^bind"

    2.修改/etc/named.conf

     listen-on port 53 { any; };

    3.修改/etc/named.rfc1912.zones

    4.添加所需要的zone文件

     在/var/named目录下添加正向解析文件named.yan和反向解析文件named.222

    5.检查语法

     named-checkconf

     named-checkzone "区域名" 区域文件路径

    6.修改/etc/resolv,并启动服务。

    systemctl start named

    7.nslookup测试,或者使用dig命令。

     正向解析测试:

     反向解析测试:

    至此简单的配置完毕。

    少年不识愁滋味,爱上层楼,爱上层楼。
  • 相关阅读:
    topcoder srm 445 div1
    topcoder srm 440 div1
    topcoder srm 435 div1
    topcoder srm 430 div1
    topcoder srm 400 div1
    topcoder srm 380 div1
    topcoder srm 370 div1
    topcoder srm 425 div1
    WKWebView强大的新特性
    Runtime那些事
  • 原文地址:https://www.cnblogs.com/whych/p/9099015.html
Copyright © 2011-2022 走看看