一、概述
通过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的迭代查询是指客户端通过每个服务器的响应结果逐步找到目标的过程。2、DNS的主辅服务器的搭建
本次使用bind作为dns的实现。通过官网看到目前bind的9.11版本支持截止日期是2021年12月。本次依然使用centos8仓库中的9.11.26版本。
以下是9.16版本的管理员手册有兴趣的可以看看
https://downloads.isc.org/isc/bind9/cur/9.16/doc/arm/Bv9ARM.pdf
在主辅服务器安装bind软件
dnf install bind -y
安装完成后,配置dns主服务器配置文件
修改监听地址
创建区域配置文件链接
复制cp -p /var/named/named.localhost /var/named/test.inc.zone,并编辑内容
校验配置
启动服务并确认端口监听
查询结果验证,可以正常解析内部域名
反向解析配置
复制zone文件 cp -p named.loopback 192.168.22.zone,修改数据库指针内容。
客户端测试,可以正常反向解析出域名
配置dns从服务器
设置基础访问,需要将主服务器放行从服务器传输。
配置从服务器的主服务器的地址,配置/etc/named.rfc1912.zones正反解析的zone。
在客户端测试从服务器的正反解析,经过测试均可以正常解析。
搭建并实现智能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
、