一、相关概念:
DNS(domain name server),软件bind(berkleyinternet name domain),由维护(internetsystems consortium),进程名及二进制程序named,tcp/53port(用于主从间传输数据,拉取机制),udp/53port,tcp/953(rndc),一般不开放rndc远程控制相当危险
socket=IP+PORT(server监听在某个socket上作为client的访问入口
(主机名,FQDN,fullqualified domain name完全合格域名,域名是)
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借助于stubresolver找IP)
IANA-->ICANN(internetcorporation for assigned names and numbers国际域名管理机构)
CDN(content deliverynetwork)
TLD(top level domain顶级域名):
组织域:.com .net .
国家域:.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管辖内的返回的为权威答案。
数据文件中的每一个条目称作一个资源记录,格式为:
ZONENAMETTL IN RRTVALUE(其中TTL可省)
例如:. INA 1.1.1.1(正向)
1.1.1IN .(反向,注意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
举例:
ZONENAMETTL IN RRTVALUE(TTL可省)
.600 IN .
. 600IN A 1.1.1.2(这两组要成对出现)
ZONENAMETTL IN RRTPRI VALUE(仅定义资源类型为邮件时才需PRI,范围0-99,数字越小级别越高)
.600 IN MX10 .
. 600IN A 1.1.1.3
. .(别名记录)
ZONENAMETTL IN SOAFQDN ADMIN_MAILBOX (
SERIAL NUMBER
REFRESH
RETRY
EXPIRE
NAGATIVE TTL)
注:数据文件中第一条必须是SOA记录,它用来标明本区域多个DNS服务器是如何完成数据同步的;格式如上,括号内各项表示的意义在服务器类型-主DNS服务器已介绍;时间单位:H,M,D,W分别是hour,minutes,day,week,不写默认单位秒;邮箱格式不能写@而要用点替代因为@在文件中已表示为本区域;此文件中的分号后的内容为注释信息,括号内的条目也可不用换行,用空格隔开。
@600 IN ..(
072101 ;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),由维护(internet systemsconsortium),进程名及二进制程序named,tcp/53port(用于主从间传输数据,拉取机制),udp/53port,tcp/953(rndc)
本例环境:centos5.4, 2.6.18-164.el5
#yumlist 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(创建开发环境才需安装)
#yuminfo bind97-chroot.x86_64(为安全考虑可以将DNS程序放在某固定根下,高级用法)
#yum-y install bind97bind97-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-onport 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
#servicenamed start(DNS启动后,会将数据文件加载到内存中,数据文件也可放在数据库中)
#tail/var/log/messages
#netstat-tunlp
#
#dig-t RRT NAME@SERVER
#dig-t NS .@a.root-.(指定服务器查看根区域的域名服务器,-t指定资源记录类型,answer section有查询结果)
举例:简单配置DNS
#vim/etc/named.conf(定义主配置文件)
options {
directory “/var/named”;
};
zone“” IN {
type master;
file “.zone”;
};
zone“1.168.192.in-addr.arpa” {
type master;
file “192.168.1.zone”;
};
#cd/var/named
#cp-p named.localhost .zone(保留文件属性,权限640,属主root,属组named)
#.zone(定义正向数据文件)
$TTL600
@IN SOA . . (;注意分号表示注释信息,每个域名后记得要加点,@表示在主配置文件已定义的正向区域,省略TTL值默认会继承第一行定义的值
070101
1H
5M
2D
6H)
IN NS ns1;精简写法,也可写为. 600IN NS .
IN MX 10mail
ns1IN A 192.168.1.222
mailIN A 192.168.1.223
wwwIN A 192.168.1.222
ftpIN CNAME www
*.. INA 192.168.1.222;泛域名解析,一般定义在错误页面而非主页
#cp-p .zone 192.168.1.zone
#vim192.168.1.zone(定义反向数据文件)
$TTL600
@ INSOA 1.168.192.in-addr.arpa . (
070101
1H
5M
2D
6H)
IN NS .
222IN PTR .
223IN PTR .
222IN .
#named-checkconf(检主配置文件是否有语法错误)
#named-checkzone “”/var/named/.zone(检查区域文件是否有语法错误)
#vim/etc/resolv.conf
nameserver192.168.1.222(将域名服务器改为本地设置的域名服务器)
#servicenamed restart
#dig-t NS
#dig-t SOA
#dig-t
#dig-x 192.168.1.222(反向查询)
#host-t NS
#host-t
#host-t
#host-t A
#host-t SOA
#nslookup(在linux中用交互模式中查询)
>
>exit
>nslookup(在windows的命令行中,交互模式查询)
>server192.168.1.222(指定server)
>setq=NS(q=后跟RRT,设置查询类型)
>
#dig +[no]recurse-t @192.168.1.222(递归查询)
#dig+trace -t @192.168.1.222(本地无此解析记录,它先找根再找com.再找.)
举例:master-slave间区域传送数据文件
master-side:(在上例配置基础上,添加从服务器信息,在主配置文件中指定允许区域传送的地址,数据文件中添加从的相关记录)
#vim/etc/named.conf
options{
directory “/var/named”;
allow-transfer { 192.168.1.225; };(此地址是从的地址)
};
#vim/var/named/.zone (正向数据文件追加如下信息)
IN NS .
ns2IN A 192.168.1.225
#vim/var/named/192.168.1.zone(反向数据文件追加如下信息)
IN NS .
225IN PTR .
slave-side:
#cp-p /etc/named.conf /etc/named.conf.bak
#scproot@192.168.1.222:/etc/named.conf /etc/
#chgrpnamed /etc/named.conf
#vim/etc/named.conf
options{
directory “/var/named”;
}
zone“” IN {
type slave;
file “slaves/.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;};
};
#servicenamed restart(配置好后两端均重启服务)
#tail/var/log/messages(主从端都查看日志,注意时间,serial版本号,区域传输类型axfr|ixfr)
在主端的数据文件中再追加一条记录,例如imap IN A192.168.1.230,记得在SOA中更改serial版本号为070102,再重启服务,观察主从两边日志变化情况。
注:若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"; };
};
#servicenamed restart
#netstattulnp
#scp/etc/rndc.conf192.168.1.220:/root/
client-side:
#cd/root
#vimrndc.conf(仅更改options段中default-server)
options {
default-key "rndc-key";
default-server 192.168.1.222;
default-port 953;
};
#rndc-c rndc.conf COMMAND
子域授权:
/fin-->www.
/market-->www.
正向授权:
SUB_ZONE_NAME INNS NSSERVER_SUB_ZONE_NAME
NSSERVER_SUB_ZONE_NAME INA IP
子域和父域可以不在同一网段中;通过子域是查不到父域中的相关记录,如果要想查询到则要设置转发forward,见下例
在上例master-slave的基础上操作:
server-side(父域端)192.168.1.222
sub-side(子域端)192.168.1.228,准备一台服务器,作为子域DNS服务器(子域若只在父域中有记录而无具体数据查询会失败)
sub-side:先配置好子域端配置文件及数据文件(若有两个子域一定要有对应的两台服务器及相关配置文件存在,本例中只创建这一个实实在在存在的域,另一个仅在父域中写出相应的记录,注意仅有记录是查询不到的)
#vim/etc/named.conf
options{
directory “/var/named”;
};
zone“” IN {
type master;
file “.zone”;
};
#cd/var/named
#cpnamed..zone
$TTL600
@IN SOA ns1.. . (
070101
1H
5M
2D
6H)
IN NS ns1
IN MX 10mail
ns1IN A 192.168.1.228
mailIN A 192.168.1.229
wwwIN A 192.168.1.228
#servicenamed start
#netstat-tulnp
#dig-t NS
server-side:
#cd /var/named
#.zone(更改添加如下记录)
……
070103 ;注意主配置文件更改一定要改版本号serial否则从端获取不到数据
……
finIN NS ns1.fin
ns1.finIN A 192.168.1.228
marketIN NS ns1.market
ns1.marketIN A 192.168.1.229
#servicenamed restart
#tail/var/log/messages(主从都查看日志,并且查看从端数据文件是否更新)
#dig-t Awww.(在主端和子域端分别查询,另也在win下使用nslookup分别指定主服务器、从服务器、子域服务器查询)
注:在子域端解析www.,注意flags中有aa标记;而在父域中查www.,若不指定子域服务器查询解析,flags中无aa标记,若指定则有;在子域端是无法查询到父域端(server-side)的数据的,要想查到通过配置转发。
转发配置:
forwardonly|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 “”IN {(若转发配置在区域,添加一区域,解析的数据此区域的才转发,最好配置在区域中)
type forward;
forward first;
forwarders { 192.168.1.222; };
};
#servicenamed restart
#dig-t NS (在子域中即可查询父域中的数据)
列表配置:
内置的常用列表:none|any
例如allow-query {192.168.1.220;172.16.0.0/16;127.0.0/8;10.0.0.0/8;……}则可以将其归类,模板如下,acl段一定要放在主配置文件的最前端且在options之外定义:
aclACL_NAME {
network/netmask;
IP;
network/netmask;
……
};
例如:
#vim/etc/named.conf
aclinnet {
192.168.1.0/24;
172.16.0.0/8;
127.0.0.0/8;
};
options{
……
allow-query { innet;};
};
……
DNS视图:
实现智能解析,将一个域名解析成两种;
一旦定义了视图,所有的区域都必须要定义在视图中;根区域定义在需要递归的视图中
viewVIEW_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
aclinnet {
192.168.1.0/24;
127.0.0.0/8;
};
options{
directory “/var/named”;
};
viewtelecom {
match-clients { innet;};
zone “” IN {
type master;
file “.zone”;
};
};
viewunicom {
match-clients { any;};
zone “” IN {
type master;
file “.zone”;
};
};
#cpnamed..zone
#cpnamed..zone
#.zone
$TTL600
@ IN SOA . . {
070101
1H
5M
7D
1D)
IN NS ns1
IN MX 10mail
nsIN A 192.168.1.222
mailIN A 192.168.1.223
wwwIN A 192.168.1.222
#.zone
$TTL600
@IN SOA . . {
070101
1H
5M
7D
1D)
IN NS ns1
IN MX 10mail
nsIN A 192.168.1.222
mailIN A 172.16.100.2
wwwIN A 172.16.100.2
#servicenamed restart
#dig-t A (在两个客户端都测试会得到不同的结果)
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” version3 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” version5 size 10M;
severity dynamic;
print-time yes;
print-serverity yes;
};
channel xfer-log {
file “/var/log/named/transfer.log” version3 size 10k;
severity debug 3;
print-time yes;
};
category queries {querylog; };
category xfer-out {xfer-log; };
};
queryperf(对DNS服务器做压力测试,一般若数据存于文件,每秒1万以上个查询很轻松,若数据放于数据库中,每秒七八百就不错了)
dnstop(监控DNS服务器的工作状态)
#tarxf bind-9.7.4.tar.gz
#cdbind-9.7.4/contrib/queryperf(仅编译安装queryperf工具)
#./configure
#make
#cpqueryperf /bin
#queryperf-h
#cd/root
#vimtest(存储20万行,文件内容为FQDN RRT,例如A)
#queryperf-d test -s192.168.1.222(注意最后一行Queries per second:后的值,把日志注释掉再次查询,性能会提高很多,响应速度极快)
#tarxf dnstop-0915.tar.gz
#cddnstop-0915
#yum-y install libpcap-devel(依赖于此包,抓包工具packagecap)
#./configure
#make
#makeinstall
#mandnstop
#dnstop-4 -Q -Reth0(-4,IPV4;-Q,count only DNS query messages;-R,count onlyDNS reply messages)
以上是学习《马哥网络视频》做的笔记。
1、DNS系统的作用:正向解析(根据主机名称或域名查找对应的IP地址);反向解析(根据IP地址查找对应的主机域名)。
DNS工作模式:递归查询、迭代查询。
全球共13台根DNS服务器。
BIND(Berkeley InternetName Daemon)
软件包: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 port53 { 192.168.216.223; };
……
allow query{ 192.168.216.0.24; };(或any)
……
};
》区域配置文件:#vi /etc/named.rfc1912.zones
zone "" 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 -pnamed.localhost baidu.localhost
#vi baidu.localhost
$TTL ID
@ INSOA . rname.invalid. {
0 ;serial
1D ;refresh
1H ;retry
1W ;expire
3H ;minimum
dns .
MX 5 .
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
$TTLID
@ INSOA . rname.invalid. {
0 ;serial
1D ;refresh
1H ;retry
1W ;expire
3H ;minimum
dns .
MX 5 .
223PTR .
224PTR .
225PTR .
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 port53 { 192.168.216.224; };
allow-query {192.168.216.224; };
……
};
从DNS区域文件:
#vi/etc/named.rfc1912.zones
zone"" 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 port53 { any; };
allow-query { any; };
……
};
注释掉根服务器有关设置;
viewlan {
match-clients { 192.168.216.0/24; };
zone "."IN {
type hint;
file "named.ca";
};
include"/etc/named.lan";
};
viewwan {
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"" 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"" 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
#vibaidu.1.lan
……SOA .……
……
NS .
MX .
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
#vibaidu.2.lan
NS .
MX 5 .
223 PTR .
224 PTR .
225 PTR .
* PTR .
#cp-p named.localhost baidu.1.wan
#vibaidu.1.wan
NS .
MX 5 .
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
#vibaidu.2.wan
NS .
MX 5 .
1 PTR .
2 PTR .
3 PTR .
本文转自 chaijowin 51CTO博客,原文链接:/jowin/1659467,如需转载请自行联系原作者