DNS
概念
- DNS(domain name system)域名解析系统,作为将域名的IP地址的映射关系存放在分布式的数据库,DNS使用是UDP的53端口
- 域名:由ICANN机构统一管理
域名空间
-
根域:(根域名是最顶级的域名也就是一个”.“全世界只有13台根域服务器)
-
顶级域:(主要用于区分域名的用途)
- 组织类
- com 商业金融企业
- edu 教育机构
- org 社会非盈利组织
- ac 科研机构
- gov 政府部门
- net 互联网信息中心和运行中心
- 国家/地区域名
- cn 中国
- us 美国
- uk 英国
- 组织类
-
二级域名:二级域名网站就是网站的意思,相当于现实中的地址
-
主机名:区分不同服务
FQDN:完全限定域名 主机名.DNS后缀(二级域名)
DNS查询
查询循序
1) 浏览器缓存, (系统缓存, 路由器缓存)
2)根据自己的tcp/ip参数,向自己的首选DNS服务器发送DNS请求
3) DNS首先服务器收到客户机请求后,会查询自己的区域文件,若找不到域名的IP地址信息(将请求交到根域名服务器,需要配置跟提示)
4) 根域名服务器收到请求后由于根域服务器只维护顶级域服务器信息,会响应顶级域服务器IP
5) 首选DNS服务器根据根域名服务器相应的信息,将请求转发到顶级域服务器
6) 顶级域服务器收到响应后,由于顶级域名服务器只维护二级域名服务器信息,会相应域名的二级域服务器IP
7)首先DNS服务器根据顶级域相应的信息,将请求转发到二级域名服务器
8)二级域名服务器收到请求后,二级域名服务器里面维护的是该域名区域所有主机信息,包含了该域名主机信息,会将该域名的IP地址响应给首选DNS服务器
9)首选DNS服务器响应给客户端
查询方式
- 递归查询
- 当客户机请求自己的首选DNS服务器,首先服务器上有域名记录信息,直接响应给客户机(2和9)
- 迭代查询
- 首先服务器没有域名记录,通过一步一步去请求根域名服务器,顶级域名服务器,二级域名服务器,最终找到对应的域名记录信息(3到8)
查询内容
- 正向查询:通过域名查IP
- 反向查询:通过IP查域名
使用windows部署DNS服务器
使用linux(bind服务)
DNS服务器分类
- 主要名称服务器:存放区域(二级区域)中相关的设置,存放的区域文件的正本数据
- 辅助名称服务器:存放的副本数据,是从主要名称服务器复制过来的,不能修改
- 指控名称服务器:提供数据复制(可以简单的理解是DNS服务器中的某一个角色)
- 缓存(cache-only)域名服务器:里面没有区域文件,需要配置转发器
DNS记录
- A:主机记录,域名和IP地址的映射
- CNAME:别名记录
- SOA:权威名称服务器
- NS:名称服务器
- MX:邮件交换记录
- SRV:正在提供特定服务的服务器
- PTR:反向指针
区域传送
- 将主要名称服务器的区域文件传送到辅助名称服务器
- 区域传送使用的TCP协议
分析DNS流量
报文格式
- ID字段
- Flage标志(”0x“表示十六进制)(1标识“有,是”,0表示“没有,否”)
- 第1位:标识消息类型(0是”query请求“,1是“response响应”)
- 第2-5位:opcode 查询种类
- 第6位:标识是否是一个权威应答
- 第7位:标识是否截断超过的部分(一个UDP报文512字节)
- 第8位:是否请求递归
- 第9位:允许递归的标识
- 第10-12位:保留位
- 第13-16位:响应报文的应答
- 0 没有错误
- 1 格式错误
- 2 服务器错误
- 3 名字错误
- 4 服务器不支持
- 5 拒绝
- 6-15 保留位
- Questions问题计数:报文请求里面的问题记录数
- Answer RRs回答资源记录数:响应回答段中的应答记录数
- Authority RRs 授权段中的授权记录数
- Additional RRs附加段中的附加记录数
- Queries查询请求的内容
- name:查询的域名
- name length 域名字段长度
- Answers查询响应的内容
- name:查询的域名
- type:记录类型
- Class:协议组
- TTL:存活时间
- Data length:数据的长度
- Authoritative nameservers权威名称服务器信息
swers查询响应的内容- name:查询的域名
- type:记录类型
- Class:协议组
- TTL:存活时间
- Data length:数据的长度
- Authoritative nameservers权威名称服务器信息
- Additional records附加信息区