一、相关概念:
DNS(domain name server),软件bind(berkleyinternet name domain),由www.isc.org维护(internetsystems consortium),进程名及二进制程序named,tcp/53port(用于主从间传输数据,拉取机制),udp/53port,tcp/953(rndc),一般不开放rndc远程控制相当危险
socket=IP+PORT(server监听在某个socket上作为client的访问入口
www.magedu.com(主机名,FQDN,fullqualified domain name完全合格域名,域名是magedu.com)
name resolve名称解析:名称转换,背后有查询过程,通过文件或数据库(FQDN<-->IP)
FQDN-->IP(正向解析);IP-->FQDN(反向)
nsswitch仅提供平台:libnss_files.so,libnss_dns.so
#vim /etc/nsswitch.conf
hosts: files dns(其中files是/etc/hosts文件)
查询:递归(只发出一次请求,一定要要到答案,用于本地查询);迭代(可发出多次请求,非本地,互联网)
两段式查询:递归、迭代
stub resolver:是一软件或程序,名称解析器,由此程序发出的请求一定要递归,先找/etc/hosts如果没有结果则找DNS服务解析)
#ping www.magedu.com(ping借助于stubresolver找IP)
IANA-->ICANN(internetcorporation for assigned names and numbers国际域名管理机构)
CDN(content deliverynetwork)
TLD(top level domain*域名):
组织域:.com .net .org .cc
国家域:.cn .tw .hk .iq .ir .jp
DNS:分布式数据库,上级仅知道其直接下级,下级只知道根的位置
DNS服务器:接受本地服务器的查询请求(递归);外部客户端请求,请求权威答案(肯定答案TTL,否定答案TTL,time to live生存时间);外部客户端请求,请求非权威答案
DNS服务器类型,4类:
1、主DNS服务器(serialnumber(序列号,仅主DNS服务器数据内容更改时才改变);refresh(定义每隔多长时间检查主服务器);retry(重试时间);expire(过期时间);nagative answer(否定答案的缓存时长TTL));
2、辅助DNS服务器(或叫从DNS服务器,向主DNS服务器请求数据同步,采取pull拉取的机制;主可以有多个从,从也可以是其它从的从;若主挂掉从不会接替其工作,而是自杀(站在从的角度,主都不管了我管什么);注意区域文件中要定义type为slave,还要指定主服务器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 IN PTR www.magedu.com.(反向,注意FQDN后的点.)
RRT(resource record type资源记录类型):
SOA(start of authority起始授权,数据文件中的第一条,正反向都定义)
NS(name server,zonename-->FQDN,除区域名称外,其它都相同,正反向中都定义)
MX(mail exchanger,zonename-->FQDN,仅定义在正向中)
A(address,FQDN-->IPv4,仅正向,最常用)
AAAA(FQDN-->IPv6)
PTR(pointer,IP-->FQDN,仅定义在反向中)
CNAME(canonical name,别名,FQDN-->FQDN,正反向都可)
TXT
CHAOS
SRV
举例:
ZONENAME TTL IN RRT VALUE(TTL可省)
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
Domain和zone:domain是逻辑概念,区域是物理存在的(正向解析区域,反向解析区域)
区域传送类型:完全区域传送(axfr,all transfer);增量区域传送(inxfr,incremenatl transfer)
区域类型:主区域master;从区域slave;提示区域hint(定义根在什么地方);转发区域forward
二、实际操作:
软件bind(berkley internet name domain),由www.isc.org维护(internet systemsconsortium),进程名及二进制程序named,tcp/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主流版本,redhat6为bind)
#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检查区域数据文件,rndc,rndc-confgen生成配置文件)
/etc/rc.d/init.d/named {start|stop|status|restart|try-restart|reload|force-reload}
/etc/rndc.key(remote name domaincontroller,远程工作的密钥文件,/etc/rndc.conf)
/var/named/*(数据文件位置,其中named.ca标识13个根节点,named.localhost默认正向数据文件,named.empty默认反向数据文件)
#rpm -ql bind97-utils(dig强大的测试工具,另有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 start(DNS启动后,会将数据文件加载到内存中,数据文件也可放在数据库中)
#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中用交互模式中查询)
>exit
>nslookup(在windows的命令行中,交互模式查询)
>server 192.168.1.222(指定server)
>set q=NS(q=后跟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; };(指定转发器是谁,谁负责解析查询)
注:子域端解析不了的都转发到指定的server;only转发到指定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.1和172.16.100.1,配置两个网卡可以转发,/etc/sysctl.conf中net.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;其中dynamic和debug[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服务器做压力测试,一般若数据存于文件,每秒1 万以上个查询很轻松,若数据放于数据库中,每秒七八百就不错了)
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(-4,IPV4;-Q,count only DNS query messages;-R,count onlyDNS reply messages)
以上是学习《马哥网络视频》做的笔记。
1、DNS系统的作用:正向解析(根据主机名称或域名查找对应的IP地址);反向解析(根据IP地址查找对应的主机域名)。
DNS工作模式:递归查询、迭代查询。
全球共13台根DNS服务器。
BIND(Berkeley InternetName Daemon)www.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,如需转载请自行联系原作者