DNS配置详解 bind实现正向解析和反向解析

DNS是域名服务(Domain Name Service),负责把域名解析成IP地址(正向解析)或者把IP地址解析为域名(反向解析)。

DNS查询过程

假设我们要访问www.abc.com,dns解析请求会发送给我们配置dns服务器,如果当前已有缓存则直接把结果返回给我们的终端,如果没有则向dns的根查询负责解析.com的服务器的IP,找到负责.com域的服务器后再向其查询负责abc.com这个域的服务器的IP,得到结果后再向其查询www.abc.com的IP地址,查询到结果后再返回给我们。

在这个过程中,我们只需要向我们指向的dns发起一次dns请求,他就会把最终的结果返回给我们,这个过程称为递归查询,而当其缓存中没有我们要查询的记录时,他需要一级一级的分别向根,.com, abc.com查询,每一次的查询请求都是他自己发起的,这个过程称为迭代查询

由于abc.com这个域的解析不是由我们指向的dns服务器负责的,所以他返回给我们的答案为非权威应答,而他通过迭代从负责abc.com的dns服务器查询到的结果则为权威应答

在互联网上总共有13个根服务器,在linux系统上可以dig -t NS .查看


1

2

3

4

5

6

7

8

9

10

11

12

13

14

[[email protected] ~]# dig -t NS . | awk ‘$4=="A" {print $0}‘

d.root-servers.net. 5   IN  A   199.7.91.13

b.root-servers.net. 5   IN  A   192.228.79.201

a.root-servers.net. 5   IN  A   198.41.0.4

c.root-servers.net. 5   IN  A   192.33.4.12

j.root-servers.net. 5   IN  A   192.58.128.30

f.root-servers.net. 5   IN  A   192.5.5.241

k.root-servers.net. 5   IN  A   193.0.14.129

l.root-servers.net. 5   IN  A   199.7.83.42

e.root-servers.net. 5   IN  A   192.203.230.10

g.root-servers.net. 5   IN  A   192.112.36.4

i.root-servers.net. 5   IN  A   192.36.148.17

m.root-servers.net. 5   IN  A   202.12.27.33

h.root-servers.net. 5   IN  A   128.63.2.53

DNS资源记录类型

FQDN --> IP           A    IPv4 FQDN(Fully Qualified Domain Name)

FQDN --> IP           AAAA IPv6

Domain --> DNS Server NS 

Domain --> Master DNS SOA(Start Of Authority)起始授权记录:准确说明谁是主dns服务器,主辅之间如何同步

FQDN --> FQDN         CNAME(Canonical Name)   别名记录

Domain --> Mail Server MX (Mail eXchanger) 邮件服务器,有优先级,0-99,数字越小,优先级越高

IP --> FQDN            PTR(Pointer)     反向解析记录

:正向解析和反向解析使用不同的名称解析库,每一个名称解析库叫做一个zone(区域)

正向解析的根是 .(一个点)

反向解析的根是 .in-addr.arpa.

DNS安装配置

  1. 作为DNS缓存服务器

    1. 全球使用最广泛的dns服务器软件bind,由www.isc.org维护,同时dhcp软件也由他维护,可以去官网下载软件源码和文档
    2. 安装过程很简单 yum install -y bind
    3. 主配置文件/etc/named.conf,默认配置是监听在127.0.0.1上的且只允许本机查询,只需要更改为主机的对外地址或者直接注释(监听在所有网络接口、允许所有主机查询),启动服务就可作为一台DNS缓存服务器了。
    4. bind9是C语言写的,配置文件也是C语言风格,// 是注释符,每个语句结束要加;分号,bind10据说用C++和Python写的,options段定义的是全局参数

    5. 1

      2

      3

      //      listen-on port 53 { 127.0.0.1; };

      //      listen-on-v6 port 53 { ::1; };

      //      allow-query     { localhost; };

    6. rpm包给我们提供了启动脚本named, service named start即可
  2. 配置正向解析
    1. 在named.conf中

1

2

directory       "/var/named";    

include "/etc/named.rfc1912.zones";

