跳转至

DDNS 学习\#

全称动态域名服务,就是把一个ip地址映射到一个域名身上。对于家庭网络,想要通过外网进行访问,就需要用到DDNS,该技术将用户的动态ip地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态ip地址传送给位于服务商主机上的服务器程序,而服务器程序负责提供DNS服务并实现动态域名解析,这样我们只要在外部输入我们的域名就可以访问家庭网络,即便换了ip也能够继续访问

img

DNS\#

背景\#

早期的网络使用IP地址进行通讯,但是随着接入网络的主机增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了一个叫做hosts的文件,其中记录了这台主机的名称和IP地址的对应表,这样,只要输入主机名称,系统就会加载hosts文件并查找对应关系,找到相应的IP,就可以访问这个IP的主机了

但是后来主机数量太大,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不堪重负,而且把所有地址解析记录形成的文件都同步到所有的客户机似乎也不是一个好的解决办法,DNS系统应运而生,而且随着解析规模的扩大,DNS系统也在不断演化直至如今的多层架构体系

概括\#

DNS(Domain Name System)域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网而不用去记住能够被机器直接读取的IP数串,通过主机名,最终得到该主机对应的IP地址的过程叫域名解析,DNS使用UDP协议,使用端口号53

DNS的分布数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间(Domain name space)

DNS的作用\#

正向解析:根据主机名称(域名)查找对应的IP地址

反向解析:根据IP地址查找对应的主机域名

DNS域名解析过程\#

  1. 在浏览器中输入域名,操作系统会先检查自己本地的hosts文件是否含有这个网址的映射关系,如果有,就先调用这个IP地址映射,完成域名解析
  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,如果有,直接凡会,完成域名解析
  3. 如果hosts和本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,我们在这里称为本地DNS服务器,此服务器受到查询时,如果要查询的域名包含在本地配置区域资源中,则凡会解析结果给客户机,完成域名解析,此解析具有权威性
  4. 如果要查询的域名不在本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性
  5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器受到请求后会判断这个域名是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP,本地DNS服务器受到IP信息后,将会联系负责该域名的服务器,该服务器受到请求后如果自己无法解析,就会找一个管理该域名的下一级DNS服务器给本地DNS服务器,重复上述操作查询直至找到该域名主机
  6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析或找根DNS或把请求转至上上级,重复迭代。不管是本地DNS服务器用的是转发还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机

参考\#

什么是DNS? - 知乎 (zhihu.com)

动态域名绑定\#

域名是如何绑定动态IP的? -阿里云开发者社区 (aliyun.com)