RedHat-Linux配置DNS详细步骤是什么?

RedHat-Linux配置DNS详细步骤是什么?,第1张

RedHat-Linux服务器搭建DNS服务器\x0d\x0aDNS domain name system 域名系统\x0d\x0a特点:(1)具备递归查询和迭代查询\x0d\x0a(2)分布式数据库\x0d\x0a(3)将域名解析为IP\x0d\x0a(4)具有主DNS服务器、辅DNS服务器和缓存DNS服务器三种类型\x0d\x0a(5)全球13台根域服务器\x0d\x0a\x0d\x0a以下是搭建步骤:\x0d\x0a1、准备软件包\x0d\x0abind.i386 --主服务软件包 \x0d\x0abind-chroot.i386 -- 笼环境软件包 \x0d\x0abind-devel.i386 --开发包\x0d\x0abind-libs.i386 --库文件\x0d\x0abind-utils.i386 --工具包\x0d\x0a[root@rootbug ~]# rpm -qa |grep ^bind- --rhel6.3下的包\x0d\x0abind-utils-9.8.2-0.10.rc1.el6.x86_64\x0d\x0abind-chroot-9.8.2-0.10.rc1.el6.x86_64\x0d\x0abind-libs-9.8.2-0.10.rc1.el6.x86_64\x0d\x0abind-9.8.2-0.10.rc1.el6.x86_64\x0d\x0abind-dyndb-ldap-1.1.0-0.9.b1.el6.x86_64\x0d\x0a-------------看到软件包有点纠结,为啥呢??因为这些软件包的名字跟DNS这三个词每半点关系---------\x0d\x0a2、安装软件包\x0d\x0a[root@rootbug ~]#yum install bind* -y\x0d\x0a3、查看配置文件\x0d\x0aRHEL6下不管是安装了bind-chroot还是不安装,配置文件都是以/var/named.conf文件为主。\x0d\x0a(1)修改/etc/named.conf\x0d\x0a[root@rootbug ~]#vim /etc/named.conf\x0d\x0a-------省略其他万行代码----------------\x0d\x0a\x0d\x0aoptions {\x0d\x0alisten-on port 53 { any}--将原配置文件中的127.0.0.1改为any,表示监听所有\x0d\x0alisten-on-v6 port 53 { ::1}\x0d\x0adirectory "/var/named"--域的数据文件存放目录\x0d\x0adump-file "/var/named/data/cache_dump.db"\x0d\x0astatistics-file "/var/named/data/named_stats.txt"\x0d\x0amemstatistics-file "/var/named/data/named_mem_stats.txt"\x0d\x0aallow-query { any}--将配置文件的localhost改为any,表示所有人能查询这台服务器\x0d\x0arecursion yes\x0d\x0a\x0d\x0a-------省略其他万行代码----------------\x0d\x0a修改之后保存退出\x0d\x0a(2)配置/etc/named.rfc1912.zones,增加域的配置\x0d\x0a[root@rootbug ~]#vim /etc/named.rfc1912.zones\x0d\x0a按照配置文件格式添加一个域,这里我添加一个rootbug.com的域,域的数据文件放在directory "/var/named"当前目录下的data下,名称为:master.rootbug.com.zone。配置域时请注意“”分号。\x0d\x0azone "rootbug.com" IN {\x0d\x0atype master\x0d\x0afile "data/master.rootbug.com.zone"\x0d\x0a}\x0d\x0a配置好之后保存退出。\x0d\x0a(3)创建master.rootbug.com.zone的数据文件\x0d\x0a[root@rootbug ~]#vim /var/named/data/master.cluster.com.zone\x0d\x0a$TTL 3600\x0d\x0a@ IN SOA rootbug. zhangsan. (\x0d\x0a2013090801 --版本号,下面的是各种时间,作用是主从DNS服务器的同步时间\x0d\x0a30\x0d\x0a60\x0d\x0a90\x0d\x0a3600 )\x0d\x0aIN NS 172.16.2.151. --这里就是DNS服务器的IP(实际应该是公网IP,但这里是内网环境,所以写的内网IP),但是ip地址最后还有一个“.”记得加点,也可以写DNS服务器的外网域名;并且这里可以写多个NS,代表了你公司的多台DNS服务器\x0d\x0amail IN A 1.1.1.1 --A记录就是真正的数据,这里代表mail.rootbug.com的公网地址为1.1.1.1\x0d\x0adns IN A 172.16.2.151\x0d\x0abbs IN A 2.2.2.2\x0d\x0a\x0d\x0a保存退出\x0d\x0a(4)启动DNS服务器\x0d\x0a[root@rootbug ~]#/etc/init.d/named start ----第一次配置开启过程需要等待一段时间\x0d\x0a(5)客户端认证DNS服务器是否正确\x0d\x0awindows客户端认证\x0d\x0a在IP配置DNS栏中将首选DNS填写为172.16.2.151即可\x0d\x0aMicrosoft Windows XP [版本 5.1.2600]\x0d\x0a(C) 版权所有 1985-2001 Microsoft Corp.\x0d\x0a\x0d\x0aC:\Documents and Settings\ruutbug>nslookup mail.rootbug.com\x0d\x0a*** Can't find server name for address 172.16.2.151: Server failed\x0d\x0a*** Default servers are not available\x0d\x0aServer: UnKnown\x0d\x0aAddress: 172.16.2.151\x0d\x0a\x0d\x0aName: mail.rootbug.com\x0d\x0aAddress: 1.1.1.1\x0d\x0aC:\Documents and Settings\ruutbug>nslookup dns.rootbug.com\x0d\x0a*** Can't find server name for address 172.16.2.151: Server failed\x0d\x0a*** Default servers are not available\x0d\x0aServer: UnKnown\x0d\x0aAddress: 172.16.2.151\x0d\x0a\x0d\x0aName: dns.rootbug.com\x0d\x0aAddress: 172.16.2.151\x0d\x0aC:\Documents and Settings\ruutbug>nslookup bbs.rootbug.com\x0d\x0a*** Can't find server name for address 172.16.2.151: Server failed\x0d\x0a*** Default servers are not available\x0d\x0aServer: UnKnown\x0d\x0aAddress: 172.16.2.151\x0d\x0a\x0d\x0aName: bbs.rootbug.com\x0d\x0aAddress: 2.2.2.2