编辑named.rfc1912.zones添加以下内容以增加对域bob.org的管理


  1. 1

    2

    3

    4

    5

    zone "bob.org" IN {

        type master;    // 类型为主服务器

        file "bob.org.zone";    // 指定资源解析库存放位置,这个路径是相对

    // named.conf中定义的directory的,即实际位置为/var/named/bob.org.zone

    };

  2. 创建文件/var/named/bob.org.zone添加以一内容

  3. 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    $TTL 43200;  // 这里可以定义全局变量,如果没有定义TTL则继承这里的43200单位秒 

    // 第一条记录必须为SOA记录

    bob.org./*区域名称,可以写成@直接引用当前区域名称*/    86400/*TTL,可不定义,会直接继承全局的*/

    IN /*Internet,固定格式*/   SOA /*记录类型*/   ns.bob.org. /*主服务器的FQDN*/

    admin.bob.org /*管理员邮箱,因为@有特殊意义用点代替*/

    $TTL 43200;

    @    86400    IN    SOA    ns.bob.org.    admin.bob.org (

            201410070001; //serial number序列号

            1h;    // refresh time 主辅之间刷新时间

            5m;    // retry time 拉取信息不成功的重试时间

            7d;    // expire time 过期时间,过期后辅服务器也将放弃解析

            1d; )  // 否定答案的TTL

            

    @/*引用当前域名,可省略*/ IN  NS  ns.bob.org. 

        IN  MX  10  mail1.bob.org.

        IN  MX  20  mail2 /*相当于mail2.bob.org.*/

    ns  IN  A   172.16.100.10

    www IN  A   172.16.100.11

    webmail IN CNAME   mail2

    mail1.bob.org.  IN  A   172.16.100.12  

    mail2.bob.org.  IN  A   172.16.100.13


  4. 1

    2

    3

    4

    5

    6

    [[email protected] named]# named-checkconf  // 检查配置文件

    [[email protected] named]# chown :named /var/named/bob.org.zone

    [[email protected] named]# named-checkzone "bob.org" "/var/named/bob.org.zone"

    // 检查区域文件是否正确 

    zone bob.org/IN: loaded serial 3841574385

    OK


  5. 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    [[email protected] named]# dig -t NS bob.org @172.16.100.10     // 测试是否可解析

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t NS bob.org @172.16.100.10

    ;; global options: +cmd

    ;; Got answer:

    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34365

    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

    // 标志aa(authority answer)权威答案

    ;; QUESTION SECTION:

    ;bob.org.           IN  NS

    ;; ANSWER SECTION:

    bob.org.        43200   IN  NS  ns.bob.org.

    ;; ADDITIONAL SECTION:

    ns.bob.org.     43200   IN  A   172.16.100.10

    ;; Query time: 0 msec

    ;; SERVER: 172.16.100.10#53(172.16.100.10)

    ;; WHEN: Wed Aug 27 14:13:38 2014

    ;; MSG SIZE  rcvd: 58

3. 配置反向解析


    1. 1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      $TTL 43200;

      @   86400   IN  SOA ns.bob.org. admin.bob.org. (

              201410070001;

              1h;

              5m;

              7d;

              1d;)

          IN  NS  ns.bob.org.    // NS记录是必须的

          IN  MX  10  mail1.bob.org.

          IN  MX  20  mail2.bob.org.

      10  IN  PTR ns.bob.org.

      10  IN  PTR www.bob.org.

      11  IN  PTR mail1.bob.org.

      12  IN  PTR mail2.bob.org.

      12  IN  PTR webmail.bob.org.


    2. 1

      2

      3

      4

      zone "100.16.172.in-addr.arpa" IN {

          type master;

          file "172.16.100.zone";

      };

    1. 在区域配置文件/etc/named.rfc1912.zones新建一个区域
    2. 创建反向资源解析库文件/var/named/172.16.100.zone

    3. 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

      // 测试反向解析

      [[email protected] named]# dig -x 172.16.100.10 @172.16.100.10

      ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -x 172.16.100.10 @172.16.100.10

      ;; global options: +cmd

      ;; Got answer:

      ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11785

      ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

      ;; WARNING: recursion requested but not available

      ;; QUESTION SECTION:

      ;10.100.16.172.in-addr.arpa.    IN  PTR

      ;; ANSWER SECTION:

      10.100.16.172.in-addr.arpa. 43200 IN  PTR www.bob.org.

      10.100.16.172.in-addr.arpa. 43200 IN  PTR ns.bob.org.

      ;; AUTHORITY SECTION:

      100.16.172.in-addr.arpa. 43200 IN  NS  ns.bob.org.

      ;; ADDITIONAL SECTION:

      ns.bob.org.     43200   IN  A   172.16.100.10

      ;; Query time: 0 msec

      ;; SERVER: 172.16.100.10#53(172.16.100.10)

      ;; WHEN: Wed Aug 27 19:35:57 2014

      ;; MSG SIZE  rcvd: 116

      [[email protected] named]# host -t PTR 172.16.100.10

      10.100.16.172.in-addr.arpa domain name pointer ns.bob.org.

      10.100.16.172.in-addr.arpa domain name pointer

