DNS作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用TCP和UDP端口53。全球范围有386个“根域名服务器”,分成13组,分别编号为A至M)。

域名解析Address Resolution

以查询 zh.wikipedia.org 为例:

客户端发送查询报文"query zh.wikipedia.org"至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。
如果记录老化或不存在,则

  1. DNS服务器向根域名服务器root name server发送查询报文"query zh.wikipedia.org",根域名服务器返回 .org 域的权威域名服务器地址,这一级首先会返回的是顶级域名的权威域名服务器。
  2. DNS服务器向 .org 域的权威域名服务器authoritative name server发送查询报文"query zh.wikipedia.org",得到 .wikipedia.org 域的权威域名服务器地址。
  3. DNS服务器向 .wikipedia.org 域的权威域名服务器发送查询报文"query zh.wikipedia.org",得到主机 zh 的A记录,存入自身缓存并返回给客户端。

从客户机到本地DNS服务器之间是递归查询,而本地DNS与其他DNS服务器之间是迭代查询;

域名解析器DNS resolvers

The client-side of the DNS is called a DNS resolver. It is responsible for initiating and sequencing the queries that ultimately lead to a full resolution (translation) of the resource sought, e.g., translation of a domain name into an IP address.

A DNS query may be either a non-recursive query or a recursive query:

  • A non-recursive query is one in which the DNS server provides a record for a domain for which it is authoritative itself, or it provides a partial result without querying other servers.
  • A recursive query is one for which the DNS server will fully answer the query (or give an error) by querying other name servers as needed. DNS servers are not required to support recursive queries.

The resolver, or another DNS server acting recursively on behalf of the resolver, negotiates use of recursive service using bits in the query headers.
Resolving usually entails iterating through several name servers to find the needed information.

记录类型

  1. 主机记录(A记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
  2. 别名记录(CNAME记录): RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
  3. IPv6主机语录(AAAA记录): RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
  4. 服务位置记录(SRV记录): RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。
  5. NAPTR记录: RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。

域名污染DNS spoofing

一般来说,在互联网上一般都有可信赖的域名服务器,但为减低网络上的流量压力,一般的域名都会把外部的域名服务器资料暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址。一部连上了互联网的电脑都会使用互联网服务供应商提供的域名服务器。这个服务器一般只会服务供应商的客户,通常都会将部分客户曾经请求过的域名暂存起来,这种服务器被称为非权威服务器,其应答称非权威应答。缓存污染攻击就是针对这一种服务器,以影响服务器的用户或下游服务。

在中国大陆,对所有经过防火长城Great Firewall的在UDP的53端口上的域名查询进行IDS入侵检测,一经发现与黑名单关键词相匹配的域名查询请求,会马上伪装成目标域名的解析服务器返回虚假的查询结果。由于通常的域名查询没有任何认证机制,而且域名查询通常基于无连接不可靠的UDP协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。

  • 对于不了解相关知识的网民来说,由于系统默认使用的ISP提供的域名查询服务器查询国外的权威服务器时即被防火长城污染,进而使其缓存受到污染,因此默认情况下查询ISP的服务器就会获得虚假IP地址;而用户直接查询境外域名查询服务器(比如 Google Public DNS)时有可能会直接被防火长城污染,从而在没有任何防范机制的情况下仍然不能获得目标网站正确的IP地址。
  • 由于受限于TCP连接的可靠性,防火长城理论上未对TCP协议下的域名查询进行污染,故现在能通过强制使用TCP协议查询真实的IP地址。而现实的情况是,防火长城对于真实的IP地址也可能会采取其它的手段进行封锁,或者对查询行为使用连接重置的方法进行拦截,故能否真正访问可能还需要其它FQ的手段。

2014年1月21日下午三点半,中国互联网顶级域名解析不正常,出错网站解析到的网址是65.49.2.178,这个IP位于美国北卡罗来纳州的Dynamic Internet Technology,即ziyoumeng的开发公司。

转载于:https://www.cnblogs.com/linyx/p/3749067.html

Network | DNS相关推荐

  1. RouterOS的DNS设置说明

    1. IP ==> DHCP Server ==> Network ==> DNS Server 2. IP ==> DNS 3. Interfaces ==>  ppo ...

  2. 整理一些ps4的DNS

    主dns:202.45.84.58 香港特别行政区 副dns:203.80.96.10 香港特别行政区 香港宽频 Hong Kong BroadBand Network DNS 203.80.96.1 ...

  3. 性能优化(1)-DNS预解析

    DNS预解析 原理 如何使用 打开和关闭DNS预解析 自动解析 手动添加解析 在浏览器中设置 看看淘宝的DNS预解析 使用场景 如何更好的使用? 对哪些资源做手动prefetch 域名发散和域名收敛 ...

  4. 为租户下的虚机提供IPv6 DNS服务(by quqi99)

    版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99) 问题 当虚机运行下列代码时,我们需要考虑为tenan ...

  5. 如何配置SonicWALL DNS代理

    SonicWALL DNS Proxy配置指南 配置手册 版本1.0 2017年12月18日 by Dantalian Question/Topic 如何配置SonicWALL防火墙上的DNS代理 A ...

  6. DNS及DDNS动态域名解析

    使111非权威dns不再向114权威dns询问,向自己询问,这个也属于文件共享想搭建一个类似114功能的dns服务器 DNS系统中,常见的资源 记录类型 主机记录(A记录 A记录是用于名称解析的重要记 ...

  7. 电信、网通、联通等恶意DNS劫持跳广告页面的解决方法

    中国电信.网通.联通ADSL用户必读:中国电信.网通.联通劫持dns(中国电信.网通.联通劫持ie浏览器)解决方案D... 宽带连接有 也能上网但是本地连接一直显示为受限制的解决方法 我的电脑一直显示 ...

  8. 火狐浏览器关闭ipv6 dns

    地址栏输入about:config 找到: network.dns.disableIPv6 默认为ture开启,改为flase可禁用ipv6 65.0.1(64位,linux)

  9. DNS优化的原理和方法

    Yahoo和Google都有自己的建设高性能网站最佳实践, 我不做赘述, 需要了解的自行查阅资料: Yahoo的: Best Practices for Speeding Up Your Web Si ...

最新文章

  1. jmeter 测试 api 接口方法
  2. angular轮播图
  3. cpp 条件判断 大于等于_第31p,if条件语句,请满足我的要求
  4. asp.net如何读取Excel文件
  5. 编写多线程Java应用程序常见问题
  6. 女孩子应该养成的好习惯
  7. 分布式版本控制系统Git的安装与使用(作业2)
  8. [渝粤教育] 广东-国家-开放大学 21秋期末考试中国近现代史纲要(A)10881k1
  9. asp.net使用My97 Date Picker时设置默认起始时间为n年之前的今天
  10. html 盒子写法,CSS盒子模型
  11. python全栈开发网络_Python全栈开发:django网络框架(二)
  12. 2021-08-17 String to Integet atoi, ratate list
  13. java 密码生成器_[Java小白]WIFI纯数字密码字典生成器
  14. redhat官方文档下载方法
  15. C/C++编程学习:百行代码实现小游戏(剪刀石头布)
  16. 攻防世界萌新misc-wp
  17. wgc84 笛卡尔_从经纬度到笛卡尔坐标的转换
  18. Unity如何调用摄像头并显示在窗口内
  19. JS逆向之补环境过瑞数详解
  20. (笔记)第一章:零基础入门深度学习

热门文章

  1. 百度对TOP等冷门域名冷淡
  2. 【hrbust2294】方方正正
  3. function与感叹号!
  4. linux下的dns服务器
  5. RabbitMq(七) Topic模式介绍及代码示例
  6. C语言文件指针的基本函数介绍包含了fpoen、fclose、fgetc、fputc、fscanf、fprintf、fgets、fputs、fread、fwrite函数以及文件定位函数.
  7. zookeeper专题:zookeeper集群模式下,leader选举流程分析
  8. 配置配置DruidDataSource
  9. Json转换利器Gson-Gson注解和GsonBuilder
  10. Java verts_Java-JOGL绘制VBO黑屏