在linux下搭建dns服务器
Linux 下DNS 服务器的设置环境:要设的DNS 机子的 IP 192.168.239.114网关 192.168.239.1子网掩码 255.255.255.0主机名为 dns.vm.com域
Linux 下DNS 服务器的设置
环境:要设的DNS 机子的 IP 192.168.239.114
网关 192.168.239.1
子网掩码 255.255.255.0
主机名为 dns.vm.com
域名为 vm.com
设置本机的IP 地址、DNS 、主机名
1) IP地址: vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.239.255
HWADDR=00:0C:29:90:CB:ED
IPADDR=192.168.239.114
NETMASK=255.255.255.0
NETWORK=192.168.239.0
ONBOOT=yes
2) 修改本机DNS 设置: vi /etc/resolv.conf
search vm.com
nameserver 192.168.239.114
3) 修改本机的主机名:
a. vi /etc/hosts
192.168.239.114 dns.vm.com
b. vi /etc/sysconfig/network
HOSTNAME=dns.vm.com
=====================================对DNS 进行设=================================================
1) 安装 rpm -ivh bind-9.3.6-4.P1.el5.rpm
2) 配置文件
vi /etc/named.conf
---------------------------------------/etc/named.conf
/*
定义了named 要读写文件的路径
在这个文件中是用zone 关键字来定义域名的, 一个zone 关键字定义一个域区 type 有三种类型,它们分别是master,slave 和hint 。他们的含义分别是: master :表示定义的是主域名服务器
slave:表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器 置
,*/
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
allow-query { any; };
allow-transfer { none; };
};
zone "." in {
type hint;
file "named.ca";
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
zone "vm.com" in {
type master;
file "vm.com.zone";
};
zone "239.168.192.in-addr.arpa" in {
type master;
file "192.168.239.zone";
};
/*
file 用来指定具体存放DNS 记录的文件
zone "localhost" 定义一个域名为localhost 的正向区域
zone "0.0.127.in-addr.arpa" 定义一个IP 为127.0.0.* 的反向域区
zone "vm.com" 定义一个域名为vm.com 的正向区域
zone "239.168.192.in-addr.arpa" 定义一个IP 为192.168.239.*的反向域区
named.ca 、localhost.zone 127.0.0.zone 这两个文件基本不用更改,可以直接用 */
---------------------------------------/var/named/named.ca
. 3600000 IN NS A.ROOT-SERVERS.NET.
,A.ROOT-SERVERS.NET. 3600000 A 192.168.239.114
---------------------------------------/var/named/localhost.zone
$TTL 1W
@ IN SOA @ root (
42 ; serial (d. adams)
2D ; refresh
4H ; retry
6W ; expire
1W ; minimum
)
IN NS @
IN A 127.0.0.1
; DNS server
---------------------------------------/var/named/127.0.0.zone
$TTL 1W
@ IN SOA localhost. root.localhost. (
42 ; serial (d. adams)
2D ; refresh
4H ; retry
6W ; expire
1W ; minimum
)
IN NS localhost.
1 IN PTR localhost.
---------------------------------------/var/named/127.0.0.zone
/*
serial 用来规定配置文件的修改版本,格式是年月日当日修改的修改次数,每
次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它
DNS 服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS 服务器为DNS 服务器
的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
refresh 用来规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
retry 用来规定当从服务器试图在主服务器上查询更新时,而连接失败了,则这个值规定了从服务器
多长时间后再试
expire 用来规定从服务器在向主服务器更新失败后多长时间后清除对应的记录 minimum 用来规定缓冲服务器不能上主服务器联系上后多长时间清除相应的记录
,SOA 表示授权开始,上面的IN 表示后面的数据使用的是INTERNET 标准,而@则代表 相应的域名,如在这里代表vm.com ,即表示一个域名记录定义的开始。而
dns.vm.com 则是这个域的主域名服务器,而root.dns.vm.com 则是管理员的邮件地址。 注意这是邮件地址中用. 来代替常见的邮件地址中@。
NS:表示是这个主机是一个域名服务器
A: 定义了一条A 记录,即主机名到IP 地址的对应记录
MX :定义了一邮件记录
CNAME:定义了对应主机的一个别名
在文件的最后一定要空一行,不然好像会出错
*/
-----------------------------------------/var/named/vm.com.zone
$TTL 83600
@ IN SOA dns.vm.com. root.dns.vm.com. (
2004071601 ;se = Serail number
28800 ;ref = Refresh
14400 ;ret = update Retry
3600000 ;ex = Expire
86400 ;min = Minimum
)
@ IN NS dns.vm.com.
dns IN A 192.168.239.114
; DNS Server
;##### RAC IP
gc1 IN A 192.168.239.11
gc2 IN A 192.168.239.12
gc1-vip IN A 192.168.239.21
gc2-vip IN A 192.168.239.22
;####SCAN IP
gc-scan IN A 192.168.239.61
gc-scan IN A 192.168.239.62
gc-scan IN A 192.168.239.63
-----------------------------------------/var/named/192.168.239.zone
$TTL 83600
@ IN SOA dns.vm.com. root.dns.vm.com. (
,100 ; se = Serail
8h ; ref = Refresh
5m ; ret = update Retry
3w ; ex = Expire
3h ; min = Minimum
)
@ IN NS dns.vm.com.
; DNS machine name in reserse
114 IN PTR dns.vm.com.
;##### RAC IP
11 IN PTR gc1.vm.com.
12 IN PTR gc2.vm.com.
21 IN PTR gc1-vip.vm.com.
22 IN PTR gc2-vip.vm.com.
;####SCAN IP
11 IN PTR gc1.vm.com.
61 IN PTR gc-scan.vm.com.
62 IN PTR gc-scan.vm.com.
63 IN PTR gc-scan.vm.com.
-----------------------------------------/var/named/192.168.239.zone
3) 在客户端指定dns 服务器
vi /etc/resolv.conf
search vm.com
nameserver 192.168.239.114
/*
当解析域名时, 输入gc1,DNS 可以把它成功的解析为gc1.vm.com
*/
4)
在linux 下解析域名的顺序
/etc/hosts.conf
order hosts,bind //解析域名的顺序
multi on //允许一台计算机拥有多个IP
5) 进行测试
在dns 服务器上启动DNS service named restart
查看dns 启动日志tail -f /var/log/messages
,在客户端
[root@linux]nslookup
用来测试正向和反向
>gc1.vm.com 正向
>192.168.239.11 反向
[root@linux]iptables -F 去掉防火墙
[root@linux]chkconfig named on