学习笔记:DNS是个啥

学习笔记:DNS是个啥

1、DNS提供的服务

​ 网络上识别主机有两种方式:主机名或IP地址,实际应用中,需要有一种能进行主机名到IP地址转换的目录服务,这就是域

名系统(Domain Name System,DNS)。

​ DNS是一个由分层的DNS服务器现的分布式数据库,使得主机能够查询分布式数据库的网络应用层协议,DNS服务器通常是运行BIND(Berkeley Internet Name Domain)软件的Unix机器。DNS协议运行在UDP之上,使用53端口。

​ 除了进行主机名到IP地址的转换之外,DNS还提供了其他一些服务:

  • 主机别名:一个主机名可以同时拥有多个不同的别名;

  • 邮件服务器别名:除了http协议访问网站可以使用dns,电子邮件smtp协议也同样使用dns来解析主机名和ip地址;

  • 负载分配:同一个主机名可以冗余配置多个ip地址,对应运行多台服务器,实现负载分配。

2、DNS工作原理

2.1分布式、层次数据库

  • 根DNS服务器

    有400多个根DNS服务器遍及全世界。这些根DNS服务器由13个不同组织管理。

  • 顶级域DNS服务器

    对于每个顶级域(如com、org、net、edu、gov等)和所有国家的顶级域(如uk、fr、cn、jp等),都有顶级域服务器集群。

  • 权威DNS服务器

    ​ 在互联网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。一个组织机构能选择实现它自己的权威DNS服务器以保存这些记录;另外一个方法是,该组织能够支付费用,让这些记录存储在某个服务提供商的一个权威DNS服务器中。

    还有一类重要的DNS服务器:本地DNS服务器,是ISP在接近用户端保存常用DNS数据的服务器。

    ​ 在DNS数据查询过程中,一般从请求主机到本地DNS服务器的查询使用递归查询,其余的查询使用迭代查询。

2.2DNS缓存

​ 为了降低访问时延并减少DNS报文数量,DNS广泛使用了缓存技术。在一个请求链中,当某DNS服务器接收一个DNS回答时,它能将结果缓存在本地。实践中,因为缓存,绝大多数的DNS查询都只会到本地DNS服务器和权威DNS服务器,而不会到顶级域DNS服务器或根服务器。

3、DNS记录和报文

​ DNS分布式数据库务中保存了资源记录(Resource Record,RR),提供了主机名到IP地址的映射。每个DNS回答报文包含了一条或多条资源记录。

​ 资源记录是一个包含了下列字段的4元组:(Name, Value, Type, TTL)

​ TTL是记录的生存时间,决定了资源记录应当从缓存中删除的时间。

  • Type = A,则Name是主机名,Value是该主机名对应的IP地址,因此,一条类型为A的资源记录提供了标准的主机名到IP地址的映射,一般称为A记录,如(www.foo.com, 123,45,67,8, A)。我们常说的二级域名,也就是一条A记录。

  • Type = NS,则Name是个域(如foo.com),而Value是个主机名。这个记录用于沿着查询链来路由DNS查询,如(foo.com, dns.foo.com, NS)就是一条类型为NS的记录。用来指定域名由哪台DNS服务器解析,一个域名可以由多个DNS服务器来解析。

  • Type = CNAME,则Value是别名为Name的主机对应的规范主机名。该记录提供主机别名,如(web.foo.com, www.oof.com, CNAME)。域名转发、CDN常用到。

  • Type = MX,则Value是别名为Name的邮件服务器的规范主机名。可以通过MX记录实现web服务器和邮件服务器使用同一个域名。

  • 其他:AAAA,解析为IPV6记录;TXT,长度限制255的文本内容,用于域名核验(签证书等场景需证明有域名维护权限)、SPF记录(反垃圾邮件)等;

3.1DNS报文

​ DNS只有查询和回答2种报文,而且格式相同。

前12个字节是head区域,标识符是个16比特的数,用来匹配单次查询和回答,标志位区分是查询还是回答报文;问题区域包含查询信息,包括:名字字段、类型字段等。可以使用nslookup、dig工具查询DNS报文。

3.2在DNS数据库中插入记录

​ 注册登记机构是一个商业实体,在收取费用后,验证域名的唯一性及将域名输入DNS数据库。比如:

(www.foo.com, dns1.foo.com, NS)

(dns1.foo.com, 123.456.78.9, A)

​ 通常域名服务商提供配置界面,录入对应的A记录后,服务商负责将数据往各类DNS服务器分发、同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值