DNS的基础概念

基本概念

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

分层结构

域名是分层结构,域名DNS服务器也是对应的层级结构。有了域名结构,还需要有域名DNS服务

器去解析域名,且是需要由遍及全世界的域名DNS服务器去解析,域名DNS服务器实际上就是装

有域名系统的主机。域名解析过程涉及4个DNS服务器,分别如下:

分类作用
根DNS服务器英文:Root nameserver。本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。
顶级域名服务器英文:Tld nameserver。负责管理在该顶级域名服务器下注册的二级域名,例如“www.example.com”,.com则是顶级域名服务器,在向它查询时,可以返回二级域名example.com”所在的权威域名服务器地址
权威域名服务器英文:authoritative nameserver。在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系,例如云解析DNS。
本地域名服务器英文:DNS resolver或Local DNS。本地域名服务器是响应来自客户端的递归请求,并最终跟踪直到获取到解析结果的DNS服务器。例如用户本机自动分配的DNS、运营商ISP分配的DNS、谷歌/114公共DNS等

DNS解析过程

DNS查询的结果通常会在本地域名服务器中进行缓存,如果本地域名服务器中有缓存的情况下,则会跳过如下DNS查询步骤,很快返回解析结果。下面的示例则概述了本地域名服务器没有缓存的情况下,DNS查询所需的8个步骤:

  1. 用户在Web浏览器中输入“example.com”, 则由本地域名服务器开始进行递归查询。
  2. 本地域名服务器采用迭代查询的方法,向根域名服务器进行查询 。
  3. 根域名服务器告诉本地域名服务器,下一步应该查询的顶级域名服务器.com TLD的IP地址
  4. 本地域名服务器向顶级域名服务器.com TLD进行查询
  5. .com TLD服务器告诉本地域名服务器,下一步查询example.com权威域名服务器的IP地址
  6. 本地域名服务器向example.com权威域名服务器发送查询
  7. example.com权威域名服务器告诉本地域名服务器所查询的主机IP地址
  8. 本地域名服务器最后把查询的IP地址响应给web浏览器一旦DNS查询的8个步骤返回了example.com的IP地址,浏览器就能够发出对网页的请求:
  9. 浏览器向IP地址发出HTTP请求
  10. 该IP处的web服务器返回要在浏览器中呈现的网页

DNS术语

递归查询

是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。

迭代查询

是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

DNS缓存

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

TTL

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

IPV4、IPV6双栈技术

双栈英文Dual IP Stack,就是在一个系统中可同时使用IPv6/ IPv4这两个可以并行工作的协议栈

TLD Server

英文全称Top-level domains Server,指顶级域名服务器。

DNS Resolver

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

Root Server

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

DNS Query Flood Attack

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

URL转发

英文 Url Forwarding,也可称地址转向,它是通过服务器的特殊设置,将一个域名指向到另外一个已存在的站点

edns-client-subnet

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

DNSSEC

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

DNS 记录类型

DNS支持A、CNAME、MX、TXT、SRV、AAAA、NS、CAA记录类型

DNS 客户端检测工具

正、反解查询命令:host、nslookup、dig

yum install -y bind-utils

host

host [选项] [主机名或IP] [server]

常用选项

-a:列出该主机详细的各项主机名称设定资料

常用参数

erver: host 命令默认是使用 /etc/resolv.conf 文件中的 DNS 主机来查询的,若设置该参数,则使用这里设置的 DNS 主机进行查询。

nslookup

域名解析工具,就是查DNS信息用的命令。使用 /etc/resolv.conf 这个文件作为 DNS 服务器的来源选择。

nslookup [主机名或IP]

dig

域名查询工具,可以用来测试域名系统工作是否正常。

功能与 nslookup 类似,建议使用 dig 来取代 nslookup

dig [选项] [主机名]

常用选项

@:dig 命令默认使用 /etc/resolv.conf 文件中的 DNS 主机来解析域名,若设置该参数,则使用这里设置的 DNS 主机进行解析。

-b :当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求

DNS 客户端配置

Centos7 手动设置 /etc/resolv.conf 里的 DNS,系统会重新覆盖或者清除了,使用以下下三种方法解决。

使用命令行工具 nmcli
查看网络连接
nmcli connection show
nmcli 配置 DNS

修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识

 nmcli con mod eth0 ipv4.dns "114.114.114.114 8.8.8.8"
启动 DNS 配置
nmcli con up eth0

nmcli 命令的详细帮助

man NetworkManager.conf
man nmcli
使用传统方法
修改 NetworkManager 配置
#在main部分添加 “dns=none” 选项
vim /etc/NetworkManager/NetworkManager.conf
-
[main]
plugins=ifcfg-rh
dns=none
-
#重启 NetworkManager 服务
systemctl restart NetworkManager.service
#手工修改 /etc/resolv.conf
vim /etc/resolv.conf
-
nameserver 114.114.114.114
nameserver 8.8.8.8
-
网卡配置文件指定 DNS
#修改网卡配置文件
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
-
TYPE="Ethernet"
BOOTPROTO="static" # 启用静态IP地址
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eth0"
UUID="8071cc7b-d407-4dea-a41e-16f7d2e75ee9"
ONBOOT="yes" # 开启自动启用网络连接
IPADDR0="192.168.21.128" # 设置IP地址
PREFIX0="24" # 设置子网掩码
GATEWAY0="192.168.21.2" # 设置网关
DNS1="8.8.8.8" # 设置主DNS
DNS2="8.8.4.4" # 设置备DNS
HWADDR="00:0C:29:EB:F2:B3"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
-
#重启网络
service network restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值