首页 > 代码库 > 搭建DNS域名解析服务器
搭建DNS域名解析服务器
搭建DNS域名服务器
DNS介绍:
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
正向解析:域名 --> IP地址
反向解析: IP地址 --> 域名
FQDN域名组成:tts6.tarena.com.cn
主机名.域名
|-->三级域名.二级域名 .一级域名
主DNS服务器:192.168.4.5
tts6.tarena.com.cn --> 202.12.12.10
|
|
V
从DNS服务器:192.168.4.6
tts6.tarena.com.cn --> 20.20.20.10
DNS的两种查询方式:
递归查询:
迭代查询:
DNS配置文件:
主配置文件:/var/named/chroot/etc/named.conf
区域数据(解析记录)文件:/var/named/chroot/var/named/.. ..
实验环境:准备三台虚拟机
虚拟机一:主DNS服务器,IP地址192.168.4.5/24 ,主机名:svr5
虚拟机二:从DNS服务器,IP地址192.168.4.6/24 ,主机名:svr6
虚拟机三:客户端,IP地址192.168.4.205/24 ,主机名:PC205
前提条件:主从DNS搭建Yum库
一:搭建一台简单的DNS服务器
1,主DNS服务器安装bind,bind-chroot软件包
[root@svr5 ~]# yum -y install bind bind-chroot
2,配置服务器的named.conf
[root@svr5 ~]# cd /var/named/chroot/etc/
[root@svr5 etc]# vim named.conf
[root@svr5 etc]# cat named.conf //每一句和括号后都得加;
options { directory "/var/named"; }; //指定区域文件的默认位置
zone "tarena.com" IN { //定义正向区域
type master; //区域类型为主区域
file "tarena.com.zone"; //定义区域数据文件(放置域名和IP解析的文件)
};
3,配置解析数据库(区域文件)
[root@svr5 etc]# cd /var/named/chroot/var/named/
[root@svr5 named]# vim tarena.com.zone //创建的区域文件与主配置文件指定的文件名相同
[root@svr5 named]# cat tarena.com.zone
$TTL 86400 //Time To Live 生存时间
@ IN SOA tarena.com. root.tarena.com. (
2014052201 //更新序列号
2H //刷新时间
15M //重试间隔
4h //超时时间
1D //无效记录的生存时间
)
//SOA:授权信息 root.tarena.com.:邮箱文件
// tarena.com. :默认域名
@ IN NS svr5.tarena.com. //本区域DNS服务器的FQDN
svr5 IN A 192.168.4.5 //本区域DNS服务器的IP地址
svr5 IN A 192.168.4.5
svr6 IN A 192.168.4.6
tts6 IN A 118.45.29.123
[root@svr5 named]# service named restart //启动服务
[root@svr5 named]# netstat -anptu | grep named //查看named的监听端口
4,客户机测试:
[root@PC_205 ~]# vim /etc/resolv.conf
[root@PC_205 ~]# cat /etc/resolv.conf | tail -1
nameserver 192.168.4.5 //将主服务器的ip告诉客户机
//检测配置语法
[root@svr5 ~]# named-checkconf /var/named/chroot/etc/named.conf //检测主配置文件的语法
[root@svr5 ~]# named-checkzone tarena.com /var/named/chroot/var/named/tarena.com.zone
zone tarena.com/IN: loaded serial 2014052201
OK //检测数据文件的语法
[root@svr5 /]# host tts6.tarena.com //通过域名解析IP
tts6.tarena.com has address 118.45.29.123
[root@svr5 /]# nslookup svr5.tarena.com
Server: 192.168.4.5
Address: 192.168.4.5#53
Name: svr5.tarena.com
Address: 192.168.4.5
练习二:新增DNS区域baidu.com
目标:www.baidu.com----->1.2.3.4
Music.baidu.com-------->5.6.7.8
1, 修改主配置文件,再次添加一个zone区域 //一个zone区域解析一个域名
[root@svr5 /]# vim /var/named/chroot/etc/named.conf
zone "baidu.com" IN {
type master;
file "baidu.com.zone";
};
2, 为新增的baidu.com区域建立一个数据文件
[root@svr5 named]# cp -p tarena.com.zone baidu.com.zone
$TTL 86400
@ IN SOA baidu.com. root.baidu.com. (
2014052201
2H
15M
4h
1D
)
@ IN NS svr5.tarena.com.
www IN A 1.2.3.4
music IN A 5.6.7.8
[root@svr5 named]# service named restart
3, 客户机测试
[root@svr5 ~]# host www.baidu.com
www.baidu.com has address 1.2.3.4
[root@svr5 ~]# host music.baidu.com
music.baidu.com has address 5.6.7.8
练习三:DNS负载均衡
目标:www.tarena.com
-->192.168.4.100、192.168.4.110、192.168.4.120、……
//主DNS服务器
[root@svr5 named]# cd /var/named/chroot/var/named/
[root@svr5 named]# vim tarena.com.zone
…………………..
www IN A 192.168.5.100
www IN A 192.168.5.110
www IN A 192.168.5.120
[root@svr5 named]# !ser //相当于service named restart
练习四:泛域名解析
简化以下记录:
station1.tarena.com --> 192.168.7.1
.. ..
station200.tarena.com --> 192.168.7.200
识别未知域名:
bj.tarena.com --> 118.45.29.31
sh.tarena.com --> 118.45.29.31
.. .. tarena.com --> 118.45.29.31
//主配置文件
[root@svr5 named]# vim tarena.com.zone
………………….
$GENERATE 1-200 station$ IN A 192.168.7.$
* IN A 118.45.29.31
[root@svr5 named]# service named restart
客户端测试:
//DNS负载均衡是指每次访问同一个域名时会依次去所对应的IP。承担了单个IP的压力
[root@svr5 ~]# host www.tarena.com
www.tarena.com has address 192.168.5.120
www.tarena.com has address 192.168.5.100
www.tarena.com has address 192.168.5.110
[root@svr5 ~]# host www.tarena.com
www.tarena.com has address 192.168.5.110
www.tarena.com has address 192.168.5.120
www.tarena.com has address 192.168.5.100
[root@svr5 ~]# host www.tarena.com
www.tarena.com has address 192.168.5.100
www.tarena.com has address 192.168.5.110
www.tarena.com has address 192.168.5.120
测试:泛域名解析:当你访问的域名,DNS服务器没有时会指定一个固定的IP所有不在本服务器的域名都会指到固定的IP
[root@svr5 ~]# host jiafjaskl.tarena.com
jiafjaskl.tarena.com has address 118.45.29.31
[root@svr5 ~]# host alkdfa
alkdfa.tarena.com has address 118.45.29.31
练习五:添加反向解析区域
目标:192.168.4.5 --> svr5.tarena.com
192.168.4.6 --> svr6.tarena.com
1,修改主配置文件添加
[root@svr5 named]# cd /var/named/chroot/etc/
[root@svr5 etc]# vim named.conf
zone "4.168.192.in-addr.arpa" IN { //定义反向解析
type master; //反向解析的区域主区域
file "192.168.4.arpa"; //指明反向解析的区域文件
};
2,建立反向区域的解析文件
[root@svr5 etc]# cd /var/named/chroot/var/named/
[root@svr5 named]# cp tarena.com.zone 192.168.4.arpa
…………………
@ IN NS svr5.tarena.com.
5 IN PTR svr5.tarena.com. //根据IP解析域名(域名后得加个点这是指明根域)
6 IN PTR svr6.tarena.com.
$GENERATE 1-200 $ IN PTR station$.tarena.com.
* IN PTR www.tarena.com.
[root@svr5 named]# service named restart
3,客户端测试
[root@svr5 ~]# host 192.168.4.6
6.4.168.192.in-addr.arpa domain name pointer station6.tarena.com.
6.4.168.192.in-addr.arpa domain name pointer svr6.tarena.com.
[root@svr5 ~]# host 192.168.4.5
5.4.168.192.in-addr.arpa domain name pointer station5.tarena.com.
5.4.168.192.in-addr.arpa domain name pointer svr5.tarena.com..
搭建主从DNS服务器
目标:
主DNS:www.tarena.com 192.168.4.5
从DNS:www.tarena.com 192.168.4.6
1,建主DNS服务器
改主配置文件
[root@svr5 etc]# vim named.conf
options { directory "/var/named";
allow-transfer { 192.168.4.6; }; //指明从DNS的IP
};
zone "tarena.com" IN {
type master;
file "tarena.com.zone";
};
2)改区域数据文件
[root@svr5 etc]# vim /var/named/chroot/var/named/tarena.com.zone
@ IN NS svr5.tarena.com. //数据文件中要有主从DNS的域名和主机名,否则从DNS更新不了
IN NS svr6.tarena.com.
[root@svr5 etc]# service named restart
2,建从DNS服务器
从DNS服务器装bind,bind-chroot
建立主配置文件 //用远程拷贝一份主配置文件
[root@svr6 ~]# scp -r root@192.168.4.5:/var/named/chroot/etc/named.conf /var/named/chroot/etc/
[root@svr6 ~]# vim /var/named/chroot/etc/named.conf
options { directory "/var/named"; };
zone "tarena.com" IN {
type slave; //指明类型(从DNS)
file "slaves/tarena.com.zone"; //指明从DNS的数据文件存放位置
masters { 192.168.4.5; }; //指明主DNS的IP
};
[root@svr6 ~]# service named restart
测试:
//只要检查从DNS服务器中有没有数据文件,有就建成从DNS服务器
[root@svr6 etc]# ls /var/named/chroot/var/named/slaves/
tarena.com.zone
测试效果:
主DNS更改数据文件:
源数据文件的序列号:
@ IN SOA tarena.com. root.tarena.com. (
2014052201
更改后的数据文件的序列号:
@ IN SOA tarena.com. root.tarena.com. (
2014062201
源数据: tts6 IN A 118.45.29.123
更改后的数据:tts6 IN A 1.1.1.1
[root@svr5 ~]# service named restart //重启服务
从DNS查看是否更新:
[root@svr6 slaves]# cat /var/named/chroot/var/named/slaves/tarena.com.zone | grep tts6
tts6 A 1.1.1.1 //已经同步更新
//主从DNS的同步更新,主要是靠更新的序列号,从DNS只识别序列号和设置的自动更新的时间
搭建DNS域名解析服务器