Linux DNS服务器搭建
环境:CentOS 6.3
需求:建立example.com域用于内部和外部查询,内网环境192.168.88.0/24,10.1.0.0/16
1.安装
yum install bind //没安装chroot
2.主配置文件
/etc/named.conf //主配置文件
vi /etc/named.conf
options {
listen-on port 53 { any; };
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 { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "internal" { //建立内部查询视图
match-clients { 192.168.0.0/16; 10.1.0.0/16; }; //指定允许查询主机
recursion yes;
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type master;
file "example.com.zone.internal";
};
zone "88.168.192.in-addr.arpa" IN { //注意反向区域的命名写法,我之前就错误的写成0.88168.192.in-addr.arpa
type master;
file "88.168.192.zone";
};
include "/etc/named.rfc1912.zones"; //如果有include的话,要包括在每个view里
include "/etc/named.root.key";
};
view "external" {
match-clients { any; };
recursion yes;
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type master;
file "example.com.zone.external";
};
zone "1.100.202.in-addr.arpa" IN {
type master;
file "1.100.202.zone";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
3.建立区域配置文件
cp –p /var/named/named.empty /var/named/example.com.zone.internal
cp –p /var/named/named.empty /var/named/example.com.zone.external
cp –p /var/named/named.empty /var/named/88.168.192.zone
cp –p /var/named/named.empty /var/named/1.100.202.zone //注意带上-p保持文件属性
example.com.zone.internal //internal view的正向区域文件
$TTL 3H
@ IN SOA ns1.example.com. root.example.com. (
2013051501 ; serial //序列号注意修改配置后增加此值
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.example.com.
IN MX 5 mail.example.com.
ns1 IN A 192.168.88.110
mail IN A 192.168.88.111
www IN A 192.168.88.112
bbs IN CNAME www
example.com.zone.external //external view正向区域文件
$TTL 3H
@ IN SOA ns1.example.com. root.example.com. (
2013051501 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.example.com.
ns1 IN A 202.100.1.110
88.168.192.zone //internal view的反向区域文件
$TTL 3H
@ IN SOA ns1.example.com. root.example.com. (
2013051501 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.example.com.
110 IN PTR ns1.example.com.
1.100.202.zone //external view的反向区域文件
$TTL 3H
@ IN SOA ns1.example.com. root.example.com. (
2013051501 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.example.com.
110 IN PTR ns1.example.com.
4.配置检查
named-checkconf /etc/named.conf
named-checkzone example.com /var/named/example.com.zone.internal
named-checkzone example.com /var/named/example.com.zone.external
named-checkzone 88.168.192.in-addr.arpa 88.168.192.zone
named-checkzone 1.100.202.in-addr.arpa 1.100.202.zone
5.启动服务
service named start
6.打开防火墙
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT //注意UDP一定也要打开
7.注册系统服务
chkconfig –level 35 named on
8.修改本机DNS配置 //注意不要直接修改/etc/resolver
vi /etc/sysconfig/network-script/ifcfg-eth0
DNS1=127.0.0.1
9.重启network服务
service network restart
测试
C:\>nslookup
Default Server: ns1.example.com
Address: 192.168.88.110
> example.com
Server: ns1.example.com
Address: 192.168.88.110
Name: example.com
> 192.168.88.110
Server: ns1.example.com
Address: 192.168.88.110
Name: ns1.example.com
Address: 192.168.88.110