DNS and Bind (二)

概述:

本篇为DNS服务器内容的第二部分主要介绍了从DNS服务器的配置,子域授权,转发服务器等相关内容

========================================================================

主从DNS服务器

注意:从服务器是区域级别的概念

1)配置一个从区域步骤:

On Slave(在从服务器上)

1)定义区域

定义一个从区域:

·zone "ZONE_NAME" IN {

type slave;

file "slave/ZONE_NAME.zone"; 放在slave目录下

masters {MASTER_IP;};

};

·配置文件语法检查:named-checkconf

2)重载配置

rndc reload

systemctl reload named.service

示例:

  vim /etc/named.rfc1912.zones  # 编辑从服务器的配置文件,添加区域
  zone "magedu.com" IN {
          type slave;
          file "slave/magedu.com.zone"; # 放在slave目录下
          masters { 192.168.16.104;}; # 一定要指向主服务器的IP
 }; 
 # 注意:这里不需要配置从服务器的解析数据库文件,接下来只需要在主服务器上添加从服务器的NS记录和对应的A记录即可

On Master(在主服务器上

1)确保区域数据文件中为每个从服务器配置NS记录,并且在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址。

2)解析库文件语法检查

named-checkzone ZONE_NAM ZONE_FILE

3)重载配置

示例:

  vim /var/named/magedu.com.zone # 编辑主服务器的数据库文件
  ns2   IN   A   192.168.16.105  # 添加从DNS服务器对应的IP地址
  # 注意:修改完数据库文件之后,序列号一定要加1,这样从服务器才能检查到

4)可以手动进项测试

# dig -t axfr magedu.com @192.168.16.104(主服务器地址,表示主服务器到从服务器的全量传送)

注意:

  • 从服务器应该为一台独立的名称服务器(安装bind程序,编辑配置文件为缓存名称服务器,然后检查语法,启动服务器)
  • 主服务器的区域解析库文件中必须有一条NS记录指向从服务器
  • 从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中
  • 主服务器得允许从服务器作区域传送
  • 主从服务器时间应该同步,可通过ntp进行;
  • bind程序的版本应该保持一致;否则,应该从高,主低。
  • 主名称服务器数据库修改完之后一定要使相应的序列号加1,这样从服务器才可以检测到并及时更新,并且重载

时间同步;

任何在分布式环境中,让多台服务器基于某一种特定应用同时协调的内容、进程或服务,都应该做时间同步。

ntpdate命令,时间服务器如下:

time.nist.gov

time.nuri.net
          0.asia.pool.ntp.org
          1.asia.pool.ntp.org
          2.asia.pool.ntp.org
          3.asia.pool.ntp.org

[[email protected] ~]# ntpdate time.nuri.net
 6 Oct 17:04:01 ntpdate[2651]: adjust time server 211.115.194.21 offset 0.002132 sec
 [[email protected] ~]# ntpdate 1.asia.pool.ntp.org
 6 Oct 17:10:54 ntpdate[1479]: adjust time server 202.65.114.202 offset -0.167026 sec

子域授权

注意:

1)我们注册了二级域名之后,域名服务商会提供给我们DNS服务器(群租),我们只需在其二级域下添加相应的主机记录(如web服务器的别名www,对应的ip地址)即可完成解析,但如果公司的部门很庞大,为了方便管理,需要单独对一个部门添加一个域名,这时,就需要在其二级域下添加一个三级域(如:ops.magedu.com.),而添加的三级域必须要经过上一级授权才可以。

2)ops.magedu.com.是一个三级域,www.ops.magedu.com.是三级域中的web服务器的别名;而 magedu.com 是一个二级域,www.magedu.com是一个二级域中web服务器的别名;

注意一定不要搞混淆了,虽然别名相同但域的级别不同。

3)每一个域名都必须要有与之对应的名称服务器才可以解析。

1)子域:

  • 子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权
  • 类似根域授权tld:

.com.      IN     NS     ns1.com.

.com.      IN     NS     ns2.com.

ns1.com.  IN      A     2.2.2.1

