zoukankan      html  css  js  c++  java
  • Linux之DNS——种种

    一、DNS基本介绍

    1、dns域名结构

    • 根域

    • 一级域名:Top Level Domain: tld

    com, edu, mil, gov, net, org, int,arpa

    三类:组织域、国家域(.cn, .jp)地区域(.hk, .tw)、反向域

    • 二级域名

    • 三级域名

    • 最多127级域名

    2、dns解析

    •DNS查询类型:

       递归查询

       迭代查询

    • 名称服务器:域内负责解析本域内的名称的主机 根服务器:13组服务器,1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美 国,欧洲2个,位于英国和瑞典,亚洲1个位于日本

    • 解析类型: FQDN --> IP IP –> FQDN

    • 注意:正反向解析是两个不同的名称空间,是两棵不同的解析树

    3、dns服务器类型

    • DNS服务器的类型:

    主DNS服务器

    从DNS服务器

    缓存DNS服务器(转发器)

    • 主DNS服务器:管理和维护所负责解析的域内解析库的服务器

    • 从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本 序列号:解析库版本号,主服务器解析库变化时,其序列递增 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

    重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

    过期时长:从服务器联系不到主服务器时,多久后停止服务

    • “通知”机制:主服务器解析库发生变化时,会主动通知从服务器

    4、dns解析

    解析答案分为肯定答案,否定答案;应答分为权威应答和非权威应答。

    肯定答案: 一个肯定答案有返回结果

    否定答案:请求的条目不存在等原因导致无法返回结果

    权威答案: 客户端从指定的dns直接获取的解析

    非权威答案:客户端通过指定的dns从其他渠道获得的解析

    5、资源记录

    区域解析库:由众多RR组成:

    资源记录:Resource Record, RR

    记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

    • SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解 析库的第一条记录

    • A:internet Address,作用,FQDN –> IP

    • AAAA: FQDN --> IPv6 • PTR: PoinTeR,IP –> FQDN

    • NS: Name Server,专用于标明当前区域的DNS服务器

    • CNAME:Canonical Name,别名记录

    • MX: Mail eXchanger,邮件交换器

    SOA记录
    • name: 当前区域的名字,例如“magedu.com.”

    • value: 有多部分组成

    (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;

    (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如 linuxedu.magedu.com

    (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL

    例如: magedu.com.     86400        IN         SOA 

    复制代码
    ns.magedu.com. nsadmin.magedu.com. (
    
                                                   2015042201                    ;序列号
    
                                                   2H                             ;刷新时间
    
                                                   10M                            ;重试时间
    
                                                   1W                             ;过期时间
    
                                                   1D                             ;否定答案的TTL值
    
                                                               )在zone文件里,“;”表示注释
    复制代码

    NS记录

    • name: 当前区域的名字

    • value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.

    • 注意:一个区域可以有多个NS记录

    例如:    magedu.com.                  IN                                                  NS                          ns1.magedu.com.

          magedu.com.       IN                       NS             ns2.magedu.com.

    • 注意: (1) 相邻的两个资源记录的name相同时,后续的可省略

                     (2) 对NS记录而言,任何一个ns 记录后面的服务器名字,都应该在后续有一个A记录

                     (3) 空格和@都代表当前zone名,如果自己手写注意以 “.” 结束。

    A记录

    • name: 某主机的FQDN,例如www.magedu.com.

    • value: 主机名对应主机的IP地址

    例如:

    www.magedu.com.               IN                A                          1.1.1.1
    www.magedu.com.               IN                A                          2.2.2.2
    *.magedu.com.                 IN                A                          5.5.5.5

    注意:一般NS记录后必须跟一个A记录;A记录前主机名后跟ip地址;*代表泛域名

    PTR

    name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:inaddr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa. value: FQDN

    例如:

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

    如1.2.3为网络地址,可简写成:

    4                                  IN                 PTR                             www.magedu.com.

    • 注意:网络地址及后缀可省略;主机地址依然需要反着写

    二、dns实验操作

    实验一:在centos7上部署dns实现对magedu.com的正向解析及对192.168.248的反向解析

    1、安装bind

    [root@localhost(wsy) ~]# yum -y install bind

    2、修改etc下named.conf文件

    复制代码
    [root@localhost(wsy) ~]#vim /etc/named.conf
    
    listen-on port 53 { any; };
    
    allow-query     { any; };
    
    ……
    include "/etc/named.magedu.zones";
    复制代码

    3、修改etc下关于域名的文件

    复制代码
    [root@localhost(wsy) ~]#cp -p /etc/named.rfc1912.zones /etc/named.magedu.zones   -p 表示权限不变
    [root@localhost(wsy) ~]#vim /etc/named.magedu.zones
         zone "magedu.com" IN {
                 type master;
                 file "magedu.com.zone";
         };
    
         zone "248.168.192.in-addr.arpa" IN {
                 type master;
                 file "192.168.248.zone";
         };     
    复制代码

    4、启动named服务

    [root@localhost(wsy) ~]#named-checkconf

    5、进入var目录并修改相应zone文件

    复制代码
    [root@localhost(wsy) ~]#cd /var/named/
    [root@localhost(wsy) ~]#cp -p named.localhost magedu.com.zone
    [root@localhost(wsy) ~]#vim magedu.com.zone
    $TTL 1D
         @       IN SOA  @ admin.magedu.com. (
                                                 0       ; serial
                                                 1D      ; refresh
                                                 1H      ; retry
                                                 1W      ; expire
                                                 3H )    ; minimum
         magedu.com.                NS   ns1.magedu.com.
         ns1.magedu.com.    3600 IN A    192.168.248.7
         www                        A    192.168.248.6
    [root@localhost(wsy) ~]#cp -p magedu.com.zone 192.168.248.zone
    [root@localhost(wsy) ~]#vim 192.168.248.zone
    $TTL 1D
         @       IN SOA  magedu.com. admin.magedu.com. (
                                                 0       ; serial
                                                 1D      ; refresh
                                                 1H      ; retry
                                                 1W      ; expire
                                                 3H )    ; minimum
         @          NS   ns1.magedu.com.
         7                          PTR  ns1.magedu.com.
         6                          PTR  www.magedu.com.
    
    [root@localhost(wsy) ~]#named-checkzone magedu.com /var/named/magedu.com.zone
    zone magedu.com/IN: loaded serial 0
    OK
    [root@localhost(wsy) ~]#named-checkzone 153.168.192.in-addr.arpa /var/named/192.168.248.zone
    zone 248.168.192.in-addr.arpa/IN: loaded serial 0
    OK
    [root@localhost(wsy) ~]#rndc reload
    复制代码

    6、客户端测试

    [root@localhost(wsy) ~]#dig -t ns magedu.com @192.168.248.7

    实验二:动态dns更新

    1、进入etc目录下named.conf文件修改配置文件,允许更新。

    复制代码
    [root@localhost(wsy) ~]#vim /etc/named.conf
    Allow-update {any;};
    [root@localhost(wsy) ~]#chmod770 /var/named
    [root@localhost(wsy) ~]#setsebool -P named_write_master_zones on
    [root@localhost(wsy) ~]#nsupdate
    >server 127.0.0.1
    >zone magedu.com
    >update add ftp.magedu.com 88888 IN A 8.8.8.8
    >send
    >update delete www.magedu.com A
    复制代码

    测试:

    [root@rhel5 ~]#dig ftp.magedu.com @127.0.0.1
    [root@localhost(wsy) ~]#ll /var/named/magedu.com.zone.jnl

    实验3:DNS的主从

    1、安装bind

    [root@localhost(wsy) ~]#yum -y install bind

    2、修改etc下配置文件

    [root@localhost(wsy) ~]#vim /etc/name.conf
    allow-transfer { 192.168.248.6; };

    3、配置从dns

    [root@rhel5 ~]#vim /etc/name.rfc1912.zones
         zone "magedu.com" IN {
             type slave;
             masters { 192.168.248.7; };
             file "slaves/magedu.com.ZONE";
         };

    4、重启服务

    [root@localhost(wsy) ~]#service named restart

    5、测试设置是否成功

    [root@rhel5 ~]#dig -t axfr magedu.com @192.168.248.7

    实验四:子域委派,部署magedu.com   zz.magedu.com  bj.magedu.com

    子域委派一般分为三种方式:
    1.子域和父域在一个文件里。

    2.子域和父域在同一个机器上。不用委派,直接创建

    3.子域和父域不在同一个机器上,要子域委派

    在这里以第三种方式来做实践操作。

    1、在父dns上做委派

    [root@localhost(wsy) ~]#vim /etc/named.conf
    dnssec-enable no;
    dnssec-validation no;

    2.修改var/named下文件里边部署

    [root@localhost(wsy) ~]#vim /var/named/magedu.com.zone
    zz                      NS      ns.zz.magedu.com.
    bj                      NS      ns.bj.magedu.com.
    ns.zz                   A       192.168.248.6
    ns.bj                   A       172.18.250.42

    3、在zz对应主机上修改相应配置

    复制代码
    [root@centos6(wsy) ~]#vim /etc/named.rfc1912.zones
         zone "zz.magedu.com" IN {
                 type master;
                 file "zz.magedu.com.zone";
         };
    [root@centos6(wsy) ~]#vim /var/named/zz.magedu.com.zone 
         $TTL 1D
         @       IN SOA  ns.zz.magedu.com. admin.zz.magedu.com. (
                                                 0       ; serial
                                                 1D      ; refresh
                                                 1H      ; retry
                                                 1W      ; expire
                                                 3H )    ; minimum
                       NS      ns.zz.magedu.com.
         ns            A       192.168.153.6
         www           A       2.2.2.2
    [root@centos6(wsy) ~]#service named restart
    复制代码

    4、在bj对应主机上配置

    复制代码
    [root@centos6(wsy) ~]# vim /etc/named.rfc1912.zones
    zone "bj.magedu.com" IN { type master; file "bj.magedu.com.zone"; }; [root@rhel5 ~]#cp -p named.localhost bj.magedu.com.zone [root@rhel5 ~]#vim bj.magedu.com.zone $TTL 1D @ IN SOA ns.bj.magedu.com. admin.bj.magedu.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.bj.magedu.com. ns A 172.18.251.125 www A 3.3.3.3 [root@rhel5 ~]#service named restart
    复制代码

    实验五:设置转发dns

    only: 本机有的结果优先,本机查不到,则交给转发。转发也查不到,则结束,报告查不到。
    first: 本机有的结果优先,本机查不到,则交给转发。转发查不到(包含转发自己的以及转发迭代的),则本机再迭代。

    1、全局转发

    复制代码
    [root@localhost(wsy) ~]#vim /etc/named.conf
    options {
         ……
         forward only|first;默认是first
         forwarders { x.x.x.x; };
         ……
    };
    复制代码

    2、特定区域转发

    zone "mage.com" {
             type forward;
             forwarders { 192.168.248.12; };
    };

    实验六:设置不同区域记录返回不同结果view(设置view时需要把zone文件写出来)

    1、修改配置文件

    复制代码
    [root@localhost(wsy) ~]#vim /etc/named.conf
    view bjview {
         match-clients { beijing; };
         include "/etc/named.bj.zones";
    };
    view zzview {
         match-clients { zhengzhou; };
         include "/etc/named.zz.zones";
    };
    复制代码

    2、分别编辑对应的域文件

    复制代码
    [root@localhost(wsy) ~]#vim /etc/named.bj.zones
    zone "example.com" IN {
             type master;
             file "example.com.zone";
         };
    [root@localhost(wsy) ~]#vim /etc/named.zz.zones
         zone "example.com" IN {
             type master;
             file "example.com.ZONE";
         };
    复制代码

    3、编辑var下zone文件

    复制代码
    [root@localhost(wsy) ~]#vim /var/named/example.com.zone
         $TTL 1D
         @    IN SOA    ns.example.com. rname.invalid. (
                             0    ; serial
                             1D    ; refresh
                             1H    ; retry
                             1W    ; expire
                             3H )    ; minimum
                      NS    ns.example.com.
           ns         A    192.168.248.110
           www        A    100.100.100.100
    [root@localhost(wsy) ~]#vim /var/named/example.com.ZONE
    $TTL 1D
    @    IN SOA    ns.example.com. rname.invalid. (
                         0    ; serial
                         1D    ; refresh
                         1H    ; retry
                         1W    ; expire
                         3H )    ; minimum
                  NS   ns.example.com.
    ns            A    192.168.248.110
    www           A    200.200.200.200
    复制代码

    其实dns相关的实验操作还有很多,不过基本操作也就大致如此,我们可以基于这些基本操作实现多台机器之间主从设置,以及子域父域等相关操作,这里我就不做过多展示了。

  • 相关阅读:
    八、springboot 简单优雅的通过docker-compose 构建
    【并发编程】ThreadLocal其实很简单
    计算机网络
    相似度
    不同激活函数的区别
    快速排序+归并排序
    xgboost
    c++面试
    PCA算法和SVD
    各种排序算法的时间复杂度和空间复杂度
  • 原文地址:https://www.cnblogs.com/liuhongru/p/11058310.html
Copyright © 2011-2022 走看看