DNS服务、BIND

DNS:domain name service,协议(C/S,udp53,tcp53)

BIND:bekerley internat name domain

注意:named程序的启动用户是named用户,非root用户,因此需要注意权限和属主。

本地名称解析配置文件:hosts

linux:/etc/hosts

windows:%WINDOWS%/system32/dirvers/etc/hosts

 

dns查询类型:

递归查询:一次请求取得最终结果;

迭代查询:多次请求取得最终结果;

 

名称服务器:域内负责解析本域内名称的主机;

根服务器:13组服务器

 

解析类型:FQDN:完全限定域名

正向解析:FQDN   –>>   IP

反向解析:IP   –>>   FQDN

 

DNS服务器的类型:

主DNS服务器

辅助DNS服务器

缓存DNS服务器

转发器

 

主DNS服务器:维护所负责解析的域内解析库的服务器;解析库文件由管理员维护;

从DNS服务器:解析库文件从主DNS服务器或者其他的从DNS服务器“复制”(区域传送)过来;

序列号:解析库的版本号;前提:主dns服务器解析库内容发生变化,其序列号递增;

刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;

重试时间间隔:同步解析库失败时,再次尝试的时间间隔;小于刷新时间间隔;

过期时长:从服务器始终联系不到主服务器时,多久后放弃从服务器角度,停止提供服务;

“通知”机制:

区域传送:

全量传送:传送整个解析库;

增量传送:传送解析库变化的那部分内容;

 

一次完整的查询请求经过的流程:

client–>hosts文件–>local cache–>dns server(递归)–>server cache–>迭代

解析答案:肯定回答、否定回答、权威答案、非权威答案

 

区域解析库:由众多资源记录RR组成;

资源记录:resource record,RR

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

SOA:start of author,起始授权记录:一个区域解析库有且仅能有一个SOA记录,而且必须为解析库的第一条记录;

A:internet address,作用:FQDN–>IP;

AAAA:FQDN–>IPv6;

PTR:poinTeR,IP–>FQDN;

NS:name server,专用于标明当前区域的dns服务器

CNAME:canonical name,别名记录

MX:mail exchanger,邮件交换器

 

资源记录定义的格式:

语法:name    [TTL]     IN    rr_type     value

注意:(1)TTL可从全局继承;

(2)@可用于引用当前区域的名字;

(3)相邻的两个或多个资源记录的name相同时,后续可省略;

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

(5)同一个名字可以通过多条记录定义多个不同的值;此时dns服务器会以轮询方式响应;

(6)同一个值也可能有多个不同定义名字,通过多个不同名字指向同一个值定义;

(7)避免用户写错名称时给错误答案,通过*泛域名解析至特定地址;例如*.magedu.com.   IN    A    1.1.1.3

 

SOA:一个区域解析库内有且只有一个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.     (

2018041901    ;序列号

2H                     ;刷新时间

10M                  ;重试时长

1W                    ;过期时间

1D                     ;否定答案的TTL

 

NS:

name:当前区域的名字

value:当前区域的某DNS服务器的名字,例如ns.magedu.com.;一个区域可以有多条NS记录;

例如:

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

IN    NS   ns2.magedu.com.

 

MX:

name:当前区域的名字

value:当前区域的某邮件服务器的主机名;注意,value之前应该有一个数字(0-99),表示此邮件服务器的优先级;

例如:

magedu.com.     IN    MX  10 mx1.magedu.com.

IN    MX  20 mx2.magedu.com.

 

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

 

AAAA:

name:FQDN

value:IPv6

 

PTR:

name:IP;有特定格式,把IP地址反过来写,有特定后缀:.in-addr.arpa.,例如1.2.3.4,要写成4.3.2.1.in-addr.arpa.

value:IPv6FQDN

例如:

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

也可以简写成:

4      IN     PTR    www.magedu.com.

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

 

CNAME:

name:别名的FQDN

value:正式名字的FQDN

例如:

web.magedu.com.      IN   CNAME     www.magedu.com.

 

域名注册:代理商:万网、新网、godaddy

注册完成以后,想自己用专用服务器来解析步骤:进入域名管理后台:把NS记录指向自己的服务器名称,和A记录指向的服务器地址;

 

主要程序包:

bind:server包

bind-libs:依赖库

bind-utils:工具

 

bind-chroot:将/var/named/chroot/设置为根;

 

rfc:Request For Comments 请求注解

rndc:Remote Name Domain Controllerr;BIND安装包提供的一种控制域名服务运行的工具

 

主配置文件:

/etc/named.conf、/etc/named.rfc1912.zones、/etc/rndc.key

全局配置:options {}

日志子系统配置:logging {}

区域定义:本机需要定义的zone解析;zone  “ZONE_NAME”    IN   {}

 

解析库文件:/var/named/ZONE_NAME.ZONE

注意:(1)一台物理服务器可同时为多个区域提供服务;

(2)必须要有根区域文件;/var/named/named.ca

(3)应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库文件;/var/named/named.localhost、/var/named/named.loopback

注意:任何服务程序如果期望其能够通过网络被其他主机访问,至少应该监听在一个能够与外部主机通讯的IP地址上;

 

1、在主配置文件中/etc/named.rfc1912.zones定义zone区域

zone  “ZONE_NAME”    IN  {

type {master|slave|hint|forward};

file    “ZONE_NAME.zone”;

};

2、定义区域解析库文件

# vim /var/named/lshaol.com.zone

出现的内容:宏定义、资源记录;

例如:

1

(3)修改对应的属组及权限

# chmod 640  /var/name/lshaol.com.zone

# chown :named /var/name/lshaol.com.zone

(4)检查配置文件语法

# named-checkconf

# named-checkzone “lshaol.com” /var/named/lshaol.com.zone

 

测试命令:

dig [-t type] name [@server] [query options]

query options:查询选项

+[no]trace:是否跟踪解析过程

+[no]recurse:是否递归解析

dig用于测试dns,因此,不会查询hosts文件;

测试反向解析:

dig -x IP @SERVER

模拟区域传送:

dig -t axfr 区域名字|IP  @SERVER

 

host [-t type] name [server]

 

nslookup命令:支持交互式

nslookup [-option] [name | -] [server]

支持交互式nslookup>

server ip:指定使用哪个dns server进行查询;

set q=rr_type:指明查询的资源记录类型;

NAME:要查询的名称;

 

反向区域的定义:

区域名称:网络地址反写.in-addr.arpa.

1、在主配置文件中/etc/named.rfc1912.zones定义zone区域

zone  “ZONE_NAME”    IN  {

type {master|slave|hint|forward};

file    “网络地址.zone”;

};

2、定义区域解析库文件;注意:不需要MX、A、AAAA记录;以PTR记录为主;

出现的内容:宏定义、资源记录;

常用宏:$TTL   有效时长

$ORIGIN   区域名

例如:

# vim      /var/named/172.20.120.zone

2

(3)修改对应的属组及权限

# chmod 640  /var/name/172.20.120.zone

# chown :named /var/name/172.20.120.zone

(4)检查配置文件语法

# named-checkconf

# named-checkzone “120.20.172.in-addr.arpa” /var/named/172.20.120.zone

 

主从复制:

1、应该为一台独立的名称服务器;

2、主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;

3、从服务器只需要定义区域,而无须提供解析库文件,解析库文件应该放置于/var/named/slaves目录;

4、主服务器得允许从服务器做区域传送;

5、主从服务器时间应该同步,可通过ntp进行;

6、bind程序的版本应该保持一致;否则,应该从高,主低;

 

定义从区域的方法:

zone “ZONE_NAME”  IN {

type slave;

masters {  MASTER_IP  };

file “slaves/ZONE_NAME.zone”;

};

 

rndc命令:rndc command

常用command:

reload:重新载入配置文件和区域解析库文件;

reload zone:重新载入区域解析库文件;

reconfig:重新载入配置文件;

retransfer  zone:手动启动区域传送过程,而不管序列号是否增加;

notify zone:重新对区域传送发通知;

querylog:开启或关闭查询日志;在定义错误的时候管用;

trace LEVEL:指定调试debug级别;

 

正向解析区域子域方法:在父域中的区域定义子域的NS记录而非A记录;

 

定义转发服务器:注意:被转发的服务器需要能为转发请求者做递归,否则,转发不给进行;

(1)全部转发:凡是非本机所负责解析的区域的请求,统统转发给指定的服务器;

options  {

forward   {first(先递归后迭代)|only(仅递归)};

forwarder  {  NS_SERVER_IP  };

};

(2)区域转发:仅转发对特定区域的请求至某一服务器;

zone  “ZONE_NAME”   IN   {

type forward;

forward   {first|only};

forwarder  {  NS_SERVER_IP  };

};

注意:关闭dnssec功能:

dnssec-enable no;
dnssec-validation no;
dns(bind)中基础安全的相关配置:
(1)acl:访问控制列表,把一个或多个主机归并成一个集合,并通过一个统一的名称调用;只能先定义后使用,因此,其一般定义在配置文件中options的前面;
acl   ACL_NAME   {
ip;
hostname;
net/prelen;
};
内置acl:
none:没有一个主机
any:任意主机
local:本机
localnet:本机的IP同掩码运算后得到的网络地址
示例:
acl   mynet    {
172.20.120.0/24;
};
(2)访问控制的参数
allow-query {}:允许查询的主机;
allow-transfer {}:允许区域传送的主机;
allow-recursion {}:允许递归的主机;
allow-update {}:允许更新区域数据库的内容;
bind view:视图
1、一个bind服务器可定义多个view,每个view中可定义一个或多个zone;
2、每个view用来匹配一组客户端;
3、多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件;
view  VIEW_NAME  {
match_clients   {    };
};
注意:
(1)一旦启用了view,所有的zone都只能定义在view中;
(2)仅有必要在匹配到的允许递归请求的客户端所在的view中定义根区域;
(3)客户端请求到达时,是自上而下检查每个view所服务的客户端列表;
CDN:content   delivery   network:内容分发网络
智能DNS:dnspod、dns.la
编译安装bind:官网https://www.isc.org/downloads/
# group -r -g 53 named
# useradd -r -u 53 -g 53 named
# ./configure   –prefix=/usr/local/bind9  –sysconfdir=/etc/named/    –disable-ipv6    –disable-chroot   –enable-threads
# make
# make install
后续库文件、PATH、头文件、man文件等处理;
另外配置rndc,使用rndc-confgen生成rndc.conf等
# dig -t NS . > /var/named/named.ca   #生成根解析库文件
DNS测试:queryperf
配置解析一个正向区域:
以magedu.com域为例:
(1) 定义区域
在主配置文件中或主配置文件辅助配置文件中实现;
zone  “ZONE_NAME”  IN  {
type  {master|slave|hint|forward};
file  “ZONE_NAME.zone”;
};
注意:区域名字即为域名;
(2) 建立区域数据文件(主要记录为A或AAAA记录)
在/var/named目录下建立区域数据文件;
文件为:/var/named/magedu.com.zone
$TTL 3600
$ORIGIN magedu.com.
@       IN      SOA     ns1.magedu.com.   dnsadmin.magedu.com. (
2017010801
1H
10M
3D
1D )
IN      NS      ns1
IN      MX   10 mx1
IN      MX   20 mx2
ns1     IN      A       172.16.100.67
mx1     IN      A       172.16.100.68
mx2     IN      A       172.16.100.69
www     IN      A       172.16.100.67
web     IN      CNAME   www
bbs     IN      A       172.16.100.70
bbs     IN      A       172.16.100.71
权限及属组修改:
# chgrp  named  /var/named/magedu.com.zone
# chmod  o=  /var/named/magedu.com.zone
检查语法错误:
# named-checkzone  ZONE_NAME   ZONE_FILE
# named-checkconf
(3) 让服务器重载配置文件和区域数据文件
# rndc  reload 或
# systemctl  reload  named.service
配置解析一个反向区域
(1) 定义区域
在主配置文件中或主配置文件辅助配置文件中实现;
zone  “ZONE_NAME”  IN  {
type  {master|slave|hint|forward};
file  “ZONE_NAME.zone”;
};
注意:反向区域的名字
反写的网段地址.in-addr.arpa
100.16.172.in-addr.arpa
(2) 定义区域解析库文件(主要记录为PTR)
示例,区域名称为100.16.172.in-addr.arpa;
$TTL 3600
$ORIGIN 100.16.172.in-addr.arpa.
@       IN      SOA     ns1.magedu.com.  nsadmin.magedu.com. (
2017010801
1H
10M
3D
12H )
IN      NS      ns1.magedu.com.
67      IN      PTR     ns1.magedu.com.
68      IN      PTR     mx1.magedu.com.
69      IN      PTR     mx2.magedu.com.
70      IN      PTR     bbs.magedu.com.
71      IN      PTR     bbs.magedu.com.
67      IN      PTR     www.magedu.com.
权限及属组修改:
# chgrp  named  /var/named/172.16.100.zone
# chmod  o=  /var/named/172.16.100.zone
检查语法错误:
# named-checkzone  ZONE_NAME   ZONE_FILE
# named-checkconf
(3) 让服务器重载配置文件和区域数据文件
# rndc  reload 或
# systemctl  reload  named.service
主从服务器:
注意:从服务器是区域级别的概念;
配置一个从区域:
On Slave
(1) 定义区域
定义一个从区域;
zone “ZONE_NAME”  IN {
type  slave;
file  “slaves/ZONE_NAME.zone”;
masters  { MASTER_IP; };
};
配置文件语法检查:named-checkconf
(2) 重载配置
rndc  reload
systemctl  reload  named.service
On Master
(1) 确保区域数据文件中为每个从服务配置NS记录,并且在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址;
注意:时间要同步;
ntpdate命令;
子域授权:
正向解析区域授权子域的方法:
ops.magedu.com. IN NS  ns1.ops.magedu.com.
ops.magedu.com. IN NS  ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A IP.AD.DR.ESS
ns2.ops.magedu.com. IN A IP.AD.DR.ESS
定义转发:
注意:被转发的服务器必须允许为当前服务做递归;
(1) 区域转发:仅转发对某特定区域的解析请求;
zone  “ZONE_NAME”  IN {
type  forward;
forward  {first|only};
forwarders  { SERVER_IP; };
};
first:首先转发;转发器不响应时,自行去迭代查询;
only:只转发;
(2) 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;
options {
… …
forward  {only|first};
forwarders  { SERVER_IP; };
.. …
};
bind中的安全相关的配置:
acl:访问控制列表;把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集合内的所有主机实现统一调用;
acl  acl_name  {
ip;
net/prelen;
};
示例:
acl  mynet {
172.16.0.0/16;
127.0.0.0/8;
};
bind有四个内置的acl
none:没有一个主机;
any:任意主机;
local:本机;
localnet:本机所在的IP所属的网络;
访问控制指令:
allow-query  {};  允许查询的主机;白名单;
allow-transfer {};  允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;
allow-recursion {}; 允许哪此主机向当前DNS服务器发起递归查询请求;
allow-update {}; DDNS,允许动态更新区域数据库文件中内容;
bind view:
视图:
view  VIEW_NAME {
zone
zone
zone
}
view internal  {
match-clients { 172.16.0.0/8; };
zone “magedu.com”  IN {
type master;
file  “magedu.com/internal”;
};
};
view external {
match-clients { any; };
zone “magecdu.com” IN {
type master;
file magedu.com/external”;
};
};

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92886

(0)
N26-深圳-城市蜗牛N26-深圳-城市蜗牛
上一篇 2018-03-26
下一篇 2018-03-26

相关推荐

  • 开始linux

    基础命令

    Linux笔记 2018-05-26
  • 构建一个mini linux系统

    mini linux: 启动流程: centos6:post》bootsequence(bios)》BootLoader(mbr)》kernel(如无法直接识别硬盘驱动,需借助ramdisk)》rootfs》/sbin/init centos7:post》bootsequence(bios)》BootLoader(mbr)》kernel(如无法直接识别硬盘驱…

    Linux笔记 2018-06-06
  • sudu、文件共享(vsftp、samba、nfs)

    sudo:授权之后,能够让某用户以另外一个用户身份运行命令; 配置文件:/etc/sudoers;其编辑命令visudo sudo操作日志记录至/var/log/secure中 特别注意:禁止授权修改root密码;! passwd root,passwd [a-Z]* 配置项: root ALL=(ALL) ALL %wheel ALL=(ALL) ALL …

    Linux笔记 2018-05-30
  • 第二周作业

    1,Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
    2,bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
    3,使用命令行展开功能来完成以下练习

    2018-06-28
  • Linux网络安全技术

    网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

    2018-05-18
  • Elastic Stack(ELK)介绍及相关示例实验

    Elastic Stack是一套支持数据采集、存储、分析、展现的全流程数据分析工具,旧时称作ELK(Elasticsearch,Logstash,Kibana的缩写,)。Elastic Stack由一系列的工具集组成,Logstash & Beats:数据采集工具,logstash适合大批量数据的采集,其结构较重,消耗资源较大,适合集群化部署。

    2018-07-31