关于DNS配置可以参考: [url]http://blog.chinaunix.net/uid-16607457-id-3311717.html[/url]
[color=darkblue]vi /etc/sysconfig/network-scripts/ifcfg-eth0[/color]
CentOS配置简易DNS服务器 [url]http://285946.blog.51cto.com/275946/249576[/url]

解释:A记录、MX记录、CNAME记录、TXT记录、AAAA记录、NS记录
[url][/url]
关于查看域名A记录,MX记录,CNAME记录-NSLOOKUP用法介绍
[url]http://www.cnaaa.com/style/info/shownews.asp?id=384[/url]

系统环境:CentOS 6.2
虚拟机:Vmworkstation 7.0
目标:将虚拟机中的一台服务器配置成dns服务器,正常能够解析。

[b][color=red]域名:pandy8.com IP:192.168.1.187[/color][/b]

最近想配置一个局域网邮箱服务器,但需要用到dns解析服务。于是根据虚拟平台进行实验。(后话俺没有权限接触VPS服务器。)

配置网络命令:
[color=darkblue]yum install -y system-config-network 或者 yum install system-config-network-tui
system-config-network
service network restart[/color]

1.先看下局域配置
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="Auto eth0"
UUID=b4eb3f56-8141-4203-815e-78b0a5746e62
ONBOOT=yes
IPADDR=192.168.1.187
NETMASK=255.255.255.0
DNS2=202.96.134.133
GATEWAY=192.168.0.2
DNS1=211.95.193.97
DEVICE=eth0
USERCTL=no
PREFIX=24
HWADDR=00:0C:29:C5:CF:BF

[color=red][b]2.安装Bind[/b][/color]
安装方法很多。我这里用最简单yum安装.注意要切换root用户进行操作.以下都是该用户下操作.
#[color=darkblue]yum -y install bind* caching-nameserver[/color]
[color=red][b]
3.主配置文件named.conf的配置。[/b][/color]
我这里直接在/etc目录下操作。网上还有安装bind-chroot包,在/var/named/chroot/etc/目录下操作。大家可以去了解下。先备份下哦再编辑啦。

#[color=darkblue]cd /etc[/color]
#[color=darkblue]cp -p named.conf named.conf.bak[/color]
#[color=darkblue]gedit named.conf[/color]
//更改过内容如下
options {
listen-on port 53 { [color=red]any[/color]; };//这里将127.0.0.1改为any.监听所有.
#listen-on-v6 port 53 { ::1; };//将ipv6注释掉啊。暂无需求.

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 { [color=red]any[/color]; };//此处修改为any

 recursion yes;


 dnssec-enable yes;

 dnssec-validation yes;

 dnssec-lookaside auto;


 /* Path to ISC DLV key */

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

};


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";



[color=red][b]4.在此目录下还有一个文件要配置[/b][/color],命令如下:

#[color=darkblue]gedit /etc/named.rfc1912.zones[/color]

zone "localhost.localdomain" IN {

 type master;

 file "named.localhost";

 allow-update { none; };

};


zone "localhost" IN {

 type master;

 file "named.localhost";

 allow-update { none; };

//注意以下为注释内容


[color=darkblue]#zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

# type master;

# file "named.loopback";

# allow-update { none; };

#};[/color]


zone "1.0.0.127.in-addr.arpa" IN {

 type master;

 file "named.loopback";

 allow-update { none; };

};


zone "0.in-addr.arpa" IN {

 type master;

 file "named.empty";

 allow-update { none; };

};



//以下是要添加正向的域。根据自己情况添加。我的是pandy8.com
[color=darkblue]zone "pandy8.com" IN {
type master;
file "pandy8.com.zone";
};[/color]

//添加反向解析域

[color=darkblue]zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.in-addr.arpa";
};[/color]

[color=red][b]5. 配置正、反解文件。[/b][/color]
需要新建两个文件[color=darkblue]pandy8.com.zone[/color]和[color=darkblue]1.168.192.in-addr.arpa[/color] 。

