DNS域名解析之bind应用

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
环境准备
    虚拟机:vmware workstation 11 
    linux系统:centos7.3,centos6.8
    bind安装:yum install bind
    DNS主服务器A:环境:centos7.3 IP:172.16.252.35 DNS主机名:dns1.ilinux.io. 
    DNS从服务器B: 环境:centos6.8 IP:10.0.0.68 DNS主机名:dns2.ilinux.io (为后续实验准备)
    虚拟域名:www.ilinux.io
    bind主配置文件修改(centos7.3,6.8皆修改):
    #注:仅列出options{}中更改的内容,其余不变
    vi /etc/named.conf
    options {
        //listen-on port 53 { 127.0.0.1; }; #默认允许所有IP监听53端口
        //listen-on-v6 port 53 { ::1; };
        // allow-query     { localhost; };  #关闭仅允许本机解析
        dnssec-enable no;              #为了方便,关闭DNS安全功能
        dnssec-validation no;
    };

1 正向解析
步骤
 第一步:编辑解析数据库文件 
  
   
    vi /var/named/ilinux.io.zone 
 
    $TTL 600
    ilinux.io.     IN      SOA     ilinux.io.      nsadmin.ilinux.io. (
        2017052301
        1H
        5M
        1W
        6H )
         IN      NS      dns1.ilinux.io.
         IN      NS      dns2.ilinux.io.
         IN     MX 10  mx1.ilinux.io.
    dns1.ilinux.io. IN      A       172.16.252.35
    dns2.ilinux.io. IN      A       10.0.0.68
    mx1.ilinux.io.  IN     A     10.10.1.1
    www.ilinux.io.  IN      A       172.16.1.1
    web             IN      CNAME   www
    ftp     IN     A     172.16.0.111
    
 
第二步:编辑bind辅助配置文件  
    vi /etc/named.rfc1912.zones
    ...(省略部分内容)
    #最后一行加入如下内容
    zone "ilinux.io" IN { 
     type master;
     file "ilinux.io.zone";
    };

第三步:指定解析服务器IP
    vi /etc/resolv.conf 
    nameserver 172.16.252.35

第四步:权限及属组修改(基于安全考虑)
    chmod o= /var/named/ilinux.io.zone 
    chown :named /var/named/ilinux.io.zone
    ls -l /var/named/ilinux.io.zone
    -rw-r-----. 1 root named 454 May 28 10:17 /var/named/ilinux.io.zone
    
第五步:检查语法错误
    named-checkconf
    named-checkzone ilinux.io ilinux.io.zone 
    zone ilinux.io/IN: loaded serial 2017052301     
    OK                                         #验证正确    

第六步:重新加载解析数据库文件和配置文件 
    rndc reload
    server reload successful
    systemctl restart named.service
    
第七步:测试域名解析  
    dig www.ilinux.io 

    ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> www.ilinux.io
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17242
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:                #查询部分
    ;www.ilinux.io. IN A
    
    ;; ANSWER SECTION:                  #回答部分
    www.ilinux.io. 600 IN A 172.16.1.1
    
    ;; AUTHORITY SECTION:               #权威解析部分
    ilinux.io. 600 IN NS dns1.ilinux.io.
    ilinux.io. 600 IN NS dns2.ilinux.io.
    
    ;; ADDITIONAL SECTION:              #附加信息部分
    dns1.ilinux.io. 600 IN A 172.16.252.35
    dns2.ilinux.io. 600 IN A 10.0.0.68
    
    ;; Query time: 1 msec
    ;; SERVER: 172.16.252.35#53(172.16.252.35)
    ;; WHEN: Sun May 28 11:16:29 CST 2017
    ;; MSG SIZE  rcvd: 128
    
