DNS相关内容学习笔记1

记录dns协议学习中的一些内容,全程无图。

DNS简介

DNS查询过程

访问网站的基本过程:
1、浏览器向DNS服务器发起DNS请求;
2、DNS服务器查到结果,响应DNS请求;
3、浏览器拿到IP并向指定IP的HTTP服务发起HTTP请求;
4、HTTP服务器响应,浏览器渲染结果。

DNS缓存

假如每一台DNS服务器都储存了很多IP地址和域名的对应关系记录,这样会导致两个问题:1、数据量很大,有些记录是低频的,浪费空间,查找效率低;2、如果需要更变,变更过程的效率也不高。

因此DNS服务器中加入了缓存机制,当你一定时间内重复询问同一个网址时,查询程序会直接找出缓存记录并响应。
缓存有过期时间,超时未更新会删除缓存。多数浏览器支持本地DNS缓存,可以减少DNS请求,加快响应。

chrome可以查看DNS缓存,在地址栏中输入如下URL:
chrome://net-internals/#dns

DNS劫持

域名劫持通过攻击DNS服务器或伪造DNS服务器的方法,把目标网站域名解析到错误的IP地址,造成用户无法访问目标网站或恶意迫使用户访问指定IP。

DNS劫持的关键在于DNS服务器与你之间的链接为“明文传输”,而非“加密传输”。这就可能导致通信的每个环节上都能随意修改其中的数据内容。

DoH基本原理

DoH可以认为在DNS外面套一层HTTPS,通常一次请求的时间会变长。流程变成了:

浏览器 -> DoH服务器 -> DNS服务器 -> DoH服务器 -> 浏览器

该过程中的所有流量皆受到HTTPS加密链接强加密。

Firefox开启DoH

Firefox从v62版开始已支持DoH,DoH(DNS over HTTPS)协议可以加密 DNS 请求和响应,能够有效解决因DNS污染无法正常访问某些网站,也可以避免DNS查询记录被恶意收集监控或者被改过至虚假钓鱼网站。

操作方法:

1、在菜单里点击“首选项”;
2、进入“常规”选项;
3、滚动页面到最下方,选择“网络设置”;
4、在弹出窗口最下方选择“启用基于HTTPS的DNS”,点击“使用默认值”即可。

DNS报文格式

DNS分为查询请求和查询响应,请求和响应的报文结构基本相同,在标志位上有差别。

这部分的内容较多,大体了解即可。梳理后会放到下次放出。

DNS几个关键字段

DNS类型字段

dns协议中的type字段,请求类型的集合叫做QTYPES,有一部分的type是dns请求独有的。(不常用的没有进行翻译)

DNS类型

