Linux运维 第三阶段 (五) DNS(主从,rndc远程控制,子域授权,视图,压力测试)

本文涉及的产品
云解析DNS,个人版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介:

一、相关概念:

DNSdomain name server),软件bindberkleyinternet name domain),由www.isc.org维护(internetsystems consortium),进程名及二进制程序namedtcp/53port(用于主从间传输数据,拉取机制),udp/53port,tcp/953(rndc),一般不开放rndc远程控制相当危险

socket=IP+PORTserver监听在某个socket上作为client的访问入口

 

www.magedu.com(主机名,FQDNfullqualified domain name完全合格域名,域名是magedu.com

 

name resolve名称解析:名称转换,背后有查询过程,通过文件或数据库(FQDN<-->IP

FQDN-->IP(正向解析);IP-->FQDN(反向)

nsswitch仅提供平台:libnss_files.solibnss_dns.so

#vim /etc/nsswitch.conf

hosts: files  dns(其中files/etc/hosts文件)

 

查询:递归(只发出一次请求,一定要要到答案,用于本地查询);迭代(可发出多次请求,非本地,互联网)

两段式查询:递归、迭代

stub resolver:是一软件或程序,名称解析器,由此程序发出的请求一定要递归,先找/etc/hosts如果没有结果则找DNS服务解析)

#ping www.magedu.comping借助于stubresolverIP

 

IANA-->ICANNinternetcorporation for assigned names and numbers国际域名管理机构)

CDNcontent deliverynetwork

TLDtop level domain顶级域名):

组织域:.com  .net  .org .cc

国家域:.cn  .tw  .hk .iq  .ir  .jp

 

DNS:分布式数据库,上级仅知道其直接下级,下级只知道根的位置

DNS服务器:接受本地服务器的查询请求(递归);外部客户端请求,请求权威答案(肯定答案TTL,否定答案TTLtime to live生存时间);外部客户端请求,请求非权威答案

 

DNS服务器类型,4类:

1、主DNS服务器(serialnumber(序列号,仅主DNS服务器数据内容更改时才改变);refresh(定义每隔多长时间检查主服务器);retry(重试时间);expire(过期时间);nagative answer(否定答案的缓存时长TTL));

2、辅助DNS服务器(或叫从DNS服务器,向主DNS服务器请求数据同步,采取pull拉取的机制;主可以有多个从,从也可以是其它从的从;若主挂掉从不会接替其工作,而是自杀(站在从的角度,主都不管了我管什么);注意区域文件中要定义typeslave,还要指定主服务器masters );

3、缓存DNS服务器(非权威答案);

4、转发器

注:仅是管辖内的DNS服务器返回的答案是权威答案,例如.com管辖内的返回的magedu.com为权威答案。

 

数据文件中的每一个条目称作一个资源记录,格式为:

ZONENAME TTL  IN  RRT VALUE (其中TTL可省)

例如:www.magedu.com.  IN A  1.1.1.1(正向)

  1. 1.1.1     IN  PTR  www.magedu.com.(反向,注意FQDN后的点.

 

RRTresource record type资源记录类型):

SOAstart of authority起始授权,数据文件中的第一条,正反向都定义)

NSname serverzonename-->FQDN,除区域名称外,其它都相同,正反向中都定义)

MXmail exchangerzonename-->FQDN,仅定义在正向中)

AaddressFQDN-->IPv4,仅正向,最常用)

AAAAFQDN-->IPv6

PTRpointerIP-->FQDN,仅定义在反向中)

CNAMEcanonical name,别名,FQDN-->FQDN,正反向都可)

TXT

CHAOS

SRV

 

举例:

ZONENAME TTL  IN  RRT VALUETTL可省)

 

magedu.com. 600  IN  NS ns.magedu.com.

ns.magedu.com.  600 IN  A  1.1.1.2(这两组要成对出现)

 

ZONENAME TTL  IN  RRT PRI  VALUE(仅定义资源类型为邮件时才需PRI,范围0-99,数字越小级别越高)

magedu.com. 600  IN  MX 10  mail.magedu.com.

mail.magedu.com.  600 IN  A  1.1.1.3

 

www2.magedu.com.  IN CNAME  www.magedu.com.(别名记录)

 

ZONENAME TTL  IN  SOA FQDN  ADMIN_MAILBOX  (

    SERIAL  NUMBER

    REFRESH

    RETRY

    EXPIRE

    NAGATIVE TTL)

