zoukankan      html  css  js  c++  java
  • DNS

    DNS简介

    DNS(Domain Name System)域名系统,是互联网的一项服务;它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网;DNS使用TCP和UDP端口53。

    DNS 服务器

    运行DNS 服务器程序的计算机,储存DNS 数据库信息。DNS 服务器会尝试解析客户机的查询请求。在解答查询时,如果DNS 服务器能提供所请求的信息,就直接回应解析结果,如果该DNS 服务器没有相应的域名信息,则为客户机提供另一个能帮助解析查询的服务器地址,如果以上两种方法均失败,则回应客户机没有所请求的信息或请求的信息不存在。

    DNS 缓存

    DNS 服务器在解析客户机请求时,如果本地没有该DNS 信息,则可以会询问其他DNS 服务器,当其他域名服务器返回查询结果时,该DNS 服务器会将结果记录在本地的缓存中,成为DNS 缓存。当下一次客户机提交相同请求时,DNS 服务器能够直接使用缓存中的DNS 信息进行解析。

    DNS常用命令

    常用命令 意思
    ipconfig/ifconfig 显示网络信息
    nslookup host 查询域名对应的ip同时也显示了网关地址
    cat /etc/resolv.conf 查看本地dns服务器地址
    dig host a 查询域名的A纪录,[A,MX,NS,CNAME,TXT] ,默认是a
    dig @202.106.0.20 www.oolec.com a 根据地址指定dns服务器来解析域名
    dig host a +tcp 采用tcp方式,默认采用udp协议进行查询
    dig host a +trace 显示从根域逐级查询的过程
    /etc/init.d/nscd restart 清除缓存的域名
    /etc/hosts 本地域名映射表

    DNS查询方式: 递归查询和迭代查询

    实例:

    1. 客户机提交域名解析请求,并将该请求发送给本地的域名服务器。
    2. 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS 信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。
    3. 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
    4. 本地服务器再向返回的域名服务器发送请求。
    5. 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器的地址。
    6. 本地域名服务器将查询请求发送给返回的DNS 服务器。
    7. 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS 信息,查询过程将重复<6>、<7>步骤,直到返回解析信息或解析失败的回应)。
    8. 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。

    递归查询

    递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

    迭代查询

    DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

    DNS资源记录

    推荐阅读:https://blog.csdn.net/weixin_41545330/article/details/80865676

    SOA 资源记录

    • 每个区在区的开始处都包含了一个起始授权记录(Start of Authority Record),简称SOA 记录。
    • SOA 定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA 记录。
    • 起始授权机构SOA资源记录总是处于任何标准区域中的第一位,它表示最初创建它的DNS服务器或现在是这个截获的主服务器的DNS服务器。它还用于存储会影响区域更新或过期的其他属性,如版本信息和计时,这些属性会影响在这个区域的域名服务器之间进行同步数据的频繁程度

    NS 资源记录

    NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。每个区在区根处至少包含一个NS 记录。

    A 资源记录

    A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少, 它是域名和IP地址的对应关系,表现形式为 www.contoso.com 192.168.1.1

    PTR 资源记录

    相对于A 资源记录,指针(PTR)记录把IP地址映射到FQDN。 用于反向查询,通过IP地址,找到域名。

    CNAME 资源记录

    别名记录(CNAME)资源记录创建特定FQDN 的别名。用户可以使用CNAME 记录来隐藏用户网络的实现细节,使连接的客户机无法知道真正的域名。

    MX 资源记录

    • 邮件交换(MX)资源记录,为DNS 域名指定邮件交换服务器。
    • 邮件交换服务器是为DNS 域名处理或转发邮件的主机。处理邮件指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件指把邮件发送到最终目的服务器,用简单邮件传输协议SMTP 把邮件发送给离最终目的地最近的邮件交换服务器,或使邮件经过一定时间的排队。

    资源记录的通用格式

    name  [time]  IN   type   value
    
    通用格式 意义
    name 要解析的目标主机的名称
    time 解析结果的缓存时间
    IN 关键词
    type 资源记录类型
    value 将目标主机解析到哪个地址

    DNS服务器部署(正向解析)

    第一步:下载bind

    ╭─root@www.du1.com ~  
    ╰─➤  yum install bind bind-utils -y 
    

    第二步:配置DNS主配置

    ╭─root@www.du1.com ~  
    ╰─➤  vim /etc/named.conf
    
    ...
    options {
    listen-on port 53 { any; };      #把127.0.0.1改成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”;
    allow-query { any; };            #把localhost改为any
    ...
    

    第三步:修改区域配置文件

    ╭─root@www.du1.com ~  
    ╰─➤  vim /etc/named.rfc1912.zones 
    
    ...
    zone “du.com” IN {    #定义自己的域
    type master;
    file “du.com.zone”;   #定义域文件
    allow-update { none; };
    };
    ...
    

    第四步:配置域文件

    ╭─root@www.du1.com /etc/named  
    ╰─➤  cd /var/named                                                 
    ╭─root@www.du1.com /var/named  
    ╰─➤  ls
    data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
    ╭─root@www.du1.com /var/named  
    ╰─➤  cp -a named.localhost du.com.zone
    ╭─root@www.du1.com /var/named  
    ╰─➤  vim du.com.zone
    
    ...
    $TTL 1D
    @       IN SOA  @ rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      @
            A       127.0.0.1
    www IN A   192.168.80.3
    yin IN A  192.168.80.4
    
    ...
    

    第五步:重启服务

    ╭─root@www.du1.com /var/named  
    ╰─➤  systemctl restart named
    

    第六步:使用自己的DNS服务器

    ╭─root@www.du1.com /var/named  
    ╰─➤  vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    
    
    ...
    
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.80.3
    NETMASK=255.255.255.0
    GATEWAY=192.168.80.2
    #DNS1=8.8.8.8
    #DNS2=114.114.114.114
    DNS=192.168.80.3
    
    ~                  
    ...
    ╭─root@www.du1.com /var/named  
    ╰─➤  systemctl restart network
    
    

    第七步:验证

    ╭─root@www.du1.com /var/named  
    ╰─➤  nslookup                         
    > www.du.com
    Server:		127.0.0.1
    Address:	127.0.0.1#53
    
    Name:	www.du.com
    Address: 192.168.80.3
    > 
    > yin.du.com
    Server:		127.0.0.1
    Address:	127.0.0.1#53
    
    Name:	yin.du.com
    Address: 192.168.80.4
    
    

    DNS部署反向解析

    第一步:下载bind

    ╭─root@www.du1.com ~  
    ╰─➤  yum install bind bind-utils -y 
    

    第二步:配置DNS主配置

    ╭─root@www.du1.com ~  
    ╰─➤  vim /etc/named.conf
    
    ...
    options {
    listen-on port 53 { any; };      #把127.0.0.1改成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”;
    allow-query { any; };            #把localhost改为any
    ...
    

    第三步:修改区域配置文件

    ╭─root@www.du1.com ~  
    ╰─➤  vim /etc/named.rfc1912.zones 
    
    ...
    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 "80.168.192.in-addr.arpa" IN {     # 写ip
            type master;
            file "du.com.zone";         #指定域文件
            allow-update { none; };
    };
    
    ...
    

    第四步:编辑域文件

    ╭─root@www.du1.com /var/named  
    ╰─➤  cd /var/named 
    ╭─root@www.du1.com /var/named  
    ╰─➤  ls
    data  du.com.zone  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
    ╭─root@www.du1.com /var/named  
    ╰─➤  cat named.loopback >> du.com.zone
    ╭─root@www.du1.com /var/named  
    ╰─➤  vim du.com.zone
    
    ...
    
    $TTL 1D
    @       IN SOA  @ rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      @
            A       127.0.0.1
            PTR     localhost.
    4 IN PTR  www.du.com
    5 IN PTR www.du.cn
    ...
    

    第五步:重启named

    ╭─root@www.du1.com /var/named  
    ╰─➤  systemctl restart named  
    

    第六步:使用自己的DNS服务器

    ╭─root@www.du1.com /var/named  
    ╰─➤  vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    
    
    ...
    
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.80.3
    NATMASK=255.255.255.0
    GATEWAY=192.168.80.2
    #DNS1=8.8.8.8
    #DNS2=114.114.114.114
    DNS=192.168.80.3
    
    ~                  
    ...
    ╭─root@www.du1.com /var/named  
    ╰─➤  systemctl restart network
    
    

    第七步:验证

    ╭─root@www.du1.com /var/named  
    ╰─➤  nslookup 192.168.80.4                               
    Server:		127.0.0.1
    Address:	127.0.0.1#53
    
    4.80.168.192.in-addr.arpa	name = www.du.com.80.168.192.in-addr.arpa.
    
    ╭─root@www.du1.com /var/named  
    ╰─➤  nslookup 192.168.80.5
    Server:		127.0.0.1
    Address:	127.0.0.1#53
    
    5.80.168.192.in-addr.arpa	name = www.du.cn.80.168.192.in-addr.arpa.
    

  • 相关阅读:
    JAVA Shallow heap & Retained heap
    JAVA-堆区,栈区,方法区。
    Android经典的设计模式
    Android 绘制view的小知识点
    Android View的滑动 动画
    Android开发aidl使用中linkToDeath和unlinkToDeath的使用
    Android任务栈的运行规律
    Android 通过httppost上传文本文件到服务器。
    Android中的Libraries以及Order and Export的使用。
    drawable微技巧以及layout的小知识
  • 原文地址:https://www.cnblogs.com/du-z/p/10917916.html
Copyright © 2011-2022 走看看