DNS精华,你真的理解DNS了吗?

简介: DNS精华,你真的理解DNS了吗?

为什么做DNS频频报错? 为什么看日志显示网络不可达? 到底是道德的沦丧,还是人性在作怪?


No no no 都不是,是你太马虎啦!


在总结之前,在说一次做DNS一定要仔细!一定要仔细!一定要仔细 一:什么是DNS???你真的理解DNS吗?


1.先放一个百度的理解: 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。


2.在放一个我的理解: 就是把不好记的IP地址自动转化成易于记忆的字母或者拼音。这样在上网的时候就比较方便! 详细说下域名:www.csdn.net/https://:这个是个协议,也被称为HTTP超文本传输协议,也就是网页在上网上传播的协议。后面的s是(secure)安全的意思,是把这个协议加密了就是更安全了。 www:这个是服务器名,没啥多说的。 csdn.net:这个才是域名,用来定义网站的独一无二的名字www.csdn.net:这个是网站名,由服务器名+域名组成/:这个是根目录,也就是通过网站名找到服务器然后在服务器存放网页的个目录www.csdn.net/:这是URL,统一资源…


3.既然能把IP地址转化为易于记忆的域名那么肯定可以正着转也可以反着转。 (1)DNS正向解析: 由域名转化为IP,开始实验啦! 1.安装DNS服务需要的包


[root@a ~]# yum install -y bind-chroot bind-utils


2.编辑dns主配置文件修改两项参数(允许任何IP访问dns的53端口,允许任何IP的请求)


[root@a ~]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query     { any; };

3.为区域配置文件添加参数[root@a ~]# vim /etc/named.rfc1912.zones(这个zone后面的名字和file的后面的可以随便起但是后文要相对应)


