本文介绍了dns基本概念,dns验证,dns攻防以及修改本地host的内容。
DNS(Domain Name System)简介
DNS(域名系统)是互联网的关键组成部分,它负责将用户友好的域名(如 www.example.com)转换为计算机能够理解的IP地址(如 192.0.2.1)。这种转换使得我们在浏览网页时无需记住复杂的数字地址。
基本概念
域名(Domain Name):
域名是互联网中的一个标识符,用于唯一标识一个网络资源。域名分为多个部分,如 www.example.com:
com 是顶级域(TLD)。
example 是二级域。
www 是子域。
IP地址(IP Address):
每个连接到互联网的设备都有一个唯一的IP地址。IPv4地址是32位数字,通常用四个十进制数表示(如 192.0.2.1),而IPv6地址是128位数字,用十六进制表示(如 2001:db8::1)。
DNS解析过程:
当你在浏览器中输入一个域名时,DNS解析过程会将这个域名转换为IP地址,以便网络能够找到正确的服务器。解析过程涉及多个步骤和DNS服务器,包括:
浏览器缓存:首先检查本地缓存。
递归DNS服务器:如果缓存中没有结果,浏览器会请求递归DNS服务器。
根DNS服务器:递归DNS服务器会查询根DNS服务器以获取顶级域(TLD)服务器的信息。
TLD DNS服务器:根DNS服务器将请求转发到负责特定TLD的DNS服务器(如 .com)。
权威DNS服务器:TLD服务器将请求转发到负责具体域名的权威DNS服务器。
最终解析:权威DNS服务器返回最终的IP地址给递归DNS服务器,递归DNS服务器将结果返回给浏览器。
DNS相关知识点
DNS记录类型:
A记录(Address Record):将域名映射到IPv4地址。
AAAA记录(IPv6 Address Record):将域名映射到IPv6地址。
CNAME记录(Canonical Name Record):将一个域名别名映射到另一个域名。
MX记录(Mail Exchange Record):指定处理邮件的邮件服务器。
TXT记录(Text Record):可以包含任意文本信息,常用于验证和安全。
NS记录(Name Server Record):指定域名的权威DNS服务器。
PTR记录(Pointer Record):用于反向DNS查找,将IP地址映射到域名。
DNS缓存:
本地缓存:操作系统和浏览器会缓存DNS查询结果,以提高效率。
DNS服务器缓存:递归DNS服务器和权威DNS服务器也会缓存查询结果。
DNS解析策略:
递归解析:递归DNS服务器为客户端代为完成整个解析过程。
迭代解析:DNS服务器仅提供下一步的查询提示,客户端需要继续查询。
DNS安全性:
DNSSEC(DNS Security Extensions):为DNS数据提供完整性验证,防止数据篡改。
DDoS攻击:DNS服务器可能会受到分布式拒绝服务(DDoS)攻击,导致服务中断。
DNS负载均衡:
轮询:将请求分发到多个IP地址,以分散负载。
地理位置:根据用户的位置将请求导向最接近的服务器。
反向DNS(rDNS):
反向DNS查找是将IP地址转换为域名的过程,通常用于邮件服务器验证和网络管理。
DNS动态更新:
允许DNS记录在域名服务器上自动更新,用于动态分配IP地址的网络环境(如DHCP)。
DNS查询工具:
nslookup:用于查询DNS记录。
dig:用于查询DNS信息,提供更详细的结果。
whois:用于查询域名注册信息。
DNS的——端口为53。
DNS端口分为TCP和UDP。
一、TCP是用来做区域传送的。。
二、UDP是用来做DNS解析的——客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。
dns验证
nslookup是一个可以监测DNS服务器是否正常运行,且是否能正确解析域名的工具。
(linux和widows都适用)
linux安装命令:yum install bind-utils
nslookup DNS 域名解析 故障排除
指定dns: nslookup www.baidu.com 114.114.114.114
windos打开的命令行窗口中,输入“ip在ifconfig /flushdns”命令,点击“Enter”,这样就可以刷新本地的DNS缓存数据;查看DNS缓存记录,可在后面输入“ipconfig/displaydns”命令。
dig @x.x.x.x www.xxxDNS服务器DNS服务器
基本语法
dig [@server] [domain] [type]@server:可选。指定 DNS 服务器来查询。如果不指定,将使用默认的系统配置。
domain:要查询的域名。
type:要查询的记录类型,如 A、MX、NS 等。如果不指定,将查询所有记录类型(即 ANY)。
dns攻防
DNS攻击风险:
第一类:黑客伪造客户端源IP发送大量的DN。请求报文,造成DNS request flood攻击。DNS request flood是当前最常见的DNS攻击。这类攻击可以针对缓存服务器,也可以针对授权服务器。
第二类:黑客伪造成授权服务器发送大量的DNS回应报文,造成DNS reply flood攻击。
第三类:篡改某些网站的域名和IP地址对应关系,超长的用户访问被导向至钓鱼网站、**网站等。
第四类:向DNS服务器发送大量错误格式的DNS异常报文,或者发送大超长的的DNS报文,导致DNS服务器处理这些报文时出现异常,拒绝正常服务。
DNS request flood防护:
TC源认证利用的是DNS协议的TCP查询方式;被动模式利用的是DNS协议的重传机制;而CNAME则是利用DNS的别名机制
DNS reply flood:
大多都是虚假源攻击,黑客控制僵尸主机发出的DNS reply报文的源IP地址通常都是伪造的,是不存在的。所以在防本地hosts从回应源IP地址的真假性入手,判定这个源IP是否是真实源。
修改本地host
在计算机中修改本地 hosts 文件可以将特定的域名映射到自定义的IP地址,这对于测试网站、屏蔽网站或处理网络配置问题非常有用。下面是如何在不同操作系统中修改 hosts 文件的步骤:
Linux 系统
打开终端:
你可以通过应用菜单、快捷键或其他方式打开终端。
编辑 hosts 文件:
使用 nano 或其他文本编辑器打开 hosts 文件,例如:
sudo nano /etc/hosts输入你的管理员密码。
修改 hosts 文件:
在文件中添加你需要的域名映射。例如:
lua复制代码
127.0.0.1 example.com 192.168.1.100 test.local
保存并退出:
按 Ctrl + O 保存更改。
按 Enter 确认文件名。
按 Ctrl + X 退出 nano。
Windows 系统
以管理员身份打开记事本:
点击“开始”菜单,搜索“记事本”。
右键单击“记事本”,选择“以管理员身份运行”。
打开 hosts 文件:
在记事本中,选择“文件” > “打开”。
导航到 C:\Windows\System32\drivers\etc。
在“文件类型”下拉菜单中选择“所有文件(.)”。
选择 hosts 文件并点击“打开”。
编辑 hosts 文件:
在文件的末尾添加你想要的域名映射。例如:
127.0.0.1 example.com 192.168.1.100 test.local127.0.0.1 是本地回环地址,通常用于测试。
192.168.1.100 是自定义的IP地址。
保存文件:
点击“文件” > “保存”。
whois是一个用于查询域名注册信息和 IP 地址归属的命令行工具