注:数据文件中第一条必须是SOA记录,它用来标明本区域多个DNS服务器是如何完成数据同步的;格式如上,括号内各项表示的意义在服务器类型-DNS服务器已介绍;时间单位:H,M,D,W分别是hour,minutes,day,week,不写默认单位秒;邮箱格式不能写@而要用点替代因为@在文件中已表示为本区域;此文件中的分号后的内容为注释信息,括号内的条目也可不用换行,用空格隔开。

@ 600  IN  SOA ns1.magedu.com. admin.magedu.com.(

    2015072101 ;serial number

    1H ;refresh

    5M ;retry

    1W ;expire

    1D );nagative ttl

 

Domainzonedomain是逻辑概念,区域是物理存在的(正向解析区域,反向解析区域)

区域传送类型:完全区域传送(axfr,all transfer);增量区域传送(inxfr,incremenatl transfer

区域类型:主区域master;从区域slave;提示区域hint(定义根在什么地方);转发区域forward

 

二、实际操作:

软件bindberkley internet name domain),由www.isc.org维护(internet systemsconsortium),进程名及二进制程序namedtcp/53port(用于主从间传输数据,拉取机制),udp/53port,tcp/953(rndc)

本例环境:centos5.4, 2.6.18-164.el5

#yum list  all  | grep  bind

#rpm -ql  bind-libs

#rpm -ql  bind-utils

#rpm  -e  bind-libs  bind-utils(使用bind97主流版本,redhat6bind

#yum  info  bind97-devel.x86_64(创建开发环境才需安装)

#yum info  bind97-chroot.x86_64(为安全考虑可以将DNS程序放在某固定根下,高级用法)

#yum -y  install  bind97 bind97-libs  bind97-utils

#rpm -ql  bind97

