首页 > 其他分享 >DNS

DNS

时间:2024-11-22 21:13:10浏览次数:1  
标签:named DNS file var 服务器 com

DNS协议

一、DNS: 域名名称系统

主机解析

正向解析:将计算机名转换成IP地址

反向解析:将IP地址转换成计算机名

FQDN(Fully Qualified Domain Name)完全合格域名/全称域名,例如www.yutianedu.com.

DNS查询的具体工作原理

1. 用户输入网址

当你在浏览器中输入一个网址,比如 www.example.com,浏览器首先需要知道这个域名对应的IP地址。因为计算机只能通过IP地址进行通信,所以DNS的作用就是将域名转换为IP地址。

2. 本地缓存查找

浏览器会先查找自己本地的DNS缓存。每次你访问一个网站,操作系统和浏览器都会缓存DNS查询结果。这样,当你再次访问相同的网站时,系统就可以直接从缓存中提取IP地址,而无需重新进行DNS查询。

如果缓存中有对应的记录,浏览器就直接使用这个IP地址进行访问。

3. 操作系统查询DNS服务器

如果缓存中没有相关记录,操作系统就会查询配置的DNS服务器。通常,操作系统会使用ISP(Internet Service Provider,互联网服务提供商)提供的DNS服务器,或者你自己设置的第三方DNS(比如Google的8.8.8.8,Cloudflare的1.1.1.1等)。

4. 递归查询过程

如果本地DNS服务器也没有域名的记录,它会开始一个递归查询的过程。这个过程涉及多个DNS服务器的逐级查询。

  • 根DNS服务器:首先,DNS请求会被发送到根DNS服务器。根DNS服务器是DNS系统的顶级服务器,管理着所有顶级域(如 .com, .org, .net 等)。
  • 顶级域名服务器(TLD):根服务器会根据请求的域名(如 example.com),将查询请求指向对应的TLD服务器(例如 .com 域的TLD服务器)。
  • 权威DNS服务器:TLD服务器会返回指定域名的权威DNS服务器地址。这个权威服务器拥有该域名的确切记录,可以返回最终的IP地址。

5. 获取IP地址

一旦查询到权威DNS服务器,它会返回对应域名的IP地址。这个地址可以是IPv4(如 192.0.2.1)或IPv6(如 2001:db8::1)格式。

返回结果后,DNS查询过程就结束了,操作系统将会把这个IP地址返回给浏览器,浏览器就可以通过这个IP地址连接到目标网站的服务器,获取网站的内容。

6. 本地缓存

为了提高效率,DNS服务器和操作系统都会缓存结果。这样,当再次访问相同的网站时,就不需要重新进行整个查询过程,而是直接从缓存中取出IP地址。

DNS查询过程图解

浏览器请求域名解析 →
操作系统查询本地缓存 →
缓存命中:直接使用缓存的IP地址(如果有)。
未命中:查询DNS服务器 →
DNS服务器查询根DNS服务器 →
根DNS服务器返回TLD服务器地址 →
TLD服务器返回权威DNS服务器地址 →
权威DNS服务器返回最终的IP地址 →
浏览器访问IP地址,加载网页内容。
DNS的类型
A记录(Address Record):将域名映射到IPv4地址。
AAAA记录:将域名映射到IPv6地址。
CNAME记录(Canonical Name):将一个域名别名映射到另一个域名。
MX记录(Mail Exchange):定义邮件交换服务器,用于处理电子邮件。
NS记录(Name Server):指示负责某一域的权威DNS服务器。
TXT记录:存储文本信息,常用于验证域名所有权等用途。

配置dns服务器

