Linux网络服务DNS详解(不要混日子,小心日子把你们混了)(一)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Linux网络服务DNS详解(不要混日子,小心日子把你们混了)(一)

目录



一、DNS基本概念


1.1本地名称解析配置文件:hosts


1.2 修改DNS优先级


二、域名的分层结构


三、DNS解析过程


四、DNS术语


4.1 递归查询


4.2 迭代查询


4.3 DNS缓存


4.4 TTL


4.5 IPV4、IPV6双栈技术


4.6 TLD Server


4.7 DNS Resolver


4.8 Root Server


4.9 DNS Query Flood Attack


4.10 URL转发


4.11 edn-client-subnet


4.12 DNSSEC


五、DNS记录类型


六、 DNS客户端检测工具


6.1 host


6.2 nslookup


6.3 dig


七、 客户端配置


八、正向解析


8.1 资源记录


8.1.1 SOA记录


8.1.2  NS记录


8.1.3 MX记录


8.1.4 A记录


8.1.5 PTR记录


8.1.6 CNAME别名记录


8.2 配置过程


总结


一、DNS基本概念



DNS是域名系统(Domain Name System)的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。


1.1本地名称解析配置文件:hosts


Linux: /etc/hosts

image.png


windows: C:\Windows\System32\drivers\etchosts

image.png


# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1       localhost
# ::1             localhost


1.2 修改DNS优先级


[root@localhost ~]#vim /etc/nsswitch.conf
#修改dns的优先级
hosts:      files dns myhostname
#修改 files和 dns的先后  优先级就会改变

1.写入hosts文件


image.png


2.ping


image.png


3.修改/etc/nsswitch.conf配置文件


image.png


4.再次ping


image.png

修改优先级的小实验,默认是hosts文件


二、域名的分层结构



鉴于互联网中的域名和IP地址对应关系数据库过于庞大,DNS域名解析服务采用了类似于目录树的层次结构来记录域名和IP地址之间的对应关系,从而形成了一个分布式的数据库系统,如图:


image.png


一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)


.com 工商、企业
.net 网络服务机构
.edu 教育机构
.int 国际机构
.org 非营利性组织
.gov 政府机构

二级DNS服务器:专门负责二级域名的解析


.com.cn

中国商业组织
.edu.cn 中国教育机构
.org.cn 中国非盈利组织
.net.cn 中国运营商


子域名DNS服务器:专门负责子域名的解析 也称为三级域名


sina.com.cn 新浪
pku.edu.cn 北京大学


常用主机名



www
ftp
mail


分类 作用
根域名服务器 本地域名服务器在本地查询不到结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址
顶级域名服务器(一级) 负责管理在该顶级域名服务器下注册的二级域名,例如“www.baidu.com”,.com则是顶级域名服务器,在向它查询时,可以返回二级域名baidu.com所在的权威域名服务器的地址
权威域名服务器(二级) 在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系
本地域名服务器(子域名) 本地域名服务器相应客户端的递归请求,并最终跟踪直到获得解析结果的DNS服务器


每一层的域名上都有自己的域名服务器,最顶层的是根域名服务器

每一级域名服务器都知道下级域名服务器的IP地址,以便一级一级向下查询


三、DNS解析过程



当今世界的信息化程度越来越高,大数据、云计算、物联网、人工智能等新技术不断涌现,全球网民的数量每年也以10%的速度迅速增长。这些因素导致互联网中的域名数量激增,被访问的频率也进一步加大。为了为网民提供不简单、稳定且快速的域名查询服务,保证互联网的正常运转,提供了下面三种类型的服务器。


主服务器:在特定区域具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系

从服务器:从主服务器中或得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况

缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率

以查询www.linuxprobe.com为例:


c177d17a6b50402abfbe517bc19f8c87.png


当用户向网络指定的DNS服务器发起一个域名请求时,通常情况下会有本地DNS服务器向上级的DNS服务器发送迭代查询请求;如果该DNS服务器没有要查询的信息,则会进一步向上级DNS服务器发送迭代查询请求,直到获得准确的查询结果为止。其中最高级、最权威的根DNS服务器共有13台,分布位置、管理单位及IP地址如下表:


名称 管理单位 地理位置 IP地址
A INTERNIC.NET 美国 198.41.0.4
B 美国信息科学研究所 美国 128.9.0.107
C PSINet公司 美国 192.33.4.12
D 马里兰大学 美国 128.8.10.90
E 美国航空航天管理局 美国 192.203.230.10
F 因特网软件联盟 美国 192.5.5.241
G 美国国防部网络信息中心 美国 192.112.36.4
H 美国陆军研究所 美国 128.63.2.53
I Autonomica公司 瑞典 192.36.148.17
J VeriSign公司 美国 192.58.128.30
K RIPE NCC 英国 193.0.14.129
L IANA 美国 199.7.83.42
M WIDE Project 日本 202.12.27.33


上面是IPV4的根服务器


IPV6的根服务器:全球共25个,中国1主3从;美国1主2从......


四、DNS术语



4.1 递归查询


如果主机所查询的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果只有两种,一是所查询的IP地址,二是报错,表示无法查询到所需的IP地址


递归查询相当于你问别人借钱,别人没钱也要想办法借到钱给你


4.2 迭代查询


当根域名服务器收到本地域名服务器发出的迭代查询的请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询,而不是替本地域名服务器进行后续的查询。根域名服务器通常把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询;顶级域名收到请求后,要么给出所查询的IP地址,要么告诉本地域名服务器下一步应该向哪一个权威域名服务器查询,本地域名服务器就这样进行迭代查询,最后把结果返回给主机


迭代查询相当于你问别人借钱,别人没钱,告诉你应该找谁借


4.3 DNS缓存


