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) |