ns2.com.  IN      A    2.2.2.2

  • magedu.com. 在.com的名称服务器上,解析库中添加资源记录:

magedu.com.      IN    NS     ns1.magedu.com.

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

magedu.com.      IN    NS     ns3.magedu.com.

ns1.magedu.com. IN    A      3.3.3.1

ns2.magedu.com. IN    A      3.3.3.2

ns3.magedu.com. IN    A      3.3.3.3

  • glue record:粘合记录,父域授权子域的记录

2)互联网域名:

  • 域名注册:

代理商:万网, 新网;godaddy

  • 注册完成以后,想自己用专用服务来解析

管理后台:把NS记录指向的服务器名称,和A记录指向的服务器地址

阿里云DNS

这个域名是在阿里云注册的.com域名,这个管理界面就是向.com域名服务器授权来查询的。这是在wen界面进行的子域授权管理,及资源记录管理,那在DNS的配置文件中也很容易去配置实现子域授权,如下:

3)正向解析区域授权子域的方法:

★原理:

在本域名服务器上的正向解析库文件当中定义子域对应的DNS服务器的主机名和A记录即可。

★方法:

ops.magedu.com.      IN   NS   ns1.ops.magedu.com. (三级域的DNS服务器名)

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

ns1.ops.magedu.com. IN   A    IP.AD.DR.ES (服务器对应的ip地址)

ns2.ops.magedu.com. IN   A    IP.AD.DR.ES

具体步骤如下:

1)首先要在父域(二级域)的主DNS服务器上授权

  # 编辑父域的解析数据库文件
    vim /var/named/magedu.com.zone
  #添加授权子域的NS和A记录
    ops.magedu.com.      IN   NS   ns1.ops.magedu.com.
    ns1.ops.           IN   A    192.168.1.108

注意:

每次修改解析数据库文件之后都要使序列号加1,这样从服务器才能够检测到序列号不一致,并及时更新从DNS服务器

修改完之后保存退出并重载(# rndc reload)

2)接下来配置子域服务器,其配置过程和之前的任何一个DNS服务器是一样的(安装bind程序,配置配置文件,定义手动添加区域解析库文件)如下:

  • 首先安装bind程序;

    # yum install bind -y

  • 编辑配置文件/etc/named.conf,以缓存名称服务器的方式启动起来;

    ①全局配置段: options { any; };

    ②关闭dnssec

    ③关闭仅允许本地查询  //allow-query { localhost; };

    ④语法检查:named-checkconf [/etc/named.conf]

    ⑤启动服务,并查看状态 :systemctl start|status named

    ⑥检查53号端口是否启动:netstat -tunlp

  • 配置其成为ops子域的主DNS域名服务器

    ①编辑 /etc/named.rfc1912.zones ,新增加一个区域

# vim /etc/named.rfc1912.zones ,在最后添加自己定义的区域
 zone "ops.magedu.com" IN {
         type master;   # 指定zone的类型
         file "ops.magedu.com.zone";  # 该zone的名称
 };

②建立授权子域的区域解析库文件

  # vim /var/named/ops.magedu.com.zone  建立定义区域的数据库文件
  1 $TTL 3600  
  2 $ORIGIN ops.magedu.com.  #
  3 @      IN      SOA     ns1.ops.magedu.com.  dnsadim.ops.magedu.com.(
  4                    2017100501
  5                    1H
  6                    10M
  7                    3D
  8                    1D )
  9        IN      NS      ns1
 10 ns1    IN      A       192.168.16.108
 11 www    IN      A       192.168.16.108
  • 权限及属主修改

    # chgrup named /var/named/ops.magedu.com.zone

    # chmod o=  /var/named/ops.magedu.com.zone

  • 主配置文件语法检查,解析库文件语法检查

    # named-checkconf 

    # named-checkzone  ops.magedu.com  /var/named/ops.magedu.com.zone

  • 重新加载区域

    # rndc status|reload;

  • 测试能否解析

转发服务器

★注意:被转发的服务器必须要能够为请求者做递归,否则转发请求不予进行;