类型名十进制代码含义参考
A1指定域名对应IPv4地址[RFC1035]
NS2权威的名称服务器地址[RFC1035]
MD3指定邮件接收站(废弃,使用MX代替)[RFC1035]
MF4指定邮件中转站(废弃,使用MX代替)[RFC1035]
CNAME5指定别名名称[RFC1035]
SOA6用于 DNS 区域的“起始授权机构”[RFC1035]
MB7邮箱域名(实验性)[RFC1035]
MG8邮件组成员 (实验性)[RFC1035]
MR9邮件重命名域名 (实验性)[RFC1035]
NULL10空(实验性)[RFC1035]
WKS11描述已知服务[RFC1035]
PTR12指针,如果查询是 IP 地址响应计算机名[RFC1035]
HINFO13主机信息[RFC1035]
MINFO14邮箱或邮件列表信息[RFC1035]
MX15邮件交换器[RFC1035]
TXT16文本信息[RFC1035]
RP17for Responsible Person[RFC1183]
AFSDB18for AFS Data Base location[RFC1183][RFC5864]
X2519for X.25 PSDN address[RFC1183]
ISDN20for ISDN address[RFC1183]
RT21for Route Through[RFC1183]
NSAP22for NSAP address, NSAP style A record[RFC1706]
NSAP-PTR23for domain name pointer, NSAP style[RFC1348][RFC1637][RFC1706]
SIG24for security signature
KEY25for security key
PX26X.400 mail mapping information[RFC2163]
GPOS27Geographical Position[RFC1712]
AAAA28解析IPv6地址[RFC3596]
LOC29Location Information[RFC1876]
NXT30Next Domain (OBSOLETE)[RFC3755][RFC2535]
EID31Endpoint Identifier
NIMLOC32Nimrod Locator
SRV33Server Selection[RFC2782]
ATMA34ATM Address
NAPTR35Naming Authority Pointer[RFC2915][RFC2168][RFC3403]
KX36Key Exchanger[RFC2230]
CERT37CERT[RFC4398]
A638A6 (OBSOLETE - use AAAA)[RFC3226][RFC2874][RFC6563]
DNAME39DNAME[RFC6672]
SINK40SINK
OPT41OPT[RFC6891][RFC3225]
APL42APL[RFC3123]
DS43Delegation Signer[RFC4034][RFC3658]
SSHFP44SSH Key Fingerprint[RFC4255]
IPSECKEY45IPSECKEY[RFC4025]
RRSIG46RRSIG[RFC4034][RFC3755]
NSEC47NSEC[RFC4034][RFC3755]
DNSKEY48DNSKEY[RFC4034][RFC3755]
DHCID49DHCID[RFC4701]
NSEC350NSEC3[RFC5155]
NSEC3PARAM51NSEC3PARAM[RFC5155]
TLSA52TLSA[RFC6698]
Unassigned53-54
HIP55Host Identity Protocol[RFC5205]
NINFO56NINFO
RKEY57RKEY
TALINK58Trust Anchor LINK
CDS59Child DS
Unassigned60-98
SPF99Sender Policy Framework邮件反垃圾[RFC4408]
UINFO100用户信息[IANA-Reserved]
UID101用户标识符[IANA-Reserved]
GID102组标识符[IANA-Reserved]
UNSPEC103[IANA-Reserved]
NID104[RFC6742]
L32105[RFC6742]
L64106[RFC6742]
LP107[RFC6742]
EUI48108an EUI-48 address[RFC7043]
EUI64109an EUI-64 address[RFC7043]
Unassigned110-248
TKEY249Transaction Key[RFC2930]
TSIG250Transaction Signature[RFC2845]
IXFR251增量区域传送[RFC1995]
AXFR252完全区域传送[RFC1035][RFC5936]
MAILB253mailbox-related RRs (MB, MG or MR)[RFC1035]
MAILA254mail agent RRs (OBSOLETE - see MX)[RFC1035]
ANY255返回所有有效的记录[RFC1035][RFC6895]
URI256URI
CAA257Certification Authority Restriction[RFC6844]
Unassigned258-32767
TA32768DNSSEC Trust Authorities
DLV32769DNSSEC Lookaside Validation[RFC4431]
Unassigned32770-65279
Private use65280-65534
Reserved65535

DNS类字段

标记为class的字段。
通常只有5种:

类型代码说明
IN1互联网
CS2csnet(废弃)
CH3chaos
HS4Hesiod
*255任何类型

泛解析

泛解析是指利用*来做子域名,实现所有的子域名都指向同一个IP地址(记录值)。例如域名 dns.com,设置泛解析 *.dns.com ,则该域名下所有的子域名(如 a.dns.com,b.dns.com,c.dns.com等)都将指向与 *.dns.com 相同的IP地址。

泛解析的优先级低于指定子域名解析,也就是说存在*.dns.com和www.dns.com两条记录的情况下,访问www.dns.com会优先用后者解析。

具体实践方法:windows server支持DNS泛解析;如果拥有域名,在域名解析中也可以使用*解析。

泛解析作用

泛域名在实际运用非常广泛,比如实现无限二级域名功能,提供免费的url转发,在IDC部门实现自动分配免费网址,在大型企业中实现网址分类管理等等,都发挥了巨大的作用:

1、可以让域名支持无限的子域名(这也是泛域名解析最大的用途)。
2、防止用户错误输入导致的网站不能访问的问题
3、可以让直接输入网址登陆网站的用户输入简洁的网址即可访问网站
4、在域名前添加任何子域名,均可访问到所指向的WEB地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值