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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

为什么做DNS频频报错?

为什么看日志显示网络不可达?

到底是道德的沦丧,还是人性在作怪?


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


在总结之前,在说一次做DNS一定要仔细!一定要仔细!一定要仔细


一:什么是DNS???你真的理解DNS吗?


1.先放一个百度的理解:


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


2.在放一个我的理解:


就是把不好记的IP地址自动转化成易于记忆的字母或者拼音。这样在上网的时候就比较方便!


详细说下域名:https://www.csdn.net/


https://:这个是个协议,也被称为HTTP超文本传输协议,也就是网页在上网上传播的协议。后面的s是(secure)安全的意思,是把这个协议加密了就是更安全了。

www:这个是服务器名,没啥多说的。

csdn.net:这个才是域名,用来定义网站的独一无二的名字

www.csdn.net:这个是网站名,由服务器名+域名组成

/:这个是根目录,也就是通过网站名找到服务器然后在服务器存放网页的个目录


https://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


完成啦!!!

相关文章
|
3月前
|
域名解析 缓存 网络协议
域名系统DNS_基础知识
域名系统(DNS)使我们能够通过易记的域名访问互联网资源,而非直接使用IP地址。DNS采用层次树状结构,由多个分量组成,如顶级域名(如.com或.cn)位于最右侧。域名长度限制为255个字符,各级域名由相应管理机构监管,顶级域名由ICANN管理。DNS分为国家顶级域名、通用顶级域名和反向域等。域名解析涉及根域名、顶级域名及权限域名服务器,通过递归和迭代查询完成。为提高效率,DNS使用分布式服务器和高速缓存技术。
174 8
|
4月前
|
域名解析 负载均衡 网络协议
【域名解析DNS专栏】DNS解析中的Anycast技术:原理与优势
在互联网中,DNS将域名转换为IP地址至关重要。Anycast技术通过将同一IP地址分配给多台地理上分散的服务器,确保客户端总能连接到最近且最轻载的服务器,从而加速DNS解析、实现负载均衡、提升抵御DDoS攻击的能力及服务高可用性。通过动态路由协议如BGP实现,Anycast极大地增强了DNS系统的性能和稳定性。
118 2
|
7月前
|
域名解析 缓存 网络协议
【域名解析 DNS 专栏】DNS 域名解析基础:从入门到精通
【5月更文挑战第21天】DNS是互联网的"导航员",将域名转换为IP地址。Python示例展示了如何解析域名。DNS服务器层级结构包括根、顶级和权威服务器,协同完成高效解析。DNS缓存加速访问,但可能导致旧信息留存。DNS安全问题如DNS欺骗可借助DNSSEC等技术防范。理解DNS对网络从业者和用户都至关重要。
120 3
【域名解析 DNS 专栏】DNS 域名解析基础:从入门到精通
|
7月前
|
域名解析 存储 缓存
【域名解析DNS专栏】动手实践:手动配置DNS解析记录
【5月更文挑战第22天】本文介绍了DNS解析记录的概念及其手动配置步骤。DNS解析记录是将域名映射到IP地址的数据,常见类型包括A(IPv4)、AAAA(IPv6)和CNAME(别名)。配置步骤包括登录DNS管理平台,添加记录,选择记录类型,填写主机记录和记录值,设置TTL值,并保存。以阿里云为例的A记录配置示例也提供了具体操作。了解这些有助于更好地管理域名。
780 0
【域名解析DNS专栏】动手实践:手动配置DNS解析记录
|
7月前
|
域名解析 网络协议 安全
【域名解析 DNS 专栏】动态 DNS(DDNS)技术解析及其应用
【域名解析 DNS 专栏】动态 DNS(DDNS)技术解析及其应用 动态DNS(DDNS)技术在应对动态IP地址环境下,提供了一种灵活的解决方案,使设备能通过固定域名被访问。当设备IP改变时,DDNS服务会更新域名与新IP的映射,确保访问畅通。广泛应用于家庭远程访问设备和企业网络管理。简单的DDNS更新Python示例展示了发送请求更新过程。然而,DDNS面临服务可靠性和安全性的挑战。总体而言,DDNS技术提升了网络环境的便利性和效率,并将持续发展和完善。
731 1
|
7月前
|
域名解析 网络协议 Ubuntu
【域名解析DNS专栏】搭建私有DNS服务器:从BIND到CoreDNS的选择
【5月更文挑战第26天】本文对比了两种流行的DNS服务器软件BIND和CoreDNS。BIND以其稳定性及丰富功能著称,广泛兼容各类平台,适合复杂环境;CoreDNS则以其高性能、模块化设计和易用性脱颖而出。根据需求、资源和技术水平,用户可选择适合自己的DNS服务器。安装示例包括BIND在Ubuntu上的apt安装及基本配置,以及CoreDNS的snap安装和YAML配置。
495 0
|
7月前
|
域名解析 负载均衡 网络协议
【域名解析 DNS 专栏】如何利用 DNS 实现地理位置路由
【5月更文挑战第25天】利用DNS进行地理位置路由,能根据用户位置导向最近服务器,提升网络效率和用户体验。通过判断请求IP地址归属地,DNS返回相应区域的服务器IP。简单示例代码展示了如何实现此功能,但实际应用需借助专业数据库和处理网络复杂性的工具。尽管面临挑战,如代理服务器和网络环境影响,但DNS地理位置路由仍是优化网络性能的关键技术,对于内容分发和负载均衡具有重要意义。随着技术进步,这一领域的潜力将持续挖掘。
167 0
|
7月前
|
存储 缓存 网络协议
介绍一下什么是DNS,以及DNS基础原理
DNS(Domain Name System)是互联网中用于解析域名和IP地址的分布式数据库系统。它的作用是将人类易于记忆的域名(如www.example.com)转化为计算机能够理解的IP地址(如192.0.2.1)。
198 0
|
域名解析 存储 缓存
DNS相关笔记
DNS相关笔记
106 0
|
域名解析 网络协议 安全
DNS精华,你真的理解DNS了吗?
DNS精华,你真的理解DNS了吗?
185 0