通常需要安装服务软件bind,Centos下:yum -y install bind* 命令安装。

然后修改主配置文件:

cp /etc/named.conf /etc/named.conf.bak

vi /etc/named.conf

//-------------------------内容为:-------------------------

options {

listen-on port 53 { any}// 监听在主机的53端口上。any代表监听所有的主机

directory "/var/named"// 如果此档案底下有规范到正反解的zone file 档名时,该档名预设应该放置在哪个目录底下

// 下面三项是服务的相关统计信息

dump-file "/var/named/data/cache_dump.db"

statistics-file "/var/named/data/named_stats.txt"

memstatistics-file "/var/named/data/named_mem_stats.txt"

allow-query { any}// 谁可以对我的DNS服务器提出查询请求。any代表任何人

recursion yes

dnssec-enable yes

dnssec-validation yes

dnssec-lookaside auto

forwarders { // 指定上层DNS服务器

119.29.29.29//这里使用OneDNS主服务器

}

bindkeys-file "/etc/named.iscdlv.key"

managed-keys-directory "/var/named/dynamic"

}

logging {

channel default_debug {

file "data/named.run"

severity dynamic

}

}

zone "." IN {

type hint

file "named.ca"

}

include "/etc/named.rfc1912.zones"//这里是自定义解析区域;

include "/etc/named.root.key"

//---------------------结束---------------------------------

下面进行自定义解析:

vi /etc/named.rfc1912.zones

//-----------自定义解析开始:-------------------------------

zone "yumaozdy.com" IN {// 定义要解析主域名

type master

file "xxx.com.zone" // 具体相关解析的配置文件保存在 /var/named/xxx.com.zone 文件中

}

//-----------自定义解析结束:-------------------------------

编辑自定义xxx.com.zone文件:

vi /var/named/yumaozdy.com.zone

//-----------自定义开始:-----------------------------