2 反向解析
步骤
 第一步:编辑解析数据库文件




    vi /var/named/172.16.zone
    $TTL 1D
    @ IN SOA ilinux.io. nsadmin.ilinux.io. (
     2017052301 ; serial
     1D         ; refresh
     1H         ; retry
     1W         ; expire
     3H )     ; minimum
    
    @ IN NS dns1.ilinux.io.
    @ IN NS dns2.ilinux.io.
    35.252 IN PTR dns1.ilinux.io.
    68.0 IN PTR dns2.ilinux.io.
    1.1 IN PTR www.ilinux.io.
    111.0 IN PTR ftp.ilinux.io.

 第二步:编辑bind辅助配置文件
    vi /etc/named.rfc1912.zones
    #最后一行加入如下信息
    zone "16.172.in-addr.arpa" IN {
    type master;
    file "172.16.zone";
    };

 第三步:指定解析服务器IP
    vi /etc/resolv.conf 
    nameserver 172.16.252.35

 第四步:权限及属组修改(安全考虑)
    chmod o= 172.16.zone 
    chown :named 172.16.zone 
    ll 172.16.zone 
    -rw-r-----. 1 root named 298 May 28 10:58 172.16.zone
    
 第五步:检查语法错误
    named-checkconf
    named-checkzone 16.172.in-addr.arpa 172.16.zone 
    zone 16.172.in-addr.arpa/IN: loaded serial 2017052301
    OK              #验证成功

 第六步:重新加载解析数据库文件和配置文件
    rndc reload
    server reload successful
    systemctl restart named.service

 第七步:测试域名解析    
    dig -x 172.16.1.1 

    ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 172.16.1.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17034
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;1.1.16.172.in-addr.arpa. IN PTR
    
    ;; ANSWER SECTION:
    1.1.16.172.in-addr.arpa. 86400 IN PTR www.ilinux.io.
    
    ;; AUTHORITY SECTION:
    16.172.in-addr.arpa. 86400 IN NS dns1.ilinux.io.
    16.172.in-addr.arpa. 86400 IN NS dns2.ilinux.io.
    
    ;; ADDITIONAL SECTION:
    dns1.ilinux.io. 600 IN A 172.16.252.35
    dns2.ilinux.io. 600 IN A 10.0.0.68
    
    ;; Query time: 0 msec
    ;; SERVER: 172.16.252.35#53(172.16.252.35)
    ;; WHEN: Sun May 28 11:45:36 CST 2017
    ;; MSG SIZE  rcvd: 149

3 主从DNS服务器配置(包含正反向域名解析)
步骤
 第一步:编辑bind辅助配置文件


    1.DNS主服务器正反向解析文件配置上面已有配置,不再介绍
    2.DNS从服务器正反向解析区域配置文件
        环境:centos6.8 IP:10.0.0.68 DNS主机名:dns2.ilinux.io
        vi /etc/named.rfc1912.zones  
        #最后一行加入如下信息
        zone "ilinux.io" IN {
            type slave;
            file "slaves/ilinux.io.zone";
            masters { 172.16.252.35; };
        };
        
        zone "16.172.in-addr.arpa" IN {
                type slave;
                file "slaves/172.16.zone";
                masters { 172.16.252.35; };
        };
        
 第二步:检查语法错误
    named-checkconf 
    
 第三步:重新加载配置文件
    rndc reload
    server reload successful
    systemctl restart named.service
    
 第四步:查看是否配置成功
    cat /var/log/messages | grep "Transfer completed"
    May 28 08:46:20 localhost named[2224]: transfer of 'ilinux.io/IN' from 172.16.252.35#53: Transfer completed: 1 messages, 11 records, 271 bytes, 0.002 secs (135500 bytes/sec)
    May 28 08:54:58 localhost named[2224]: transfer of '16.172.in-addr.arpa/IN' from 172.16.252.35#53: Transfer completed: 1 messages, 7 records, 227 bytes, 0.004 secs (56750 bytes/sec)
    
