DNS的原理与实践

一、概述

通过BIND实践部署了解DNS的整体框架和理念。

二、内容实践

1、DNS的原理

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
*类别域名
除了代表各个国家*域名之外,ICANN最初还定义了7个*类别域名,它们分别是.com、.top、.edu、.gov、.mil、.net、.org、.com、.top用于企业,.edu用于教育机构,.gov用于*机构,.mil用于军事部门,.net用于互联网络及信息中心等,.org用于非盈利性组织。

  • dns递归查询
    DNS的递归查询是指客户端的查询请求只需要交给它的DNS服务器由这台服务器完成最终请求返回结果。
  • dns迭代查询
    DNS的迭代查询是指客户端通过每个服务器的响应结果逐步找到目标的过程。
    DNS的原理与实践

    2、DNS的主辅服务器的搭建

    本次使用bind作为dns的实现。通过官网看到目前bind的9.11版本支持截止日期是2021年12月。本次依然使用centos8仓库中的9.11.26版本。

    DNS的原理与实践
    以下是9.16版本的管理员手册有兴趣的可以看看

https://downloads.isc.org/isc/bind9/cur/9.16/doc/arm/Bv9ARM.pdf

在主辅服务器安装bind软件

 dnf install bind -y

DNS的原理与实践

安装完成后,配置dns主服务器配置文件

修改监听地址
DNS的原理与实践
创建区域配置文件链接
DNS的原理与实践
复制cp -p /var/named/named.localhost /var/named/test.inc.zone,并编辑内容
DNS的原理与实践

校验配置
DNS的原理与实践
启动服务并确认端口监听
DNS的原理与实践
查询结果验证,可以正常解析内部域名
DNS的原理与实践
反向解析配置
DNS的原理与实践
复制zone文件 cp -p named.loopback 192.168.22.zone,修改数据库指针内容。
DNS的原理与实践

客户端测试,可以正常反向解析出域名
DNS的原理与实践

配置dns从服务器

设置基础访问,需要将主服务器放行从服务器传输。
DNS的原理与实践
配置从服务器的主服务器的地址,配置/etc/named.rfc1912.zones正反解析的zone。
DNS的原理与实践
在客户端测试从服务器的正反解析,经过测试均可以正常解析。
DNS的原理与实践
DNS的原理与实践

搭建并实现智能DNS。

根据客户端IP实现解析成特定地址
配置两个个区域dns文件

[root@ns1 named]# cp -p test.inc.zone test.io.zone.gd
$TTL 1D
@       IN SOA  master admin@test.io. (
                                2021072834      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1
        NS      ns2
ns1     A       192.168.22.28
ns2     A       192.168.22.38
cl      A       192.168.22.48
www     A       192.168.22.28
        AAAA    ::1
~                        
[root@ns1 named]# cp -p test.inc.zone test.io.zone.yn

$TTL 1D
@       IN SOA  master admin@test.io. (
                                2021072854      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1
        NS      ns2
ns1     A       192.168.22.28
ns2     A       192.168.22.38
cl      A       192.168.22.48
www     A       192.168.22.48
        AAAA    ::1
~                      

配置acl和view, 以下内容添加到/etc/named.conf文件中。

acl ynnet {
    192.168.22.38;
};
acl gdnet {
    192.168.22.48;
};
acl other {
    any;
};
略……………………
};

#zone "." IN {
#   type hint;
#   file "named.ca";
#};   此处一定要注释:因为下方的包含的文件中方式,如果不注释掉会提示zone不在view中。

key "rndc-key" {
    algorithm hmac-md5;
    secret "+5DmCzmbJu3yS/IoCgZYBQ==";
 };

 controls {
    inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndc-key"; };

};
view  gdview {
    match-clients { gdnet; };
    include "/etc/named.rfc1912.zones.gd";
};
view  ynview {
    match-clients { ynnet; };
    include "/etc/named.rfc1912.zones.yn";
};
view   otherview {
    match-clients { other; };
    include "/etc/named.rfc1912.zones.other";
};

#include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

实现效果是三台主机有两台访问的服务器地址是一样,另外一个不同
第一台:
DNS的原理与实践
第二台:
DNS的原理与实践
第三台:
DNS的原理与实践

通过以上的配置实现了智能dns

通过判断客户端的地址段再来返回特定的dns解析记录。

三、总结

通过以上配置可以理解dns的整体工作过程。并能能实现简单的智能dns

上一篇:AutoCloseable接口


下一篇:Eureka的在配置文件中的配置的解析