$TTL 86400

@ IN SOA ns.yumaozdy.com. root (

1 serial

1D refresh

1H retry

1W expire

0 ) minimum

@ IN NS ns.xxx.com.

ns IN A 192.168.1.2

www IN A 192.168.1.3

bbs IN A 192.168.1.4

ttt IN A 192.168.1.5

//-----------自定义结束:------------------------------

以上,ns服务器ip即本机,www服务器ip即xxx.com主机……

BIND安装

软件下载地址:http://www.isc.org/software/bind,目前最新版本是BIND 9.8.1-P1。

安装依赖:

yum -y install gcc openssl-devel

开始安装bind.

wget ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz

tar xzf bind-9.8.1-P1.tar.gz

cd bind-9.8.1-P1

./configure --prefix=/usr/local/bind

make &&make install

执行完成后,bind已经安装到了/usr/local/bind目录。

配置主dns服务器

配置bind主要是两种文件,一是主配置文件named.conf,二是区域文件zone(包括正解析,反解析)。

在下面的配置中,我们的主dns服务器是ns1.qbtop.com 23.19.81.191,从dns服务器是ns2.qbtop.com 23.19.81.194(这两个dns都已经在godaddy注册好了)。

下面操作仅在主dns服务器23.19.81.191执行。

主配置文件named.conf

首先执行rndc-confgen -a生成/etc/rndc.key密钥文件。

/usr/local/bind/sbin/rndc-confgen -a

vi /usr/local/bind/etc/named.conf

写入如下内容:

include "/usr/local/bind/etc/rndc.key"

controls { inet 127.0.0.1 port 953 allow { 127.0.0.1} keys { "rndckey"}}

logging {

channel default_syslog { syslog local2severity notice}

channel audit_log { file "/var/log/bind.log"severity noticeprint-time yes}

category default { default_syslog}

category general { default_syslog}

category security { audit_logdefault_syslog}

category config { default_syslog}

category resolver { audit_log}

category xfer-in { audit_log}

category xfer-out { audit_log}

category notify { audit_log}

category client { audit_log}

category network { audit_log}

category update { audit_log}

category queries { audit_log}

category lame-servers { audit_log}

}

options {

directory "/usr/local/bind/etc"

pid-file "/usr/local/bind/var/run/bind.pid"

transfer-format many-answers

interface-interval 0

allow-query { any}

}

zone "qbtop.com" {

type master

file "qbtop.com.zone"

allow-transfer { 23.19.81.194}

}

zone "81.19.23.in-addr.arpa" {

type master

file "81.19.23.in-addr.arpa"

allow-transfer { 23.19.81.194}

}

named.conf文件说明:

上面的named.conf文件包括三部分:key,controls,logging,options,zone。

logging:设置日志服务器和日志信息的发送地。

options:控制服务器的全局配置选项和为其它语句设置默认值

zone:定义一个域,比如正解析域和反解析域。

logging是定义日志的,不需要深究,主要是options和zone。

在options中:

directory "/usr/local/bind/etc":定义bind的工作目录为/usr/local/bind/etc,配置文件中所有使用的相对路径,指的都是在这里配置的目录下。

pid-file "/usr/local/bind/var/run/bind.pid":把bind程序运行的pid写入文件bind.pid。

transfer-format many-answers:使用更加有效的域传输格式many-answers。

allow-query { any}:允许所有用户查询dns。

在zone中:

这里定义了两个zone,一个是正解析zone qbtop.com,一个是反解析zone 81.19.23.in-addr.arpa。

他们的参数基本相同:

type master:定义dns服务器为主dns。

file "qbtop.com.zone":定义此zone的文件名。

allow-transfer { 23.19.81.194}:允许向从dns 23.19.81.194传输dns数据。

唯一不同的是zone名称的定义,正解析zone名称的定义是受权的域名,可以是顶级域名,也可以是二级域名,或多级。反解析zone名称定义规定前部分ip倒着写。如ip 192.168.1.2,名称定义为1.168.192.in-addr.arpa。

正解析qbtop.com.zone

vi /usr/local/bind/etc/qbtop.com.zone

