DNS的作用是将域名解析成IP地址,达成人用域名机器用ip之转换之人机友好。
下面虚机搭建DNS服务,使test.com与www.test.com两个域名可以解析到eth0地址:192.168.11.12
0
环境
[root@localhost ~]# uname -a
Linux www.test.com.11.168.192.in-addr.arpa 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# nl /etc/issue
1 CentOS release 6.5 (Final)
2 Kernel \r on an \m
1
看装没装
CentOS上有装未装的疑惑,经常有一堆相关的包但其实没有安装相关功能模块
[root@localhost ~]# rpm -qa | grep bind*
rpcbind-0.2.0-11.el6.x86_64
binutils-2.20.51.0.2-5.36.el6.x86_64
libini_config-0.6.1-9.el6.x86_64
libproxy-bin-0.3.0-4.el6_3.x86_64
samba-winbind-3.6.23-12.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
ypbind-1.20.4-30.el6.x86_64
samba-winbind-clients-3.6.23-12.el6.x86_64
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
PackageKit-device-rebind-0.5.8-21.el6.x86_64
[root@localhost ~]#
[root@localhost ~]# rpm -qa | grep bind
rpcbind-0.2.0-11.el6.x86_64
samba-winbind-3.6.23-12.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
ypbind-1.20.4-30.el6.x86_64
samba-winbind-clients-3.6.23-12.el6.x86_64
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
PackageKit-device-rebind-0.5.8-21.el6.x86_64
[root@localhost ~]#
没有对DNS进行设置的文件/etc/named.conf
[root@localhost ~]# ll /etc/named.conf
[root@localhost ~]#
2
安装dns功能相关包
RHEL6安装bind*就好。RHEL5需要安装cachenameserver
[root@localhost ~]# yum -y install bind
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.bit.edu.cn
* updates: mirror.bit.edu.cn
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 929 kB 00:03
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 32:9.8.2-0.30.rc1.el6 will be installed
。。。
Installed:
bind.x86_64 32:9.8.2-0.30.rc1.el6
Dependency Updated:
bind-libs.x86_64 32:9.8.2-0.30.rc1.el6 bind-utils.x86_64 32:9.8.2-0.30.rc1.el6
Complete!
[root@localhost ~]#
有了
[root@localhost ~]# ll /etc/named.conf
-rw-r-----. 1 root named 1008 Jul 19 2010 /etc/named.conf
3
设置DNS的主配置文件
[root@localhost ~]# vi /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; # 服务监听端口为53
listen-on-v6 port 53 { ::1; };
directory "/var/named"; # 配置文件存放的目录
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 { localhost; }; # 允许连接的客户机
改为如下:
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
4
启动或重启named服务
[root@localhost ~]# /etc/init.d/named status
rndc: neither /etc/rndc.conf nor /etc/rndc.key was found
named is stopped
[root@localhost ~]# /etc/init.d/named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
5
配置正向解析
[root@localhost ~]# vi /etc/named
named/ named.conf named.iscdlv.key named.rfc1912.zones named.root.key
[root@localhost ~]# vi /etc/named.rfc1912.zones
添加内容
zone "test.com" IN {
type master;
file "test.host";
};
指定test.com的解析文件是默认目录下的test.host
6
创建并配置test.host文件
[root@localhost ~]# ll /var/named/
total 28
drwxrwx---. 2 named named 4096 Dec 4 14:32 data
drwxrwx---. 2 named named 4096 Dec 4 14:33 dynamic
-rw-r-----. 1 root named 2075 Apr 23 2014 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 Oct 15 21:28 slaves
[root@localhost ~]# cp /var/named/named.localhost /var/named/test.host
[root@localhost ~]# ll /var/named/
total 32
drwxrwx---. 2 named named 4096 Dec 4 14:32 data
drwxrwx---. 2 named named 4096 Dec 4 14:33 dynamic
-rw-r-----. 1 root named 2075 Apr 23 2014 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 Oct 15 21:28 slaves
-rw-r-----. 1 root root 152 Dec 4 14:40 test.host
[root@localhost ~]# chgrp named /var/named/test.host
[root@localhost ~]# ll /var/named/
total 32
drwxrwx---. 2 named named 4096 Dec 4 14:32 data
drwxrwx---. 2 named named 4096 Dec 4 14:33 dynamic
-rw-r-----. 1 root named 2075 Apr 23 2014 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 Oct 15 21:28 slaves
-rw-r-----. 1 root named 152 Dec 4 14:40 test.host
[root@localhost ~]#
[root@localhost ~]# nl /var/named/test.host
1 $TTL 1D
2 @ IN SOA @ rname.invalid. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS @
9 A 127.0.0.1
10 AAAA ::1
[root@localhost ~]# vi /var/named/test.host
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www IN A 192.168.11.12
7
重启named服务
[root@localhost ~]# service named restart
Stopping named: . [ OK ]
Starting named: [ OK ]
正向解析完
8
配置反向解析
[root@localhost ~]# vi /etc/named
named/ named.conf named.iscdlv.key named.rfc1912.zones named.root.key
[root@localhost ~]# vi /etc/named.rfc1912.zones
增加
zone "11.168.192.in-addr.arpa" IN {
type master;
file "ip.test.host";
};
指定192.168.11段反向解析文件是默认目录下的ip.test.host
9
创建并配置ip.test.host
[root@localhost ~]# cp /var/named/named.localhost /var/named/ip.test.host
[root@localhost ~]# vi /var/named/ip.test.host
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
12 IN PTR www.test.com
反向解析192.168.11.12
10
重启named服务
[root@localhost ~]# /etc/init.d/named restart
Stopping named: . [ OK ]
Starting named: [ OK ]
反向解析完
11
测试正反向解析失败
[root@localhost ~]# nslookup www.test.com
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
[root@localhost ~]# nslookup 192.168.11.12
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
失败
12
增加eth0的DNS1
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.11.12
13
重启网络服务
[root@localhost ~]# service network restart
Shutting down interface eth0: Device state: 3 (disconnected)
[ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/11
[ OK ]
14
测试正反向解析成功
[root@localhost ~]# nslookup www.test.com
Server: 192.168.11.12
Address: 192.168.11.12#53
Name: www.test.com
Address: 192.168.11.12
[root@localhost ~]# nslookup 192.168.11.12
Server: 192.168.11.12
Address: 192.168.11.12#53
12.11.168.192.in-addr.arpa name = www.test.com.11.168.192.in-addr.arpa.
15
在另一台机器192.168.11.xx上 测试正反向解析成功
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.11.12
[root@localhost ~]# service network restart
[root@hostalonetest ~]# ping www.test.com
PING www.test.com (192.168.11.12) 56(84) bytes of data.
64 bytes from www.test.com.11.168.192.in-addr.arpa (192.168.11.12): icmp_seq=1 ttl=64 time=0.153 ms
64 bytes from www.test.com.11.168.192.in-addr.arpa (192.168.11.12): icmp_seq=2 ttl=64 time=1.33 ms
64 bytes from www.test.com.11.168.192.in-addr.arpa (192.168.11.12): icmp_seq=10 ttl=64 time=0.560 ms
^C
--- www.test.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9642ms
rtt min/avg/max/mdev = 0.153/0.552/1.336/0.321 ms
[root@hostalonetest ~]# ping www.baidu.com
ping: unknown host www.baidu.com
###################################
在11步中测试失败,也可以
16
修改本机DNS设置:/etc/resolv.conf文件,增加一行 nameserver 192.168.11.12
指定域名服务器的IP和搜索顺序。
[root@localhost ~]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 192.168.11.12
[root@localhost ~]#
17
测试通过
[root@localhost ~]# nslookup www.test.com
Server: 192.168.11.12
Address: 192.168.11.12#53
Name: www.test.com
Address: 192.168.11.12
下面把相关文件的作用记录一下
/etc/sysconfig/network
/etc/hosts
/etc/hosts.conf
/etc/resolv.conf
/etc/sysconfig/network文件
# 修改本机名/域名(生效需要重启)
HOSTNAME = test.com
/etc/hosts 文件
# 修改本机名;实现与网上其他主要计算机的映射,通常当作DNS的备份出现,也就是说,当DNS系统出现问题的时使用Hosts表。
127.0.0.1 localhost localhost.localdomain localhost
192.168.11.12 www.test.com local
# 由于每台服务器都会有几个域名与IP的对应关系是永久的, 所以Hosts表中存放的应该是它们。
/etc/hosts.conf 文件
#实现hosts表与DNS的关系和接口。
order hosts,bind # 解析域名的顺序
multi on # 允许一台计算机拥有多个IP
/etc/resolv.conf 文件
# 指定域名服务器的IP和搜索顺序。
# 简化用户输入的主机名,即当用户输入bpg时,使得DNS可以把它成功地解析为test.com。它与domain是互斥的,无论那个出现都用来定义search列表的。
domain test.com bpg # 定义本地域名。
search test.com
nameserver 192.168.10.1
# 定义域名服务器的IP,最多三个,建议一般使用两个。
blog.youkuaiyun.com/beiigang
下面虚机搭建DNS服务,使test.com与www.test.com两个域名可以解析到eth0地址:192.168.11.12
0
环境
[root@localhost ~]# uname -a
Linux www.test.com.11.168.192.in-addr.arpa 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# nl /etc/issue
1 CentOS release 6.5 (Final)
2 Kernel \r on an \m
1
看装没装
CentOS上有装未装的疑惑,经常有一堆相关的包但其实没有安装相关功能模块
[root@localhost ~]# rpm -qa | grep bind*
rpcbind-0.2.0-11.el6.x86_64
binutils-2.20.51.0.2-5.36.el6.x86_64
libini_config-0.6.1-9.el6.x86_64
libproxy-bin-0.3.0-4.el6_3.x86_64
samba-winbind-3.6.23-12.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
ypbind-1.20.4-30.el6.x86_64
samba-winbind-clients-3.6.23-12.el6.x86_64
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
PackageKit-device-rebind-0.5.8-21.el6.x86_64
[root@localhost ~]#
[root@localhost ~]# rpm -qa | grep bind
rpcbind-0.2.0-11.el6.x86_64
samba-winbind-3.6.23-12.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
ypbind-1.20.4-30.el6.x86_64
samba-winbind-clients-3.6.23-12.el6.x86_64
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
PackageKit-device-rebind-0.5.8-21.el6.x86_64
[root@localhost ~]#
没有对DNS进行设置的文件/etc/named.conf
[root@localhost ~]# ll /etc/named.conf
[root@localhost ~]#
2
安装dns功能相关包
RHEL6安装bind*就好。RHEL5需要安装cachenameserver
[root@localhost ~]# yum -y install bind
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.bit.edu.cn
* updates: mirror.bit.edu.cn
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 929 kB 00:03
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 32:9.8.2-0.30.rc1.el6 will be installed
。。。
Installed:
bind.x86_64 32:9.8.2-0.30.rc1.el6
Dependency Updated:
bind-libs.x86_64 32:9.8.2-0.30.rc1.el6 bind-utils.x86_64 32:9.8.2-0.30.rc1.el6
Complete!
[root@localhost ~]#
有了
[root@localhost ~]# ll /etc/named.conf
-rw-r-----. 1 root named 1008 Jul 19 2010 /etc/named.conf
3
设置DNS的主配置文件
[root@localhost ~]# vi /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; # 服务监听端口为53
listen-on-v6 port 53 { ::1; };
directory "/var/named"; # 配置文件存放的目录
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 { localhost; }; # 允许连接的客户机
改为如下:
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
4
启动或重启named服务
[root@localhost ~]# /etc/init.d/named status
rndc: neither /etc/rndc.conf nor /etc/rndc.key was found
named is stopped
[root@localhost ~]# /etc/init.d/named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
5
配置正向解析
[root@localhost ~]# vi /etc/named
named/ named.conf named.iscdlv.key named.rfc1912.zones named.root.key
[root@localhost ~]# vi /etc/named.rfc1912.zones
添加内容
zone "test.com" IN {
type master;
file "test.host";
};
指定test.com的解析文件是默认目录下的test.host
6
创建并配置test.host文件
[root@localhost ~]# ll /var/named/
total 28
drwxrwx---. 2 named named 4096 Dec 4 14:32 data
drwxrwx---. 2 named named 4096 Dec 4 14:33 dynamic
-rw-r-----. 1 root named 2075 Apr 23 2014 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 Oct 15 21:28 slaves
[root@localhost ~]# cp /var/named/named.localhost /var/named/test.host
[root@localhost ~]# ll /var/named/
total 32
drwxrwx---. 2 named named 4096 Dec 4 14:32 data
drwxrwx---. 2 named named 4096 Dec 4 14:33 dynamic
-rw-r-----. 1 root named 2075 Apr 23 2014 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 Oct 15 21:28 slaves
-rw-r-----. 1 root root 152 Dec 4 14:40 test.host
[root@localhost ~]# chgrp named /var/named/test.host
[root@localhost ~]# ll /var/named/
total 32
drwxrwx---. 2 named named 4096 Dec 4 14:32 data
drwxrwx---. 2 named named 4096 Dec 4 14:33 dynamic
-rw-r-----. 1 root named 2075 Apr 23 2014 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 Oct 15 21:28 slaves
-rw-r-----. 1 root named 152 Dec 4 14:40 test.host
[root@localhost ~]#
[root@localhost ~]# nl /var/named/test.host
1 $TTL 1D
2 @ IN SOA @ rname.invalid. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS @
9 A 127.0.0.1
10 AAAA ::1
[root@localhost ~]# vi /var/named/test.host
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www IN A 192.168.11.12
7
重启named服务
[root@localhost ~]# service named restart
Stopping named: . [ OK ]
Starting named: [ OK ]
正向解析完
8
配置反向解析
[root@localhost ~]# vi /etc/named
named/ named.conf named.iscdlv.key named.rfc1912.zones named.root.key
[root@localhost ~]# vi /etc/named.rfc1912.zones
增加
zone "11.168.192.in-addr.arpa" IN {
type master;
file "ip.test.host";
};
指定192.168.11段反向解析文件是默认目录下的ip.test.host
9
创建并配置ip.test.host
[root@localhost ~]# cp /var/named/named.localhost /var/named/ip.test.host
[root@localhost ~]# vi /var/named/ip.test.host
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
12 IN PTR www.test.com
反向解析192.168.11.12
10
重启named服务
[root@localhost ~]# /etc/init.d/named restart
Stopping named: . [ OK ]
Starting named: [ OK ]
反向解析完
11
测试正反向解析失败
[root@localhost ~]# nslookup www.test.com
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
[root@localhost ~]# nslookup 192.168.11.12
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
失败
12
增加eth0的DNS1
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.11.12
13
重启网络服务
[root@localhost ~]# service network restart
Shutting down interface eth0: Device state: 3 (disconnected)
[ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/11
[ OK ]
14
测试正反向解析成功
[root@localhost ~]# nslookup www.test.com
Server: 192.168.11.12
Address: 192.168.11.12#53
Name: www.test.com
Address: 192.168.11.12
[root@localhost ~]# nslookup 192.168.11.12
Server: 192.168.11.12
Address: 192.168.11.12#53
12.11.168.192.in-addr.arpa name = www.test.com.11.168.192.in-addr.arpa.
15
在另一台机器192.168.11.xx上 测试正反向解析成功
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.11.12
[root@localhost ~]# service network restart
[root@hostalonetest ~]# ping www.test.com
PING www.test.com (192.168.11.12) 56(84) bytes of data.
64 bytes from www.test.com.11.168.192.in-addr.arpa (192.168.11.12): icmp_seq=1 ttl=64 time=0.153 ms
64 bytes from www.test.com.11.168.192.in-addr.arpa (192.168.11.12): icmp_seq=2 ttl=64 time=1.33 ms
64 bytes from www.test.com.11.168.192.in-addr.arpa (192.168.11.12): icmp_seq=10 ttl=64 time=0.560 ms
^C
--- www.test.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9642ms
rtt min/avg/max/mdev = 0.153/0.552/1.336/0.321 ms
[root@hostalonetest ~]# ping www.baidu.com
ping: unknown host www.baidu.com
###################################
在11步中测试失败,也可以
16
修改本机DNS设置:/etc/resolv.conf文件,增加一行 nameserver 192.168.11.12
指定域名服务器的IP和搜索顺序。
[root@localhost ~]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 192.168.11.12
[root@localhost ~]#
17
测试通过
[root@localhost ~]# nslookup www.test.com
Server: 192.168.11.12
Address: 192.168.11.12#53
Name: www.test.com
Address: 192.168.11.12
下面把相关文件的作用记录一下
/etc/sysconfig/network
/etc/hosts
/etc/hosts.conf
/etc/resolv.conf
/etc/sysconfig/network文件
# 修改本机名/域名(生效需要重启)
HOSTNAME = test.com
/etc/hosts 文件
# 修改本机名;实现与网上其他主要计算机的映射,通常当作DNS的备份出现,也就是说,当DNS系统出现问题的时使用Hosts表。
127.0.0.1 localhost localhost.localdomain localhost
192.168.11.12 www.test.com local
# 由于每台服务器都会有几个域名与IP的对应关系是永久的, 所以Hosts表中存放的应该是它们。
/etc/hosts.conf 文件
#实现hosts表与DNS的关系和接口。
order hosts,bind # 解析域名的顺序
multi on # 允许一台计算机拥有多个IP
/etc/resolv.conf 文件
# 指定域名服务器的IP和搜索顺序。
# 简化用户输入的主机名,即当用户输入bpg时,使得DNS可以把它成功地解析为test.com。它与domain是互斥的,无论那个出现都用来定义search列表的。
domain test.com bpg # 定义本地域名。
search test.com
nameserver 192.168.10.1
# 定义域名服务器的IP,最多三个,建议一般使用两个。
-----------------
blog.youkuaiyun.com/beiigang