区域转发:仅转发对特定区域的解析请求,比全局转发优先级高;

  • 格式:

zone "ZONE_NAME" IN {

type forward;

forward {first|only};       转发方式

forwarders { SERVER_IP;};  定义转发给的服务器ip

};

first:首先转发;转发器不响应时,自行去迭代查询;

only:只转发

  • 注意:

    如果不定义区域转发的话,子域要查找上一级就会先去找根再一步步查找,如果定义了区域转发(被转发的服务器为上一级的),子域就可以直接查找上一级而不通过查找根(比喻:家丑不可外扬)。

全局转发: 针对凡本地没有通过zone定义的区域查询请求,全转发给指定的可以访问互联网的服务器;

Options {

.....

forward first|only;

fowarders{ SERVER_IP;};

.....

};

先去找 zone中定义的,如果没有就全局转发(比如:子域首先定义了区域转发,这样仅能查询自己的上一级,但之外的比如www.baidu.com是查询不了的;但是自己的父域是可以访问互联网的,这样就可以定义所有自己访问不了的统统转发给父域)

示例:

以子域授权为例,定义区域转发,子域查找上一级

 vim /etc/named.rfc1912.zones  # 编辑配置文件,新增加一个区域
 zone "magedu.com" IN {
            type forward;
            forward  only;     # 只是内部使用,不需要迭代
            forwarders { 192.168.16.108; }; # 定义父域DNS服务器的ip,如果有从服务器也写上
       };

定义全局转发:

 vim /etc/named.conf  # 编辑named.conf文件,在options全局配置段中添加
options {
	listen-on port 53 { 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";
	forward only  
	forwarders { 192.168.1.108; }; # 表示只要是自己不负责的统统转发给192.168.1.108
	//allow-query     { localhost; };

bind中安全的相关配置

1)bind中的acl访问控制列表

★acl:

把一个或多个地址归并为一个集合,随后通过此名称即可对此集全内的所有主机实现统一调用;

格式:

acl acl_name{

ip;

net/prelen;

……

};

示例:

acl mynet{

172.16.0.0/16;

127.0.0.0/8;

};

★bind有四个内置的acl:

  • none: 没有一个主机
  • any: 任意主机
  • localhost: 本机
  • localnet: 本机的IP同掩码运算后得到的网络地址

注意:只能先定义,后使用;因此一般定义在配置文件中,处于options的前面

2)控制访问指令

访问控制的指令

  • allow-query {}:允许查询的主机;白名单;默认是所有主机,如果有的话只有定义在里面的才可以查询
  • allow-transfer {}:允许向那些主机做区域传送;默认为向所有主机,应该配置为仅允许从服务器;
  • allow-recursion {}: 允许那些主机向当前DNS服务器发起递归查询请求;
  • allow-update {}: DDNS,允许动态更新区域数据库文件中的内容

bind view

  • view:视图,一个bind服务器可定义多个view,每个view中可定义一个或多个zone,

每个view用来匹配一组客户端;

  • 多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
  • 格式:

view VIEW_NAME {

zone

zone

zone

};

示例:

  view internal {
             match-client { 172.16.0.0/8; };
             zone "magedu.com" IN {
                  type master;
                  file "magedu.com/internal";
              };
        };
       
   view external {
              match-client { any; };
             zone "magedu.com" IN {
                 type master;
                 file "magedu.com/external";
              };
         };
  • 注意:

(1) 一旦启用了view,所有的zone都只能定义在view中

(2) 仅在允许递归请求的客户端所在view中定义根区域