写入如下内容:

$TTL 3600

@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (

2012022301 Serial

3600 Refresh

900 Retry

3600000 Expire

3600 ) Minimum

@ IN NS ns1.qbtop.com.

@ IN NS ns2.qbtop.com.

ns1 IN A 23.19.81.191

ns2 IN A 23.19.81.194

aaa IN A 23.19.81.191

bbb IN A 23.19.81.191

文件说明:

$TTL 3600:指示为每个没有特殊TTL设置的RR给出了一个默认的TTL。

@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (

2012022301 Serial

3600 Refresh

900 Retry

3600000 Expire

3600 ) Minimum

定义SOA记录,包括Zone的名字,一个技术联系人和各种不同的超时值。

@ IN NS ns1.qbtop.com.

@ IN NS ns2.qbtop.com.

设置两个ns记录ns1.qbtop.com和ns2.qbtop.com。

ns1 IN A 23.19.81.191

ns2 IN A 23.19.81.194

aaa IN A 23.19.81.191

bbb IN A 23.19.81.191

设置主机为ns1,ns2,aaa和bbb的A记录。

反解析文件81.19.23.in-addr.arpa

反解析zone可以不设置。

vi /usr/local/bind/etc/81.19.23.in-addr.arpa

写入如下内容:

$TTL 3600

@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (

2012022301 Serial

3600 Refresh

900 Retry

3600000 Expire

3600 ) Minimum

@ IN NS ns1.qbtop.com.

@ IN NS ns2.qbtop.com.

191 IN PTR ns1.qbtop.com.

194 IN PTR ns2.qbtop.com.

说明:

上部分是定义SOA记录,下部分是设置IP反解析。

如设置IP 23.19.81.191反解析成ns1.qbtop.com,23.19.81.194反解析成ns2.qbtop.com。

配置从DNS服务器

下面我们来配置从DNS服务器。配置从DNS服务器只需要配置主配置文件named.conf,zone文件不需配置,因为这是从主DNS服务器获取的。

首先建立目录slaves用来存放从主dns获取的zone文件。

mkdir /usr/local/bind/etc/slaves

写入如下内容:

logging {

channel default_syslog { syslog local2severity notice}

channel audit_log { file "/var/log/bind.log"severity noticeprint-time yes}

category default { default_syslog}

category general { default_syslog}

category security { audit_logdefault_syslog}

category config { default_syslog}

category resolver { audit_log}

category xfer-in { audit_log}

category xfer-out { audit_log}

category notify { audit_log}

category client { audit_log}

category network { audit_log}

category update { audit_log}

category queries { audit_log}

category lame-servers { audit_log}

}

options {

directory "/usr/local/bind/etc"

pid-file "/usr/local/bind/var/run/bind.pid"

transfer-format many-answers

interface-interval 0

allow-query { any}

}

zone "qbtop.com" {

type slave

file "slaves/qbtop.com.zone"

masters { 23.19.81.191}

}

zone "81.19.23.in-addr.arpa" {

type slave

file "slaves/81.19.23.in-addr.arpa"

masters { 23.19.81.191}

}

文件说明:

从dns跟主dns主要的区别是zone的定义,type slave定义此dns服务器为从dns,masters { 23.19.81.191}定义主dns的IP。

启动BIND

1、在启动BIND之前,我们需要执行/usr/local/bind/sbin/named-checkconf检查named.conf配置文

件,和执行/usr/local/bind/sbin/named-checkzone zone名称

zone文件名,如/usr/local/bind/sbin/named-checkzone qbtop.com

/usr/local/bind/etc/qbtop.com.zone。

然后调试模式启动bind,/usr/local/bind/sbin/named -g,g参数的意思是前台执行bind,这会输出启动的信息,发现没有严重的错误后,再把g参数删除重新以/usr/local/bind/sbin/named方式后台启动bind。

2、设置开机启动,在/etc/rc.d/rc.local中加入/usr/local/bind/sbin/named。

手动添加记录

1、直接添加删除或修改zone文件里的记录

2、执行rndc reload zone名称重载,如rndc reload qbtop.com


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/207950.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存