上周五建的NAT除了没有DNS解析功能,其他都ok了
安装DNS服务
直接从redhat9的安装光盘里面找到 bind-9.2.1-16.i386.rpm安装就可以了
启动DNS服务,service named start
加入开机自动启动 chkcfg --add named on
安装完毕以后,因为没有默认配置文件,需要手动建立named.conf文件!~
cd /etc
vi named.conf
是个空白文件,在里面输入以下内容:
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
cd /etc
vi named.conf
是个空白文件,在里面输入以下内容:
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
保存退出
然后建立/var/named文件夹
cd /var
mkdir named
cd named
然后建立根域.的file文件named.ca
cd /var
mkdir named
cd named
然后建立根域.的file文件named.ca
首先在/etc/resolv.conf文件里面设置好DNS服务器
echo nameserver 211.84.112.1 > /etc/resolv.conf
echo nameserver 211.84.112.1 > /etc/resolv.conf
dig -t NS . 会列出13个根DNS服务器地址(a-m)
dig -t NS . > /var/named/named.ca
采用如下方式生成rndc的配置文件:
rndc-confgen >/etc/rndc.conf
vi /etc/rndc.conf 打开查看该文件,可以看见最后面13行的内容已经用#注释了,而且说明该部分内容要求追加到/etc/named.conf文件里面!
下面将结尾的13行内容追加到named.conf文件中:
tail +13 /etc/rndc.conf >> /etc/named.conf 注意是追加,而不是覆盖
rndc-confgen >/etc/rndc.conf
vi /etc/rndc.conf 打开查看该文件,可以看见最后面13行的内容已经用#注释了,而且说明该部分内容要求追加到/etc/named.conf文件里面!
下面将结尾的13行内容追加到named.conf文件中:
tail +13 /etc/rndc.conf >> /etc/named.conf 注意是追加,而不是覆盖
追加完后编辑named.conf去掉对应行的#号
查看运行记录:
tail /var/log/messages
输入rndc status 可以查看rndc的状态
tail /var/log/messages
输入rndc status 可以查看rndc的状态
返回:
number of zones: 0
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/1000
tcp clients: 0/100
server is up and running
之类的说明工作正常,DNS已经可以解析域名了!~~
可以试试查询效果!~
将/etc/resolv.conf 文件里面的DNS设置为本机解析:
echo "nameserver 127.0.0.1" > /etc/resolv.conf
然后可以查询dns了,比如host [url]www.mtx8.com [/url]等待一会将返回对应的服务器信息,因为需要通过根域名服务器逐级查询该域名,所以第一次比较慢,后来将被服务器缓存起来,再次查询速度将非常快!OK,本机担任DNS域名解析效果已经可以简单的投入使用!
第二部分: 解析Localhost主机回环主机域
上面没有添加localhost域,无法通过dns解析localhost主机
可以用host localhost 来测试
下面要加入解析localhost 127.0.0.1回环域
在/etc/named.conf文件中加入zone区域:
接着上面的根域后面加入:
zone "localhost" {
type master;
file "named.local";
};
保存退出
编辑/var/named/named.local 文件:
vi /var/named/named.local
内容格式要求如下:
@ 1D IN SOA localhost. root.localhost (
2004081201 ;serial //序列号,表示域的更新信息
1H ;refresh //多长时间刷新一下其他域名服务器的记录 ,1小时
15M ;retry //辅助服务器向主服务器(或相反)发送信息重试的次数 ,15分钟
1W ;expire //重试多少次以后过期的时间 1周
1D ) ;TTL //最小存活期限,表示时间是1天
localhost. IN NS localhost.
locahost. IN A 127.0.0.1
上面的内容第一行@表示named.conf文件里面zone 部分定义的区域
IN 表示互联网类型
SOA是任何区文件里都需要的定义命令, 定义localhost.是一个域名, 而root.localhost表示管理员信箱root@localhost 电子邮箱的@必须用.来表示 这里可以简写为root,后面的没有写完整的部分默认由本域的域名补全,表示本域的邮箱用户名,省略域名以后就不能加.来表示@了!
接着的小括号(开始里面的每行一个意思,为分号;后面的是注释说明文字,可以不写注释部分,但是数字不能省略,一行写一个
括号结束以后的接着的第一行表示localhost.域的dns服务器是localhost.主机
前面的是域名,后面的是主机,中间是类型
第二行是localhost.主机的A记录是 127.0.0.1
因为localhost.域可以用@表示,所以可以用
@ IN NS @ 来表示
因为第一个域表示域名,所以前面的@或localhost.都可以省略!
这样上面的最后2行可以简写为
IN NS @
IN A 127.0.0.1
用rndc重新加载一下:
rndc reload
然后测试Localhost主机是否能否解析:
host localhost
可以看见解析成功!比如:下面的测试A记录和NS记录
host -t A localhost
host -t NS localhost
第三部分:建立mtx8.com域名解析区域
/vi /etc/named.conf
增加下面的区域:
zone "mtx8.com" {
type master;
file "mtx8.com.zone";
};
然后到/var/named/下面建立mtx8.com的zone文件:
vi /var/named/mtx8.com.zone
内容如下:
@ 1D IN SOA mtx8.com. wuwentao2000.126.com (
2004081201 ;serial
1H ;refresh
15M ;retry
1W ;expire
1D ) ;TTL
IN NS dns.mtx8.com.
IN MX 10 mail
dns IN A 211.84.114.205
www IN A 211.84.112.125
blog IN CNAME www
wuwentao IN A 211.84.114.100
mail IN CNAME www
第四部分:建立反向解析区域:
127.0.0.0的反向区域
编辑/etc/named.conf文件加入:
zone "0.0.127.in-addr.arpa" {
type master;
file "127.0.0.zone";
};
编辑/var/named/127.0.0.zone
$TTL 1D
@ IN SOA @ root.localhost. ( 20050330 1H 15M 1W 1D)
IN NS localhost.
1 IN PTR localhost.
保存退出
rndc reload
host 127.0.0.1 测试效果
dig -x 127.0.0.1
dig -t PTR 1.0.0.127.in-addr.arpa
第五部分:增加mtx8.com的反向记录
编辑/etc/named.conf增加以下记录:
zong "112.84.211.in-addr.arpa" {
type master;
file "211.84.112.zone";
};
建立/var/named/211.84.112.zone
vi /var/named/211.84.112.zone
输入以下内容:
@ IN SOA mtx8.com. wuwentao2000.126.com. (
20060331
36000
7200
3600000
86400 )
IN NS dns.mtx8.com.
125 IN PTR [url]www.mtx8.com.[/url]
保存退出
rndc reload
host [url]www.mtx8.com[/url]测试效果
第六部分 子域授权
再已经建立的/named/mtx8.com.zone文件添加一条NS记录
(添加*.home.mtx8.com的子域,DNS服务器为dns.home.mtx8.com,对应IP为:211.84.114.1)
home IN NS dns.home
dns.home IN A 211.84.114.1
保存退出
rndc reload
然后到211.84.114.1配置*.home.mtx8.com区域
第七部分: 辅助域名服务器的配置
/etc/named.conf文件的配置如下:
zone "mtx8.com" {
type "slave";
file "mtx8.com.zone";
master { 211.84.114.205; };
};
注意master { 211.84.114.205; };的格式,中间的主服务器与括号前后都需要有空格
加入上面的部分即可,而它的配置文件mtx8.com.zone将会自动从主服务器下载,无需手动配置了
rndc reload
ls /var/named/ 查看是否将mtx8.com.zone文件从主服务器下载下来了!
tail /var/log/messages 查看named服务器重新加载配置的启动信息
ls -ld /var/named
注意named服务进程运行的用户帐号和/var/named目录的写入文件权限!
第八部分:修改服务进程执行的权限为普通用户,不用root帐号来运行named
在/etc/named.conf文件里面设置pid-file选项:
options {
.....这里是其他的设置信息,再现有的部分增加下面的一行:
pid-file "/var/named/named.pid";
};
接着添加 named用户:
useradd -s /bin/false -d /dev/null named
chown named.named /var/named
chmod 700 /var/named
killall -9 named 关闭已经以root帐号运行的named进程
named -u named 用-u选项设置named 进程运行的用户为named帐号
将启动信息添加到/etc/rc.local文件里面,设置为开机自动运行
第九部分:其他设置选项
options部分
forwarders { 211.84.112.1; }; 设置服务器域名无法解析时将把请求转发到该服务器去解析
all-transfer { 211.84.114.100; }; 只允许该IP的机器下载zone文件,一般是辅助域名服务器地址
all-query { 211.84.114.1/24; }; 允许使用该DNS进行解析域名的客户端IP地址范围
number of zones: 0
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/1000
tcp clients: 0/100
server is up and running
之类的说明工作正常,DNS已经可以解析域名了!~~
可以试试查询效果!~
将/etc/resolv.conf 文件里面的DNS设置为本机解析:
echo "nameserver 127.0.0.1" > /etc/resolv.conf
然后可以查询dns了,比如host [url]www.mtx8.com [/url]等待一会将返回对应的服务器信息,因为需要通过根域名服务器逐级查询该域名,所以第一次比较慢,后来将被服务器缓存起来,再次查询速度将非常快!OK,本机担任DNS域名解析效果已经可以简单的投入使用!
第二部分: 解析Localhost主机回环主机域
上面没有添加localhost域,无法通过dns解析localhost主机
可以用host localhost 来测试
下面要加入解析localhost 127.0.0.1回环域
在/etc/named.conf文件中加入zone区域:
接着上面的根域后面加入:
zone "localhost" {
type master;
file "named.local";
};
保存退出
编辑/var/named/named.local 文件:
vi /var/named/named.local
内容格式要求如下:
@ 1D IN SOA localhost. root.localhost (
2004081201 ;serial //序列号,表示域的更新信息
1H ;refresh //多长时间刷新一下其他域名服务器的记录 ,1小时
15M ;retry //辅助服务器向主服务器(或相反)发送信息重试的次数 ,15分钟
1W ;expire //重试多少次以后过期的时间 1周
1D ) ;TTL //最小存活期限,表示时间是1天
localhost. IN NS localhost.
locahost. IN A 127.0.0.1
上面的内容第一行@表示named.conf文件里面zone 部分定义的区域
IN 表示互联网类型
SOA是任何区文件里都需要的定义命令, 定义localhost.是一个域名, 而root.localhost表示管理员信箱root@localhost 电子邮箱的@必须用.来表示 这里可以简写为root,后面的没有写完整的部分默认由本域的域名补全,表示本域的邮箱用户名,省略域名以后就不能加.来表示@了!
接着的小括号(开始里面的每行一个意思,为分号;后面的是注释说明文字,可以不写注释部分,但是数字不能省略,一行写一个
括号结束以后的接着的第一行表示localhost.域的dns服务器是localhost.主机
前面的是域名,后面的是主机,中间是类型
第二行是localhost.主机的A记录是 127.0.0.1
因为localhost.域可以用@表示,所以可以用
@ IN NS @ 来表示
因为第一个域表示域名,所以前面的@或localhost.都可以省略!
这样上面的最后2行可以简写为
IN NS @
IN A 127.0.0.1
用rndc重新加载一下:
rndc reload
然后测试Localhost主机是否能否解析:
host localhost
可以看见解析成功!比如:下面的测试A记录和NS记录
host -t A localhost
host -t NS localhost
第三部分:建立mtx8.com域名解析区域
/vi /etc/named.conf
增加下面的区域:
zone "mtx8.com" {
type master;
file "mtx8.com.zone";
};
然后到/var/named/下面建立mtx8.com的zone文件:
vi /var/named/mtx8.com.zone
内容如下:
@ 1D IN SOA mtx8.com. wuwentao2000.126.com (
2004081201 ;serial
1H ;refresh
15M ;retry
1W ;expire
1D ) ;TTL
IN NS dns.mtx8.com.
IN MX 10 mail
dns IN A 211.84.114.205
www IN A 211.84.112.125
blog IN CNAME www
wuwentao IN A 211.84.114.100
mail IN CNAME www
第四部分:建立反向解析区域:
127.0.0.0的反向区域
编辑/etc/named.conf文件加入:
zone "0.0.127.in-addr.arpa" {
type master;
file "127.0.0.zone";
};
编辑/var/named/127.0.0.zone
$TTL 1D
@ IN SOA @ root.localhost. ( 20050330 1H 15M 1W 1D)
IN NS localhost.
1 IN PTR localhost.
保存退出
rndc reload
host 127.0.0.1 测试效果
dig -x 127.0.0.1
dig -t PTR 1.0.0.127.in-addr.arpa
第五部分:增加mtx8.com的反向记录
编辑/etc/named.conf增加以下记录:
zong "112.84.211.in-addr.arpa" {
type master;
file "211.84.112.zone";
};
建立/var/named/211.84.112.zone
vi /var/named/211.84.112.zone
输入以下内容:
@ IN SOA mtx8.com. wuwentao2000.126.com. (
20060331
36000
7200
3600000
86400 )
IN NS dns.mtx8.com.
125 IN PTR [url]www.mtx8.com.[/url]
保存退出
rndc reload
host [url]www.mtx8.com[/url]测试效果
第六部分 子域授权
再已经建立的/named/mtx8.com.zone文件添加一条NS记录
(添加*.home.mtx8.com的子域,DNS服务器为dns.home.mtx8.com,对应IP为:211.84.114.1)
home IN NS dns.home
dns.home IN A 211.84.114.1
保存退出
rndc reload
然后到211.84.114.1配置*.home.mtx8.com区域
第七部分: 辅助域名服务器的配置
/etc/named.conf文件的配置如下:
zone "mtx8.com" {
type "slave";
file "mtx8.com.zone";
master { 211.84.114.205; };
};
注意master { 211.84.114.205; };的格式,中间的主服务器与括号前后都需要有空格
加入上面的部分即可,而它的配置文件mtx8.com.zone将会自动从主服务器下载,无需手动配置了
rndc reload
ls /var/named/ 查看是否将mtx8.com.zone文件从主服务器下载下来了!
tail /var/log/messages 查看named服务器重新加载配置的启动信息
ls -ld /var/named
注意named服务进程运行的用户帐号和/var/named目录的写入文件权限!
第八部分:修改服务进程执行的权限为普通用户,不用root帐号来运行named
在/etc/named.conf文件里面设置pid-file选项:
options {
.....这里是其他的设置信息,再现有的部分增加下面的一行:
pid-file "/var/named/named.pid";
};
接着添加 named用户:
useradd -s /bin/false -d /dev/null named
chown named.named /var/named
chmod 700 /var/named
killall -9 named 关闭已经以root帐号运行的named进程
named -u named 用-u选项设置named 进程运行的用户为named帐号
将启动信息添加到/etc/rc.local文件里面,设置为开机自动运行
第九部分:其他设置选项
options部分
forwarders { 211.84.112.1; }; 设置服务器域名无法解析时将把请求转发到该服务器去解析
all-transfer { 211.84.114.100; }; 只允许该IP的机器下载zone文件,一般是辅助域名服务器地址
all-query { 211.84.114.1/24; }; 允许使用该DNS进行解析域名的客户端IP地址范围