DNS协议
术语与约定
- 域名系统(DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
- DNS使用TCP和UDP端口53。
- DNS每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
概述
用于转换主机名和IP地址。
- 它是应用层协议,体现在:
- 是C/S架构
- 端到端发送dns报文
- 与其他应用层协议不同的是,dns主要为其他应用层协议服务,而不是直接面向用户。
提供的服务
- 映射域名与IP地址,并提供别名
- 为邮件服务器提供别名
- 负载分配(一个域名多个IP的时候)
域名解析详解
DNS查询有两种方式:递归和迭代。DNS客户端设置使用的DNS服务器一般都是递归服务器,它负责全权处理客户端的DNS查询请求,直到返回最终结果。而DNS服务器之间一般采用迭代查询方式。
- 客户端发送查询至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。
- 如果记录老化或不存在,则
工作机制特性
- dns具有分布式分层次解构
- dns能够缓存
记录与报文
记录
- Type:标志这是一条什么记录,见dns记录了什么
- Value:Name的对应值
- Name:Value的对应值
- TTL:本记录应该在缓存中呆多久
- 前12字节为首部域包括 + 标识符(16bit数字):查询的唯一标识 + 标志(0 or 1):0是查询 1是回答
- 查询问题区包括 + 名字字段:主机名 + 类型:想查什么记录
- 回答区:根据问题来回答,可能由多个回答
- 授权区即权威区,包含其他权威服务器的记录
- 附加区是一些备注信息
安全性
dns大多数情况下是安全的。
- 对于
DDos
攻击,DNS有包过滤系统和缓存服务,仅在DDos
攻击指向顶级服务器的时候稍微有些困扰。- 可以被中间人攻击(伪造回答哄骗客户主机)和DNS毒害攻击(伪造回答哄骗下一级dns服务器来缓存,从而欺骗客户主机),但是技术上很难实现。
- dns服务器本身可被利用于攻击其他服务器,但是至今为止只是个例。