最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念。

常用概念:

TTL:

TTL为Time to live的缩写,网络相关地方存在于两个地方,一个是IP协议里,一个是DNS服务器上。

TTL in IP

IP协议里表示存活的时间,比如说TLL为126表示,这个IP包最大的存活时间为126秒。但是!IP包每经过一个路由器都会减一,也就是说一个IP包有可能因为两种情况而超时。一个是时间超时,一个是经过的路由太多(每经过一个路由叫做hop,中文貌似叫跳)。

这个值是发送数据包的那方设置的,也就是说我们每个人的系统里都有这么一个默认的TLL数。我们可以通过ping命令来做一下实验。

>ping 127.0.0.1

正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128 127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms

可以看到我目前系统的TLL默认数为128

那我们ping一下一个网址

>ping www.zhengyi.me

正在 Ping urls61.xundns.cn [174.139.132.211] 具有 32 字节的数据:
来自 174.139.132.211 的回复: 字节=32 时间=350ms TTL=115
来自 174.139.132.211 的回复: 字节=32 时间=359ms TTL=115
来自 174.139.132.211 的回复: 字节=32 时间=369ms TTL=115
来自 174.139.132.211 的回复: 字节=32 时间=354ms TTL=115 174.139.132.211 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 350ms,最长 = 369ms,平均 = 358ms

我们发现这个TLL不是128,说明这个数据包经过了一些hop以后才到达最终的服务器。(128-115=13)。用tracert命令跟踪了一下具体有那几次转发,结果是经过了13个路由到达了最终目的地,正好符合我的猜想。

但是,真的如此么?其实不然,这个TLL是从服务器往我电脑上发包,到达我系统时剩余的TLL,至于为什么这么巧,因为对方系统的TLL设置和我系统是一样的。如何证明我是对的?

那我们ping一下自己家的路由器看看。

>ping 192.168.1.1

正在 Ping 192.168.1.1 具有 32 字节的数据:
来自 192.168.1.1 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.1.1 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.1.1 的回复: 字节=32 时间=2ms TTL=64
来自 192.168.1.1 的回复: 字节=32 时间=1ms TTL=64 192.168.1.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 1ms,最长 = 2ms,平均 = 1ms

只剩下64了,说明俺家路由器的TLL是64。

不同的操作系统默认的TTL是不同的,Linux系统的TTL值为64或255,Windows NT系统为128,Windows 98系统为32,UNIX为255。

TLL在DNS中的含义

TTL为Time To Live缩写(生存时间),也就是域名记录的有效更新时间,简单的说它表示DNS记录在DNS服务器上缓存的时间。

举个例子,我在浏览器中输入www.zhengyi.me,于是浏览器就向我当前网络连接的DNS服务器发一个询问,然后这个DNS服务器也找不到于是又向它的上一级DNS服务器发询问,就这么一层一层发送直到根域名服务器(实际情况还要复杂一点,不是根域名服务器就知道的一切),最后终于得到这个网址对应的IP,于是又一级一级返回。但是这个返回结果中有一个TLL的东西来告诉这个服务器应该缓存这个结果多久,比如说400,就是意味着接下来的400秒钟如果有人再次来询问就直接返回这个结果。超过400秒则重新去询问。

这个对于网站的访问速度会有一点点的影响,在配置的时候也需要根据实际情况。DNS.LA有一个推荐的配置:https://www.dns.la/support/art_324.aspx

A Record

A代表Address,A记录将你的域名映射到某个IP地址上。通过这个配置可以将不同的子域名转到不同的地址上去。而且同一个域名也是有办法配成多个IP的,这样DNS服务器会在被询问的时候挨个的返回不同的IP,这也是一种负载均衡的办法。

比如配置

www.zhengyi.me     -->  10.124.12.123
dream.zhengyi.me --> 10.124.52.120

用nslooukup或Linux下的host可以查看一个域名对应的主机,我们试试看Google.com的。可以看到Google就搞了好多不同的主机,当然还有更多。

>nslookup google.com
服务器: hangzhou.zjhzptt.net.cn
Address: 202.101.172.35 非权威应答:
名称: google.com
Addresses: 173.194.127.32
173.194.127.40
173.194.127.46
173.194.127.39
173.194.127.36
173.194.127.38
173.194.127.41
173.194.127.34
173.194.127.35
173.194.127.33
173.194.127.37

CNAME Record

Canonical Name的缩写,叫做别名记录或者规范名字。这个允许我们将多个子域名指向随意的的主机上。那个和A记录有啥区别的,这个别名记录映射的是另一个域名而不是IP。那么为什么有了A记录还需要这个东西呢?

加入我们有两个子域名,www.zhengyi.me和dream.zhengyi.me,但我们只有一台主机。我们可以通过A记录配置成这样,

www.zhengyi.me     -->  10.124.124.124
dream.zhengyi.me --> 10.124.124.124

但是万一我们需要更改主机的时候就需要将两个都修改掉,那么会需要更多的时间去生效,所以就可以这么设置。这样子就需要更改一个A记录而不需要改所有的记录。

www.zhengyi.me     -->  10.124.124.124
dream.zhengyi.me --> www.zhengyi.me

MX Record

Mail Exchange的缩写。作用是将自己域名下的邮件服务器配置到自己的邮件服务器上去。我们发邮件到i@zhengyi.me的时候就会查询回来这个主机。配一个自己的域名的邮箱看起来感觉还是挺爽的。。。

未完待续。。。

作者:imjustice
出处:http://imjustice.cnblogs.com/

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但未经作者同意必须保留此段声明,且在文章页面出原文链接,如有问题可通过i@zhengyi.me联系我。

 

DNS(转载)的更多相关文章

  1. DNS子域委派配置案例[转载]

    最近在研究linux dns 在51上面看见这篇文章,感觉讲的很透彻,随转载,方便以后自己查阅 原文地址:http://www.51osos.com/a/Linux_CentOS_RedHat/Lin ...

  2. 转载 DNS查询流程简介

    转载请注明出处:http://blog.csdn.net/luotuo44/article/details/45545059 DNS(domain name system),读者们或多或少都听过,就是 ...

  3. 转载:DNS解析过程详解

    2015-09-20 此好文是转载,如有侵权联系我,立马删掉 DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com. ...

  4. 软件架构自学笔记-- 转载“虎牙在全球 DNS 秒级生效上的实践”

    虎牙在全球 DNS 秒级生效上的实践 这次分享的是全球 DNS 秒级生效在虎牙的实践,以及由此产生的一些思考,整体上,分为以下 5 各部分: 背景介绍: 方案设计和对比: 高可用: 具体实践和落地: ...

  5. DNS解析过程详解(转载)

    DNS解析过程详解(转载) DNS Domain Name System 域名系统,它就是根据域名查出IP地址.    先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址ww ...

  6. DNS 原理入门 - 阮一峰(转载)

      DNS 原理入门 作者: 阮一峰 日期: 2016年6月16日 DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 本文详细介绍DNS的原理,以及如何运用工具软件 ...

  7. [转载]--Ubuntu下修改DNS重启也能用的方法

    安装好Ubuntu之后设置了静态IP地址,再重启后就无法解析域名.想重新设置一下DNS,打开/etc/resolv.conf cat /etc/resolv.conf# Dynamic resolv. ...

  8. [转载]C#.NET中Dns类的常用方法及说明

    IP是一种普遍应用于因特网.允许不同主机能够相互找到对方的寻址协议.IP地址由4个十进制的数字号码所组成,而每一个号码的值介于0~255之间,它虽然解决了网络上计算机的识别问题,但是IP地址确不容易记 ...

  9. Ubuntu中设置静态IP和DNS(转载)

    原文地址:http://blog.sina.com.cn/s/blog_669421480102v3bb.html VMware 中使用网络,对虚拟机设置静态IP:在Ubuntu中设置静态IP共两步: ...

随机推荐

  1. Redis基础数据结构

    Redis数据库中每个键值对都是由对象( c 的结构体对象)组成的. 数据库键总是一个字符串对象(string object) 数据库键的值可以使字符串对象.列表对象(list object).哈希对 ...

  2. VS打包方法(安装和部署简介)——内含大量图片,密症慎入!

    友情提示:内含大量文字.图片,密集恐惧症者慎入! 主要记述一下利用微软集成开发环境VS打包的方法和详细步骤. 1.新建打包工程 打开VS,文件->添加项目->新建项目(如图1),在添加新项 ...

  3. UVA Live Archive 4394 String painter(区间dp)

    区间dp,两个str一起考虑很难转移. 看了别人题解以后才知道是做两次dp. dp1.str1最坏情况下和str2完全不相同,相当于从空白串开始刷. 对于一个区间,有两种刷法,一起刷,或者分开来刷. ...

  4. Redis(5.0.0)持久化AOF和 RDB 结合源码分析

    主要是挖个坑.候补(代码还没看完..) https://github.com/antirez/redis/tree/5.0 一.Redis保存持久化文件 二.Redis启动加载持久化文件 src/se ...

  5. 2018.2.7 css 的一些方法盒子模型

    css 的一些方法 1.盒模型代码简写 盒模型的外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左.具体应用在margin ...

  6. js中的||、&&与!用法

    &&和||在JQuery源代码内尤为使用广泛,由网上找了些例子作为参考,对其用法研究了一下: 1. && function a(){ alert("a&quo ...

  7. JSP出现"属性值[request.getParameter("myMessage")]引用["],在值内使用时必须被转义"的解决方法

    写JSP时出现属性值[request.getParameter("myMessage")]引用["],在值内使用时必须被转义. 源代码: <jsp:setPrope ...

  8. position的 relative+absolute实现固定标签在窗口的某个位置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. http 高级配置 虚拟主机,https 编译安装

    目录 http 高级配置 虚拟主机,https 编译安装 http 重定向 https HSTS HSTS preload list http 自带的工具程序 httpd的压力测试工具 实现状态页 反 ...

  10. python3中文件的读与写

    Python open() 函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出错误 完整语法:open(file, mode='r', buf ...