DNS  :  工作在应用层

DNS 作用 :  完成域名到IP的解析过程  FQDN --> IP

例如  :  www.ifeng.com  -->  123.103.122.24

DNS 查询方式:

1. 迭代查询

由DNS服务器通过层层查询得到结果的过程称为迭代查询

2. 递归查询

客户机向服务器请求,返回结果的过程称为递归查询

DNS 工作过程:

1. 客户机通过自身host 文件 及 DNS 缓存查找解析记录;

2. 客户机将解析请求发送给指定的 DNS 服务器,例:114.114.114.114

3. DNS服务器通过层层查找得到解析地址

4. DNS服务器将得到的解析地址缓存到自身DNS cache中 ,并发送给客户机

5. 客户将结果放入DNS cache ,并使用

DNS 服务器资源解析记录类型:

SOA   : 起始解析记录,写在区域解析库文件的第一行

NS     : ns 解析记录 ,可以有多个

MX    :  邮件交换器解析记录

A       :  正向解析

AAAA :  正向解析(IPV6)

PTR   :  反向解析

CNAME  : 别名解析

资源解析记录库配置格式:

name      [TTL]      IN     RR_TYPE    value

SOA :     1. 当前区域的名称

2. 当前区域管理员的邮箱地址

3. 配置与从属服务器协商内容

协商内容: 序列号 (从服务器通过序列号的变更从主服务器更新资源库,如初始序列号为1,每更新一次资源库加1);

刷新间隔: 从服务器多久从主服务器更新资源库;

                 重传间隔 : 从服务器无法从主服务器更新资源库后,重试时间间隔;

                    过期时间 : 从服务器无法联系主服务器多久之后放弃从主服务器同步数据,并停止服务;

                 否定答案的缓存时常: 客户机获取否定答案(无法解析)后,将该答案缓存在本机的时常