(3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表

  • CDN: Content Delivery Network
  • 智能DNS:

dnspod

dns.la

后续还有一些内容:编译安装bind,压力测试,DNS排错这里先不做整理,后续用刀再做整理。

时间: 2024-11-03 21:02:01

DNS and Bind (二)的相关文章

DNS和Bind配置指南

/////////////////////////////目录//////////////////////////////////////一.DNS原理相关二.使用bind搭建最简单的DNS服务器三.使用bind搭建可以解析自己添加的域名的DNS服务器四.配置DNS转发五.配置主从配置主从六.测试主从同步 拓展学习:DNS and BIND配置指南  http://anyisalin.blog.51cto.com/10917514/1753638bind配置视图(view)   http://w

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

上次博文我们讨论了DNS的基础,本次博文我们重点来看看如何配置一台DNS服务器. [本次博文的主要内容] bind服务器简介(包括客户端工具dig的介绍) 配置正向解析DNS服务器 配置反向解析DNS服务器 配置辅助DNS服务器并在主辅之间实现区域传送 一.BIND服务器简介: Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件.Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来

DNS服务器之二:从服务器的实现

DNS从服务的搭建 一.安装  [[email protected]~]# yum install bind 二.修改主配置文件  [[email protected]~]# cat /etc/named.conf 将以下三行注释掉 //               listen-on port 53 { 127.0.0.1; }; //               listen-on-v6 port 53 { ::1; }; //               allow-query     {

dns学习(二)

1.BIND的组成? * named守护进程–用来回答查询结果的 * 去联系DNS分布式数据库的服务器用来解析主机查询的库例程 * DNS的一些重要命令:nslookup,dig和host 2.名字服务器 * 权威--一个区的正式代表 * 主服务器:每个区都有的一个主名字服务器,保存着本区数据的正式拷贝.SA通过编辑这上面的数据文件来更改区数据. * 从服务器:每个区可以有多个从服务器(至少一个),它通过"区传送"操作从主服务器上获取它的数据. * 存根:类似于从服务器,不过不是必须的

【Linux】DNS服务-BIND从服务器、缓存服务器、转发服务器配置

环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example.net的配置信息即可3 1.配置文件位置 /var/named/chroot/etc/named.conf 2.在主配置文件中添加一行域的zone定义: zone "example.net" { type slave;          masters { 120.27.99.64; };

DNS and BIND 笔记总结

DNS and BIND Domain Name Server(Syetem.Service)    Bekerley Internet Name Domain,ISC(www.isc.org) 协议 C/S架构.udp53和tcp53    IANA分配域名 本地名称解析配置文件    /etc/hosts    %Windows%/system32/dirvers/etc/hosts    1.1.1.1 www.qq.com Top Level Domain .tld 三类:组织域.国家域

DNS(bind)服务器的安装与配置

Bind服务器: bind(Berkeley Internet Name Domain Service),它是一款实现DNS服务器的开源软件,现在为最广泛的DNS服务器软件 Socket: 套接字,及IP:port(IP地址端口对) 端口: TCP:0~65535  UDP:0~65535 注: 小于1024的端口为知名端口,只有root用户有权限开放和关闭. 1.bind的安装 包名: bind 进程: named 协议: dns 使用端口: 53(tcp,udp) 相关的包: [[email

DNS 服务相关概念 (二)

DNS 服务相关概念(二) 我们知道一共有13台根服器,如果它们每台根服务器上的内容不能保持一致会出现什么情况呢~?比如第1台根服务器知道 .com  而第2台根服务器不知道,那么有人找第2 台服务器去查找 .com  显然是找不着的~ .所以每个域为了保证其安全性和稳定性这个域可能有多台服务器,而且每台服务器的内容必须保持一致.那么这就意味着每当我们在根域当中添加 1台新的服务器(NS服务器)时,是不是这13台根服务器必须得同时修改~.是自动完成修改呢,还是手动完成修改呢? 显然自动完成修改要

DNS 配置篇二

一.子域配置 1.基本概念 子域的作用是在本地DNS下再划分一个小的(子)DNS.作用的方便集中管理, 不过问题是要配置转发.父DNS可以知道解析子DNS,子DNS 则只可以解析自己 本地记录,不能解析父DNS. 正向子域授权: 只需要在父域的区域解析库中添加"胶水记录", glue record 子域名称   IN  NS  子域的名称服务器 ops  IN   NS   ns.ops ops  IN   NS   ns2.ops ns.ops  IN  A       172.16

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

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