免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1893 | 回复: 1
打印 上一主题 下一主题

Linux下配置DNS服务 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-01 16:25 |只看该作者 |倒序浏览

硬件环境: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客户端的设置

  • /etc/resolv.conf文件

# 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进程”

  •     /etc/named.conf

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;


    一个基本的正向解析+测试

  • 配/etc/named.conf

[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;


  • 启动service

[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发信的原因

  •     修改/etc/named.conf

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

论坛徽章:
0
2 [报告]
发表于 2009-12-08 02:07 |只看该作者
沙发中学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP