DNS拾遗(一)
最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念。
常用概念:
TTL:
TTL为Time to live的缩写,网络相关地方存在于两个地方,一个是IP协议里,一个是DNS服务器上。
TTL in IP
IP协议里表示存活的时间,比如说TTL为126表示,这个IP包最大的存活时间为126秒。但是!IP包每经过一个路由器都会减一,也就是说一个IP包有可能因为两种情况而超时。一个是时间超时,一个是经过的路由太多(每经过一个路由叫做hop,中文貌似叫跳)。
这个值是发送数据包的那方设置的,也就是说我们每个人的系统里都有这么一个默认的TTL数。我们可以通过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
可以看到我目前系统的TTL默认数为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
我们发现这个TTL不是128,说明这个数据包经过了一些hop以后才到达最终的服务器。(128-115=13)。用tracert命令跟踪了一下具体有那几次转发,结果是经过了13个路由到达了最终目的地,正好符合我的猜想。
但是,真的如此么?其实不然,这个TTL是从服务器往我电脑上发包,到达我系统时剩余的TTL,至于为什么这么巧,因为对方系统的TTL设置和我系统是一样的。如何证明我是对的?
那我们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了,说明俺家路由器的TTL是64。
不同的操作系统默认的TTL是不同的,Linux系统的TTL值为64或255,Windows NT系统为128,Windows 98系统为32,UNIX为255。
TTL在DNS中的含义
TTL为Time To Live缩写(生存时间),也就是域名记录的有效更新时间,简单的说它表示DNS记录在DNS服务器上缓存的时间。
举个例子,我在浏览器中输入www.zhengyi.me,于是浏览器就向我当前网络连接的DNS服务器发一个询问,然后这个DNS服务器也找不到于是又向它的上一级DNS服务器发询问,就这么一层一层发送直到根域名服务器(实际情况还要复杂一点,不是根域名服务器就知道的一切)此DNS服务器如果知道则返回IP,如果不知道则返回一个它认为知道的服务器地址,浏览器就依次类推去询问,最后终于得到这个网址对应的IP,于是又一级一级返回。但是这个返回结果中有一个TTL的东西来告诉这个服务器应该缓存这个结果多久,比如说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的时候就会查询回来这个主机。配一个自己的域名的邮箱看起来感觉还是挺爽的。。。
未完待续。。。
DNS拾遗(一)的更多相关文章
- DNS拾遗(二)
MX Record补充 MX记录有优先级的概念,数字越小表示优先级越高.所以一个域可以配置多个不同优先级的MX记录,如果邮件通过第一优先级记录无法递送,则采用第二优先级,以此类推. TXT Recor ...
- 转:DNS拾遗
最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念. 常用概念: TTL: TTL为Time to live的缩写,网络 ...
- 6.DNS公司PC访问外网的设置 + 主DNS服务器和辅助DNS服务器的配置
网站部署之~Windows Server | 本地部署 http://www.cnblogs.com/dunitian/p/4822808.html#iis DNS服务器部署不清楚的可以看上一篇:ht ...
- Liunx下配置DNS服务
当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...
- ★Kali信息收集~4.DNS系列
★.1host:DNS信息 参数: 一般情况下,host查找的是A,AAAA,和MX的记录 案例: DNS服务器查询 host -t ns 域名 A记录和MX记录查询 host 域名(host - ...
- Node.js:DNS模块的使用
Nodejs的DNS模块包涵有关DNS查询和操作的方法,下面介绍该模块的基本用法以及实现一个DNS查询小工具. 1.获取DNS服务器地址 使用getServers方法,该方法返回一个IP地址组成的数组 ...
- Java DNS查询内部实现
源码分析 在Java中,DNS相关的操作都是通过通过InetAddress提供的API实现的.比如查询域名对应的IP地址: String dottedQuadIpAddress = InetAddre ...
- DNS报文格式(RFC1035)
一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions) 2.1 格式 后面分析报文的时候详细解释. ...
- Redis命令拾遗二(散列类型)
本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...
随机推荐
- mysql分页原理和高效率的mysql分页查询语句
该博来自网络转载!!!供自己学习使用!!! 以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些,更快一些,那我们又该怎 ...
- 深入理解Memcache原理 [转]
1.为什么要使用memcache 由于网站的高并发读写需求,传统的关系型数据库开始出现瓶颈,例如: 1)对数据库的高并发读写: 关系型数据库本身就是个庞然大物,处理过程非常耗时(如解析SQL语句,事务 ...
- java访问ftp的一些操作
通过java代码来访问ftp服务器,进行下载操作
- HDU2471_History of Languages
有意思的题目,给出两个自动机,判断这个两个自动机是否是等价的? 两个自动机是等价的,那么他们可接受的字符串集合一定是完全一样的. 于是我们可以从(0,0)开始bfs,每次看看在两个自动机上走到的两个点 ...
- app启动速度
跟踪代码发现,应用启动时的白屏会持续到draw调用完成,这个过程中任何耗时操作将导致白屏时间增长. 1.adb shell am start -W -n yourpakagename/MainActi ...
- 时间管理的若干Tips
时间管理的若干Tips 记下来 再好的记性也不如一支笔与一个本子. 买一支好点的笔于一个好点的本子,让自己有书写的欲望,将todo事项记下来. 小目标 太大太远的目标会使人气馁.通过将大目标分解再分解 ...
- Linux下连接MSSQL之安装FreeTDS
$ tsql -H MSSQL服务器服务IP -p 1433 -U MSSQL服务器登陆帐号 -P MSSQL服务器登陆密码http://www.cnblogs.com/ilovexiao/p/355 ...
- Android数据存储之SharedPreferences存储
安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...
- SQL Server 分区表
分区表可以提高查询效率 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理.这样文件的大小随 ...
- 关于原生JS获取类相关的代码
<script> var FungetElementsByClassName = function(str,root,tag){ if(root){ root = typeof root ...