DNS的原理部分我就不多说了,可以参看我前面的文章 DNS详解及windows环境下私有根的搭建,我里我主要围绕Linux下的DNS的架设来给大家来讲解一下.
Linux下的DNS服务的管理套件名字叫作BIND
首先我们来查看一下BIND文件是否已经安装.
用命令 # rpm -qa | grep bind 来查看架设所需的安装包是否已经齐备.
bind-utils-9.2.4-16.EL4 <=====是用户端搜寻主机名称的相关指令,服务器测试工具
bind-libs-9.2.4-2 <=========实现域名解析功能必备库文件
ypbind-1.17.2.-3
上面是REHL4里面默认安装的BIND相关包,没有DNS的主程序包,我们还需要手动安装下列包支持来DNS的架设
安装文件在:RHEL4的包文件在光盘的 RedHat/RPMS/ 目录中(注意区分大小写)
RHEL5在包文件光盘的 Server/ 目录中(同样注意大小写)
挂载光盘后进入包所在路径使用安装命令:
# rpm -ivh bind--9.2.4-2.i386.rpm DNS服务器主程序 (必须)
#rpm -ivh bind-chroot-9.2.4-2.i386.rpm 锁定bind主程序目录(必须)
上面的 bind-chroot 包安装后在/var/named/下会多出 chroot/ 目录,DNS的相关配置会转移到/var/named/chroot/下,关于chroot我在下面的文章里有简单的介绍 [url]http://liyongxian.blog.51cto.com/432519/112609[/url].
关于主配置文件通过观察发现RHEL4和RHEL5是有些出入的
在RHEL4中的配置文件为 /etc/named.conf
在RHEL5中会将RHEL4中的 named.conf 主配置文件拆分成两个配置文件用以说明服务器的配置信息,在安装 caching-nameserver-x.x.x.x-xxxxxxx.rpm后 /var/named/chroot/etc/ 下会在产生文件
named.caching-nameserver.conf (主配置文件,)
named.rfc1912.zones (区域 配置文件)
/etc/下会产生的两个软链接文件与上面的两个文件相链接
下面信息RHEL4和RHEL5基本相同
在 /var/named/chroot/var/named/ 下会产生文件
localdomain.zone (本地域 解析文件--可作为正向解析文件模板使用)
named.local (反向地址 解析文件--可作为反向解析文件模板使用)
localhost.zone (本地主机 解析文件--解析DNS服务器自己使用)
named.ca (根服务器地址解析文件)
及其他一些IPv6解析文件,在此不作详细讨论
服务的启动脚本存放于 /etc/init.d/named 他控制BIND服务的启动和停止过程
下面我们来逐一修改配置文件
在RHEL5中,默认的主配置文件已经更名为named.caching-nameserver.conf (为了与RHEL4兼容也可将其更名拷贝到/etc/named.conf)
# vim /etc/named.caching-nameserver.conf
打开文件后修改其中的
listen port 53 { any; };
allow-query { any; };
match-clints { any; };
match-destinations { any; };
include "/etc/named.rfc1912.zones"; #该行指明了区域配置文件的所在,默认为/etc/named.rfc1912.zones
修改完毕后保存退出
以下的操作RHEL4同RHEL5基本相同
RHEL4环境下修改主配置文件 /etc/named.conf 的区域说明部分
RHEL5环境下修改 /etc/named.rfc1912.zones 区域配置文件
在上述两个文件里添加区域记录
例: zone "itet.com" IN { # 指明正向解析区域
type master; # 服务器类型(master|slave|hint)
file " itet.com.zone " ; # 正向区域解析文件位置
allow-update { none; }; }; # 自动更新(禁止)
zone " 16.172.in-addr.arpa " IN { # 反向区域解析网络
type master ; # 服务器类型
file " 172.16.local "; # 反向解析文件位置
allow-update { none; }; };
这里需要注意的是,反向解析网络中的反网络号问题
举例说明:
A类网络 10.1.2.3 的反网络号为 10.in-addr.arpa
B类网络 172.16.2.3 的反网络号为 16.172.in-addr.arpa
C类网络 192.168.3.5 的反网络号为 3.168.192.in-addr.arpa
进入目录 /var/named/chroot/var/named
拷贝上面我提到的模板文件为我们需要的文件,如例中的itet.com.zone及172.16.local
# cd /var/named/chroot/var/named
# cp -p localdomian.zone itet.com.zone (推荐使用以 .zone 结尾的文件)
# cp -p named.local 172.16.local (推荐使用以 .local 结尾的文件)
-----------------------------------------------------------------------------------
额外补充一下上述两个文件中信息的作用
$TTL 86400 # 数据的最小存活周期
# ORIGIN 域名. # 指定"域"
@ IN SOA localhost.root.localhost. ( # 起始授权记录应使用完全合格域名
42 ; Serial # 操作版本号,数值越大说明记录越新
3H ; Refresh # 主从服务器同步间隔 3 小时,若版本号相同则不更新
15M ; Retry # 数据同步失败,再次尝试更新间隔 15 分钟
1W ; Expire # 数据失效时间 1 周
1D) ; minimum #数据的最小存活周期
IN NS localhost # NS 记录(服务器记录)也可写成 " 主机DNS名. "
@ IN MX 邮件服务器DNS 名. # 10.1.3.4 IP数值越小优先级越高
在反向区域解析文件中 没有MX邮件交换记录,没有A记录,没有$ORIGIN变量
-------------------------------------------------------------------------------
修改 .zone 结尾的区域解析文件 # vim itet.com.zone
在最下行直接填写所需要的 A记录,CNAME记录等(注意其中的大小写)
www IN A 172.16.0.100
ftp IN A 172.16.0.101
而后修改反向区域解析文件 # vim 172.16.local
PTR记录格式为: 反主机号 IN PTR 域名.
反主机号示例:
A 类地址 10.1.3.5 反主机号为 5.3.1
B 类地址 172.16.25.33 反主机号为 33.25
C 类地址 192.168.2.5 反主机号为 5
在最下行写入反向解析所需要的 PTR 记录 (同样需要注意大小写问题)
100.0 IN PTR [url]www.itet.com[/url].
101.0 IN PTR ftp.itet.com. (别忘记域名后面的".")
将上述文件修改完成后保存退出
至此配置文件部分修改完毕
用命令检查区域解析文件的语法是否正确
# named-checkconf 主配置文件名(默认named.conf)
# named-checkzone 区域名 区域文件位置
配置文件完成以后启动服务
通过命令 # chkconfig --list named 发现在开机进入任何模式下该服务都不启动,将其改成在开机后最常用的init 3 5 模式下启动
# chkconfig --level 35 named on
或用命令: # ntsysv 启动服务管理程序,在里面勾选DNS服务 " named "
查看当前服务是否在运行
# service named status 发现服务尚未启动
# service named start 启动服务 (在此之前确认本机的IP已经配置好,并且如果打算使用本机进行DNS测试的话确保 /etc/resolv.conf 已经正确配置了DNS信息)
检测运行情况
用ping命令或用测试工具 nslookup 测试解析情况
辅助DNS服务器配置(主,辅DNS服务器不能同时由一台物理主机担当)
在辅助DNS服务器中修改主配置文件加入区域信息
zone "域名" {
type slave ;
file "slaves/正向区域解析文件名";
masters { 主服务器IP; }; };
zone "反网络号.in-addr.arpa" {
type slave ;
file " slaves/反向区域解析文件名";
masters { 主服务器IP ;}; };
其中slaves/ 指 /var/named/chroot/var/named/slaves 文件夹,用于存放更新同步区域解析文件
同一物理主机多DNS配置
服务器部分与单DNS配置基本相同,这里需要作的是在一块物理网卡上绑定多个IP,因此需要多个"逻辑网卡",Linux下多"逻辑网卡"是通过配置文件实现的.
这里需要说明一下:
eth0 为系统中头一块物理网卡
eth0:1 为 eth0 上的头一块逻辑网卡
因此多逻辑网卡的实现方法为
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth0:1
然后修改 ifcfg-eth0:1 中的
DEVICE=eth0:1
IPADDR=
NETMASK=
GATEWAY=
bind 常用命令.
named-bootconf # 域名服务器的启动配置脚本
named-checkconf # 域名服务器的配置语法检验
named-checkzone # 区域配置文件检验
dns-keygen # Dns加密密钥生成程序
dnssec-keygen # DNSSEC
dnssec-signzone # 加密密钥生成程序
rndc reload # 域名服务的控制程序.