1、使用 bind(Berkeley Internet Name Domain)搭建 DNS(Domain Name System)服务器

安装。
yum -y install bind-chroot
可先查询是否已经安装: rpm -q bind rpm -q bind-chroot
相关文件列表

描述 路径
主程序 /usr/sbin/named
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones
自定义域模板配置文件 /var/named/named.localhost
2、修改主配置文件

vim /etc/named.conf
#listen-on port 53 { 127.0.0.1;};//127.0.0.1修改为any,代表允许监听任何IP地址。 listen-on port
53 { any; }; #allow-query { localhost;};localhost修改为any,代表允许任何主机查询。 allow-query
{ any; }; // // named.conf // // Provided by Red Hat bind package to configure
the ISC BIND named(8) DNS // server as a caching only nameserver (as a
localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for
example named configuration files. // // See the BIND Administrator's Reference
Manual (ARM) for details about the // configuration located in
/usr/share/doc/bind-{version}/Bv9ARM.html options { #listen-on port 53 { 127.0.0
.1; }; // 注释此行 // ipv4的监听端口设置,{}内表示的ip表示向哪些客户端提供 named服务,默认只有本机 // 这里我们把它改成
any,不对客户端限制 listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; //
ipv6监听端口设置 directory "/var/named"; // zone区域文件目录 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; }; // 开放访问权限
allow-query { any; };// 添加forwarders,指向其它DNS服务器,可根据需要添加 #forwarders { # 202.106
.196.115; #}; /* - If you are building an AUTHORITATIVE DNS server, do NOT
enable recursion. - If you are building a RECURSIVE (caching) DNS server, you
needto enable recursion. - If your recursive DNS server has a public IP
address, you MUST enable access controlto limit queries to your legitimate
users. Failingto do so will cause your server to become part of large scale DNS
amplification attacks. Implementing BCP38 within your network would greatly
reduce such attack surface */ recursion yes; dnssec-enable yes;
dnssec-validation yes; /* Pathto ISC DLV key */ bindkeys-file
"/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file
"/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging {
channel default_debug { file"data/named.run"; severity dynamic; }; }; zone "."
IN {// "."代表根区域 type hint; // 根区域的类型就为hint file "named.ca"; // 指定zone文件,默认已经生成
}; include"/etc/named.rfc1912.zones"; include "/etc/named.root.key";
3、配置区域数据信息

vim /etc/named.rfc1912.zones
直接在后面追加,不要删已有的数据。
zone "jjmusic.com" IN { // 正向解析 type master; file "named.jjmusic.com.zone"; //
自定义 域名->ip 的正向解析配置文件 allow-update { none; }; }; // 如果需要配置逆向解析可以添加 // 逆向解析:从
ip->解析出域名 zone "1.168.192.in-addr.arpa" IN { // 本地内网为192.168.1.x type master;
file"named.192.168.1.arpa"; // 自定义的IP到域名的反向解析配置文件 allow-update { none; }; };
4、配置解析数据文件

4.1、配置正向解析数据文件named.jjmusic.com.zone

先查看模板文件cat named.localhost
$TTL 1D ; 生存期, 默认单位为秒,另可设定为[W|D|H|M] ; [zone] IN SOA [主机名] [管理员email] (
[五组更新时间参数]) ; @=>zone IN SOA @=>主机名 rname.invalid.=>email ; @代表根域 ; rname
.invalid.解析为rname@invalid,第一个"."为"@"的替代,尾部的"."为根域,表明其为绝对URL。 @ IN SOA @
rname.invalid. (0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS
@; 直接输入域名,访问@ A 127.0.0.1 ; 解析到ipv4对应的 IP AAAA ::1 ; 解析到ipv6对应的 IP
拷贝模版文件named.localhost进行修改
[root@Centos ~]# cd /var/named/ [root@Centos named]# cp -a named.localhost
named.jjmusic.com.zone [root@Centos named]# vim named.jjmusic.com.zone $TTL 1D @
IN SOA ns1.jjmusic.com *.gmail.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ;
expire 3H ) ; minimum NS ns1.jjmusic.com NS ns2.jjmusic.com A 221.123.177.226
;外网ip A 192.168.1.111 ;内网ip ns1 A 192.168.1.112 ;dns1内网ip ns2 A 192.168.1.113
;dns2内网ip www A 192.168.1.122 ;子域名对应ip store A 192.168.1.133 ;子域名对应ip img A
192.168.1.144 ;子域名对应ip www1 CNAME www.jjmusic.com. ;别名记录 AAAA ::1 ; 解析到ipv6对应的
IP
dns记录类型说明:
1) A 记录: 指定域名或子域名对应的IP地址
2) AAAA 记录: 指定域名对应的IPV6的IP地址
3) CNAME 记录:
通常称别名解析。可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理,与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址
4) NS 记录: NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
您注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现:
ns1.domain.com、ns2.domain.com等。简单的说,NS记录是指定由哪个DNS服务器解析你的域名。
5) MX 记录: MX(Mail
Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给
user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在,
用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
6) TXT 记录: 一般指某个主机名或域名的说明,如:admin IN TXT “管理员, 电话:XXXXXXXXXXX”,mail IN TXT
“邮件主机,存放在xxx , 管理人:AAA”,Jim IN TXT “contact: abc@mailserver.com”,也就是您可以设置 TXT
内容以便使别人联系到您。 TXT的应用之一,SPF(Sender Policy
Framework)反垃圾邮件。SPF是跟DNS相关的一项技术,它的内容写在DNS的TXT类型的记录里面。MX记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF的作用跟MX相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。例如:当邮件服务器收到自称发件人是spam@gmail.com的邮件,那么到底它是不是真的gmail.com的邮件服务器发过来的呢,我们可以查询gmail.com的SPF记录,以此防止别人伪造你来发邮件。
7) PTR 记录:PTR是pointer 的简写。 “PTR”就是”反向DNS”,
domain name pointer,可以粗略的理解为DNS反向
Domain Name Pointer.
是一个指针记录,用于将一个IP地址映射到对应的主机名,也可以看成是A记录的反向,通过IP访问域名,原来是通过域名访问IP)