时间: 2024-08-04 18:35:49

DNS配置详解 bind实现正向解析和反向解析的相关文章

RHEL 6.6 DNS 配置详解

域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网.DNS 使用TCP和UDP端口53.当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符. 注: bind服务需要用到的端口号如下 UDP 53 TCP 53 TCP 953 bind主配置文件named.conf bind辅助区域配置文件named.rfc1912.zones中配置正向域和反向域 主配置文件

DNS 配置详解

DNS 解析一个正向区域配置     (DNS 监听的服务端口是53) 1.进行程序包的安装工作  yum install bind * -y 2.编辑配置文件 vim /etc/named.rfc1912.zones  在文件的尾端进行编辑如下所示 zone "magedu.com" IN { type master; file "magedu.com.zone"; }; 然后进行编辑主配置文件 vim /etc/named.conf options { list

NGINX源码安装配置详解(./configure),最全解析

NGINX ./configure详解 在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建"--without"表示禁用模块,也就是说这些模块在编译时会自动构建,若你想Nginx轻量级运行,可以去除一些不必要的模块. [[email protected] nginx-1.14.0]# ./configure --help => 查看安装配置项 --help 打印帮助信息. --prefix

马哥教育第十八天DNS、bind的基本配置详解

1.DNS: Domain Name Service DNS工作在53端口上,查询时使用udp协议,传送时使用tcp协议,全称域名:称为FQDN(Full Qualified Domain Name) 根域:root domain                        一级域:top-level domain                        二级域:公司.组织.个人使用                        主机: 递归:A --> B --> C -->

Linux学习之路-DNS原理-BIND配置详解

DNS原理-BIND配置详解 DNS系统概述 DNS系统作用     a) DNS,简单地说,就是Domain Name System,翻成中文就是"域名系统".主要的功能就是将人易于记忆的Domain Name与人不容易记忆的IP Address作转换.      b) DNS提供正向解析和反向解析          正向解析:根据主机名称(域名)查找对应的IP地址.          反向解析:根据IP地址查找对应的主机域名 DNS系统结构  系统结构原理  目前DNS采用的是分布

Linux系统DNS详解(BIND)

一.Linux运维实战之DNS基础    DNS服务作为网络的一种基础架构,在网络中有举足轻重的地位.它担负着整个网络用户计算机的名称解析工作.没有正确的名称解析,服务器就无法识别各客户机.我们在日常进行的浏览网页等上网活动,无一例外都在使用DNS服务.*******************************************************************************    DNS的基本知识:        DNS服务器的组成        DNS域名称

Linux-dns基础知识和BIND的简单配置-2(正向解析和反向解析)

DNS服务器基本配置 bind详解:包名:bind进程:named协议:dns使用端口:53(tcp,udp)相关包:bind-chroot:将named进程的活动范围限定在chroot目录,保证安全性.bind-devel:与开发相关的头文件和库文件(编译安装bind时所需)bind-libs:bind服务器端和客户端都使用到的公共库文件bind-utils : bind客户端工具程序文件:/usr/sbin/namedbind权限相关:安装完named会自动创建用户named系统用户,nam

CentOS DNS服务详解与基于bind的智能DNS

Linux中通常使用bind来实现DNS服务器的架设 安装bind 安装DNS服务软件Bind和相应工具包 #yum install bind bind-utils -y #service named start Generating /etc/rndc.key: [ OK ] Starting named: [ OK ] 资源记录类型 起始授权结构(SOA):指出当前区域内谁是 主DNS服务器 主机(A): 将域名FQND映射到IP 正向解析 别名(CNAME): 将A记录指向的域名 指向 另

Linux DNS正向解析和反向解析配置实例(一)

示例:建立正向反向解析区域为ning.com 在下面的配置中,有详细的解析配置: 1.配置文件的内容设置 #vim /etc/named/named.conf options {   // listen-on port 53 { 127.0.0.1; };----------必须监听在可以和外部通信的一个地址上可以指定,注意书写格式.(注释//掉是监听到所有的53号端口上)   //listen-on-v6 port 53 { ::1; };--------------IPV6的监听地址(注释/