第五步:测试从服务域名解析
    正向解析测试
    [root@god named]#dig www.ilinux.io @10.0.0.68

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> www.ilinux.io @10.0.0.68
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51468
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
    
    ;; QUESTION SECTION:
    ;www.ilinux.io. IN A
    
    ;; ANSWER SECTION:
    www.ilinux.io. 600 IN A 172.16.1.1
    
    ;; AUTHORITY SECTION:
    ilinux.io. 600 IN NS dns2.ilinux.io.
    ilinux.io. 600 IN NS dns1.ilinux.io.
    
    ;; ADDITIONAL SECTION:
    dns1.ilinux.io. 600 IN A 172.16.252.35
    dns2.ilinux.io. 600 IN A 10.0.0.68
    
    ;; Query time: 1 msec
    ;; SERVER: 10.0.0.68#53(10.0.0.68)
    ;; WHEN: Sun May 28 10:51:34 2017
    ;; MSG SIZE  rcvd: 117

    反向解析测试
    dig -x 172.16.1.1 @10.0.0.68

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 172.16.1.1 @10.0.0.68
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21780
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
    
    ;; QUESTION SECTION:
    ;1.1.16.172.in-addr.arpa. IN PTR
    
    ;; ANSWER SECTION:
    1.1.16.172.in-addr.arpa. 86400 IN PTR www.ilinux.io.
    
    ;; AUTHORITY SECTION:
    16.172.in-addr.arpa. 86400 IN NS dns2.ilinux.io.
    16.172.in-addr.arpa. 86400 IN NS dns1.ilinux.io.
    
    ;; ADDITIONAL SECTION:
    dns1.ilinux.io. 600 IN A 172.16.252.35
    dns2.ilinux.io. 600 IN A 10.0.0.68
    
    ;; Query time: 0 msec
    ;; SERVER: 10.0.0.68#53(10.0.0.68)
    ;; WHEN: Sun May 28 10:49:23 2017
    ;; MSG SIZE  rcvd: 138

4 总结
    本文中DNS域名解析服务是基于bind来实验操作的。
    文中仅分享了如何配置DNS域名解析服务,至于配置bind服务中相关的知识点可以参考如下:
     https://www.isc.org/downloads/bind/doc/ 官方文档
     《鸟哥的Linux私房菜服务器架设篇(第三版)》
    
    本文实验包含DNS正向解析服务部署,DNS反向解析服务部署,DNS主从服务部署。

    想要掌握DNS域名解析服务,深刻了解DNS域名解析知识必不可少,多多动手操作配置服务必不可少。



本文转自 PowerMichael 51CTO博客,原文链接:http://blog.51cto.com/huwho/1930433,如需转载请自行联系原作者

相关文章
|
3月前
|
域名解析 缓存 网络协议
减少域名dns解析时间
域名解析中的TTL值设置多少合适
151 5
|
12天前
|
域名解析 弹性计算 负载均衡
新手上云教程参考:阿里云服务器租用、域名注册、备案及域名解析流程图文教程
对于想要在阿里云上搭建网站或应用的用户来说,购买阿里云服务器和注册域名,绑定以及备案的流程至关重要。本文将以图文形式为您介绍阿里云服务器购买、域名注册、备案及绑定的全流程,以供参考,帮助用户轻松上手。
|
11天前
|
负载均衡 网络协议 容灾
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
|
3月前
|
域名解析 弹性计算 安全
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
|
4月前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
224 6
|
4月前
|
域名解析 网络协议 安全
反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性
在网络世界中,反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性。它在邮件服务器验证、网络安全等领域至关重要,帮助识别恶意行为,增强网络安全性。尽管存在配置错误等挑战,但正确管理下,反向DNS解析能显著提升网络环境的安全性和可靠性。
276 3
|
4月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
144 2
|
6天前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
5天前
|
存储 前端开发 JavaScript
在线教育网课系统源码开发指南:功能设计与技术实现深度解析
在线教育网课系统是近年来发展迅猛的教育形式的核心载体,具备用户管理、课程管理、教学互动、学习评估等功能。本文从功能和技术两方面解析其源码开发,涵盖前端(HTML5、CSS3、JavaScript等)、后端(Java、Python等)、流媒体及云计算技术,并强调安全性、稳定性和用户体验的重要性。
|
13天前
|
机器学习/深度学习 自然语言处理 算法
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
112 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多