如何顺利做好反向解析?首先要有固定公网IP地址、可用域名(最好不要被其它服务所用),例如您有lunch-time.com的域名,您可以要求您的域名注册商为您添加一个okmail.lunch-time.com的域名  并将其A记录指向您的SMTP服务器出口公网IP地址,如:220.112.20.18,接着请与您的固定IP所属ISP联系要求为您的IP反向解析至okmail.lunch-time.com。完成后别忘了将您的SMTP服务器的HELO域名改为okmail.lunch-time.com,这样才可以达到目的。
另:
1、做好反向解析后发往sina.com的信件有可能会被转至“不明邮件夹”中,此时请您与sina.com联系,要求为您解决该问题。
2、查看反向解析是否成功,可用如下命令:nslookup –qt=ptr yourIP,从返回的信息中您可以看到反向解析的结果。
3、一定要有固定公网IP地址以及真实可用域名。同时要注意反向解析的域名的A记录一定要指向该IP!

4、对于有多个固定公网IP地址的,只要做主要出口IP的反向解析即可,不管您有多少SMTP服务器,只要是通过该IP连接至外网就将这些SMTP服务器的HELO域名改成IP反向解析之域名即可。(和这些SMTP服务器上的地址域是无关的)

摘自https://yq.aliyun.com/articles/331012 <https://yq.aliyun.com/articles/331012>

4.1、配置逆向解析数据文件(如果需要的话)named.192.168.1.arpa

拷贝模版文件named.loopback进行修改
[root@Centos ~]# cd /var/named/ [root@Centos named]# cp -a named.loopback
named.192.168.1.arpa [root@Centos named]# vim named.192.168.1.arpa $TTL 1D @ IN
SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ;
minimum NS @ 111 PTR jjmusic.com 122 PTR www.jjmusic.com 133 PTR store.jjmusic
.com 111 PTR img.jjmusic.com A 127.0.0.1 AAAA ::1 PTR localhost.
5、重启named,使配置立即生效

重启之前可以先检查一下配置文件的正确性。
/usr/sbin/named-checkconf -z
重启。
systemctl restart named或/sbin/service named start

6、校验解析结果

6.1 Linux Client验证

将客户端的dns设置为刚才修改的服务器ip。
vim /etc/resolv.conf
# Generated by NetworkManager search test nameserver 122.11.47.184 #新加DNS服务器地址
nameserver114.114.114.114 nameserver 8.8.8.8
nolookup命令用于查询域名与ip的解析记录。
# nslookup > jjmusic.com Server: 122.11.47.184 Address: 122.11.47.184#53 Name:
jjmusic.com Address: 192.168.1.111 > www.jjmusic.com Server: 122.11.47.184
Address: 122.11.47.184#53 Name: www.jjmusic.com Address: 192.168.1.122 > store
.jjmusic.com Server: 122.11.47.184 Address: 122.11.47.184#53 Name: store.jjmusic
.com Address: 192.168.1.133 > img.jjmusic.com Server: 122.11.47.184 Address:
122.11.47.184#53 Name: img.jjmusic.com Address: 192.168.1.144
6.2 Windows Client验证

先修改 DNS服务器地址
#ipconfig /flushdns // 刷新 dns解析缓存 #nslookup > jjmusic.com Server: 122.11.47.184
Address: 122.11.47.184#53 Name: jjmusic.com Address: 192.168.1.111 > www.jjmusic
.com Server: 122.11.47.184 Address: 122.11.47.184#53 Name: www.jjmusic.com
Address: 192.168.1.122
参考

https://www.cnblogs.com/heiye123/articles/7687922.html
<https://www.cnblogs.com/heiye123/articles/7687922.html>
https://www.cnblogs.com/zydev/p/6293745.html
<https://www.cnblogs.com/zydev/p/6293745.html>
http://leitelyaya.iteye.com/blog/808266
<http://leitelyaya.iteye.com/blog/808266>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信