以下是一个配置DNS服务的实例:
………………………………………………DNS的配置步骤:……………………………………………………
一、配置静态IP地址:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.198.0.5
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
#/etc/init.d/network restart
#ifconfig eth0
二、使用BIND构建DNS服务器
1、BIND服务器安装
RHEL4中包括了BIND服务相关的软件包
bind-libs-9.2.4-2
提供了实现域名解析功能必备的库文件 ,系统默认安装
bind-utils-9.2.4-2
提供了对DNS服务器的测试工具程序 ,系统默认安装
bind-9.2.4-2安装文件位于第4张安装光盘中
# rpm -ivh bind-9.2.4-2.i386.rpm
BIND服务器的服务程序脚本名称是named,默认没有启动,需手动设置。
#rpm -ql bind | grep init.d
/etc/rc.c/init.d/named
#chkconfig --level 35 named on
#chkconfig --list named
三、主域名服务器的配置
1、在named.conf文件中设置域
全局配置
options {
directory "/var/named"
dump-file "/var/named/data/cache_dump.db"
statistics-file "/var/named/data/named_stats.txt"
}
controls {
inet 127.0.0.1 allow { localhost} keys { rndckey}
}
建立正向解析域
zone "." IN {(指定根域)
type hint
file "named.ca"
}
zone "benet.com" { (指定本地域)
type master
file "benet.com.zone"
}
建立反向解析域
zone "0.168.192.in-addr.arpa" { (指定反向域)
type master
file "192.168.0.rev"
}
2、建立正向区域文件(该文件需要用vi编辑器手动建立在/var/named中,并写其内容)
#cat /var/named/benet.com.zone
$TTL86400 (秒)
@IN SOA benet.com. hostmaster.benet.com. (
42 serial (d. adams) (序列号)
3Hrefresh(3小时更新)
15M retry (15分钟重试)
1W expiry(1周)
1D ) minimum(1天)
@ IN NS ns1.benet.com.
@ IN NS ns2.benet.com.
ns1IN A 192.168.0.5
ns2IN A 192.168.0.6
host1 IN A 192.168.0.7
host2 IN A 192.168.0.8
mail IN CNAME host1.benet.com.
www IN CNAME host2.benet.com.
@ IN MX 5 mail.benet.com.
3、建立反向区域文件 (该文件需要用vi编辑器手动建立在/var/named中,并写其内容)
# cat /var/named/192.168.0.rev
$TTL86400
@ IN SOAns1.ltest.com. hostmaster.ltest.com. (
42 serial (d. adams)
3H refresh
15M retry
1W expiry
1D )minimum
@IN NS ns1.ltest.com.
@IN NS ns2.ltest.com.
2 IN PTR ns1.ltest.com. (PTR可用IP省略方法,1.168.192.in-addr.rapa表192.168.1.2可写为2)
3 IN PTR ns2.ltest.com.
11IN PTR host1.ltest.com.
12IN PTR host2.ltest.com.
4、配置文件和区域文件的测试
A、测试named.conf主配置文件
# named-checkconf(如果不显示任何信息表示语法正确 )
B、测试区域文件
# named-checkzone benet.com /var/named/benet.com.zone
# named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev
(named-checkzone命令对正向区域文件和反向区域文件进行检查语法是否错误,第一个参数指定区域名称,第二个参数指定区域文件名称,如果语法正确将显示OK)
5、重启named服务
#service named restart
四、从域名服务器 的配置
(它做为主域名服务器的辅助和备份服务器,自身不建立区域文件,而是从主域名服务器中查询并保存,它可以与主域名服务器提供相同的域名解析服务,它需要在与主域名服务器不同的主机中构建)
1、在named.conf文件中设置域
建立正向解析域
zone "benet.com" {
type slave(type设置为“slave”,表示当前DNS服务器是该域的从域名服务器类型 )
file "slaves/benet.com.zone" (从域名服务器中的区域文件应设置保存在 “slaves”子目录中,区域文件将从主 域名服务器中获取并保存在该目录中,为了便于管理,尽量使用与主服务器相 同的区域文件名称)
masters { 192.168.0.5} ( 使用masters设置主域名服务器的IP地址 )
}
建立反向解析域
zone "0.168.192.in-addr.arpa" {
type slave
file " slaves/192.168.0.rev"
masters { 192.168.0.5}
}
2、检测配置文件和启动named服务
从域名服务器只需要检测配置文件的语法
# named-checkconf
启动从域名服务器
# service named start
查看区域文件
从服务器启动后将从主域名服务器中获得区域文件并保存在指定的目录中
# ls /var/named/slaves/
192.168.0.rev benet.com.zone
(如果/var/named/slaves/目录中没有发现区域文件,说明从域名服务器和主域名服务器之间传输区域文件不成功,需要排错。)
五、缓存域名服务器的配置
(它应保证能够与互联网中的其他DNS服务器进行连接,它的主要作用是提高域名解析速度和节约出口带宽)
1、安装caching-nameserver软件包
(RHEL4系统为配置缓存域名服务器专门提供了名为“caching-nameserver”的软件包,该软件包保存在第1张安装光盘中,默认没有安装。)
# rpm -ivh caching-nameserver-7.3-3.noarch.rpm
(caching-nameserver软件包安装时将对BIND服务器的配置文件named.conf的内容进行更改,原文件中的内容保存在/etc/named.conf.rpmorig中。)
2、named.conf中的全局设置 (其中以//开头的行是无效行)
options {
directory "/var/named" (directory用于设置BIND服务器的工作目录,即域名区域文件保存的目录 )
dump-file "/var/named/data/cache_dump.db"(dump-file用于设置域名缓存文件的保存位置和文件名 )
statistics-file "/var/named/data/named_stats.txt"
}
3、根区域设置
named.conf中的根区域设置
zone "." IN {
type hint (type设置为hint表示该区域的类型是根区域)
file "named.ca" (file用于设置区域文件,根区域文件的名称是“named.ca” )
}
(named.ca是根区域文件,位于“/var/named/ ”目录中,named.ca中包含全球DNS根服务器的地址信息请不要更改)
4、localhost正向解析
(localhost区域的作用是对主机名称“localhost”和环回地址“127.0.0.1” 进行解析,总是代表本机)
zone "localhost" IN {
type master ( type设置为master表示区域的类型为主服务器 )
file "localhost.zone" (file设置区域文件名的名字 ,localhost.zone在/var/named中,是安装caching-nameserver时自动安装的,用cat /var/named/localhost.zone查看内容)
}
5、localhost反向解析
zone "0.0.127.in-addr.arpa" IN {
type master ( type设置为master表示区域的类型为主服务器 )
file "named.local" (file设置区域文件名的名字,named.local在/var/named中,是安装caching-nameserver时 自动安装的,用cat /var/named/named.local查看内容)
}
6、缓存域名服务器在安装caching-nameserver软件包后不需要任何其他配置就可以启动运行,并实现域名查询和缓存功能,但它必须能够访问互联网。可以使用nslookup命令进行测试。
六、DNS服务器的测试
1、DNS测试原理
DNS服务器的主要测试方法
使用nslookup、dig和host等专用工具可以对DNS服务器进行较全面的测试
nslookup命令在Linux和Windows系统中都默认安装,是比较常用的测试工具
2、使用nslookup测试DNS服务器
进入nslookup命令交换环境
# nslookup
>
设置使用指定的DNS服务器
>server 192.168.0.5
测试localhost主机域名的正向解析
>localhost
测试localhost主机域名的反向解析
>127.0.0.1
测试互联网中的域名解析
>www.benet.com
测试benet.com域中的A记录
>host1.benet.com
测试benet.com域中的PTR记录
>192.168.0.7
测试benet.com域中的CNAME记录
>www.benet.com
测试benet.com域中的NS记录
>set type=ns (设置域名查询类型为NS即域名记录)
>benet.com
测试benet.com域中的MX记录
>set type=mx (设置域名查询类型为MX即邮件交换记录)
>benet.com
设置进行A记录的测试
>set type=a(设置域名查询类型为A即地址记录)
>mail.benet.com
3、使用dig测试DNS服务器(dig只运行在liunx平台,是domain information grep的缩写)
1)#dig --help
dig命令的格式
Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt}
{global-d-opt} host [@local-server] {local-d-opt}
[ host [@local-server] {local-d-opt} [...]]
Use "dig -h" (or "dig -h | more") for complete list of options
2)dig命令可以比nslookup命令显示更多的DNS服务器信息
# dig @192.168.0.5 benet.com (@后是被查询的DNS服务器的IP地址,benet.com域名做为命令参数)
<<>>DiG 9.2.4 <<>>@192.168.0.5 benet.com
global options: printcmd
Got answer:
->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51201
flags: qr aa rd raQUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
QUESTION SECTION:
benet.com. IN A
AUTHORITY SECTION:
benet.com. 86400 IN SOA ns1.benet.com. hostmaster.benet.com. 42 10800 900 604800 86400
以上dns是以benet.com域为实例讲解………………
1、安装DNS服务器组件:安装bind
yum install -y bind bind-chroot bind-utils
2、编辑DNS主配置文件:
vi /etc/named.conf修改主配置文件
3、接着修改named.rfc1912.zones文件,vi /etc/named.rfc1912.zones
4、添加设置DNS正向解析:
修改zone配置文件,正向解析:
cd /var/named/
cp named.localhost szlpt.cn.zone
vi szlpt.cn.zone(要和主配置文件[/etc/named.rfc1912.zones]里面定义的zone文件名一致)
5、修改zone配置文件,反向解析:
cd /var/named/
cp named.localhost 32.168.192.zone
vi 0.168.192.zone(要和主配置[/etc/named.rfc1912.zones]文件里面定义的zone文件名一致)
6、更改防火墙设置和selinux设置:
Getenforce(查看selinux是否开启)
setenforce 0
vi /etc/sysconfig/iptables #配置防火墙端口
-AINPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT
service iptables restart #重启防火墙,使规则生效
7、启动DNS服(注意DNS服务名称在linux是叫做bind):
service named start
8、测试检测域信息是否正常(重要):
检查之前先看下 配置文件有没有读取权限 ll /var/named
(如果没有读取全线, chmod +r /var/named/* 即可)
9、检查bind文件配置过程中容易出错:
以下命令用以检查bind配置文件及zone文件语法
named-checkconf /etc/named.conf
named-checkzone szlpt.cn /var/named/ szlpt.cn.zone
10、启动重启DNS服务,查看服务状态:
service named restart
service network restart
用户端测试解析,通过nslookup进行测试。
需要修改 /etc/resolv.conf 配置文件,指定域名解析服务器就可以解决该问题;
1、编辑etc下的resoly.conf文件(如果没有就新建一个);
2、在resoly.conf文件内添加一下内容;
nameserver 8.8.8.8
3、保存后重启网络服务,可以通过命令“service network restart ”重启;
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)