DNS记录和报文(records and messages)

DNS记录和报文(records and messages)

首先明白几个概念

资源记录(resource records, RRs),

DNS资源记录就是DNS记录。
DSN服务器一起实现DNS分布式数据库,这些数据库存储了resource records, (RRs), RRs提供了hostname-to-IP address mapping

每个DNS回复报文都carry了一个或者多个resource records. 资源记录到底长什么样子呢?

一个资源记录是一个四元组。
(Name, Value, Type, TTL)

  • TTL是记录的生存时间,它决定了这个记录什么是皇后要从缓存中被移除,不是很重要,我们接下来主要研究前3个字段,Name, Value, Type

Name和Value的意义取决于Type

  • if Type = A, Name就是主机名,Value就是主机的IP 地址。因此,一个A类型的记录提供了一个标准的hostname-to-IP地址的映射
  • If Type = NS, Name是域名(domain,例如foo.com), 值是这个域名的权威DNS服务器。例如(foo.com, dns.foo.com, NS)
  • If Type = CNAME, Name是别称,Value是规范名称(canonical name),用来查询别称的规范主机名,例如(foo.com, relay1.bar.foo.com, CNAME) is a CNAME record
  • If Type = MX, Name是邮件服务器的别称,Value是邮件服务器的规范名称,例如(foo.com, mail.bar.foo.com, MX)

DNS报文

DNS是个应用层协议,他规定了DNS报文的格式,那么DNS的报文格式到底是怎么样的呢?
DNS记录和报文(records and messages)
还是有点复杂的,先记住头部分一共有12个字节吧。