/usr/sbin/*(命令位置,其中named二进制程序,named-checkconf检查配置文件,named-checkzone检查区域数据文件,rndcrndc-confgen生成配置文件)

/etc/rc.d/init.d/named  {start|stop|status|restart|try-restart|reload|force-reload}

/etc/rndc.keyremote name domaincontroller,远程工作的密钥文件,/etc/rndc.conf

/var/named/*(数据文件位置,其中named.ca标识13个根节点,named.localhost默认正向数据文件,named.empty默认反向数据文件)

#rpm -ql  bind97-utilsdig强大的测试工具,另有host,nslookup

 

#vim /etc/named.conf

/etc/named.conf(主配置文件,注意权限640,用户名root,named,此文件中每个指令都分号结尾,否则语法错误 options全局配置,定义bind进程的工作属性(最关键至少要配置directory,定义数据文件目录)zone区域的定义,区域可在主配置文件中直接定义,或单独定义但要在主配置文件中包含进来(如include "/etc/named.rfc1912.zones";))

options {

  listen-on port  53  {  192.168.1.222;  };

 directory  “/var/named/”;(至少要有此项)

 recursion  yes;(此项没有,默认也开启递归,最好是用allow-recursion

 allow-recursion  {  192.168.1.0/24;  };(仅允许内部网络递归)

 allow-query  {  any; };(定义允许谁来查询)

 allow-transfer  {  192.168.1.223;  };(在主从配置中,为安全考虑,一般只定义仅允许传送数据给从服务器,无主从架构写none

};

zone “ZONE NAME”  IN  {

 type  master|slave|hint|forward;

 file  “ZONEDATAFILE”;(可使用相对路径,options中已指定)

 masters  “MASTER_IP”;(此项仅从DNS服务器端有)

};

zone “.”  IN  {

 type  hint;

 file  “name.ca”;(记录13个全球根服务器位置)

};

zone “localhost”  IN  {

 type  master;

 file  “named.localhost”;(正向区域数据文件)

};

zone “0.0.127.in-addr.arpa”  IN  {

 type  master;

 file  “named.loopback”;(反向区域数据文件)

};

#named-checkconf(检查配置文件是否有语法错误,但不能判断逻辑错误,如指定的区域文件中无相应数据文件,启动服务时会报错)

#named-checkzone  “.”  /var/named/named.ca

#named-checkzone  “localhost” /var/named/named.localhost

#named-checkzone  “0.0.127.in-addr.arpa”  /var/named/named.loopback

#service named  startDNS启动后,会将数据文件加载到内存中,数据文件也可放在数据库中)

#tail /var/log/messages

#netstat -tunlp

#ping www.baidu.com

#dig -t  RRT   NAME @SERVER

#dig -t  NS  . @a.root-servers.net.(指定服务器查看根区域的域名服务器,-t指定资源记录类型,answer section有查询结果)

 

 

举例:简单配置DNS

#vim /etc/named.conf(定义主配置文件)

options {

 directory  “/var/named”;

};

zone “mageedu.com”  IN  {

 type  master;

 file  “mageedu.com.zone”;

};

zone “1.168.192.in-addr.arpa”  {

 type  master;

 file  “192.168.1.zone”;

};

 

#cd /var/named

#cp -p  named.localhost  mageedu.com.zone(保留文件属性,权限640,属主root,属组named

 

#vim mageedu.com.zone(定义正向数据文件)

$TTL 600

@ IN  SOA  ns1.mageedu.com.  admin.mageedu.com. (  ;注意分号表示注释信息,每个域名后记得要加点,@表示在主配置文件已定义的正向区域mageedu.com,省略TTL值默认会继承第一行定义的值

 2015070101

  1H

  5M

  2D

  6H)

 IN  NS  ns1  ;精简写法,也可写为mageedu.com.  600 IN  NS  ns1.mageedu.com.

 IN  MX  10 mail

ns1 IN  A  192.168.1.222

mail IN  A  192.168.1.223

www IN  A  192.168.1.222

ftp IN  CNAME  www

*.mageedu.com.  IN A  192.168.1.222  ;泛域名解析,一般定义在错误页面而非主页

 

#cp -p  mageedu.com.zone  192.168.1.zone

#vim 192.168.1.zone(定义反向数据文件)

$TTL 600

@  IN SOA  1.168.192.in-addr.arpa  admin.mageedu.com.  (

 2015070101

  1H

  5M

  2D

  6H)

 IN  NS  ns1.mageedu.com.

222 IN  PTR  ns1.mageedu.com.

223 IN  PTR  mail.mageedu.com.

222 IN  PTR  www.mageedu.com.

 

#named-checkconf(检主配置文件是否有语法错误)

#named-checkzone  “mageedu.com” /var/named/mageedu.com.zone(检查区域文件是否有语法错误)

#vim /etc/resolv.conf

nameserver 192.168.1.222(将域名服务器改为本地设置的域名服务器)

#service named  restart

#dig -t  NS  mageedu.com

#dig -t  SOA  mageedu.com

#dig -t  A  www.mageedu.com

#dig -x  192.168.1.222(反向查询)

#host -t  NS  mageedu.com

#host -t  A  www.mageedu.com

#host -t  A  ftp.mageedu.com

#host -t  A  mail.mageedu.com

#host -t  SOA  mageedu.com

#nslookup(在linux中用交互模式中查询)

>www.mageedu.com

>exit

>nslookup(在windows的命令行中,交互模式查询)

>server 192.168.1.222(指定server

>set q=NSq=后跟RRT,设置查询类型)

>mageedu.com

#dig  +[no]recurse -t  A  www.sohu.com  @192.168.1.222(递归查询)

#dig +trace  -t  A  www.baidu.com @192.168.1.222(本地无此解析记录,它先找根再找com.再找baidu.com.

 

 

 

举例:master-slave间区域传送数据文件

 

master-side: (在上例配置基础上,添加从服务器信息,在主配置文件中指定允许区域传送的地址,数据文件中添加从的相关记录)

#vim /etc/named.conf

options {

 directory  “/var/named”;

 allow-transfer  {  192.168.1.225;  };(此地址是从的地址)

};

#vim /var/named/mageedu.com.zone (正向数据文件追加如下信息)

 IN  NS  ns2.mageedu.com.

ns2 IN  A  192.168.1.225

#vim /var/named/192.168.1.zone(反向数据文件追加如下信息)

 IN  NS  ns2.mageedu.com.

225 IN  PTR  ns2.mageedu.com.

 

slave-side:

#cp -p  /etc/named.conf  /etc/named.conf.bak

#scp root@192.168.1.222:/etc/named.conf  /etc/

#chgrp named  /etc/named.conf

#vim /etc/named.conf

options {

 directory  “/var/named”;

}

zone “mageedu.com”  IN  {

 type  slave;

 file  “slaves/mageedu.com.zone”;

 masters  {  192.168.1.222;  };

 allow-transfer  {  none; };(上面概念提到过从可以是主的从,也可以是其它从的从,none其它任何服务器都不能从此台服务器获取数据)

}:

zone “1.168.192.in-addr.arpa”  IN  {

 type  slave;

 file  “slaves/192.168.1.zone”;

 masters  {  192.168.1.222;  };

 allow-transfer  {  none; };

};

 

#service named  restart(配置好后两端均重启服务)

#tail /var/log/messages(主从端都查看日志,注意时间,serial版本号,区域传输类型axfr|ixfr

在主端的数据文件中再追加一条记录,例如imap  IN  A 192.168.1.230,记得在SOA中更改serial版本号为2015070102,再重启服务,观察主从两边日志变化情况。

注:若server-side数据文件发生改变,一定要在相应的serial版本号上加1否则从获取不到数据;

若开启或重启服务时出现错误,如generating /etc/rndc.key,输入命令再重启即可:

rndc-confgen  -r  /dev/urandom  –a 

 

 

 

举例:rndc(为安全考虑,一般不开放rndc允许远程控制)

#rndc -h(子命令)

#rndc -c  RNDC_CONFIGFILE  COMMAND(客户端用此命令控制服务器端,可查看状态,通知区域传送,清空缓存等操作,status|notify  ZONENAME|flush,通过#rndc  -h可查询看到)

 

server-side:

#rndc-confgen  > /etc/rndc.conf(生成rndc配置文件)

#vim -o  /etc/rndc.conf  /etc/named.conf(将rndc.conf文件中的后半部分复制到named.conf中,并将注释去掉,仅更改controls段中的地址,内容如下)

key "rndc-key" {

 algorithm hmac-md5;

 secret "LGt5qcw7Lk0BdvsHvm4C4w==";

};

controls {

 inet 192.168.1.222 port 953

 allow { 192.168.1.230; } keys { "rndc-key"; };

};

#service named  restart

#netstat tulnp

#scp /etc/rndc.conf 192.168.1.220:/root/

 

client-side:

#cd /root

#vim rndc.conf(仅更改options段中default-server

options {

 default-key "rndc-key";

  default-server 192.168.1.222;

 default-port 953;

};

#rndc -c  rndc.conf  COMMAND

 

 

子域授权:

www.mageedu.com/fin-->www.fin.mageedu.com

www.mgaeedu.com/market-->www.market.mageedu.com

正向授权:

SUB_ZONE_NAME  IN NS  NSSERVER_SUB_ZONE_NAME

NSSERVER_SUB_ZONE_NAME  IN A  IP

子域和父域可以不在同一网段中;通过子域是查不到父域中的相关记录,如果要想查询到则要设置转发forward,见下例

在上例master-slave的基础上操作:

server-side(父域端)192.168.1.222

sub-side(子域端)192.168.1.228,准备一台服务器,作为子域DNS服务器(子域若只在父域中有记录而无具体数据查询会失败)

 

sub-side:先配置好子域端配置文件及数据文件(若有两个子域一定要有对应的两台服务器及相关配置文件存在,本例中只创建fin.mageedu.com这一个实实在在存在的域,另一个仅在父域中写出相应的记录,注意仅有记录是查询不到的)

#vim /etc/named.conf

options {

 directory  “/var/named”;

};

zone “fin.mageedu.com”  IN  {

 type  master;

 file  “fin.mageedu.com.zone”;

};

#cd /var/named

#cp named.localhost fin.mageedu.com.zone

$TTL 600

@ IN  SOA  ns1.fin.mageedu.com.  finadmin.mageedu.com.  (

    2015070101

    1H

    5M

    2D

    6H)

 IN  NS  ns1

 IN  MX  10 mail

ns1 IN  A  192.168.1.228

mail IN  A  192.168.1.229

www IN  A  192.168.1.228

#service named  start

#netstat -tulnp

#dig -t  NS  fin.mageedu.com

 

server-side:

#cd  /var/named

#vim mageedu.com.zone(更改添加如下记录)

……

    2015070103  ;注意主配置文件更改一定要改版本号serial否则从端获取不到数据

……

fin IN  NS  ns1.fin

ns1.fin IN  A  192.168.1.228

 

market IN  NS  ns1.market

ns1.market IN  A  192.168.1.229

#service named  restart

#tail /var/log/messages(主从都查看日志,并且查看从端数据文件是否更新)

#dig -t  A  www.fin.mageedu.com(在主端和子域端分别查询,另也在win下使用nslookup分别指定主服务器、从服务器、子域服务器查询)

注:在子域端解析www.fin.mageedu.com,注意flags中有aa标记;而在父域中查www.fin.mageedu.com,若不指定子域服务器查询解析,flags中无aa标记,若指定则有;在子域端是无法查询到父域端(server-side)的数据的,要想查到通过配置转发。

 

 

转发配置:

forward   only|first  ;

forwarders {  IP;  };(指定转发器是谁,谁负责解析查询)

注:子域端解析不了的都转发到指定的serveronly转发到指定server一定要要到答案,若要不到就结束不要了;first先转发到指定server,若指定server不给答案,自己就去找根。

 

sub-side:

#vim /etc/named.conf(要么在全局段配置;要么在区域中配置)

options {  (若转发设置在全局段,则是所有子域中解析不到的都转发到指定server

 directory  “/var/named”;

 forward  {  first; };

 forwarders  {  192.168.1.222;  };

};

zone  “mageedu.com” IN  {  (若转发配置在区域,添加一区域,解析的数据此区域的才转发,最好配置在区域中)

 type  forward;

 forward  first;

 forwarders  {  192.168.1.222;  };

};

#service named  restart

#dig -t  NS  mageedu.com(在子域中即可查询父域中的数据)

 

 

列表配置:

内置的常用列表:none|any

例如allow-query  { 192.168.1.220;172.16.0.0/16;127.0.0/8;10.0.0.0/8;  ……}则可以将其归类,模板如下,acl段一定要放在主配置文件的最前端且在options之外定义:

acl ACL_NAME  {

 network/netmask

  IP

 network/netmask

……

}

例如:

#vim /etc/named.conf

acl innet  {

 192.168.1.0/24;

 172.16.0.0/8;

 127.0.0.0/8;

};

options {

……

 allow-query  {  innet; };

}

……

 

 

 

DNS视图:

实现智能解析,将一个域名解析成两种;

一旦定义了视图,所有的区域都必须要定义在视图中;根区域定义在需要递归的视图中

view VIEW_NAME  {

{;

举例:

电信telecom、联通unicom,两个独立的网络,连接处的总带宽100G;用户访问网站,则直接在自己所属的网络中解析,不用经过连接处带宽,前提线上的网站要在这两个网络中都有相关DNS数据文件才可

准备两个不同网段的客户端,使之均能与DNS-server通信(此例中单独拿出一台配置了两个网卡的主机,两个网卡配置地址均是两个网段的网关,192.168.1.1172.16.100.1,配置两个网卡可以转发,/etc/sysctl.confnet.ipv4.ip_forward  =  1):

DNS-server:192.168.1.222;

Client1:192.168.1.230

Client2:172.16.100.3

 

DNS-server-side:

#vim /etc/named.conf

acl innet  { 

 192.168.1.0/24;

 127.0.0.0/8;

};

options {

 directory  “/var/named”;

};

view telecom  {

 match-clients  {  innet; };

 zone  “mageedu.com”  IN  {

  type  master;

  file  “telecom.mageedu.com.zone”;

};

};

view unicom  {

 match-clients  {  any; };

 zone  “mageedu.com”  IN  {

  type  master;

  file  “unicom.mageedu.com.zone”;

};

};

#cp named.localhost telecom.mageedu.com.zone

#cp named.localhost unicom.mageedu.com.zone

#vim telecom.mageedu.com.zone

$TTL 600

@  IN  SOA  ns.mageedu.com.  admin.mageedu.com.  {

 2015070101

  1H

  5M

  7D

  1D)

 IN  NS  ns1

 IN  MX  10 mail

ns IN  A  192.168.1.222

mail IN  A  192.168.1.223

www IN  A  192.168.1.222

#vim unicom.mageedu.com.zone

$TTL 600

@ IN  SOA  ns.mageedu.com.  admin.mageedu.com.  {

 2015070101

  1H

  5M

  7D

  1D)

 IN  NS  ns1

 IN  MX  10 mail

ns IN  A  192.168.1.222

mail IN  A  172.16.100.2

www IN  A  172.16.100.2

#service named  restart

 

#dig -t  A  mail.magedu.com(在两个客户端都测试会得到不同的结果)

 

 

 

DNS日志功能:

channel(日志保存位置,两种方式:可通过file自定义保存日志信息文件;通过syslog定义到/var/log/messages中)

category(类别,定义日志源共15种,日志是由哪个子系统产生的,如有查询的、有区域传送等)

注:每一个类别category可发往多个channel,每一channel只接收一类category日志。

bind日志级别:dynamic,debug [level],info,notice,warning,error,critical;其中dynamicdebug[1|2|3]bind日志所独有,debug级别越高记录越详细;默认info级别。

15种类别:default,general,client,config,dispatch,dnssec,lame-servers,network,notify,queries,resolver,security,update,xfer-in,xfer-out;一般更新传输日志开启 update,xfer-in,xfer-out,查询安全日志不要开启security

 

举例:

Logging {

 channel  my_file  {

  file  “log.msgs”  version 3  size  10k;(每一日志达到10k则自动滚动,共记录3个版本,也就是3个文件)

  severity  dynamic;

  print-time  yes;(在日志文件中记录时间,什么时候写入的日志)

  print-severity  yes;(在日志文件中记录日志级别)

  pirnt-category  yes; (在日志文件中记录日志类别)

  };

 channel  my_syslog  {

  syslog  local0;

  severity  info;

  };

 category  xfer-in  { my_file;  };

 category  update  { my_syslog;  };

};

 

 

举例:

logging {

 channel  querylog  {

  file  “/var/log/named/bind-query.lgo”  version 5  size  10M;

  severity  dynamic;

  print-time  yes;

  print-serverity  yes;

  };

 channel  xfer-log  {

   file  “/var/log/named/transfer.log”  version 3  size  10k;

  severity  debug 3;

  print-time  yes;

  };

 category  queries  { querylog;  };

 category  xfer-out  { xfer-log;  };

};

 

 

 

queryperf(对DNS服务器做压力测试,一般若数据存于文件,每秒万以上个查询很轻松,若数据放于数据库中,每秒七八百就不错了)

dnstop(监控DNS服务器的工作状态)

#tar xf  bind-9.7.4.tar.gz

#cd bind-9.7.4/contrib/queryperf(仅编译安装queryperf工具)

#./configure

#make

#cp queryperf  /bin

#queryperf -h

#cd /root

#vim  test(存储20万行,文件内容为FQDN  RRT,例如www.magedu.com A

#queryperf -d  test  -s 192.168.1.222(注意最后一行Queries per second:后的值,把日志注释掉再次查询,性能会提高很多,响应速度极快)

 

 

#tar xf  dnstop-20140915.tar.gz

#cd dnstop-20140915

#yum -y  install  libpcap-devel(依赖于此包,抓包工具packagecap

#./configure

#make

#make install

#man dnstop

#dnstop -4  -Q  -R eth0-4IPV4-Qcount only DNS query messages-Rcount onlyDNS reply messages

 

 

 

 

以上是学习《马哥网络视频》做的笔记。

 

 

 











1DNS系统的作用:正向解析(根据主机名称或域名查找对应的IP地址);反向解析(根据IP地址查找对应的主机域名)。

DNS工作模式:递归查询、迭代查询。

全球共13台根DNS服务器。

BINDBerkeley InternetName Daemonwww.isc.org

软件包:bind-9.3.3-7-el5.i386.rpm

注:DNS是因特网的通信协议名称,BIND是提供DNS服务的软件。

服务名:named

端口号:53

主配置文件:/etc/named.conf

保存DNS解析记录的数据文件:/etc/named/

主域名服务器:特定DNS区域的官方服务器,具有唯一性;负责维护该区域内所有域名到IP地址的映射记录。

从域名服务器:(辅助域名服务器)数据文件来源于主域名服务器,供维护的域名到IP地址的映射记录。

2、DNS服务器配置:

         》主配置文件:#vi  /etc/named.conf

         options{

                   listen-on  port 53  { 192.168.216.223; };

                   ……

                   allow  query { 192.168.216.0.24; };        (或any)

                   ……

         };

         》区域配置文件:#vi  /etc/named.rfc1912.zones

         zone  "baidu.com"  IN  {

                   type  master

                   file  "baidu.localhost";

                   allow-update  { none; };

         }

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

                   type  master;

                   file  "baidu.empty";

                   allow-update  { none; };

         };

         》数据文件:

         正向数据文件:#cp  -p named.localhost  baidu.localhost

         #vi  baidu.localhost

         $TTL  ID

         @     IN   SOA   baidu.com.   rname.invalid.  {

                                                                                                      0       ;serial

                                                                                                       1D    ;refresh

                                                                                                       1H    ;retry

                                                                                                       1W   ;expire

                                                                                                       3H    ;minimum

         dns            dns.baidu.com.

         MX  5         mail.baidu.com.

dns     A              192.168.216.223

www   A              192.168.216.224

mail    A              192.168.216.225

         反向数据文件:#cp  -p  named.empty  baidu.empty

         #vi  baidu.empty

$TTL ID

         @     IN   SOA   baidu.com.   rname.invalid.  {

                                                                                                       0       ;serial

                                                                                                       1D    ;refresh

                                                                                                       1H    ;retry

                                                                                                       1W   ;expire

                                                                                                       3H    ;minimum

          dns            dns.baidu.com.

          MX  5     mail.baidu.com.

223    PTR           dns.baidu.com.

224    PTR           www.baidu.com.

225    PTR           mail.baidu.com.

3、主从DNS服务器配置:

》主DNS主配置文件:

options {

         listen-onport 53  { 192.168.216.223; };

         allow-query  { 192.168.216.0/24 };

         allow-transfer  { 192.168.216.224;};

         ……

}

DNS区域文件和数据文件同上例。

》从DNS主配置文件:

options {

         listen-on  port 53  { 192.168.216.224; };

         allow-query  {192.168.216.224; };

         ……

}

DNS区域文件:

#vi /etc/named.rfc1912.zones

zone "baidu.com"  IN  {

         type  slave;

         file  "slaves/baidu.localhost";

         allow-update  {none;};

         masters  { 192.168.216.223;};

};

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

         type  slave;

         file  "slaves/baidu.empty";

         allow-update  { none; };

         master  { 192.168.216.223;};

};

DNS数据文件从主DNS获取

4、分离解析DNS服务器:将相同的域名解析为不同的IP地址

实验环境:三台虚拟机,其中一台双网卡。

》主配置文件:

options {

         listen-on  port 53  { any; };

         allow-query  { any; };

         ……

};

注释掉根服务器有关设置;

view lan {

         match-clients  { 192.168.216.0/24; };

         zone  "." IN  {

         type  hint;

         file  "named.ca";

         };

include "/etc/named.lan";

};

view wan  {

         match-clients  { any; };

         zone  "." IN  {

         type  hint;

         file  "named.ca";

         };

include "/etc/named.wan";

};

》区域文件:

#cp -p /etc/named.rfc1912.zones.bak    /etc/named.lan

#cp -p /etc/named.rfc1912.zones.bak    /etc/named.wan

#vi   /etc/named.lan

zone "baidu.com"  IN  {

         type  master;

         file  "baidu.1.lan";

         aloow-update  { none;};

};

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

         type  master;

         file  "baidu.2.lan";

         allow-update  { none; };

};

#vi /etc/named.wan

zone "baidu.com"  IN  {

         type  master;

         file  "baidu.1.wan";

         allow-update  { none; };

};

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

         type  master;

         file  "baidu.2.wan";

         allow-update  { none; };

};

》数据文件:

#cp -p  named.localhost  baidu.1.lan

#vi  baidu.1.lan

…… SOA  baidu.com.  ……

                   ……

         NS    dns.baidu.com.

         MX  5 mail.baid.com.

dns     A       192.168.216.223

mail    A       192.168.216.224

www   A       192.168.216.225

*         A       192.168.216.100


#cp -p  named.empty  baidu.2.lan

#vi baidu.2.lan

         NS       dns.baidu.com.

         MX  5  mail.baidu.com.

223   PTR      dns.baidu.com.

224   PTR      mail.baidu.com.

225   PTR      www.baidu.com.

*       PTR      xxx.baidu.com.


#cp -p  named.localhost  baidu.1.wan

#vi baidu.1.wan

         NS    dns.baidu.com.

         MX  5  mail.baidu.com.

dns   A       200.200.200.1

mail  A       200.200.200.2

www A       200.200.200.3

*       A       200.200.200.100


#cp -p  named.empty  baidu.2.wan

#vi baidu.2.wan

         NS    dns.baidu.com.

         MX  5  mail.baidu.com.

1       PTR  dns.baidu.com.

2       PTR  mail.baidu.com.

3       PTR  www.baidu.com.



本文转自 chaijowin 51CTO博客,原文链接:http://blog.51cto.com/jowin/1659467,如需转载请自行联系原作者

相关文章
|
8天前
|
安全 数据挖掘 Linux
Linux命令rpm深度解析
`rpm`是Linux下的软件包管理器,用于安装、升级、卸载和查询`.rpm`包,常见于Red Hat系Linux。它管理依赖、维护软件信息数据库,支持版本控制和安全验证。常用命令如`-i`安装,`-U`升级,`-e`卸载,`-q`查询。安装时用`-v`和`-h`可查看详细信息和进度。注意依赖关系、权限和签名验证,最佳实践包括使用仓库、定期更新和备份数据。
|
3天前
|
安全 Linux 应用服务中间件
Linux命令show-installed的深入解析
`show-installed`是Linux中一个假设的命令,模拟显示已安装软件包的功能。它结合了`apt`、`yum`等包管理器的特性,提供跨发行版的兼容性,展示包的名称、版本、安装时间和来源。可用参数如`-n`过滤名称,`-v`显示版本,`-s`显示来源,`-t`显示时间。注意需root权限运行,大系统中可能影响性能。最佳实践包括定期审查、使用过滤、结合其他命令和备份数据。
|
3天前
|
安全 算法 Linux
Linux命令signver的深入解析
`signver`非Linux标准命令,常用于APK签名版本指定,确保安全性和市场兼容性。在加固工具配置中,如`NHPProtect.jar`,它可能作为参数 `-signver` 使用,允许指定(v1, v2, v3)等签名版本。正确配置保证通过验证,增强用户数据安全。注意兼容性、正确填写配置并定期更新加固工具。测试和遵循最佳安全实践同样关键。
|
3天前
|
Unix Linux C++
Linux命令size的深入解析
`size`命令在Linux中用于查看目标文件的内存布局,显示代码、数据和BSS段的大小,助力程序优化和资源管理。支持多种输出格式、基数和与其他命令结合使用进行递归分析。常用参数包括设置格式(-A)、基数(-m)、人类可读(-h)和总计(-t)。通过示例展示了如何查看单个或多个文件的大小,并与`find`结合遍历目录。使用时注意文件访问权限和选择合适的输出选项。
|
4天前
|
存储 数据管理 Linux
Linux命令sg的深入解析与应用
**Linux的`sg`命令用于高效管理SCSI设备,它基于DMA和Scatter-Gather技术,提供直接设备控制和高效数据传输。`sg`常通过`sg3_utils`工具集来使用,例如`sg_io`,用于执行SCSI命令。在实际应用中,需注意权限、数据安全和兼容性问题,遵循备份、详细阅读文档和逐步测试的最佳实践。**
|
4天前
|
存储 安全 算法
Linux命令sha1sum的详细解析
`sha1sum`是Linux下的命令行工具,用于计算文件的SHA-1哈希值,用于验证文件完整性和安全性。SHA-1算法将数据转化为160位的哈希值,具有唯一性、固定长度和单向性。命令支持二进制或文本模式,可检查校验文件、保存哈希值、验证文件完整性。尽管由于安全问题不推荐用于高安全场景,但在一些场景下仍用于文件校验。最佳实践包括定期验证、保存校验文件和与其他命令结合使用。
|
8天前
|
存储 数据挖掘 Linux
探索Linux命令rpm2cpio:解析RPM包内容的利器
`rpm2cpio`是Linux下用于从RPM包中提取内容的工具,它将`.rpm`转换为CPIO归档。无需安装,可直接访问包内文件,适合数据分析。命令简单,常与`cpio`结合使用,如`rpm2cpio package.rpm | cpio -idmv`解压文件。示例包括提取特定文件和列出包内所有文件。注意权限、路径和文件完整性,使用前备份数据,并查阅文档以优化使用。
|
9天前
|
存储 监控 Linux
深入解析Linux命令:rootfs-expand
`rootfs-expand`是假设的Linux工具,用于扩展嵌入式设备或特定发行版的根文件系统。它检查当前大小,确定可扩展空间,并调整分区。命令参数包括 `-s` 设置扩展大小,`-f` 强制扩展,`-v` 显示详细信息和 `-h` 显示帮助。扩展前务必备份数据,谨慎使用强制选项,并确保有足够未分配空间。示例命令:`sudo rootfs-expand -s 4G [-v]`。虽然具体实现会有所不同,但这个概念可以帮助理解根文件系统扩展的一般流程。
|
11天前
|
数据可视化 安全 Linux
探索Linux命令repo-graph:深入解析与应用实践
`repo-graph`是Linux的Yum-utils工具,用于可视化仓库中软件包的依赖关系,简化复杂网络管理。它通过分析元数据生成图形,支持自定义输出格式和特定包分析。例如,`repo-graph --repoid=updates`显示更新仓库的依赖,而`--packages=httpd`则专注httpd包。注意权限、复杂性和选择合适输出格式。定期分析和图形化展示是最佳实践。
|
11天前
|
Linux 数据处理
Linux命令repoclosure深度解析
`repoclosure`是Linux的YUM仓库依赖检查工具,属于`yum-utils`。它分析元数据,查找未解决的依赖,确保包的正确安装和更新。通过详细报告和参数配置,如`--repoid`、`--debug`,管理员能诊断并修复仓库问题。定期运行和结合其他工具使用是最佳实践,有助于保持系统的稳定和可靠性。

相关产品

  • 云解析DNS