1 //
2 // named.conf
3 //
4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
5 // server as a caching only nameserver (as a localhost DNS resolver only).
6 //
7 // See /usr/share/doc/bind*/sample/ for example named configuration files.
8 //
9
10 options {//Option 段
11 listen-on port 53 { 127.0.0.1; };//表示BIND将在53端口监听,并且监听的IP为127.0.0.1,可添加监听的其它IP地址,用分号隔开,
若需要对所有IP进行监听,则修改为// listen-on port 53 { any; };
12 listen-on-v6 port 53 { ::1; };//在IPv6环境下的监听端口为53
13 directory "/var/named";//工作目录设定,由于安装了bind-chroot,其实际工作目录为/var/named/chroot/var/named/
14 dump-file "/var/named/data/cache_dump.db";//缓存转储位置
15 statistics-file "/var/named/data/named_stats.txt";//记录统计信息的文件
16 memstatistics-file "/var/named/data/named_mem_stats.txt";//记录内存使用的统计信息
17 allow-query { localhost; };//允许查询的主机,默认只允许本机查询
若需要允许所有客户机查询,则修改为// allow-query { any; };
18 recursion yes;//允许递归查询
19
20 dnssec-enable yes;
21 dnssec-validation yes;
22 dnssec-lookaside auto;
23
24 /* Path to ISC DLV key */
25 bindkeys-file "/etc/named.iscdlv.key";
26 };
27
28 logging {//Loging段
29 channel default_debug {
30 file "data/named.run";//记录了一些named的信息,如监听/解析记录等。它的位置在/var/named/chroot/var/named/data下。
31 severity dynamic;
32 };
33 };
34
35 zone "." IN {
36 type hint;//type只有3种参数:hint/master/slave.只有"."对应的type为hint,其它zone的类型只能为master或slave,即DNS主机和DNS从机。
37 file "named.ca";//指定了解析文件的位置,解析文件中记录着域名与IP的对应关系。它的位置在/var/named/chroot/var/named/data下。
38 };
39
40 include "/etc/named.rfc1912.zones";//解析文件列表的位置
实际上,还可以增加view段。view是解析文件的一个集合,有了view,
就可以对不同网络进行不的管理策略。比如对内网和外网主机采用不同的策略,让它们查询到的解析记录不一样。
cat -n /var/named/chroot/var/named/named.ca
部分内容如下:
27 ;; ADDITIONAL SECTION:
28 A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
29 A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:ba3e::2:30
30 B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
31 C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
32 D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
33 E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
34 F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
35 F.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:2f::f
36 G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
37 H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
38 H.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:1::803f:235
39 I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
40 J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
41 J.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:c27::2:30
42 K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
43 K.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:7fd::1
44 L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42
45 M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
46 M.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:dc3::35
什么是IP反向解析?DNS服务器里有两个区域,即“正向查找区域”和“反向查找区域”,反向查找区域即是这里所说的IP反向解析,其作用就是通过查询IP地址的PTR记录来获取该IP地址指向的域名,要成功得到域名就必需要有该IP地址的PTR记录。
IP反向解析如何应用到邮件系统中来拦截垃圾邮件?请看这样一个例子:
小刘到A公司拜访,他递上一张名片,名片上写着他来自“华夏俱乐部”和电话号码等信息,A公司觉得应该对小刘的来历做个简单调查,于是打电话到他名片上的电话号码所属电信局进行查实,如果电信局告诉A公司其电话号码不属于“华夏俱乐部”,则A公司将拒绝小刘的拜访,如果其电话号码的确属于“华夏俱乐部”,A公司可能接受小刘的拜访,然后A公司想要进一步查实,于是就打电话到“华夏俱乐部”所属注册机构查询,如果得到的答复确认该俱乐部确有此电话号码,那么A公司认为小刘身份是真实的,于是接受小刘的拜访,否则仍将拒绝。
这个例子中,小刘好比是我们的邮件服务器,A公司是对方邮件服务器,“华夏俱乐部”就是我们邮件服务器与对方邮件服务器通信时所使用的HELO域名(不是邮件地址@后的域名),名片上的电话号码就是我们邮件服务器出口的公网IP地址。A公 司对小刘进行调查的过程就相当于一个反向解析验证过程。由此看出,反向解析验证其实是对方服务器在进行的,而如果我们没有做反向解析,那么对方服务器的反向解析验证就会失败,这样对方服务器就会以我们是不明发送方而拒收我们发往的邮件,这也就是我们排除其它原因后(如被对方列入黑名单、没有MX记录、使用的是动态IP地址等等)在未做反向解析时无法向很多邮件服务器(例如sina.com、homail.com)成功发信的原因。
那么我们应当如何顺利做好反向解析?首先要有固定公网IP 地址、可用域名(最好不要被其它服务所用),例如您有yy.com的域名,您可以要求您的域名注册商为您添加一个 mail.yy.com的域名
并将其A记录指向您的SMTP服务器出口公网IP地址,如:114.XXX.XXX.XXX,接着请与您的固定IP所属ISP联系要求为您的IP反向解析至mail.yy.com。完成后别忘了将您的SMTP服务器的HELO域名改为mail.yy.com,这样才可以达到目的。
另:
1、做好反向解析后发往sina.com的信件有可能会被转至“不明邮件夹”中,此时请您与sina.com联系,要求为您解决该问题。
2、查看反向解析是否成功,可用如下命令:nslookup IP地址,从返回的信息中您可以看到反向解析的结果。
3、一定要有固定公网IP地址以及真实可用域名。同时要注意反向解析的域名的A记录一定要指向该IP.
4、对于有多个固定公网IP地址的,只要做主要出口IP的反向解析即可,不管您有多少SMTP服务器,只要是通过该IP连接至外网就将这些SMTP服务器的HELO域名改成IP反向解析之域名即可。
[root@localhost chroot]# cat -n etc/named.rfc1912.zones
1 // named.rfc1912.zones:
2 //
3 // Provided by Red Hat caching-nameserver package
4 //
5 // ISC BIND named zone configuration for zones recommended by
6 // RFC 1912 section 4.1 : localhost TLDs and address zones
7 // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
8 // (c)2007 R W Franks
9 //
10 // See /usr/share/doc/bind*/sample/ for example named configuration files.
11 //
12
13 zone "localhost.localdomain" IN {//正向解析的zone定义
14 type master;
15 file "named.localhost";//指定了解析文件的位置,解析文件中记录着域名与IP的对应关系。它的位置在/var/named/chroot/var/named/data下。
16 allow-update { none; };//是否可以更新对应的zone文件
17 };
18
19 zone "localhost" IN {//正向解析的zone定义
20 type master;
21 file "named.localhost";
22 allow-update { none; };//是否可以更新对应的zone文件
23 };
24
25 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
26 type master;
27 file "named.loopback";
28 allow-update { none; };
29 };
30
31 zone "1.0.0.127.in-addr.arpa" IN {//反向解析的zone定义,对应的IP为127.0.0.1,注意,这里是反过来写,并且最后要加上“.in-addr.arpa”以告诉named这是一个反解zone定义。
32 type master;
33 file "named.loopback";
34 allow-update { none; };//是否可以更新对应的zone文件
35 };
36
37 zone "0.in-addr.arpa" IN {//反向解析的zone定义
38 type master;
39 file "named.empty";
40 allow-update { none; };
41 };
42
[root@localhost named]# cat -n named.localhost
1 $TTL 1D ;缓存时间
2 @ IN SOA @ rname.invalid. ( ;SOA是Start Of Authority 的缩写
3 0 ; serial 序号 如果master上的zone文件序号比slave上的大,那么数据就会同步。
4 1D ; refresh 刷新Slave的时间
5 1H ; retry Slave更新失败后多久再进行一次更新
6 1W ; expire 失败多少次后不再尝试更新,一周
7 3H ) ; minimum 缓存时间,如果没有设定$TTL 这个值就可当作$TTL
8 NS @ ;就是zone中定义的域名,如localhost.localdomain和localhost
;NS(Name Server)缩写,NS @ 表示该zone的查询将提交给主机localhost.localdomain
9 A 127.0.0.1 ;A是正向解析的符号,后面紧跟着IP,表示localhost.localdomain对应的IP为127.0.0.1.
10 AAAA ::1
补充一些
正向解析文件和反向解析文件都有的zone文件。