关于搭建DNS服务与邮件服务器需要用到两台虚拟机
ip | 主机名 |
---|---|
192.168.150.157 | mai 即Mail服务器、DNS从服务器 |
192.168.150.158 | dns 即DNS主服务器 |
执行修改主机名和关闭防火墙、Selinux安全机制的操作
#两边都要执行
honamectl set-hostname mail/dns
bash
systemctl stop firewald
systemctl disable firewalld
setenforce 0
执行安装DNS(两边都要安装)
yum install -y bind-chroot bind-util
安装完成以后执行启动命令(两边都要启动)
systemctl restart named
systemctl status named 查看状态
netstart -lntp|grep named 查看端口是否开启
接下来修改主服务器DNS的配置文件 named.conf
配置监听所有的端口、允许所有查询”any“
域名解析程序Bind的程序名叫named,其服务配置如下
数据配置文件目录 /var/named
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones
配置正向解析与反向解析
正向解析和反向解析含义:
正向解析:根据主机名(域名)查找相对应的IP地址
反向解析:根据IP地址查找对应的主机名(域名)反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。也可以判断某虚拟主机上运行了多少个网站
正向解析
创建转发域:
拷贝文件 named.localhost到testmail.com.zone
cp -rf /var/named/name.localhost /var/named/testmail.com.zone
编辑配置文件 testmail.com.zone
vim testmail.com.zone
$TTL 1D
@ IN SOA testmail.com. admin.testmail.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.testmail.com.
IN MX 10 mail
dns IN A 192.168.150.158
mail IN A 192.168.150.158
www IN A 192.168.150.158
smtp IN A 192.168.150.158
一些参数解释:
$TTL 1D 生存周期为1天
0 ; serial 定义序列号的值,同步辅助名称服务器数据时使用
1D ; refresh更新时间间隔值。定义该服务器的辅助名称服务器隔多久时间更新一次
1H ; retry 辅助名称服务器更新失败时,重试的间隔时间
1W ; expire 辅助名称服务器一直不能更新时,其数据过期的时间
3H ) ; minimum 最小默认TTL的值,如果第一行没有$TTL,则使用该值
IN NS dns.testmail.com. 域名服务器记录
IN MX 10 mail 邮箱交换记录
dns IN A 192.168.150.157 地址记录
mail IN A 192.168.150.157 地址记录
smtp IN A 192.168.150.157
注意:这里配置的地址是Mail服务器的地址
赋予testmail.com.zone所有权限
chmod 755 testmail.com.zone
修改区域配置文件/etc/named.conf 在文档末尾添加即可
vim /etc/named.conf
zone "testmail.com" IN {
type master;
file "testmail.com.zone";
};
type:master指的是主dns解析,slave指的是从dns解析,hint指的是根域名解析(根提示域),forward指的是转发,转发不使用file
file:定义区域解析库文件名字(位置默认在/var/named下面),file的前缀通常和zone的名字通常对应起来,然后加一个.zone的后缀。
检查配置
named checkconf /etc/named.conf //named.conf 文件检查工具
named-checkzone testmail.com testmail.com.zone //zone文件检测工具
对named执行重启 systemctl restart named
添加/etc/resoly.com域名服务器IP,将原来的nameserver注释掉
测试DNS解析是否正常
配置反向解析
修改区域配置文件 /etc/named.rfc1912.zones
zone "150.168.192.in-addr.arpa" IN {
type master;
file "157.150.168.192.in-addr.local";
};
配置157.150.168.192.in-addr.local
cp -p testmail.com.zone 30.63.168.192.in-addr.local
# vi 157.150.168.192.in-addr.local
$TTL 1D
@ IN SOA ns.testmail.com. admin.testmail.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.testmail.com.
158 IN PTR mail.testmail.com.
158 IN PTR www.testmail.com.
检测DNS配置 named-checkzone mail.testmail.com 157.150.168.192.in-addr.local
重启DNS systemctl restart named
dig -x 192.168.63.30
**
配置主从DNS服务
配置从节点服务器 mail 修改配置文件name.comf(与主服务器一致变为any)
检测配置文件是否出错
named-checkconf /etc/named.conf
修改区域配置文件
zone "testmail.com" IN {
type slave;
file "slaves/testmail.com.zone";
masters {192.168.150.157;};
};
zone "150.168.192.in-addr.arpa" IN {
type slave;
file "slaves/158.150.168.192.in-addr.local";
masters {192.168.150.157;};
};
其中192.168.150.157是主服务器
修改配置文件vim /etc/resolv.conf
将以前的nameserver注释掉并添加主从IPD地址
重启服务 systemctl restart named
主服务器关闭named systemctl stop named
测试,查看server地址是否正确
dig dns.testmail.com
dig -x 192.168.63.130
测试dns解析结果:
nslookup dns.testmail.com
显示解析到的服务器目前的位置在192.168.150.158
DNS检测工具
(1)nslookup命令是常用域名查询工具,就是查DNS信息用的命令。
一般格式:
nslookup [-option] [name | -] [server]
参数说明:
● option:表示一些选项。这些选项可以通过set命令设置修改。
● name:表示查询的域名。
● server:可以指定DNS主机IP。
set命令说明:
● set all:打印当前的选项值。
● set calss=value:设置查询的类型,一般情况下为Internet。
● set debug:设置调试模式。
● set d2:设置详细调试模式。
● set domin=name:设置默认的域名。
● set search:
● set port=value:设置DNS端口。
● set querytype=value:改变查询的信息的类型。默认的类型为A纪录。
● set type=value:和set querytype一样。
● set recurse:设置查询类型为递归;若为set norecurse,查询类型为跌代;缺省为前者。
● set retry=number:设置重试的次数。
● set timeout=number:设置等待应答的限制时间(单位为秒),超出即为超时,如果还可以重试,就会 将长超时值加倍,重新查询。
● set vc:通过tcp方式查询。
具体说明可以查看man手册。
格式:nslookup -nameserver/ip。例如:
(2)dig命令主要用来从dns域名服务器查询主机地址信息,是安装bind自带的工具。
一般格式:
dig [@global-server] [domain] [q-type] [q-class] {q-opt} {d-opt}
参数说明:
● @global-server:默认是以/etc/resolv.conf作为DNS查询的主机,这里可以填入其它DNS 主机IP。
● domain:要查询的域名。
● q-type:查询记录的类型,例如a、any、mx、ns、soa、hinfo、axfr、txt等,默认查询a。
● q-class:查询的类别,相当于nslookup中的set class。默认值为in(Internet)。
● q-opt:查询选项,可以有好几种方式,比如:-f file为通过批处理文件解析多个地址;-p port指定另一个端口(缺省的DNS端口为53),等等。
● d-opt:dig特有的选项。使用时要在参数前加上一个“+”号。
● d-opt常用选项:
○ +vc:使用TCP协议查询。
○ +time=###:设置超时时间。
○ +trace:从根域开始跟踪查询结果。
dig nameserver/IP 例如:
[root@controller ~]# dig dns.testmail.com
dig 命令默认的输出信息比较丰富,大概可以分为5个部分。
① 显示dig命令的版本和输入的参数。
② 显示服务返回的一些技术详情,比较重要的是status。如果status的值为NOERROR则说明本次查询成功结束。
③ 中的QUESTION SECTION显示我们要查询的域名。
④ 中的ANSWER SECTION是查询到的结果。
⑤ 则是本次查询的一些统计信息,比如用了多长时间,查询了哪个DNS服务器,在什么时间进行的查询等等。
熟悉常见DNS记录的类型如下图所示:
(3)host查询
hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速访问。
语法:host [ 选项] name [server]
选项列表解释:
● -a:查询所有的信息。
● -c:设置查询类型
● -C:查询完整的SOA记录
● -d | -v:显示详细过程。
● -l:列表模式
● -t:选择查询类型。如CNAME、NS、SOA、SIG、KEY、AXFR。
● -w:永久等待。
● -W:设置等待超时。
例如: