域名服务系统(DNS)

DNS:名字到IP转换;电子邮件选路信息;分布式数据库

解析器:是通过gethostbyname(3)和gethostbyaddr(3)来实现的

最常用的名字服务器是BIND

DNS基础

域名的每个标志符的最大长度是63个字符长度,不区分大小写

每个节点域名是从该节点到根用”.”连接起来的字符串

每个节点域名必须不一样,但节点标志可以一样

绝对域名:以”.”结尾的域名

不完整域名:不以点结尾的域名。如果不完整的域名由两个或两个以上的标号组成则认为它是完整的。

1)         arpa是用作地址到名字转换的特殊域

2)         7个3字符长的是普通域

3)         2个字符长的是国家域名

普通域的含义:

  • DNS中的域名授权:网络信息中心(NIC)负责分配顶级域和委派其他地区域的授权机构
  • 区域:dns的一棵子树
  • 一个区域的授权机构负责向该区域提供多个名字服务器,当有新系统加入该区域时,该区域的DNS管理者为该新系统申请一个域名和一个IP地址,并将信息加入到名字服务器数据库。
  • 一个名字服务器可以负责一个或多个区域
  • 主辅DNS的区别:主DNS是从数据库取信息,辅DNS是从主DNS取信息。
  • 管理员将新用户信息加入磁盘文件,并让主DNS重新加载配置文件,辅DNS定时询问主DNS是否有新数据。
  • 每个名字服务器知道如何同根服务器联系,知道其IP地址。
  • 每个根服务器知道其二级域的名字和位置
  • DNS的高速缓存特性

DNS报文格式

查询和响应报文

标识:请求和响应是否匹配

标志:

问题部分

格式:

问题具有查询类型,查询和响应都有类型,常见类型如下所示:

其中A类型获得名字的ip地址,ptr查询获得ip对应的域名

应答报文的资源记录字段

域名:资源对应的名字,格式和上面的查询名一样。

类型:RR的类型码。和查询类型的值是一样的。

类:通常为1指Internet数据

生存时间:客服端记录该资源的秒数,通常是两天。

资源数据长度:资源数据的数量。

资源数据:和类型有关。对于类型为1(A记录),资源数据是4字节的ip地址。

 名字查找过程

  1. 客服端解析器查看/etc/resolv.conf,得到名字服务器的ip地址和默认域名(如果resolv.conf中有domain ****,则 ****+”.”为默认域名,否则直接为”.”)。
  2. 将需要查询的名字进行整理(如果名字不是以”.”结尾则加上默认域名(例如:查询名字为www.163而默认域名为com.则最后得到名字为www.163.com.)否则为绝对域名),然后按配置组成DNS请求报文,最后发送到名字服务器。
  3. 接收应答。

host 指令可以直接触发DNS请求报文,并能查询对应主机所有的接口地址。

Eg:

[root@dhcp_host ~]# host www.baidu.com

www.baidu.com is an alias for www.a.shifen.com.

www.a.shifen.com has address 119.75.213.61

www.a.shifen.com has address 119.75.216.30

 查询域名的命令

dig

nslookup

1.       客服端解析器查看/etc/resolv.conf,得到名字服务器的ip地址和默认域名(如果resolv.conf中有domain ****,则 ****+”.”为默认域名,否则直接为”.”)。

2.       将需要查询的名字进行整理(如果名字不是以”.”结尾则加上默认域名(例如:查询名字为www.163而默认域名为com.则最后得到名字为www.163.com.)否则为绝对域名),然后按配置组成DNS请求报文,最后发送到名字服务器。

3.       接收应答。

指针查询

举例

当一个组织加入Internet并获得DNS域名空间的授权时,他也获得in-addr.arpa(见本章第一张图)域名空间的授权,例如B类网络地址128.23.0.0注册域名为luo.cai.min.com,则同时获得23.128.in-addr.arpa域名;主机128.23.1.1注册名为piao.xiang.luo.cai.min.com,则同时获得1.1.23.128.in-addr.arpa的域名。

指针查询(从ip地址得到相应的域名)就是根据in-addr.arpa这个域名空间进行查询的,例子如下:

主机名检查

步骤:

1)         根据ip得到域名

2)         根据域名得到ip

3)         检查得到的所有ip中是否包含源ip

举例:

 资源记录

资源记录类型

高速缓存

1)         所有名字服务器都使用高速缓存

2)         高速缓存由名字服务器维护,而不由名字解析器缓存

3)         在该站点所有使用名字服务器的主机均能共享服务器的高速缓存

4)         名字服务器只会在超出高速缓存的情况下才进行查询

5)         在/etc/resolv.conf中删除nameserver 行将导致,该主机的名字解析器使用本地的名字服务器

6)         不应该向根名字服务器发送期望递归的查询,他们只用来提供其他授权服务器的地址

