Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46108
  • 博文数量: 18
  • 博客积分: 474
  • 博客等级: 下士
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-20 10:08
文章分类

全部博文(18)

文章存档

2011年(18)

分类: LINUX

2011-06-20 16:44:25

DNS
    /etc/hosts

    
    DNS的特点:
        1、主机名是分层次,每层管理属于的名字
            
            主机头.二级域.顶级域[根域]
            最多支持127层,每层最多63个字符。

        2、引入缓存机制。

    默认情况下,进行域名查找的时候
        首先查看本地hosts
        DNS解析
        /etc/nsswitch.conf

DNS    
    协议:udp , tcp
    端口:53


DNS解析过程

软件包:
bind.i386        主程序
bind-chroot.i386    安全包
bind-devel.i386        开发包
bind-utils.i386        工具包

# yum install bind-* -y


没有安装bind-chroot:
    主配置文件:     /etc/named.conf
    工作目录:    /var/named

安装了bind-chroot: 把/var/named/chroot作为bind软件的“根”
    主配置文件:    /var/named/chroot/etc/named.conf
    工作目录:    /var/named/chroot/var/named



主配置文件named.conf ---> 区域文件
注意:权限


例子1、简单实现正向解析
     ---> ip

1、建立主配置文件

# vim /var/named/chroot/etc/named.conf

options {
        directory "/var/named"; 《---指定工作目录
};

//区定义
zone "upl.com" IN {
        type master;  // slave,forward,hint
        file "data/master.upl.com.zone";
};



2、建立区域文件
# vim /var/named/chroot/var/named/data/master.upl.com.zone

$TTL 86400
@       IN      SOA     upl.com.        root.   (                  
                                        2011061801   #二进制版本号,如果有更改,将其增大,让从服务器同步
                                        15M               #别的服务器对于此服务器15分钟刷新一次
                                        10M               #如果刷新不成功,10分钟后再尝试
                                        1D                  #从服务器连接不上主服务器,提供1天服务
                                        1H )                #告诉其他DNS服务器,找不到此数据后的一个小时别再来询问


@       IN      NS      dev.upl.com.
dev     IN      A       10.1.1.22
www     IN      A       10.1.1.1
ftp     IN      A       10.1.1.2
bbs.upl.com.    IN      A       10.1.1.3
www1    IN      CNAME   www


# chown named:named /var/named/chroot/var/named/data/master.upl.com.zone



启动
# service named restart        


测试
# vim /etc/resolv.conf    
nameserver 10.1.1.22


# nslookup ftp.upl.com



例子2:实现反向解析(可以防止邮箱地址伪造)

ip--->domain

1、
# vim named.conf


zone "1.1.10.in-addr.arpa" IN {
        type master;
        file "data/master.1.1.10.in-addr.arpa.zone";
};


2、
# vim /var/named/chroot/var/named/data/master.1.1.10.in-addr.arpa.zone




$TTL 86400
@       IN      SOA     1.1.10.in-addr.arpa.    root. (
                                                2011061801
                                                15M
                                                10M
                                                1D
                                                1H )

@       IN      NS      dev.upl.com.
22      IN      PTR     dev.upl.com.
1       IN      PTR     .
2       IN      PTR     bbs.upl.com.
88      IN      PTR    


例子3:直接解析
upl.com ---> ip

# vim /var/named/chroot/var/named/data/master.upl.com.zone

$TTL 86400
@       IN      SOA     upl.com.        root.   (
                                        2011061801
                                        15M
                                        10M
                                        1D
                                        1H )


@       IN      NS      dev.upl.com.
dev     IN      A       10.1.1.22
www     IN      A       10.1.1.1
ftp     IN      A       10.1.1.2
bbs.upl.com.    IN      A       10.1.1.3
www1    IN      CNAME   www
upl.com.        IN      A       10.1.1.1  <----直接解析



测试: nslookup upl.com

例子4:泛解析(找不到的域都会解析到指定的主机)

sadffgfg.upl.com ---> ip
????.upl.com ---> ip


*       IN      A       10.1.1.1


例子5:实现DNS轮叫,达到负载均衡的功能

news    IN      A       10.1.1.100
news    IN      A       10.1.1.101
news    IN      A       10.1.1.102



例子6:实现连续范围域名解析

正向解析:
$GENERATE 1-254 station$ IN     A       10.1.1.$

反向解析:
$GENERATE 1-254 $       IN      PTR     station$.upl.com.


例子7:转发

针对域名的转发:
zone "baidu.com" IN {
        type forward;
        forwarders {  172.19.1.1; };
};


全局转发:named.conf找不到的区的定义都会转发
options {
        directory "/var/named";
        forwarders { 172.19.1.1; };
};


纯正转发的DNS:

1、获得根域名服务器的IP地址列表
# dig @a.root-servers.net. ns  > /var/named/chroot/var/named/data/named.ca
# chmod 770 /var/named/chroot/var/named/data/named.ca
# chown named:named /var/named/chroot/var/named/data/named.ca

2、定义named.conf
options {
        directory "/var/named";
};


zone "." IN {  //定义根域
        type hint;
        file "data/named.ca";
};




例子8:实现从DNS服务器

准备:
为了方便看效果,把区域文件中的一些时间设定改小一点
$TTL 86400
@       IN      SOA     upl.com.        root.   (
                                        2011061801
                                        2M  《--
                                        1M   《--
                                        1D
                                        1H )

把转发暂时去掉,避免实验搞混了

两个主从之间都必须同步时间。


可以在主服务器搭建时间服务,然后让从服务器定时过来同步时间。
# vim /etc/ntp.conf
server ntp.api.bz
restrict 10.1.1.0 mask 255.255.255.0 nomodify notrap
restrict 172.16.1.0 mask 255.255.255.0 nomodify notrap
restrict 172.16.0.0 mask 255.255.255.0 nomodify notrap

# service ntpd restart  《--等待10分钟左右,时间服务器才生效

1、搭建slave(从DNS服务器)

# yum install bind-* -y

# vim /var/named/chroot/etc/named.conf

options {
        directory "/var/named";
};


zone "upl.com" IN {
        type slave;
        masters { 10.1.1.22; };
        file "slaves/slave.upl.com.zone";
};

zone "1.1.10.in-addr.arpa" IN {
        type slave;
        masters { 10.1.1.22; };
        file "slaves/slave.1.1.10.in-addr.arpa.zone";
};

# service named restart



测试:
# vim /etc/resolv.conf
nameserver 10.1.1.21

# nslookup 


故障:
    路径不对,权限不对
    时间没有同步
    网络有问题(service iptables stop)



修改主DNS的记录,验证从DNS也会生效

1、更改主DNS区域文件的记录

2、更改区域文件的版本号,重载服务

等待。。。。

查看从服务器的日志,调试,只有同步开始才会看到日志,如果没有数据同步就看不到
# tail -f /var/log/messages


firefox /usr/share/doc/bind-9.3.6/arm/Bv9ARM.html

思考:怎么限制哪个IP的服务器才能成为从DNS服务器
file:///usr/share/doc/bind-9.3.6/arm/Bv9ARM.ch06.html#configuration_file_elements

allow-transfer 《---

阅读(623) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~