示例:  ifeng.com.    86400    IN   SOA   ifeng.com.     admin.ifeng.com.   (

10;serial   (定义序列号)

2H;refresh    (定义刷新间隔)

                         20M;retry    (定义重传间隔)

                       1W;expire    (定义过期时间)

                          1D;negative answer ttl     (定义否定答案的缓存时常)

注:在解析库中@表示DNS主机区域名,因此邮件中的@用.代替,为 admin.ifeng.com

NS   :   name  : 区域名称     (一个区域中可以有多个NS记录)

value  :  区域内某DNS服务器的名称

示例;

ifeng.com.   86400   IN   NS   ns1.ifeng.com.

  MX  :   name :  区域名称  (一个区域内可以有多个MX记录, value之前用优先级标识,1~99,越低越优先)

value  :  区域内邮件交换器的名称

示例:

ifeng.com.   86400   IN   MX   mx1.ifeng.com.

  A    :  name  : 某 FQDN ,  例如 www.ifeng.com

value : FQDN 对应的 ip 地址

示例:

www.ifeng.com.    86400   IN   A   192.168.1.1

  AAAA :   name : 某 FQDN

value  : FQDN对应的 IPV6地址

  PTR  : name:IP地址,有特定格式,反过来写,加特定后缀:   例如:ip为 1.2.3.4 的记录应该写为 4.3.2.1.in-addr-arpa.

value  : FQDN

示例:

      4.3.2.1.in-addr-arpa.   IN   PTR   web.ifeng.com

  CNAME  : name: FQDN格式的名字

       value : FQDN  格式的正式名字

      示例:

          web.ifeng.com   IN   CNAME   www.ifeng.com

 

                 

注意:  NS,MX  等记录的value为fqdn,该fqdn应该有一个A记录

实战:  配置一个正向解析 DNS 服务器:

(1) 安装 DNS 服务程序

yum install bind    (主DNS程序)

yum instal bind-utils  (DNS程序辅助工具)

(2) 修改主配置文件及添加解析区域;

  vim /etc/named.conf

  option {

listen-on port 53 { 192.168.8.16; };     (监听地址为服务器网卡外网地址)

。。。

allow-query     { any; };                            (允许请求改为  any )

};

dnssec-enable no;
          dnssec-validation no;             (关闭DNS校验)

保存退出

vim /etc/named.rfc1912.zones      (在文件尾部添加解析区域)

  zone "ifeng.com" IN {                      (此处以区域 ifeng.com 为例)
  type master;
  file "ifeng.com.zone";            (定义区域解析库文件名)
  };

保存退出

(3)  添加资源解析库文件及修改DNS

  cd /var/named/

vim ifeng.com.zone        (文件名与区域中定义文件名一致)

  $TTL 1D             (在新文件中写以下内容,@会自动替换为区域名称,此处自动替换为 ifeng.com)
  @    IN    SOA    ns1.ifeng.com.   admin.ifeng.com (
        10
        2H
        10M
        1W
        1D
        )
  @   IN    NS    ns1.ifeng.com.                  (ns解析记录)
  @   IN   MX   10 mx1.ifeng.com.               (邮件交换器解析记录)
  ns1.ifeng.com.   IN    A    192.168.8.16
  mx1.ifeng.com.    IN    A   192.168.8.17              
  www.ifeng.com.   IN   A    192.168.8.16     (正向解析记录  FQDN --> IP)
  bbs.ifeng.com.   IN   A    192.168.8.17     (正向解析记录)

保存退出

vim /etc/resolv.conf

nameserver 192.168.8.16   (将DNS修改为服务器自身IP地址)

保存退出

(4) 修改文件权限 ,确保文件不被其用户修改

chgrp named /var/named/ifeng.com.zone

chmod o= /var/named/ifeng.com.zone

(5) 重载配置文件 及启动服务

systemctl start named

systemctl enable named

rndc reload     (重载配置文件)

systemctl reload named    (重载配置文件)

(6)  测试

dig -t A www.ifeng.com

   dig  -t A www.baidu.com

(修改其他主机DNS指向服务器端,测试是否可以递归解析)

实战: 配置反向 DNS 解析区域

(1)  添加反向解析区域

vim /etc/named.rfc1912.zones

  zone "8.168.192.in-addr.arpa" IN {           ( ip 解析区域为反向,此处需要解析区域为 192.168.8.1~254 ,则区域名称为 8.168.192.in-addr.arpa)
  type master;
  file "192.168.8.in-addr-arpa.zone";          (定义区域解析库文件名)
  };

(2)  添加反向解析区域库文件

cd /var/named/

vim 192.168.8.in-addr-arpa.zone

  $TTL 3600
  $ORIGIN 8.168.192.in-addr.arpa.        (表示自动补全内容,如下输入16 通过自动补全为 16.8.168.192.in-addr.arpa. ) 
  @   IN   SOA   ns1.ifeng.com    admin.ifeng.com (
        10
        2H
        10M
        1W
        1D
        )
  @   IN   NS   ns1.ifeng.com.
  16    IN   PTR    www.ifeng.com.
  17   IN    PTR    mx1.ifeng.com.
  18   IN    PTR    bbs.ifeng.com.
  16    IN    PTR    ns1.ifeng.com.

保存退出

(3)  检查配置文件 :

named-checkconf      (检查主配置文件)

named-checkzone 8.168.192.in-addr.arpa  /var/named/192.168.8.in-addr-arpa.zone  (检查区域配置文件)

(4) 修改文件权限

  chgrp named /var/named/ifeng.com.zone

chmod o= /var/named/ifeng.com.zone

(5) 重载 配置文件

   rndc reload

systemctl reload named

(6)  测试

dig -x 192.168.8.17

实战: 主从服务器配置

从服务器配置;

(1) 安装DNS服务程序;

  yum install bind

    yum install bind-utils

(2) 添加解析区域及修改主配置文件

vim /etc/named.rfc1912.zones

在文件尾部添加以下行:

  zone "ifeng.com" IN {
  type slave;                                   (定义区域类型为 slave,从服务器)
  file "slaves/ifeng.com.zone";           (定义区域解析库文件路径,无需创建,从主服务器同步)
  masters { 192.168.8.16; };                (定义主服务器地址)
  };

 保存退出

  vim /etc/named.conf

  options {
  listen-on port 53 { 192.168.8.17; };          (修改监控Ip地址为从服务器外网卡地址)
  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; };        (允许DNS请求,any为所有

  recursion yes;      (是否为客户机进行递归查询,此处为允许,  no 为不进行递归查询)

  dnssec-enable no;           (关闭dnssec ,DNS校验)
  dnssec-validation no;

保存退出

(3) 启动named服务并重载配置文件

systemctl start named

rndc reload

systemctl status named   (查看服务状态)

主服务器配置

(1) 添加从服务器ns记录

vim /var/named/ifeng.com.zone    (修改主资源解析库文件)

@    IN   NS   ns2.ifeng.com       (添加从服务器ns2记录)

ns2.ifeng.com   IN  A    192.168.8.17          (添加从服务器正向解析记录)

(2)  重载配置文件  (主,从服务器都需重载)

rndc reload   

(3) 测试从服务器

dig -t A www.ifeng.com @192.168.8.17

实战: 子域委派配置

(1) 主DNS服务器配置

vim /var/named/ifeng.com.zone    (编辑正向解析库文件)

添加行:

   ops.ifeng.com.  IN      NS      ns1.ops.ifeng.com.     (添加子域ns解析记录)

      ns1.ops.ifeng.com.      IN      A       192.168.8.18      (添加子域A记录)

保存退出  (注:序列号加1,重载配置文件)

(2)   委派服务器配置

(2.1)        安装bind ,bind-utils  及修改主配置文件

yum install bind   yum install bind-utils

vim /etc/named.conf

listen-on port 53 { 192.168.8.18; 127.0.0.1; };            (设置监听地址为外网地址)

allow-query     { any; };           (允许所有请求)

      dnssec-enable no;              (关闭DNS 校验)

       dnssec-validation no;

保存退出

(2.2) 添加解析区域,及区域配置文件

vim /etc/named.rfc1912.zones

文件尾部添加行:

  zone "ops.ifeng.com" IN {
  type master;
  file "ops.ifeng.com.zone";
  };

保存退出

vim  /var/named/ops.ifeng.com.zone  (编辑新解析库文件)

  $TTL 3600
  $ORIGIN ops.ifeng.com.
  @    IN    SOA   ns1.ops.ifeng.com   admin.ops.ifeng.com (
    10
    2H
    10M
    1W
    1D
    )
  @   IN    NS   ns1.ops.ifeng.com.
  ns1   IN    A    192.168.8.18
  www   IN  A 1  92.168.8.17
  bbs   IN   A    192.168.8.18
  max    IN   A   192.168.8.16

保存退出

(2.3) 检查文件及启动程序重载配置文件

named-checkconf

   named-checkzone ops.ifeng.com   /var/named/ops.ifeng.com.zone

systemctl start named

    rndc reload

(2.4)   测试

dig -t A www.ops.ifeng.com

实战:定义转发域:

  (1)区域转发,只把对某个区域的请求转发给指定的服务器
  zone "ZONE_NAME" IN {
  type forward;
  forward {first|only}
  forwarders { server_ip; };
  };

  first : 首先转发;转发器不响应时自行去迭代查询;
  only : 只转发
  server_ip 可以有多个

  示例: /etc/named.rfc1912.zones
  zone "ifeng.com" IN {
  type forward;
  forward only
  forwarders { 172.16.100.67; };
  };

(2)全局转发,只要不是自己服务器定义的区域请求都转发给指定的服务器

  /etc/named.conf

  option {

  添加行:

  forwarders { 172.16.199.67; }; (只要自己无法解析,通通转发)
  };

实战:DNS  acl   配置:

访问控制指令:
  allow-query {} :允许查询的主机(白名单)
  allow-transfer {} :允许向哪些区域做区域传送;默认为向所有主机;应该配置仅允许从服务器
  allow-recursion {} :允许哪些主机通过本主机递归查询
  allow-update {} ;DDNS ,允许动态更新区域数据库文件中内容;(一般不允许更新)

  BIND 有四个内置的alc
  none :没有一个主机
  any : 任意主机
  local : 本机
  localnet :本机所在的ip所属的网络;

示例 : 定义 acl ,仅允许指定的主机查询

vim  /etc/named.conf

添加行:

acl   control {

192.168.8.0/24;                (设置允许网段

};

option    {

...

allow-query  {  control; };      (修改改行,调用 acl控制)

};

保存退出

测试: 仅允许 192.168.8.0/24 网段进行解析请求)

DNS and Bind的更多相关文章

  1. 移植DNS服务bind

    移植DNS服务bind 标签: makefile工作linuxbuildgcc工具 先写用于DNS的bind. 一. 移植环境 1 .硬件环境: Host : X86 PC Target : MPC8 ...

  2. DNS之BIND使用小结(Forward转发)

    之前详细介绍了DNS及其在linux下的部署过程,今天再说下DNS的BIND高级特性-forwarder转发功能.比如下面一个案例:1)已经在测试环境下部署了两台内网DNS环境,DNS的zone域名为 ...

  3. 【Linux】DNS服务-BIND从服务器、缓存服务器及转发服务器配置(三)

    环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example. ...

  4. centos6.5环境DNS-本地DNS服务器bind的搭建

    centos6.5环境DNS-本地DNS服务器bind的搭建 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库, ...

  5. Linux运维实战之DNS(bind)服务器的安装与配置

    转自http://sweetpotato.blog.51cto.com/533893/1598225 上次博文我们讨论了DNS的基础,本次博文我们重点来看看如何配置一台DNS服务器. [本次博文的主要 ...

  6. DNS和Bind配置指南

    /////////////////////////////目录//////////////////////////////////////一.DNS原理相关二.使用bind搭建最简单的DNS服务器三. ...

  7. DNS和BIND

    https://www.jianshu.com/p/296b2c7ea76f DNS和BIND 毛利卷卷发关注 0.482018.07.25 10:33:44字数 4,919阅读 4,909 DNS ...

  8. (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf、/var/named)设置实现和解释

    2015年3月24更新 添加了要加的配置域名解析器(否则会找不到域名)     一.创建该实验的的模型   配置完gate虚拟机的两张网卡后,就启动gate的转发 [root@localhost ro ...

  9. 【Linux】DNS服务-BIND基础配置(二)

    BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet ...

  10. 内建DNS服务器--BIND

    参考 BIND 官网:http://www.isc.org/downloads/bind/ 1.系统环境说明 [root@clsn6 ~]# cat /etc/redhat-release CentO ...

随机推荐

  1. Spring学习(一)

    搭建环境 1.创建普通的Java工程 2.添加相应的jar包,下载链接:https://files.cnblogs.com/files/AmyZheng/lib.rar,此外,为了打印信息,我们还需要 ...

  2. Microsoft Cortana移动版除美国市场外不再可用

    导读 先前已经透露,Microsoft Cortana的移动版本已不复存在.目前,Microsoft Cortana在移动设备上的多个国家和地区中支持多种语言.微软的Cortana移动版本不再支持的市 ...

  3. Educational Codeforces Round 73 (Rated for Div. 2)D(DP,思维)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;long long a[300007],b[3 ...

  4. 利用java反射调用类的的私有方法--转

    原文:http://blog.csdn.net/woshinia/article/details/11766567 1,今天和一位朋友谈到父类私有方法的调用问题,本来以为利用反射很轻松就可以实现,因为 ...

  5. SSIS 無法將保護的 XML 節點 "DTS:Password" 解密,錯誤為 0x8009000B "機碼用在特定狀態時無效

    发现之前部署的SSIS,执行失败,查看日志 來源: 描述: 無法將保護的 XML 節點 -- ::-- ::-- :: DataReader 來源 [] 描述: System.Exception: S ...

  6. js图片瀑布流效果

    要实现图片瀑布流效果,首先得准备几张图片. html的部分比较简单就是将图片加载到浏览器就可以了 代码如下(注意放的图片多一点要不然之后无法滑动鼠标就无法达到瀑布流效果): <!DOCTYPE ...

  7. 「JSOI2010」满汉全席

    前言 由于蒟蒻才刚开始学 \(\text{2-SAT}\),所以题解中有的地方可能不够精炼,望多包涵! 题目描述 题目意思很简单,标准的\(\text{2-SAT}\)问题模型.那么我们就先来介绍一下 ...

  8. prototype入门----自定义创建元素

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. pytorch张量数据索引切片与维度变换操作大全(非常全)

    (1-1)pytorch张量数据的索引与切片操作1.对于张量数据的索引操作主要有以下几种方式:a=torch.rand(4,3,28,28):DIM=4的张量数据a(1)a[:2]:取第一个维度的前2 ...

  10. 【剑指Offer面试编程题】题目1524:复杂链表的复制--九度OJ

    题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点). 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第 ...