一、简介
DNS域名解析
服务(DomainNameSystem)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:
正向解析:根据主机名(域名)查找对应的IP地址。
反向解析:根据IP地址查找对应的主机名(域名)。
应用场景:正向解析较好理解,为域名解析为ip地址;反向解析主要用于垃圾邮件拦截,[email protected]/*<![CDATA[*/!function(t,e,r,n,c,a,p,m,o){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e–;)if(t[e].getAttribute('data-yjshash'))returnt[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-yjsemail')){for(e='',o=0,r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2){m=('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);if((a.length-n)=128)o=(parseInt(m)1)break;e+=’%’+m;}p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/*]]>*/,用户邮箱所在服务器会查询该邮件的ip地址,进行反向解析,若对应的域名是xx.com则接收邮件,否则放弃接收。
由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但是这在internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa.这样欲解析的IP地址就会被表达城一种像域名一样的可显示串形式,后缀以逆向解析域域名“in-addr.arpa”结尾。
二、安装配置
安装bind软件包
yuminstallbind-y
systemctlstartnamed
systemctlenablenamed
修改配置文件vi/etc/named.conf
options{
#默认放行地址均修改成any
listen-onport53{any;};
listen-on-v6port53{::1;};
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”;
recursing-file”/var/named/data/named.recursing”;
secroots-file”/var/named/data/named.secroots”;
allow-query{any;};
recursionyes;
dnssec-enableyes;
#服务器不备案,这里写no
dnssec-validationno;
/*PathtoISCDLVkey*/
bindkeys-file”/etc/named.root.key”;
managed-keys-directory”/var/named/dynamic”;
pid-file”/run/named/named.pid”;
session-keyfile”/run/named/session.key”;
};
logging{
channeldefault_debug{
file”data/named.run”;
severitydynamic;
};
};
zone”.”IN{
typehint;
file”named.ca”;
};
include”/etc/named.rfc1912.zones”;
include”/etc/named.root.key”;
解析示例:
#正向解析
#这个位置实际要填写的是解析的完整域,就是要解析的域名
zone”localhost”IN{
#表示dns类型,如果是typehint,表明是根dns。这里的master,表明是主dns,还有一个值是slave,表明是从dns
typemaster;
#解析的记录文件。这个named.localhost可以自己定义,定义完成后需要在/var/named/目录下有一个名称相同的文件与之匹配
file”named.localhost”;
#是否允许客户端动态更新,none表明不允许
allow-update{none;};
};
#反向解析
zone”1.0.0.127.in-addr.arpa”IN{
typemaster;
file”named.loopback”;
allow-update{none;};
};
三、新建正向解析实例
修改vi/etc/named.rfc1912.zones
文件,新增以下内容:
zone”mytest.com”IN{
typemaster;
file”mytest.com.zone”;
allow-update{none;};
};
在/etc/named
目录下,新增mytest.com.zone
文件,可用同目录模板,复制使用cp-a
命令带权限复制操作
#定义DNS服务器查询缓存数据的时间为1天
$TTL1D
#@符表示该文件的父域名称“mytest.com“
#IN代表类型属于ininternet类,因为现在的互联网就是TCP/IP协议的应用,DNS服务在TCP/IP中的位置是应用层,所以这里写的IN,这一般来说是不可改变的
#SOA表示设置授权主机名,上图中定义了负责该区域域名解析的授权主机名,该主机必须在区域文件中有一个A资源记录
#dns.mytest.com:表示声明的服务器主机名称,即这台DNS服务器的完整域名
#ptm.mytest.com:代表设置DNS服务器系统管理员的电子邮箱所对应主机的域名为ptm.life.net
@INSOAdns.mytest.com.ptm.mytest.com(
#正向解析区域的序列号。若当你更改过主DNS服务器的数据后,
#要将该数值加大,这样辅DNS服务器才会更新数据
0;serial
#refresh的功能主要是高速辅DNS服务器多长时间与主DNS
#服务器做一次serial的序列号对比
1D;refresh
#retry表示在refresh失败后,经过指定的时间再去尝试
1H;retry
1W;expire
3H);minimum
#定义mytest.com域的域名解析服务器为dns.mytest.com
NSdns.mytest.com.
#定义域名解析服务器的地址为120.10.10.10
dnsA120.10.10.10
#定义home二级域名的正向解析记录
homeA120.10.10.11
#定义mu.mytest.com的别名music.mytest.com
muCNAMEmusic
musicA120.10.10.10
重启服务,systemctlrestartnamed
验证:局域网客户端安装dig,yuminstallbind-utils
使用digmu.mytest.com
查询解析情况
四、新建反向解析实例
修改vim/etc/named.rfc1912.zones
zone”10.10.120.in-addr.arpa”IN{
typemaster;
file”mytest.com.ptr”;
allow-update{none;};
};
新增反向解析实例,cp-a/var/named/named.loopback/var/named/mytest.com.ptr
$TTL1D
@INSOAns.myexample.com.root.myexample.com.(
0;serial
1D;refresh
1H;retry
1W;expire
3H);minimum
NSns.myexample.com.
nsA120.10.10.12
12PTRns.myexample.com.
12PTRwww.myexample.com.
100PTRtest.myexample.com