zone "caq.com" IN {
        type master;
        file "caq.test";
        allow-update { none; };

4.创建IP地址和域名解析关系的数据库文件


[root@a ~]# cd /var/named/ 
[root@a named]# vim caq.test
$TTL 1D
caq.com.       IN SOA  caq.com. root.caq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
caq.com.           IN NS  ns.caq.com.
ns.caq.com.      IN A    192.168.10.10
www.caq.com.  IN A    192.168.30.10
bbs.caq.com.    IN A    192.168.20.10

5.重启服务进行正向解析测试


[root@a named]# systemctl restart named
[root@a named]# nslookup www.caq.com
Server:         127.0.0.1
Address:        127.0.0.1#53
Name:   www.caq.com
Address: 192.168.30.10
[root@a named]# nslookup bbs.caq.com
Server:         127.0.0.1
Address:        127.0.0.1#53
Name:   bbs.caq.com
Address: 192.168.20.10

(2)DNS反向解析: 由IP转化为域名,开始实验啦! 1.编辑区域配置文件[root@a ~]# vim /etc/named.rfc1912.zones(这个zone后面的名字是固定的,意思是解析192.168.30这个网段的IP,file后面的名字也是随便定的)


zone "30.168.192.in-addr.arpa" IN {
        type master;
        file "caq.test2";
        allow-update { none; };
};

2.创建IP地址和域名解析关系的数据库文件


[root@a named]# vim caq.test2(这个caq.com.是DNS区域)
$TTL 1D
@       IN SOA  caq.com. root.caq.com. (
                             0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
          NS        ns.caq.com.
100    IN PTR ns.caq.com.
10      IN PTR www.caq.com.
20      IN PTR bbs.caq.com.
30      IN PTR mail.caq.com.

3.重启服务开始测试


[root@a named]# systemctl restart named
[root@a named]# nslookup 192.168.30.10
10.30.168.192.in-addr.arpa      name = www.caq.com.
[root@a named]# nslookup 192.168.30.20
20.30.168.192.in-addr.arpa      name = bbs.caq.com.
[root@a named]# nslookup 192.168.30.30
30.30.168.192.in-addr.arpa      name = mail.caq.com.

二:DNS主从服务器 实验需要两台虚拟机一台为主服务器一台为从服务器,需要在同一网段,能互相ping通


1.修改主服务器区域配置文件


[root@a ~]# vim /etc/named.rfc1912.zones
zone "caq.com" IN {
       type master;
       file "caq.test";
       allow-update { 192.168.10.11; };
zone "30.168.192.in-addr.arpa" IN {
        type master;
        file "caq.test2";
        allow-update { 192.168.10.11; };
};


2.修改从服务器区域配置文件


[root@b ~]# yum install -y bind-chroot bind-utils
[root@b ~]# vim /etc/named.rfc1912.zones
zone "caq.com" IN {
       type slave;
       file "slaves/caq.test";
       masters { 192.168.10.10; };
zone "30.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/caq.test2";
        masters { 192.168.10.10; };
};


3.重启服务,在/var/named/slaves里有我们正反解析的文件。


[root@b ~]# systemctl restart named
[root@b ~]# cd /var/named/slaves
[root@b slaves]# ls
 caq.test caq.test2


三:TSIG 关闭防火墙!关闭selinux! 做这个实验之前首先要把之前在从服务器生成的文件删掉


[root@b ~]# rm -rf /var/named/slaves/*


1.在主服务器中生成密钥。dnssec-keygen命令用于生成安全的DNS服务密钥,其格式为“dnssec-keygen [参数]”,


[root@a ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master
Kmaster.+157+27327


2.查看私钥并记录key值


[root@a ~]# cat Kmaster.+157+27327.private
Private-key-format: v1.3
Algorithm: 157 (HMAC_MD5)
Key: LHViEY9SzJ8m+Sq16DBAyg==
Bits: AAA=
Created: 20200317211737
Publish: 20200317211737
Activate: 20200317211737

3.在主服务器中创建密钥验证文件


[root@a ~]# cd /var/named/chroot/etc/
[root@a etc]# vim transfer.key
key  "master" {
algorithm hmac-md5;
secret "1XEEL3tG5DNLOw+1WHfE3Q=="; 
}; 
[root@a etc]# chown root:named transfer.key 
[root@a etc]# chmod 640 transfer.key
[root@linuxprobe etc]# ln transfer.key /etc/transfer.key

4.开启并加载Bind服务的密钥验证功能。


[root@a ~]# vim /etc/named.conf 
include "/etc/transfer.key"; 
allow-transfer { key master; }; 
[root@b ~]# systemctl restart named

这个时候主服务器的密钥验证功能已经开启,重启服务无法自动获得配置文件了


1.现在要配置从服务器 ,步骤和主服务器配置差不多


[root@b ~]# cd /var/named/chroot/etc
[root@b etc]# vim transfer.key 
key  "master" { 
algorithm hmac-md5;
secret "1XEEL3tG5DNLOw+1WHfE3Q=="; 
}; 
[root@b etc]# chown root:named transfer.key
[root@b etc]# chmod 640 transfer.key
[root@b etc]# ln transfer.key /etc/transfer.key

2.开启并加载从服务器的密钥验证功能


[root@b etc]# vim /etc/named.conf 
include "/etc/transfer.key"; 
...
server 192.168.10.10
{
keys { master; }; 
};

3.再次重启服务就可以看到配置文件又回来了


[root@b ~]# systemctl restart named
[root@b ~]# ls /var/named/slaves/
 caq.test caq.test2

完成啦!!!


相关文章
|
5月前
|
运维 网络协议 安全
手把手评估一个域名的技术健康度——DNS+SSL双维深度体检
域名是云原生时代的技术基座之一。本文提供一套DNS解析性能(dig +trace +TTL量化)与SSL/TLS安全配置(证书检测、TLS协议版本、HSTS检查)的全流程实操评估方法,包含可直接复现的命令行脚本和实测数据。适合对网络基础设施、域名安全、云运维感兴趣的开发者。
644 2
|
9月前
|
JSON API PHP
获取当前北京时间的免费API接口教程
“接口盒子”提供免费、高效的北京时间API,支持20种格式返回,适用于多种开发场景。通过简单参数即可获取时间戳或格式化时间,调用方便,稳定性高,助力开发者轻松集成精准时间功能。
1597 0
|
12月前
|
云栖大会
2025云栖大会分论坛《共建韧性互联网基础资源服务(DNS+IPv6)》即将开幕,欢迎光临
2025年9月26日,杭州云栖小镇《共建韧性互联网基础资源服务(DNS+IPv6)分论坛》即将登场。限时开放免费门票,期待您的到来!
|
人工智能 开发框架 自然语言处理
Eko:一句话就能快速构建复杂工作流的 AI 代理开发框架!快速实现自动操作电脑和浏览器完成任务
Eko 是 Fellou AI 推出的开源 AI 代理开发框架,支持自然语言驱动,帮助开发者快速构建从简单指令到复杂工作流的智能代理。
2171 12
Eko:一句话就能快速构建复杂工作流的 AI 代理开发框架!快速实现自动操作电脑和浏览器完成任务
|
域名解析 缓存 Prometheus
k8s CoreDNS服务搭建与配置
讲解 k8s CoreDNS服务的搭建与配置
3218 0
k8s CoreDNS服务搭建与配置
|
传感器 编解码 监控
线程池有哪些拒绝策略?
本文介绍了Java线程池的四种拒绝策略:AbortPolicy(默认策略,抛出异常)、CallerRunsPolicy(调用者运行任务)、DiscardPolicy(丢弃任务,不抛异常)和DiscardOldestPolicy(丢弃最旧任务,尝试提交当前任务)。每种策略都有其适用的业务场景,并通过代码示例进行了说明。选择合适的策略取决于具体的应用需求和对任务处理的优先级。
1601 0
|
负载均衡 网络协议 容灾
【飞天技术沙龙】云解析DNS上海站《多云+IDC融合场景下的DNS最佳实践》圆满落幕
【飞天技术沙龙】云解析DNS上海站《多云+IDC融合场景下的DNS最佳实践》于5月22日在上海举行,吸引了20余家知名企业参与。本次沙龙聚集“多云+IDC的融合DNS场景”,从DNS在“企业上云”和“容灾调度”两个主题的最佳实践展开分享,沙龙活动取得了圆满成功。
|
域名解析 边缘计算 缓存
DNS+,云服务时代下标识解析服务新机遇
DNS+,云服务时代下标识解析服务新机遇
DNS+,云服务时代下标识解析服务新机遇
|
算法 搜索推荐 Python
我们常用于猜数字游戏的二分查找算法怎么用python实现呢?
类比猜数游戏 我们上篇文章唠了唠经典的冒泡排序算法,如果说经典算法,那怎么少得了二分查找呢.可以说它是经典中的经典,就我们常用于猜数字方法.就是他.比如猜1到100的数字,目标数字的34.这时候你就猜一个数50,出题人会跟你说是大了还是小了.明显你猜的50比34大,那出题人就会跟你说你猜的数大了,那你可猜的数的范围变小了.变成了1-49,你继续猜25,这时候猜的数小了,猜数范围变成26-50,你继续猜38,范围缩小到26-38.你继续猜32,范围缩小到33-38,你继续对半猜35,范围变成33-34,这时候最多两轮你就猜到目标数了,6轮就可得出目标数,不过在游戏中还是有次数限制的,这就是经典的
593 1