- 论坛徽章:
- 0
|
硬件环境:Linux 2.6.23.1-42.fc8
linux ip: 10.1.1.182
本机上没有dns 服务,yum 安装了一个:
yum install bind
(此过程安装的版本为 bind-9.5.0-16.a6.fc8.i386.rpm)
以下内容来自"
麦子屋
"的博客 和 "atg_1"的帖子
原文链接分别为:
http://blog.sina.com.cn/s/blog_6151984a0100f1f3.html
http://www.boobooke.com/bbs/viewthread.php?tid=20210
域名解析的方法
- HOSTS文件:适用于小型网络(文本文件)
- NIS服务器:
- DNS服务器:分布式解析
/etc/hosts ,也负责映射,但它通常是当作DNS的备份出现的
unix上dns客户端的设置
# vi /etc/resolv.conf
domain xxx
nameserver 192.168.2.1
search iei.com
- /etc/nsswitch.conf文件 用于记录主机名的搜索顺序等信息
vi /etc/nsswitch.confhosts: files dns
- nslookup www.sun.com nslookup测试
/etc/resolv.conf 设DNS SERVER与nslookup测试DNS正确与否
[root@old145 mac]# cat /etc/resolv.conf
search iei.com
nameserver 219.142.217.166
[root@old145 mac]# nslookup www.cisco.com
Server: 219.142.217.166
Address: 219.142.217.166#53
Non-authoritative answer:
Name: www.cisco.com
Address: 198.133.219.25
nslookup也可以反查:查IP地址的域名(这一步时,我使用的dns服务器反向解析不了IP)
[root@old145 mac]# nslookup 198.133.219.25
Server: 219.142.217.166
Address: 219.142.217.166#53
Non-authoritative answer:
25.219.133.198.in-addr.arpa name = www.cisco.com.
Authoritative answers can be found from:
219.133.198.in-addr.arpa nameserver = ns1.cisco.com.
219.133.198.in-addr.arpa nameserver = ns2.cisco.com.
ns1.cisco.com internet address = 128.107.241.185
ns2.cisco.com internet address = 64.102.255.44
一、 named 安装配置步骤
在Linux中都是用Bind来实现DNS,即“named进程”
options {
listen-on port 53 { any; }; //127.0.0.1 改为 any 或者局域网网段
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; //localhost 改为 any
recursion yes;
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone “区域名” IN {
type master/slave/hint
定义区域类型
master 主DNS
slave 辅DNS (很少用)
hint 根,只用于下面的”.” named.ca
file “文件名” 区域文件名,此文件存于/var/named目录下
};
zone "sina.com" IN {
type master; file "sina.zone";
allow-update { none; };
};
zone "." IN { 根区域
type hint; 类型:根
file "named.ca"; /var/named/named.ca 指向上级DNS(通常是公网顶级DNS)
该文件不需要管理员更改,而是系统自带
};
[root@localhost named]# cat sina.zone
$TTL 1D
@ IN SOA @ root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS 202.108.33.32;
IN A 202.108.33.32;
WWW IN A 202.108.33.32;
@则代表相应的域名,macg.com
NS:域名记录, 一个zone文件,必须有NS条目,否则报错
A条目,真正的映射条目
域名都是两条条目,一条NS条目,一条A条目
WWW IN A 202.108.33.32; 主机A条目:主机映射条目,“主机名 IN A 地址”
IN不能打头,前面应该有域名,或@,或至少应该有一个空格
zone文件必须有NS条目
[root@localhost named]# vi macg.zone
IN NS 202.108.33.32;
IN A 202.108.33.32;
[root@localhost named]# /etc/init.d/named restart
sina.zone:9: NS record '202.108.33.32' appears to be an address
zone sina.com/IN: has no NS records
_default/sina.com/IN: bad zone
[root@localhost named]# vi macg.zone
@ IN NS 202.108.33.32;
IN A 202.108.33.32;
[root@localhost named]# /etc/init.d/named restart
Starting named: [ OK ]
总之,IN前可以空,但必须有一个空格,不能用IN顶头(我测试的时候,可以顶头)
IN语句的主机名前面不能留空格
[root@localhost named]# vi macg.zone
www IN A 202.108.33.32;
[root@localhost named]# /etc/init.d/named restart
Starting named:
Error in named configuration:
macg.zone:11: unknown RR type 'www'
zone macg.com/IN: loading master file macg.zone: unknown class/type
_default/macg.com/IN: unknown class/type [FAILED]
将www行之前的空格去掉,错误解决
[root@localhost named]# vi macg.zone
@ IN NS 202.108.33.32;
IN A 202.108.33.32;
www IN A 202.108.33.32;
一个基本的正向解析+测试
[root@localhost named]# more /etc/named.conf
zone "sina.com" IN {
type master;
file "sina.zone";
allow-update { none; };
};
- 建立zone文件 /var/named/sina.zone
$TTL 1D
@ IN SOA @ root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS 202.108.33.32;
IN A 202.108.33.32;
WWW IN A 202.108.33.32;
[root@localhost named]# /etc/init.d/named restart
Stopping named: [ OK ]
Starting named: [ OK ]
* 设置防火墙(测试时,可以把防火墙关闭了测试:service iptables stop)
防火墙开启53端口:
#/cd /etc/sysconfig/
# vi iptables
在里面添加TCP 和UDP的53端口 。
我是仿照 ssh 的端口设置的:
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
然后 执行 service iptables restart
在其他PC上,执行:(我的Windows 主机为 2003 Server SP2)
C:\>nslookup
www.sina.com
10.1.1.182
*** Can't find server name for address 10.1.1.182: Server failed
Server: UnKnown (到这一步时,还没有做反向解析,目前没有影响)
Address: 10.1.1.182
Name:
www.sina.com
Address: 202.108.33.32
二、 反向解析(地址---域名)
作用:通过查询IP地址的PTR记录
得到该IP地址指向的域名,
用途:常用于MAIL SERVER 过滤垃圾邮件:
如果SERVER没有做反向解析,那么对方mail服务器的反向解析验证就会失败,对方mail服务器就会以我们是不明发送方而拒收我们发往的邮件,这也就是没做反向解析时无法向sina.com、homail.com发信的原因
vi /etc/named.conf
zone "33.108.202.in-addr.arpa" IN {
IP地址前三位倒叙+ in-addr.arpa
type master;
file "named.sina.com";
allow-update { none; };
};
- 建立反向zone文件 /var/named/named.sina.com
$TTL 1D
@ IN SOA @ root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS sina.com.
32 IN PTR
www.sina.com
.
* 测试:
我在 Windows 2003 Server SP2上测试:
C:\>nslookup 202.108.33.32 10.1.1.182
*** Can't find server name for address 10.1.1.182: Non-existent domain
Server: UnKnown
Address: 10.1.1.182
Name:
www.sina.com
Address: 202.108.33.32
结果:
成功解析出 Name:
www.sina.com
这里,找不到Server 名字,因为还没有为它设置反向解析,这个不影响本次测试。
注意: 在反向zone文件 /var/named/named.sina.com中,
@ IN NS sina.com.
32 IN PTR
www.sina.com
.
后面的那个点“.”表示这是一个完整的记录,否则,服务器就会自动给你加上当前域。
这里,如果没有这个点, 解析处理的 name就是:
Name:
www.sina.com.33.108.202.in-addr.arpa
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/105349/showart_2108599.html |
|