1.安装bind包
[root@web01 network-scripts]# yum install -y bind
2.启动named服务
[root@web01 network-scripts]# systemctl enable named.service --now  
3.注意事项
dns服务尽量reload,因为restart会清空dns缓存
3.查看端口
[root@web01 network-scripts]# netstat -tunpl |grep  -w 53
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      3617/named          
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      2032/dnsmasq        
tcp6       0      0 ::1:53                  :::*                    LISTEN      3617/named          
udp        0      0 127.0.0.1:53            0.0.0.0:*                           3617/named          
udp        0      0 192.168.122.1:53        0.0.0.0:*                           2032/dnsmasq        
udp6       0      0 ::1:53                  :::*                                3617/named 
4.修改配置文件
[root@web01 network-scripts]# vim /etc/named.conf 
options {

    # 设置 DNS 服务器监听的地址和端口。这里限制仅在本地回环地址上监听。

​    listen-on port 53 { 127.0.0.1; };  # 只在 IPv4 本地地址上监听 53 端口
​    listen-on-v6 port 53 { ::1; };      # 只在 IPv6 本地地址上监听 53 端口

    # 设置 DNS 数据存储目录,通常包含数据库文件、日志文件等。

​    directory "/var/named";  # 数据库文件存储的默认目录,通常是 Zone 文件所在位置。

    # 设置缓存转储文件的路径,用于调试和分析缓存数据。

​    dump-file "/var/named/data/cache_dump.db";  # 缓存转储文件,记录当前缓存内容

    # 设置统计信息存储文件路径,用于记录 DNS 查询统计信息。

​    statistics-file "/var/named/data/named_stats.txt";  # 存储统计数据的文件路径

    # 设置内存统计信息文件,用于记录内存使用情况。

​    memstatistics-file "/var/named/data/named_mem_stats.txt";  # 存储内存统计信息的文件路径

    # 设置安全根密钥文件,通常用于 DNSSEC(域名系统安全扩展)。

​    secroots-file "/var/named/data/named.secroots";  # 存储根密钥的文件路径

    # 设置递归查询过程中需要的文件路径,用于记录递归查询状态。

​    recursing-file "/var/named/data/named.recursing";  # 存储递归查询过程中的文件路径

    # 配置允许查询的客户端,只有 localhost(本地地址)可以查询。

​    allow-query { localhost; };  # 只能本机查询本机,可以设置为网段或者any
​    recursion yes;  # 启用递归查询功能,表示此 DNS 服务器是一个递归服务器
     
};
zone "8.168.192.in-addr.arpa" IN {
​	type master;  #主dns
​	file "named.yutianedu";  #指定zone解析文件,绝对路径/var/named
​	allow-update { none; };   #是否允许自动更新,none代表不允许
};
#这是根dns的zone
zone "." IN {  
​	type hint;
​	file "named.ca";
};

配置正向dns(权限要注意)

[root@web01 named]# cat /etc/named.rfc1912.zones  在这个配置文件中加一行
zone "myopenai.com" IN {
	type master;
	file "named.myopenai";
	allow-update { none; };
};


[root@web01 named]# cp -p named.localhost named.myopenai  权限问题
[root@web01 named]# cat named.myopenai 
$TTL 1D  
@	IN SOA	ns.myopenai.com. root.myopenai.com. (    
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns.myopenai.com.
ns  A       192.168.5.11
www	A	    192.168.5.11
ftp	A       192.168.5.12
web CNAME   www.baidu.com.

#配置文件解析
$TTL 1D  ###生命周期,dns缓存文件最长时间
###SOA记录:起始授权机构:Start of Authority Record
1D:每天主DNS与备DNS同步一次
1H: 如果主从同步不成功,则每小时重试一次
1W:每小时重试一次,1周内还未同步成功,则放弃
3H: 失败的解析保留3小时在缓存中
0:序列号:每次备DNS主动询问主DNS,你有记录更新吗?如果主DNS更新了记录,需要增加序列号,备份DNS才会同步新的记录
ns:name server 它用于指定一个域名所对应的 权威 DNS 服务器,即负责管理该域名的 DNS 信息的服务器。
CNAME:别名
将database这个主机添加两条A记录,实现DNS轮询

#测试
[root@kvm ~]# nslookup 
> www.myopenai.com
Server:		192.168.5.101
Address:	192.168.5.101#53

Name:	www.myopenai.com
Address: 192.168.5.11

配置反向解析

1.
[root@dns named]# cat /etc/named.rfc1912.zones 
zone "5.168.192.in-addr.arpa" IN {
	type master;
	file "named.my";
	allow-update { none; };
};
2.
[root@dns named]# cat named.my
$TTL 1D
@	IN SOA	ns.myopenai.com. root.myopenai.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns.myopenai.com.
ns	A	192.168.5.11
11	PTR	www.myopenai.com.             #PTR: Point Record 反向解析  


#配置文件解析

3.测试
[root@kvm ~]# nslookup 192.168.5.11
11.5.168.192.in-addr.arpa	name = www.myopenai.com.


DNS记录
A: 将一个主机名转换为IPV4 Address
AAAA: 将一个主机名转换为IPV6 Address


辅助dns搭建

搭建高可用集群
主--->从
但从端不能同步给主端
从端DNS不能修改
只能由主端同步数据给从端

环境规划
主dns:192.168.5.101
从dns:192.168.5.102

从dns配置:
1.修改配置文件
[root@dns2 slaves]# cat /etc/named.conf 
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };
        
        
[root@dns2 slaves]# cat /etc/named.rfc1912.zones 
zone "myopenai.com" IN {
	type slave;
	file "slaves/named.myopai";
        masters { 192.168.5.101; };
};
zone "5.168.192.in-addr.arpa" IN {
	type slave;
	file "slaves/myopai.zone";
        masters { 192.168.5.101; };
};

2.测试
先断开主dns
[root@dns ~]# systemctl stop named.service 
[root@kvm ~]# nslookup www.myopenai.com
Server:		192.168.5.102   -----> 是备dns在工作
Address:	192.168.5.102#53

Name:	www.myopenai.com
Address: 192.168.5.11

转发dns

[root@web01 ~]# vim /etc/named.conf