#[color=darkblue]cd /var/named/chroot/var/named/[/color]//不应该放在这个位置
#[color=darkblue]cd /var/named/[/color]
#[color=darkblue]touch pandy8.com.zone[/color]
#[color=darkblue]touch 1.168.192.in-addr.arpa[/color]
#[color=darkblue]gedit pandy8.com.zone[/color] //添加以下内容保存
[color=darkblue]$TTL 1D
@ IN SOA dns.pandy8.com. root (
20120524 ; serial //这里随便一个序列号
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum

@ IN NS dns.pandy8.com.
@ IN MX 10 mail.pandy8.com.
dns IN A 192.168.1.187
@ IN A 192.168.1.187
mail IN A 192.168.1.187
www IN A 192.168.1.187
ftp IN CNAME www[/color]


#[color=darkblue]gedit 1.168.192.in-addr.arpa[/color] //添加以下内容保存退出
[color=darkblue]$ORIGIN 1.168.192.in-addr.arpa.
@ IN SOA dns.pandy8.com. root(
20120523 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.pandy8.com.
187 IN PTR dns.pandy8.com.
187 IN PTR mail.pandy8.com.
187 IN PTR www.pandy8.com.[/color]

[b][color=red]6.修改/etc/resolv.conf文件[/color][/b]。只有修改了这个文件才可以用自己的机器进行域名解析,命令如下:
# gedit /etc/resolv.conf
只要加上一句:nameserver 192.168.1.187 就行了。
[color=darkblue]# Generated by NetworkManager
search pandy8.com
nameserver 192.168.1.187[/color]

注意:resolv.conf的值此时无法永远保存的,在电脑重启后变成原样。解决方法见[url]http://hi.baidu.com/afei47/blog/item/6ff2898272e5d29e6d81196f.html[/url],大致如下,
手动配置:
DNS服务器 : 192.168.1.187 , 搜索域: pandy8.com。
(本机地址,[b][color=red]这样设定,无法使用yum远程安装,所以,先安装所有软件之后,在设定这些信息[/color][/b])
断开网络再连接,或者:[color=darkblue]service network restart [/color]

[color=red][b]7.有时候需要关闭防墙[/b][/color]

#/etc/init.d/iptables stop
#chkconfig iptables off //开机永久关闭
只要设定iptables通过25,110端口,应该没问题,但是注意网络提供商是否屏蔽这两个端口,否则设定成其他端口。


[color=red]
验证配置:[/color]
更改正反解析文件所属组
[color=darkblue]chown :named 1.168.192.in-addr.arpa
chown :named pandy8.com.zone
[/color]

检测配置文件和解析文件有没有错误。

[color=red]named-checkconf

named-checkzone pandy8.com.zone /var/named/pandy8.com.zone[/color] 


zone pandy8.com.zone/IN: mail.pandy8.com.zone/MX 'mail.pandy8.com' (out of zone) has no addresses records (A or AAAA)

zone pandy8.com.zone/IN: loaded serial 0

OK


[color=red]named-checkzone 1.168.192.in-addr.arpa /var/named/1.168.192.in-addr.arpa 

[/color]

zone 1.168.192.in-addr.arpa/IN: loaded serial 0

OK


[color=red][b]8.启动服务[/b][/color]

# service named restart

# chkconfig named on //开机开启


[color=red][b]9.测试[/b][/color]

# [color=darkblue]nslookup www.pandy8.com[/color]

Server: 192.168.1.187

Address: 192.168.1.187#53


Name: www.pandy8.com

Address: 192.168.1.187


[color=red]//查看A记录[/color]

[pandy@localhost ~]$ [color=darkblue]nslookup -qt=a pandy8.com[/color]

*** Invalid option: qt=a

Server: 192.168.1.187

Address: 192.168.1.187#53


Name: pandy8.com

Address: 192.168.1.187

//查询到正确地址ok



[color=red]//查询MX记录[/color]

# [color=darkblue]host -t MX pandy8.com[/color]

pandy8.com mail is handled by 10 mail.pandy8.com.


[color=red]//查询MX记录[/color]

[pandy@localhost ~]$ [color=darkblue]nslookup[/color]

> set type=MX <<输入的信息

> pandy8.com <<输入的信息

Server: 192.168.1.187

Address: 192.168.1.187#53


pandy8.com mail exchanger = 10 mail.pandy8.com.

>



[color=red]//测试A记录[/color]
# [color=darkblue]ping www.pandy8.com[/color]
PING www.pandy8.com (192.168.1.187) 56(84) bytes of data.
64 bytes from dns.pandy8.com (192.168.1.187): icmp_seq=1 ttl=64 time=0.131 ms
64 bytes from dns.pandy8.com (192.168.1.187): icmp_seq=2 ttl=64 time=0.082 ms
64 bytes from dns.pandy8.com (192.168.1.187): icmp_seq=3 ttl=64 time=0.099 ms
64 bytes from dns.pandy8.com (192.168.1.187): icmp_seq=4 ttl=64 time=0.108 ms

[color=red][b]对于不能发件的问题[/b][/color],做了端口映射,具体如下:
为了使其他电脑能够访问你的邮件服务器,你需要设置你的防火墙或者路由,以便允许以下必要的端口连接服务器。
IMAP - 143
IMAPS - 993
POP3 - 110
POP3S - 995

[b][color=red]对于不能收件[/color][/b],大多问题出在DNS解析上。
首先,需要一条MX记录,如:mail.domain.com 注意 /etc/postfix/main.cf 中 myhostname = mail.domain.com 它需要和MX记录中的值一致!
其次,需要一条A记录,将mail.domain.com指向一个固定IP。

[color=red][b]问题:[/b][/color]
1.因为每次重启,都会resolv.conf的值此时无法永远保存的,在电脑重启后变成原样。按照上面的解决方式也不是很好,那么是不是可以先备份一份没问题的resolv.conf.bak,然后电脑启动进入后,在覆盖resolv.conf?
[color=darkblue]sudo cp -rf /etc/resolv.conf /etc/resolv.conf.bak 备份
sudo rm -f /etc/resolv.conf 删除
sudo cp -rf /etc/resolv.conf.bak /etc/resolv.conf 还原[/color]