① 计算机是如何自动获取的IP地址的
设置自动获取IP地址方法:
(1)右键“网络链接”选择“属性”打开网络连接管理界面。
(2)在打开的窗户中找到:Internet协议(TCP/IP) 双击打开或者单击选中,单击属性。
(3)选择自动获取IP地址和选择自动获取DNS服务器地址。
② 浅谈DNS域名解析系统之Local DNS
域名解析系统就像是一本巨大的“地址簿”,记录全世界所有网站域名对应的IP地址。但是这本“地址簿”的记录分布在全球各地的权威域名服务器上,要在里面查到一条域名记录可不是一件简单的事情,需要一个熟悉规则的代理人帮忙----本地域名服务器Local DNS。
域名解析整体流程:
这张图的右侧部分就是网站域名的“地址簿”,也就是权威域名服务器,左边是用户侧的部分,从图中就可以看出来,主机浏览器并没有直接访问域名系统进行查询,而是通过本地域名服务器实现域名查询的操作。
1: 用户在浏览器地址栏输入http://www.xbank.com,浏览器向本地域名服务器发起查询‘www.xbank.com’的IP地址
2-3: 本地域名服务器向根发起查询,根确认自己没有www.xbank.com对应的地址,但是知道这个域名是属于com下的域名,于是返回顶级域名com的名字服务器地址
4-5: 本地域名服务器继续向com发起查询,com确认自己没有www.xbank.com对应的地址,但是知道这个域名是属于xbank.com下的域名,于是返回xbank.com的名字NS服务器地址
6-7: 本地域名服务器继续向xbank.com发起查询, xbank.com确认有这个域名对应的IP地址,于是返回www.xbank.com的IP地址
8: 本地域名服务器获得地址后将该地址返回给浏览器。浏览器通访问该地址,打开网站页面
大部分人认为域名是由配置在主机里的本地域名服务器来解析的,其实这种观点是不对的,本地域名服务器本身不具备权威域名服务器解析域名的功能,它的作用有两个:第一,代替用户设备参与域名查询的迭代过程,帮助获取域名查询结果返回给用户设备;第二,缓存域名查询记录,当其他用户发起相同的域名查询请求时可以直接返回查询结果,可以加快域名查询速度,同时也降低了权威服务器,尤其是根服务器的工作压力。
本地域名服务器给我们访问互联网带来很大便利,但也埋下了隐患。从域名查询的流程中可以看出,所有要访问互联网的设备都必须配置本地域名服务器才可以正常访问网站域名。试想一下如果黑客控制了某个运营商的Local DNS服务器,修改某个A记录到黑客伪造的站点,那么用户的访问该网站的信息就会被劫持,实际上用户输入的域名以为是访问到目标网站,其实真网站的域名解析被劫持解析为假网站的IP地址,这样用户在无知觉的情况下就会访问到这个假网站(也称钓鱼网站),并泄露个人信息,这种攻击方式叫做域名劫持(如图2)。当然,域名劫持不一定是劫持到钓鱼网站,也可能是一些广告页面(骗取流量),只要打开的网站不是想访问的目标网站,那域名劫持的可能性就很大了。域名劫持可以发生在域名查询流程的各个环节,很明显本地域名服务器是最薄弱的一个环节,大部分个人电脑本地域名服务器配置的是家用路由器(通常是自动获取,包括手机连公开的wifi,获取的本地域名服务器也是wifi的地址),而家用路由器可能连出厂密码都没改过,要获得控制权限毫无难度。
其次,公共的本地域名服务器本身的稳定性也遭到诟病,由于公共域名服务器的公开免费的特性,在访问量大或者互联网线路不稳定的时候,加上各运营商之间互联互通的问题,经常会出现解析异常的情况,比如通过电信线路访问联通的本地域名服务器可能出现解析超时的情况。对于多线路冗余的企业用户来说,配置哪个运营商本地域名服务器是一个令人困扰的问题。
另外,域名缓存时间虽然通常跟随权威服务器TTL设置,但是本地域名服务器是有权限覆盖这个设置的,若本地域名服务器配置不正规,将缓存时间设置的极长,那么域名绑定地址的更新就会成为一个问题,不管权威服务器如何更新IP,本地域名服务器上的域名由于还在缓存时间内就不会主动到权威域名服务器更新IP地址,使用这台域名服务器的用户很长时间内只能访问到旧网站,唯一的办法是建议用户换个本地域名服务器,或者通知本地域名服务器管理员刷新缓存。
对于互联网用户来说,面对本地域名服务器的问题可以尝试更换可信的第三方的本地域名服务器。企业用户考虑可用性、稳定性、安全性的需求,建议自建本地域名服务器。
自建本地域名服务器将直接对域名进行迭代查询,可以规避互联网本地域名服务器被劫持的问题,同时通过负载均衡设备建立本地域名服务器池,可以极大的提高本地域名服务的可用性和稳定性。另外,本地域名服务器的解析日志数据具有极高的分析价值,我们知道中毒或者被控的服务器会主动向外发起访问,此时通常会解析一个异常的黑域名,通过对本地域名服务器的解析日志的监控可以快速发现识别被控服务器,提升互联网安全防护能力。
自建本地域名服务器虽然可以保证本身的可用性和安全性,但依然无法实现互联网域名解析成功率100%。从域名整体解析流程可以看到,域名解析是一个全球互联网域名服务器迭代查询访问的过程,其中任何一个环节出问题都会导致域名解析缓慢、解析失败等情况的出现,这在复杂的互联网环境下比较常见,与互联网质量、各层级的权威服务器状态都有关系,作为终端用户很难跟踪到问题的根本原因,建议应用系统建设时考虑容错能力,在解析失败后进行多次尝试,必要时考虑应急方案,直接通过IP访问目标网站。
好了,以上就是本地域名服务器的介绍,它在整个互联网访问环节中是一个看起来不起眼,但是极其重要的角色,希望各位运维同仁能通过这篇文章重新审视本地域名服务器在心目中的地位。
--- 转自 @ 匠心独运维妙维效
③ 主动填写DNS服务器地址对于上网有什么好处么
有可能上不了网。不过主动添写别的DNS也有好处,有时候网络很垃圾的时候,换个DNS就能上网了。比如谷歌的DNS,8.8.8.8
④ NTP网络校时服务详解
地球分为东西十二个区域,共计 24 个时区,以格林威治作为全球标准时间(即GMT 时间,0时区),东部时区以格林威治时区进行加法,而西时区则以格林威治时间作减法。但地球的轨道并非正圆,在加上自转速度逐年递减,时间会有误差。在计算时间的时,最准确是使用“原子震荡周期”所计算的物理时钟。这种时钟被称为标准时间,即UTC时间(Coordinated Universal Time)。UTC 的准确性毋庸置疑,美国的 NIST F-1 原子钟 2000 年才将产生 1 秒误差。
实际生产生活中,使用原子时钟这种准确的计时似乎缺少必要性,我们更多关注的是参与活动的各个个体在相同的时间环境下对话。例如,当我们说明天早上8:00开会的时候,我们并不在乎原子时钟真实的计时情况,只要参会的所有个体对“明天早上8:00”这个时间具有相同的认知即可。这里时间同步是个非常重要的概念,如果某位同仁手表慢了半小时,那它对“早上8:00”的理解就比其他人要慢半小时,最终会导致ta开会迟到。同样的道理,我们在影视剧中经常能看到特种作战小组在执行特别任务前一般都要先完成组员之间的时间同步,避免组员之间在时间上的认知差异给任务带来不必要的麻烦,甚至危及生命。
NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用于分布式设备(比如电脑、手机、智能手表等)进行时间同步,避免人工校时的繁琐和由此引入的误差,方便快捷地实现多设备时间同步。 NTP校时服务基于UDP传输协议进行报文传输,工作端口默认为123/udp 。
NTP的实现过程如图所示,假如设备A和设备B本地时间存在差异(设备A早上10点,设备B早上11点),现在设备A欲通过NTP和设备B在时间上保持同步:
这样可以轻松计算出来:
现假设设备A和设备B之间的时间差位 ,易得:
通过上式计算出 .
设备A就能根据 调整本地时间,实现和设备B的时间同步。
NTP的目的是在一个同步子网中,通过NTP协议将主时间服务器的时钟信息传送到其他二级时间服务器,实现二级时间服务器和主时间服务器的时钟同步。这些服务器按层级关系连接,每一级称为一个层数(stratum),如主时间服务器层数为 stratum 1,二级时间服务器层数为 stratum 2,以此类推。时钟层数越大,准确性越低。
注意:准确性指相对于主时间服务器而言。
在NTP网络结构中,有以下几个概念:
在正常情况下,同步子网中的主时间服务器和二级时间服务器呈现出一种分层主从结构。在这种分层结构中,主时间服务器位于根部,二级时间服务器向叶子节点靠近,层数递增,准确性递减,降低的程度取决于网络路径和本地时钟的稳定性。
NTP有两种不同类型的报文,一种是时钟同步报文,另一种是控制报文。控制报文仅用于需要网络管理的场合,它对于时钟同步功能来说并不是必需的,这里不做介绍。
时钟同步报文封装在UDP报文中,其格式如图所示:
各主要字段解释如下:
其中,NTP发送和接收的报文数据包类似,通常只需要前48个字节就能进行授时和校时服务。下面分别是抓包获取的NTP请求数据包和回复数据包示例(仅前48个字节):
收到数据包后,接收端本地再产生一个时间戳( )。
这里,每个返回数据前4字节为秒的整数部分,后4字节为秒的小数部分。
设备可以采用多种NTP工作模式进行时间同步:
单播C/S模式运行在同步子网层数较高的层级上,客户端需要预先知道时间服务器IP或域名并定期向服务器发送时间同步请求报文,报文中的 Mode字段设置为 3(客户模式)。服务器端收到报文后会自动工作在服务器模式,并发送应答报文,报文中的Mode字段设置为4(服务器模式)。客户端收到应答报文后,进行时钟过滤和选择,并同步到优选的服务器。客户端不管服务器端是否可达,也不管服务器端所在的层数。在这种模式下,客户端会同步到服务器,但不会修改服务器的时钟。服务器则在客户端发送请求之间无需保留任何状态信息。客户端根据本地情况自由管理发送报文的时间间隔。
对等体模式运行在同步子网较低层级上,主动对等体和被动对等体实现时钟相互同步。这里有两个概念:主动对等体和被动对等体。
如上图所示,对等体模式工作步骤如下:
1.主动对等体和被动对等体首先交互Mode字段为3(客户端模式)和4(服务器模式)的NTP报文,这一步主要是获得通信时延。
主动对等体和被动对等体可以互相同步。如果双方的时钟都已经同步,则以层数小的时钟为准。
注意:对等体模式不需要用户手动设置,设备依据收到的NTP报文自动建立连接并设置状态变量。
广播模式应用在多台工作站和不需要很高精度的高速网络中。主要工作流程如图所示:
注意:在广播模式下,服务端只负责向外广播时钟信息,自身时钟不受客户端影响。
组播模式适用于有大量客户端分布在网络中的情况。通过在网络中使用 NTP 组播模式, NTP 服务器发送的组播消息包可以到达网络中所有的客户端,从而降低由于 NTP 报文过多而给网络造成的压力。主要工作流程如下:
注意:组播模式和广播模式类似,只是它是向特定的组播地址发送时钟同步广播报文。在组播模式下,服务端只负责向外广播时钟信息,自身时钟不受客户端影响。
多播模式适用于服务器分布分散的网络中。客户端可以发现与之最近的多播服务器,并进行同步。多播模式适用于服务器不稳定的组网环境中,服务器的变动不会导致整网中的客户端重新进行配置。其工作流程如下:
注意:为了防止多播模式下,客户端不断的向多播服务器发送 NTP 请求报文增加设备的负担,协议规定了最小连接数的概念。多播模式下,客户端每次和服务器时钟同步后,都会记录下此次同步过中建立的连接数,将调用最少连接的数量被称为最小连接数。以后当客户端调动的连接数达到了最小连接数且完成了同步,客户端就认为同步完成;同步完成后每过一个超时周期,客户端都会传送一个报文,用于保持连接。同时,为了防止客户端无法同步到服务器,协议规定客户端每发送一个 NTP 报文,都会将报文的生存时间 TTL(Time To Live)进行累加(初始为 1),直到达到最小连接数,或者 TTL 值达到上限(上限值为 255)。若 TTL 达到上限,或者达到最小连接数,而客户端调动的连接数仍不能完成同步过程,则客户端将停止一个超时周期的数据传输以清除所有连接,然后重复上述过程。
下面补充一些常用的NTP时钟服务器:
更多NTP授时服务器请查看:
假设你比较喜欢清华的服务并打算将 ntp.tuna.tsinghua.e.cn 作为你的授时服务器。下面将简单介绍不同的操作系统该如何操作使得设备能够使用此服务器同步时间。
本部分以主流Windows 10 系统为例演示如何使用NTP服务同步系统时间。
来将此服务器设置为个人选择的时间服务器。
Linux发行版有两个主流程序支持ntp协议:ntpd和chrony。
具体使用和配置参考各自文档: ntpd doc 和 chrony doc
在“系统配置 > 日期与时间 > 自动设置日期与时间”一栏,填入 ntp.tuna.tsinghua.e.cn 。