DNS缓存是将解析数据存储在靠近发起请求的客户端位置,也可以说DNS数据是可以缓存在任意位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果


4.4 TTL


这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查的过程


4.5 IPV4、IPV6双栈技术


在一个系统中可同时使用IPV6/IPV4这两个可以并行工作的协议栈


4.6 TLD Server


指顶级域名服务器


4.7 DNS Resolver


指本地域名服务器,它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运行商ISP分配的DNS如电信的114.114.114.114和谷歌的8.8.8.8等都属于DNS Resolver


4.8 Root Server


指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址


4.9 DNS Query Flood Attack


指域名查询攻击,攻击方法是通过操纵大量傀儡机器,发送海量的域名查询请求,当每秒域名查询请求次数超过DNS服务器可承载的能力时,则会造成解析服务器超时从而直接影响业务的可能性


4.10 URL转发


地址转向,通过服务器的特殊设置,将一个域名指向到另一已存在的站点


4.11 edn-client-subnet


google提交了一份DNS扩展协议,允许DNS resolver传递用户的IP地址给authoritative DNS server


4.12 DNSSEC


域名系统安全扩展,他是通过数字签名来保证DNS应答报文的真实性和完整性,可有效防止DNS欺骗和缓存污染等攻击,能够保护用户不被重定向到非预期地址值,从而提高用户对互联网的信任


五、DNS记录类型



记录类型 功能
A IPV4记录,支持将域名映射到IPV4地址使用
AAAA IPV6记录,支持将域名映射到IPV6地址使用
CNAME 别名记录,支持将域名指向另一个域名
MX 电邮交互记录,支持将域名指向邮件服务器地址
TXT 文本记录是任意可读的文本DNS记录
SRV 服务器资源记录,用来标记某台服务器使用了某个服务,常见于微软系统的目录管理
NS 名称服务器记录,支持将子域名委托给其他DNS服务商解析
CAA CAA资源记录,可以限定域名颁发证书和CA(证书颁发机构)之间的联系


六、 DNS客户端检测工具



6.1 host


解析域名对应的IP地址和别名等信息


语法格式:


host [参数] [主机名或IP] [server]


常用参数:


-a 显示详细的DNS信息
-c 指定查询类型,默认值为“IN”
-C 查询指定主机的完整的SOA记录
-r 不使用递归的查询方式查询域名
-t 指定查询的域名信息类型
-v 显示指令执行的详细信息
-w 如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答
-W 指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息则退出
-4 使用IPv4查询传输 (默认)
-6 使用IPv6查询传输


示例1:


image.png


虽然可以看到www.baidu.com是www.a.shifen.com.的别名,但是我们不可以通过www.a.shifen.com.直接访问,虽然他们的域名指向相同,但是这个ip只绑定了www.baidu.com,当你用其他域名访问他的80端口的时候,会在应用层拒绝


示例2:


image.png


6.2 nslookup


在使用nslookup之前,先确保已经安装了它,nslookup属于bind-utils包下一个命令


nslookup有两种工作模式:“交互模式”和“非交互模式”。在命令行中直接输入nslookup,无需输入任何参数即进入交互模式,由“>”提示


语法格式:


nslookup [参数] [域名]


示例1:


image.png


示例2:


image.png


示例3:


image.png


6.3 dig


它是一个用来灵活查询DNS的工具,它会打印出DNS域名服务器的回应,主要用来从DNS域名服务器查询主机地址信息


dig命令与nslookup命令功能基本相同,但是dig命令灵活性好、易用、输出清晰


语法格式:


dig [参数] [IP]


示例1:


image.png

目录
相关文章
|
5天前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
19 5
|
5天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
17 2
|
7天前
|
SQL 安全 网络安全
网络安全的护城河:漏洞防御与加密技术的深度解析
【10月更文挑战第37天】在数字时代的浪潮中,网络安全成为守护个人隐私与企业资产的坚固堡垒。本文将深入探讨网络安全的两大核心要素——安全漏洞和加密技术,以及如何通过提升安全意识来强化这道防线。文章旨在揭示网络攻防战的复杂性,并引导读者构建更为稳固的安全体系。
17 1
|
15天前
|
SQL 安全 测试技术
网络安全的盾牌与剑——漏洞防御与加密技术解析
【10月更文挑战第28天】 在数字时代的浪潮中,网络空间安全成为我们不可忽视的战场。本文将深入探讨网络安全的核心问题,包括常见的网络安全漏洞、先进的加密技术以及提升个人和组织的安全意识。通过实际案例分析和代码示例,我们将揭示黑客如何利用漏洞进行攻击,展示如何使用加密技术保护数据,并强调培养网络安全意识的重要性。让我们一同揭开网络安全的神秘面纱,为打造更加坚固的数字防线做好准备。
35 3
RS-485网络中的标准端接与交流电端接应用解析
RS-485,作为一种广泛应用的差分信号传输标准,因其传输距离远、抗干扰能力强、支持多点通讯等优点,在工业自动化、智能建筑、交通运输等领域得到了广泛应用。在构建RS-485网络时,端接技术扮演着至关重要的角色,它直接影响到网络的信号完整性、稳定性和通信质量。
|
5天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
29 3
|
5天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
17 2
|
14天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
47 4
|
12天前
|
SQL 安全 算法
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【10月更文挑战第31天】在数字世界的海洋中,网络安全是航船的坚固屏障,而信息安全则是守护宝藏的金钥匙。本文将深入探讨网络安全的薄弱环节——漏洞,以及如何通过加密技术加固这道屏障。从常见网络漏洞的类型到最新的加密算法,我们不仅提供理论知识,还将分享实用的安全实践技巧,帮助读者构建起一道更加坚不可摧的防线。
22 1
|
15天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####

相关产品

  • 云解析DNS