dns(协议) bind(程序) named(进程)
以下我们实现这个协议时通过bind这个程序。
DNS基本配置过程
配置环境:
主机1台(以下操作均在虚拟机上进行)
【 】仅表示注释
操作系统:redhat 5.8
当前主机是IP:172.16.16.3
主机名称ns1(ns1.magedu.com)
主机别名www
提供dns功能:bind97
确保yum源已经配置完善
我们实验用的是redhat5.8但是我们实验是用bind97所有要卸载原来默认安装的bind,当然各位在做实验之前先查看下当前环境的bind是哪个版本,然后在决定是否要卸载
- rpm -e bind-libs bind-utils
- yum -y install bind97 bind97-libs bind97-utils
- 提供配置文件,将默认配置文件移除,然后我们自己编辑配置文件
- mv /etc/named.conf /etc/named.conf.ba
- vim /etc/named.conf
- options{
- directory "/var/named";
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "localhost" IN{
- type master;
- file "localhost.zone";
- };
- zone "0.0.127.in-addr.arpa" IN {
- type master;
- file "127.0.0.zone";
- };
- zone "magedu.com" IN {
- type master;
- file "magedu.com.zone";
- };
- zone "16.16.172.in-addr.arpa" IN {
- type master;
- file "172.16.16.zone";
- };
四个区域已经声明好了,named.ca,这个文件是自动生成的,里面的四个文件还没有,我们接下来创建四个文件
【注意每一条NS记录和MX记录,都有对应的A记录,否则会报错】
- vim /var/named/localhost.zone
- $TTL 86400
- @ IN SOA localhost. admin.localhost. (
- 2012101801
- 1H
- 5M
- 7D
- 1D)
- @ IN NS localhost.
- localhost. IN A 127.0.0.1
- vim /var/named/127.0.0.zone
- $TTL 86400
- @ IN SOA localhost. admin.localhost. (
- 2012101801
- 1H
- 2M
- 7D
- 1D);
- @ IN NS localhost.;
- 1 IN PTR localhost.;
- vim /var/named/magedu.com.zone 【正向区域文件】
- $TTL 86400 【保留缓存时长】
- $ORIGIN magedu.com.
- @ IN SOA wd.magedu.com. admin.magedu.com. (
- 2012102001 【序列号】
- 2H 【刷新时间】
- 10M 【重试时间】
- 11D 【过期时间】
- 1D) 【否定回答的TTL值】
- IN NS wd
- IN NS ns1
- IN MX 10 mail
- wd IN A 172.16.16.1
- ns1 IN A 172.16.16.3
- mail IN A 172.16.16.2
- www IN A 172.16.16.1
- vim /var/named/172.16.16.zone 【反向区域文件】
- $TTL 86400
- $ORIGIN 16.16.172.in-addr.arpa
- @ IN SOA wd.magedu.com. admin.magedu.com. (
- 2012102004
- 2H
- 10M
- 11D
- 1D
- )
- IN NS wd.maged.com.
- IN NS ns1.magedu.com.
- 1 IN PTR wd.magedu.com.
- 1 IN PTR www.magedu.com.
- 3 IN PTR ns1.magedu.com.
- 2 IN PTR mail.magedu.com.
- 然后给文件更改权限
- cd /var/named/
- chmod 640 /etc/named.conf 172.16.16.zone localhost.zone 127.0.0.0.zone 172.16.16.zone
- chown :named /etc/named.conf 172.16.16.zone localhost.zone 127.0.0.0.zone 172.16.16.zone
- check-namedconf
- service rndc start 启动服务 【记得查看日志tail /var/log/messgaes】
用dig 测试即可
dig -t A www.magedu.com @127.0.0.1 【测试正向解析】
dig -x 172.16.16.1 @127.0.0.1 【测试反向解析】
dig 用法
dig是个诊断工具(bind中的一个诊断工具)
dig
-t 指明类型
-x 后面直接加要查询的IP
【以下用magedu.com 为例子介绍这个工具的用法.用本机进行查询】
【@后面加的是执行查询动作的服务器的IP】
dig -t A www.magedu.com @127.0.0.1
dig -x 172.16.16.3 @127.0.0.1
dig -t AXFR magedu.com @127.0.0.1【完全区域传送】
dig -t AXFR 16.16.172.in-addr.arpa @127.0.0.0.1 【完全反向区域传送】
注意:我们应该控制只有通过我们认证的才允许执行区域传送,如果任何主机都可以请求到区域传送的话,是相当危险的。
仅允许谁同步
allow-transfer { 任意IP段; 任意IP };
例如:
allow-transfer { 127.0.0.1; };表示允许本机进行完全区域传送
allow-transfer { 127.0.0.0/8; };表示允许这个网段的主机进行完全区域传送
allow-transfer有两个默认的值
allow-transfer { none; };不允许任何主机进行区域传送
allow-transfer { any; };允许任何主机进行区域传送
但是allow-transfer是基于IP地址认证的,是非常的不可靠的。所以我们要基于密钥来验证