options {

​    listen-on port 53 { any; };

​    listen-on-v6 port 53 { any; };

​    directory    "/var/named";

​    dump-file    "/var/named/data/cache_dump.db";

​    statistics-file "/var/named/data/named_stats.txt";

​    memstatistics-file "/var/named/data/named_mem_stats.txt";

​    secroots-file  "/var/named/data/named.secroots";

​    recursing-file "/var/named/data/named.recursing";

​    allow-query   { any; };

​    forwarders { 192.168.8.254; };    ####转发DNS

​    forward first;   

 

 

forward only;则先通过DNS查询,如果DNS能解析到,直接返回结果,如果解析不到,尝试丢给转发DNS来解析,如果转发DNS能解析到,则返回给客户端,如果转发DNS也解析不到,则返回查询失败

 

 

forward first; 则先通过DNS查询,如果DNS能解析到,直接返回结果,如果解析不到,尝试丢给转发DNS来解析,如果转发DNS能解析到,则返回给客户端,如果转发DNS也解析不到,则从根DNS开始查询

forwarders { 114.114.114.114; };

forward only;

标签:named,DNS,file,var,服务器,com
From: https://www.cnblogs.com/cloudwangsa/p/18563730

相关文章

  • mongo no subject alternative dns name matching
    1mongo相关的参数--tlsAllowConnectionsWithoutCertificates              允许客户端连接而不提供证书  --tlsAllowInvalidHostnames           允许服务器证书提供不匹配的主机名  --tlsAllowInvalidCertificates        允许连接......
  • dnSpy-.NET开发者必备工具
    dnSpy是一个功能强大的.NET反编译工具,广泛应用于.NET程序的逆向工程中。它可以帮助开发人员或安全研究人员分析和修改.NET程序,包括对.NET程序的反编译、调试和修改。dnSpy提供了丰富的功能,涵盖了反编译、调试、编辑和重编译等多种操作。下面是dnSpy的全面详解,包......
  • DNS
    DNS协议一、DNS:域名名称系统主机解析正向解析:将计算机名转换成IP地址反向解析:将IP地址转换成计算机名FQDN(FullyQualifiedDomainName)完全合格域名/全称域名,例如www.yutianedu.com.DNS查询的具体工作原理1.用户输入网址当你在浏览器中输入一个网址,比如www.example.c......
  • 云解析DNS的云厂商专属线路解析
    个人名片......
  • DNS解析智能线路有何优势?
    在当今数字化的网络环境中,DNS(域名系统)解析智能线路正逐渐成为提升网络性能和用户体验的关键技术。它具有诸多显著优势,深刻地影响着网络数据的传输和处理。1、智能线路优化了网络访问速度传统的DNS解析可能会将用户请求指向距离较远或网络拥塞路径上的服务器,导致数据传输延迟。而......
  • 3张大图剖析HttpClient和IHttpClientFactory在解决DNS解析问题上的殊途同归
    在开发者便利度角度,我们很轻松地使用HttpClient对象发出HTTP请求,只需要关注应用层协议的BaseAddr、Url、ReqHeader、timeout。实际在HttpClient在源码级别是由HttpMessageHandler实例发出的请求。1.早期.NETHttpClient遇到的Socket滥用/DNS解析问题早期.NET的HttpClient使......
  • [Whole Web] Optimize DNS parsing
    Whenuserstrytovisitourapplication, example.comforthefirsttime,DNSneedtoparsingandfindoutapplication IPaddress.Afterfirsttimevisiting,theIPaddressanddomainnamemappingwillbecachedforsubsequencevisit.  SooptimizingDNSp......
  • 计算机基础-DNS
    DNS是什么DNS(DomainNameSystem)是⼀种⽤于将域名(例如www.baidu.com)转换为IP地址(例如220.181.111.188)的分布式系统。在互联⽹上,计算机和其他⽹络设备使⽤IP地址来相互识别和通信。然⽽,IP地址是⼀串数字,不太⽅便⼈们使⽤和记忆,所以就使⽤了域名来代替复杂的IP地址一句话总结......
  • ARP欺骗技术:DNS欺骗与HTTP重定向_(1).ARP欺骗技术概述
    ARP欺骗技术概述什么是ARP欺骗ARP(AddressResolutionProtocol)欺骗是一种网络攻击技术,通过发送虚假的ARP(地址解析协议)响应包,将攻击者的MAC地址映射到目标IP地址,从而使网络流量被重定向到攻击者的设备,进而实现中间人攻击(Man-in-the-Middle,MITM)。ARP协议简介ARP协议用......
  • ARP欺骗技术:DNS欺骗与HTTP重定向_(2).ARP欺骗原理与机制
    ARP欺骗原理与机制1.ARP协议简介ARP(AddressResolutionProtocol)协议是用于将IP地址解析为物理地址(通常是MAC地址)的协议。在网络中,计算机之间进行通信时,需要知道对方的MAC地址来构建数据帧。ARP协议通过广播请求和单播响应的方式,实现了从IP地址到MAC地址的动态映射。ARP......