7)         根服务器的应答中不包含回答资源记录,而包括授权名字服务器的授权资源记录和指出这些授权名字服务器地址的附加资源记录

8)         回答来自授权服务器则回答是授权的,回答来自高速缓存则回答不是授权的

9)         名字服务器一般轮询根名字服务器获得往返时间,然后选择往还时间最小的名字服务器

使用UDP还是TCP

1)         当DNS应答中的TC(截断)被设置时说明响应超过512字节,但只返回前面的512字节,客户端收到响应后用TCP重发请求,使得响应可以包含所有的应答内容

2)         辅名字服务器根据主名字服务器进行更新时,用TCP,因为数据量大

3)         由于DNS报文通常在广域网上传播,所以丢包和延时比较严重。所以,名字解析器和服务器都必须有很好的重传和超时程序

一个全面的例子

例子描述

转载于:https://www.cnblogs.com/manziluo/p/5838870.html

TCP/IP详解 笔记十一相关推荐

  1. TCP/IP详解--第十一章

     第11章 UDP:用户数据报协议 11.1  引言   UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个  UDP .   数据报,并组装成一份待发送的  I P 数据报 ...

  2. TCP/IP详解笔记----第一章:概述

    第一章 概述 这一章主要介绍了TCP/IP的概貌.包括分层.网络地址.客户-服务器模型.常见知名应用层服务端口号等等.需要重点掌握和了解的是以下知识点. 1.TCP/IP的重要作用: 很多不同厂商生产 ...

  3. TCP/IP详解 笔记八

    UDP协议 UDP是传输层协议,提供无连接不可靠的数据传输,其优点失效率高,确定确定是无序不可靠. 报文格式 UDP头部 TCP和UDP的端口号是独立的 UDP长度是指UDP数据报的总长度 UDP的校 ...

  4. TCP/IP详解 笔记十三

    TCP协议(一) 概述 特点 1,  面向连接可靠的字节流服务 2,  只有两方通信,不能用于广播或多播 3,  应用数据被TCP分隔为最合适发送的数据段,传给IP协议栈 4,  发送端并启动定时器, ...

  5. TCP/IP详解 笔记九

    广播和多播 多播和广播只能用于UDP包,TCP明确在两个进程间建立连接. 多播:帧只传送给属于多播组的多个接口 主机对帧的过滤过程: 通常网卡只接收那些目的地址为本物理接口地址或广播地址的帧:设置为混 ...

  6. TCP/IP 详解笔记

    最早的 TCP 协议文档是 RFC793. TCP 提供一种面向连接的.可靠的字节流服务. 面向连接容易理解,那么什么是字节流服务呢? 答:两个应用程序通过 TCP 连接交换 8 bit 字节构成的字 ...

  7. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

  8. 《TCP/IP详解卷1:协议》第6章 ICMP:Internet控制报文协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  9. TCP/IP详解--学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

最新文章

  1. 解决 VCENTER ROOT 密码过期无法登陆 USER PASSWORD EXPIRED
  2. 【Cocosd2d实例教程三】Cocos2d瓦片地图的导入
  3. 串口使用stream_使用SerialPort库进行Node物联网项目开发
  4. 【年度盘点】10个热门Python练习项目
  5. 浏览器各个属性的作用
  6. java线程创建方式_Java创建线程安全的方法
  7. php 判断两个数组是否相等
  8. 老白聊数据-关于销售预测的那些事
  9. android风格ppt模板下载,PPT模板大全app下载
  10. matlab的setdiff函数,matlab setdiff函数
  11. OpenCV图像阈值:简单阈值、自适应阈值、OTSU、TRIANGLE
  12. python爬取小猪短租信息
  13. php条件 效率高,PHP高效率写法
  14. 怎样编辑PDF,PDF怎么删除页面
  15. html字体标签设计,36个重要的HTML标签
  16. html写樱花场景的程序,描写樱花的优美语句,樱花飘落的场景描写
  17. 物联网卡设置_物联卡中心:物联网卡这样设置一下上网全程4G,建议收藏!
  18. java jar 指定路径_java – 指定jar的类路径
  19. bemusic使用帮助
  20. BIOS实战之读取文件

热门文章

  1. PDE6 Transport with decay
  2. 推荐系统思维导图——第二章
  3. 在线民宿满意度测评项目[开源]
  4. android 使用so库,Android 使用SO库
  5. java jodd_Jodd :一款优雅的 Java 工具集
  6. poj 3017 Cut the Sequence(DP+单调队列)
  7. matlab模块里有s,求助!!S-Function做通用模块
  8. taro更新页面数据_Taro 全局数据状态管理
  9. Firebug无法添加到最新版firefox55.0.*中解决办法
  10. linux命令:linux集群系列之一---LVS类型解析