设为首页 收藏本站
查看: 696|回复: 0

[经验分享] Linux环境下DNS服务器原理及主服务器简单配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-15 10:19:26 | 显示全部楼层 |阅读模式
1,DNS介绍

  DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
监听的协议端口:UDP/TCP 53
软件实现:bind
2,DNS数状结构:
如下图:
wKiom1Urj2jzuTWVAAE2YF2Fc20015.jpg
根域:.         
一级域如下:
组织域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv
国家域:.cn, .us, .uk, .jp, .tw, .hk, .iq, .ir
反向域:.in-addr.arpa
上图中这里以"."开头的表示域名;www/mail/dns表示主机。
FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名,是指主机名加上全路径。自下而上,所以.conan下的主机www的FQDN为:www.conan.org.  (注意最后的 “.”一般会省略)
在上图中假设pc需要访问www.google.com ,pc指向的dns是dns.conan.org,解析流程如下:
1,dns.conan.org 发现用户请求不在自己解析域内的,直接向根DNS服务器请求查询;
2,根DNS负责向下递归,找到.com域内DNS;
3,.com找到.google域内DNS即dns.google.com;
4,dns.google.com解析出www.google.com的ip地址返回给dns.conan.org;
5,dns.conan.org返回IP地址信息给pc客户端。
注意点:
       以上介绍的域是个逻辑的概念,每个域内有自己的DNS服务器,比如如果".com"域下有“.google”这个域,并假设“.google”这个域内的DNS为dns.google.com,那么“.com”域自己的DNS则记录需要到dns.google.com服务器上查询“.google”这个域内的主机。而“.google”域内dns.google.com服务器则需要向".com"域内DNS服务器申请注册。
3,DNS查询方式:
1,递归:请求被DNS服务器接受后,如果请求域名不属于此DNS管辖范围就请求上级DNS服务器依次传递请求,最后将返回的结果发给请求的主机。
此处引用网络图片示意():
wKiom1UrpTyj_XAtAAHysbY6pdc947.jpg

2,迭代:请求被DNS服务器接受后,如果请求域名不属于此DNS管辖范围就返回并通知客户端再去请求上级DNS服务器,依次传递,直至查询到了最后域名所在的DNS服务器。
此处引用网络图片示意():
wKioL1Urp0bhS2j0AAIdP0eILLc429.jpg
注意点:
1,客户端所指向的DNS服务器必须能给本机做递归查询的DNS服务器。
2,全球13组根域,且根不负责具体主机解析,负责向下传递。
3,DNS服务器在接受到不在自己解析域内的请求会直接交给根处理。
4,DNS资源记录:
        资源记录用于标明资源的功能,如每个域所包含的与之相关的资源。例如,每个RR都包括这个域的所属(RR是从哪个域名中得到的),类型(什么样的资源存在于这个RR中),TTL(time to live,存活时间)等等。

SOA:Start Of Authority, 起始授权,
NS:Name Server, 域名服务器
MX:Mail eXchanger: 邮件交换器
A:Address, FQDN-->IP:FQDN解析为IP地址
PTR: PoiTeR, IP --> FQDN:IP地址反向解析为FQDN
AAAA: Address, FQDN --> IPv6
CNAME: Canonical Name,别名记录
5,DNS配置:
       一般情况下,资源记录一般放DNS的数据库文件(区域数据文件,区域自身有名字);数据库文件一般为文本文件,只能包含资源记录或宏定义,且每行一个资源记录 。

资源记录的格式:
name     [ttl](缓存时间)   IN (关键字)   RRtype(资源记录类型)    Value(地址)
实验环境及软件:
CentOS release 6.4 (Final)
bind.x86_64(rpm包)
DNS服务器:192.168.1.105
www服务器:192.168.1.110
mail服务器:192.168.1.115


主配置文件:定义区域, /etc/named.conf

区域数据文件:/var/named/下
1) /etc/named.conf 一些参数解释:

options{  } ;  //定义了全局选项
zone{  };        //定义区域 (每个区域应该有区域文件)
logging{  };     //定义了日志系统

listen-on port 53 { 127.0.0.1; };   //定义了监听的端口和地址,此项若不给,则默认监听eth,lo网卡上的地址和53号端口
directory       "/var/named";    //定义了区域数据文件目录
allow-query     { localhost; };    //定义了允许那些地址访问
recursion yes;   //定义是否允许递归
dnssec-enable yes; #设定BIND是否支持DNSSEC,该技术并不对数据进行加密,它只是验证您所访问的站点地址是否有效。是一种端到端的安全协议
include    //定义了包含此文件下的配置
zone{        下定义的参数意义如下:
type        //  {hint 根|master 主|slave 辅助|fotward 转发}
file          // 定义了区域文件
allow-transfer { 127.0.0.1; }; // 定义区域传送安全控制
};


这里定义了简单配置文件如下( 这里假设域名为conan.com. ):

options {
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::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";
//allow-query     { localhost; };
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";

};

# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-md5;
secret "Fgdd+n+243u3zj/dSAa5uA==";
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf
logging {

        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
type hint;
file "named.ca";
};

//zone "loalhost." IN {
//   type master;
//   file "named.localhost";
//};

//zone "1.0.0.127.in-addr.arpa." IN {
//   type master;
//   file "named.loopback";
//};

zone "conan.com." IN {     
   type master;
   file "conan.com.zone";   
   allow-transfer { 127.0.0.1; };
};
include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";


2) 定义/var/named/conan.com.zone:

1,soa记录    注意:SOA必须是区域数据库文件第一条记录
@      IN       SOA      dns.conan.com.  admin.conan.com.(
                                 20150413     //序列号,十进制数字,不能超过10位,通常使用日期
                                 2H                //刷新时间,即每隔多久到主服务器检查一次
                                 10M              //重试时间,应该小于refresh time
                                 7D                //过期时间
                                 10 )               //否定答案的ttl
@        IN     NS           dns                        //可以有多条,name为区域名,可以简写@,value为FQDN,可以使用相对名称
@        IN     MX 10      mail                       //可以有多条,name用于标示smtp服务器,value包含优先级和FQDN,越低优先级越高
dns      IN     A             192.168.1.105         //name为FQDN,name为IP地址
mail     IN     A             192.168.1.110
www      IN     A            192.168.1.115
ftp      IN     CNAME     www                     //name和value都为FQDN
pop      IN     CNAME     mail

注意:区域名称在主配置文件下定义,需要修改新建的区域文件的属组和权限,并用“service named configtest”命令测试成功后,启动named服务。

查看监听端口:
[iyunv@Conan_ ~]# netstat -tuln | grep 53
tcp        0      0 192.168.1.105:53            0.0.0.0:*                LISTEN      
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      
udp        0      0 192.168.1.105:53            0.0.0.0:*                              
udp        0      0 127.0.0.1:53                0.0.0.0:*                              


用测试工具dig测试:


[iyunv@Conan_ ~]# dig -t A www.conan.com @192.168.1.105    (解析A记录,主机名为www.conan.com,通过192.168.1.105服务器)
wKiom1UrydiR0aQcAAJmYsOpfyo771.jpg
[iyunv@Conan_ ~]# dig -t MX conan.com @192.168.1.105  (解析MX记录,区域名为conan.com,通过192.168.1.105服务器)
wKiom1Uryt3gIw9IAAIl3qwd5OY040.jpg
[iyunv@Conan_ ~]# dig -t A ftp.conan.com @192.168.1.105 (解析A记录,主机名为ftp.conan.com,通过192.168.1.105服务器)
明确说明了 ftp.conan.com 是别名,真正的服务器应该是www.conan.com,对应的ip地址为192.168.1.115

wKioL1UrzeiRFkweAAIy6H7wMNE187.jpg

6,DNS反向解析配置:
1) /etc/named.conf 下新增zone:

zone "1.168.192.in-addr.arpa" IN {
     type master;
     file "arpa.conan.zone";
};
2)新建 "arpa.conan.zone"文件

需要注意的是:
1,反向解析区域数据库文件:区域名称以逆向的网络地址,并以.in-addr.arpa为后缀;
2,第一条必须SOA;
3,应该具有NS记录,不能出现MX和A记录;
4,较常见的为PTR记录 :name为逆向的主机地址,FQDN必须要写全。
示列:
$TTL 600

@      IN       SOA       dns.conan.com.  admin.conan.com.(
                                 20150413
                                 2H
                                 10M
                                 7D
                                 10
                                 )
@        IN     NS         dns.conan.com.      #注意value的FQDN必须写全
105      IN     PTR        dns.conan.com.
110      IN     PTR        mail.conan.com.
115      IN     PTR        www.conan.com.

重启后测试:
[iyunv@Conan_ ~]# dig -x 192.168.1.110 @192.168.1.105
wKioL1Ur31KSBmOnAALSyutVQdQ600.jpg 测试成功。

补充测试工具nslookup用法:
nslookup>
    server DNS_SERVER_IP
    set q=TYPE
    {name}

示意图例:
[iyunv@Conan_ ~]# nslookup
> server 192.168.1.105                             //设置解析dns地址
Default server: 192.168.1.105
Address: 192.168.1.105#53
> set q=A                                                 //设置解析资源类型
> www.conan.com                                      //解析的主机名
Server:                192.168.1.105
Address:        192.168.1.105#53

Name:        www.conan.com
Address: 192.168.1.115                             //解析的IP结果


[iyunv@Conan_ ~]# nslookup
> server 192.168.1.105

Default server: 192.168.1.105
Address: 192.168.1.105#53
> set q=NS
> conan.com                                                         //解析的区域名
Server:                192.168.1.105
Address:        192.168.1.105#53

conan.com        nameserver = dns.conan.com             //解析的区域DNS名结果


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-57373-1-1.html 上篇帖子: 快速搭建samba服务 下篇帖子: configure: error: Cannot find OpenSSL's libraries 服务器 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表