1.DNS基本概念
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
2.域名的分层
采用层次树状结构的命名方法
任何一个连接再因特网上的主机或路由器,都有唯一的层次结构名字。即域名;域名可以划分各个子域,子域还可以继续分,就形成了顶级域,主域名,子域名等
主要可分为以下部分:
根域(.)
顶级域(.com,.edu等)
主域名(aliyun.com等)
子域名(www.aliyun.com,example.aliyun.com等)
3.DNS解析过程
假定域名为m.xyz.com的主机想知道另一个主机y.abc.com的IP地址。例如,主机m.xyz.com打算发送邮件给y.abc.com。这时就必须知道主机y.abc.com的IP地址。下面是几个查询步骤:
1、主机m.xyz.com先向本地服务器dns.xyz.com进行递归查询。
2、本地服务器采用迭代查询。它先向一个根域名服务器查询。
3、根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
4、本地域名服务器向顶级域名服务器dns.com进行查询。
5、顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。
6、本地域名服务器向权限域名服务器dns.abc.com进行查询。
7、权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。
8、本地域名服务器最后把查询结果告诉m.xyz.com。
4.DNS术语
1.递归查询
如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,
向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。
因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
通常情况下,主机向本地名称服务器的查询一般都是采用递归查询
。
2.迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。
然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。
顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机
通常情况下,本地名称服务器向 DNS(一级、二级、三级...)名称服务器采用迭代查询
。
3.DNS缓存
将解析数据存储在靠近发起请求的客户端的位置,也可以说DNS数据是可以缓存在任意位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果。
4.TTL
TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存最长时间。
5.IPV4,IPV6双栈技术
在一个系统中同时使用IPV4/IPV6这两个可以并行工作的协议栈。
6.TLD Server
指顶级域名服务器
7.DNS Resolver
指本地域名服务器,它是DNS查找中的第一站,负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS,谷歌8.8.8.8等都属于DNS Resolver。
8.Root Server
指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。
9.DNS Query Flood Attack
即DNS查询攻击全称UDP DNS Query Flood,攻击采用的方法是向被攻击的服务器发送大量的域名解析请求,通常请求解析的域名是随机生成或者是网络上根本不存在的域名,
被攻击的DNS 服务器在接收到域名解析请求的时候首先会在服务器上查找是否有对应的缓存,如果查找不到并且该域名无法直接由服务器解析的时候,DNS 服务器会向其上层DNS服务器递归查询域名信息。
域名解析的过程给服务器带来了很大的负载,每秒钟域名解析请求超过一定的数量就会造成DNS服务器解析域名超时。
10.URL转发
即地址转向,它是通过服务器的特殊设置,将一个域名指向另一个已存在的站点。
11.edns-client-subnet
DNS扩展协议,允许DNS resolver传递用户ip地址给authoritative DNS server。
12.DNSSEC
即域名系统安全扩展,它提供一种可以验证应答信息真实性和完整性的机制,利用密码技术,使得域名解析服务器可以验证它所收到的应答(包括域名不存在的应答)是否来自于真实的服务器,或者是否在传输过程中被篡改过。
5.DNS记录类型
A记录 :是指定域名对应的IP地址。
AAAA记录 : 是将域名解析到一个指定的IPV6的IP上。
CNAME记录:通常称别名解析。可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理。
TXT记录:TXT记录,一般指某个主机名或域名的说明。
MX记录 :MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。
NS记录 :NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
SRV 记录:用来标识某台服务器使用了某个服务,常见于微软系统的目录管理。
CAA(Certificate Authority Authorization)记录:即证书颁发机构授权。是一项新的可以添加到DNS记录中的额外字段,通过DNS机制创建CAA资源记录,可以限定域名颁发的证书和CA(证书颁发机构)之间的联系。未经授权的第三方尝试通过其他CA注册获取用于该域名的SSL/TLS证书将被拒绝。
6.DNS客户端检测工具
1)host
解析域名对应的IP地址和别名等信息
语法:host [选项] [主机名或ip] [server]
例:host -a www.baidu.com
2)nslookup
查询DNS信息的命令,使用/etc/resolv.conf这个文件作为DNS服务器来源选择
语法:nslookup [主机名或IP]
例:
nslookup www.baidu.com
nslookup server
#查看本机DNS服务器
3)dig
域名查询工具,可以用来测试域名系统工作是否正常。
yum insatll -y bind-utils • 1
语法:dig [选项] [主机名]
常用选项
@ : 默认使用/etc/resolv.conf这个文件作为DNS服务器来源选择,
-b : 当主机具有多个ip地址,指定使用本机的哪个ip地址向域名服务器发送域名查询请求。
例:dig www.baidu.com dig @8.8.8.8 www.baidu.com
7.DNS客户端配置
一:使用nmcli命令进行配置
0.启动NetworkManager
systemctl restart NetworkManager
1.查看网络连接
nmcli connection show
2.nmcli配置DNS
nmcli con mod eth0 ipv4.dns "114.114.114.114 8.8.8.8"
3.启动DNS配置
nmcli con up eth0
4.nmcli 命令的详细帮助
man nmcli • 1
或
man NetworkManager.conf • 1
二:使用传统方法进行配置
1.修改NetworkManager配置
vi /etc/NetworkManager/NetworkManager.conf 在main字段里添加"dns=none"
2.重启NetworkManager服务
systemctl restart NetworkManager.service • 1
3.手工修改/etc/resolv.conf
vi /etc/resolv.conf
写入DNS地址 nameserver 114.114.114.114 nameserver 8.8.8.8
三:网卡配置文件指定dns
1.进入到网卡配置文件中,
vi /etc/sysconfig/network-scripts/ifcfg-eth0 • 1
添加 DNS1="114.114.114.114" DNS2="8.8.8.8"
2.重启网络
service network restart • 1
3.测试网络
ping www.baidu.com • 1
4.查看ip
ip addr • 1
8.实战(阿里云上进行域名申请)
0.备案
1.百度搜索:域名申请
2.点击阿里云的相关连接
3.按照官方文档进行申请
4.云解析(将域名域服务器进行绑定)
感谢大家,点赞,收藏,关注,评论!