• DNS原理与部署-Bind


    一、DNS概述与原理

    1、概述

    DNS(Domain Name System,域名系统)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。把ip地址解析为域名为正向解析,把域名解析为ip地址为反向解析。
    • 递归DNS服务器:从根域一层一层找到权威DNS服务器 eg:114.114.114.114/61.139.2.69 /8.8.8.8/8.8.4.4
    • 权威DNS服务器:直接负责某些特定域名的解析
    • 转发DNS服务器

    2、DNS查询过程

    DNS查询过程:从"根域名服务器"查到"顶级域名服务器"的NS记录和A记录(IP地址);从"顶级域名服务器"查到"次级域名服务器"的NS记录和A记录(IP地址);从"次级域名服务器"查出"主机名"的IP地址。

    主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
     本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

     3、DNS记录类型

    SOA:起始授权记录
    NS:域名服务器记录
    A, AAAA:解析IPv4,IPv6地址
    CNAME:别名记录
    PTR:IP反向解析为域名
    MX:邮件记录

    SRV:(Service record),指明某域名下提供的服务,即,主机名和端口号。zone文件编写格式如下:

    _prometheus._tcp.cmxu.com.   1H IN SRV 10 10 9100 node1.cmxu.com.
    依次代表的含义是:
    service,所需服务器的符号。(_prometheus)
    proto,所需服务的传输协议,通常是 TCP 或 UDP。(_tcp)
    name,此记录有效的域名,以 . 结束。(cmxu.com.)
    TTL,标准 DNS TTL 字段。(1H)
    class,标准 DNS class 字段,如:IN。(IN)
    priority,目标主机的优先级,值低的优先。(10)。
    weight,具有相同优先级的记录的相对权重,值高的优先。(10)
    port,该服务的 TCP 或 UDP 端口。(9100)
    target,提供服务的机器的规范主机名,以 . 结束。(node1.cmxu.com.)

    注:只有A,AAAA记录后面能够写IP地址。

    二、搭建DNS服务器

    1、权威dns服务器

    [root@master ~]# yum -y install bind
    [root@master ~]# vim /etc/named.conf  #修改监控地址和允许查询的地址
    listen-on port 53 { any; };
    allow-query     { any; };
    [root@master ~]# vim /etc/named.rfc1912.zones
    zone "cmxu.com." IN {
    type master;
    file "cmxu.com.zones";
    allow-update { none; };
    };
    [root@master
    ~]# vim /var/named/cmxu.com.zones #编写区域文件 @ SOA ns1 ns1.cmxu.com. ( 1234132 6H 1H 4D 1H) NS ns1 ns1 IN A 192.168.42.128 node1 IN A 192.168.42.133 master IN A 192.168.42.128 _prometheus._tcp.cmxu.com. 1H IN SRV 10 10 9100 node1.cmxu.com. _prometheus._tcp.cmxu.com. 1H IN SRV 10 10 9100 master.cmxu.com.

    [root@master ~]# chown named.named /var/named/ -R

    [root@master ~]# systemctl restart named
    [root@master ~]# systemctl enable named

    至此,权威dns服务器搭建完成,解析域名为cmxu.com,仅配置A记录与SRV记录。

    注:编写dns配置文件时一定要注意域名末尾"."。

    验证解析如下:

    [root@node1 prometheus]# nslookup 
    > set type=srv
    > _prometheus._tcp.cmxu.com
    Server:         192.168.42.128
    Address:        192.168.42.128#53
    
    _prometheus._tcp.cmxu.com       service = 10 10 9100 node1.cmxu.com.
    _prometheus._tcp.cmxu.com       service = 10 10 9100 master.cmxu.com.
    > set type=a
    > node1.cmxu.com
    Server:         192.168.42.128
    Address:        192.168.42.128#53
    
    Name:   node1.cmxu.com
    Address: 192.168.42.133
    > quit
    Server:         192.168.42.128
    Address:        192.168.42.128#53

    2、递归DNS服务器

    [root@master ~]# vim /etc/named.conf   # man named.conf
    allow-query     { any; };

    3.转发DNS服务器

    把请求转发给其他的dns服务器
    [root@master ~]#vim /etc/named.conf # man named.conf
    forward first|only #first先转发,再递归 only 只转发
    forwarders { 61.139.2.69; };
    dnssec-validation no;
     --
  • 相关阅读:
    C++11并发内存模型学习
    C++0x对局部静态初始化作出了线程安全的要求,singleton的写法可以回归到最原始的方式
    两次fopen不同的文件返回相同的FILE* 地址
    linux kernel kill jvm
    打印Exception信息
    java map value 排序
    java was started but returned exit code 1
    hive 建表语句
    hadoop mapreduce lzo
    分词 正文提取 java
  • 原文地址:https://www.cnblogs.com/cmxu/p/12272997.html
Copyright © 2020-2023  润新知