域名相关知识

DNS DHCP CDN HOST 子域名

域名相关知识

一、DNS(Domain Name System,域名系统)

  1. 定义与功能
    • DNS 是互联网的“电话簿”,用于将域名(如 www.example.com)解析为 IP 地址(如 93.184.216.34),使用户无需记住复杂的数字地址即可访问网站。
    • 核心功能包括域名解析、反向解析、分布式架构、缓存机制和负载均衡。
  2. 查询流程
    • 用户输入域名,浏览器向本地 DNS 解析器发起请求。
    • 若本地无缓存,则递归查询根域名服务器、顶级域名服务器、权威域名服务器,最后返回 IP 地址,浏览器发起 HTTP 请求。
  3. 高级配置
    • 配置本地 DNS 服务器:在 Linux 系统中,可使用 bind(Berkeley Internet Name Domain)来配置本地 DNS 服务器。需安装 BIND 软件,编辑主配置文件、区域文件,创建区域文件并重启 BIND 服务。
    • 配置 DNS 客户端:在客户端(如 Linux 计算机)编辑 /etc/resolv.conf 文件,指定 DNS 服务器的 IP 地址。
    • 验证 DNS 配置:使用 dig 或 nslookup 命令测试 DNS 解析。
    • 配置 DNS 负载均衡:通过设置多个 A 记录实现。
    • 启用 DNSSEC:为 DNS 提供额外的安全性,防止数据篡改和欺骗,需编辑区域文件,添加 DNSSEC 相关记录。
    • 排查 DNS 问题:常见问题包括解析失败、延迟等,可通过检查 DNS 服务器状态、查看 DNS 日志、使用 dig 命令检查 DNS 记录等方式排查。

二、DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

  1. 定义与作用
    • DHCP 是一种基于客户端 - 服务器架构的协议,主要用于在 IP 网络中自动分配 IP 地址及其他网络配置参数,如子网掩码、默认网关、DNS 服务器地址等,使网络设备能够快速且无缝地连接到网络,而无需手动配置网络设置。
    • 特点包括动态分配、集中管理、支持多种网络设备和租约机制。
  2. 工作原理
    • 发现阶段:客户端设备连接到网络后,发送 DHCPDISCOVER 数据包,在网络上寻找可用的 DHCP 服务器。
    • 提供阶段:DHCP 服务器收到请求后,根据预设的地址池和配置参数,向客户端提供一个 IP 地址和其他相关网络信息,并发送 DHCPOFFER 数据包。
    • 请求阶段:客户端收到 DHCPOFFER 数据包后,如果接受服务器提供的配置信息,就会发送 DHCPREQUEST 数据包给服务器,正式请求使用该 IP 地址和相关配置。
    • 确认阶段:DHCP 服务器收到 DHCPREQUEST 后,会发送 DHCPACK 数据包给客户端,确认客户端可以使用所分配的 IP 地址和配置信息。
  3. 配置方式
    • 在 Windows 系统中:打开“控制面板”,进入“网络和共享中心”,更改适配器设置,右键点击网络连接,选择“属性”,选择“Internet 协议版本 4 (TCP / IPv4)”,选择“自动获取 IP 地址”和“自动获取 DNS 服务器地址”选项并保存设置。
    • 在路由器中:不同品牌和型号的路由器配置 DHCP 服务的步骤可能不同,一般操作流程为登录路由器管理界面,找到 DHCP 设置选项,启用 DHCP 服务,配置 DHCP 参数,保存设置。

三、CDN(Content Delivery Network,内容分发网络)

  1. 定义与原理
    • CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
    • 基本原理是广泛采用各种缓存服务器,分布在用户访问相对集中的地区或网络中。在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
  2. 关键技术
    • 内容存储和分发技术:通过在网络各处放置节点服务器构成智能虚拟网络,实时根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
    • 基于 DNS 的负载均衡:以 CNAME 实现域名中转,智取最优节点服务。
    • 缓存技术:包括客户端浏览器缓存、本地 DNS 服务器缓存、DNS 地址缓存、客户请求内容缓存、动态内容缓存等。
  3. 工作过程
    • 传统访问过程:用户输入访问的域名,操作系统向 LocalDns 查询域名的 ip 地址,LocalDns 向 ROOTDNS 查询域名的授权服务器,ROOT DNS 将域名授权 dns 记录回应给 LocalDns,LocalDns 得到域名的授权 dns 记录后,继续向域名授权 dns 查询域名的 ip 地址,域名授权 dns 查询域名记录后,回应给 LocalDns,LocalDns 将得到的域名 ip 地址,回应给用户端,用户得到域名 ip 地址后,访问站点服务器,站点服务器应答请求,将内容返回给客户端。
    • CDN 访问过程:用户输入访问的域名,操作系统向 LocalDns 查询域名的 ip 地址,LocalDns 向 ROOT DNS 查询域名的授权服务器,ROOT DNS 将域名授权 dns 记录回应给 LocalDns,LocalDns 得到域名的授权 dns 记录后,继续向域名授权 dns 查询域名的 ip 地址,域名授权 dns 查询域名记录后(一般是 CNAME),回应给 LocalDns,LocalDns 得到域名记录后,向智能调度 DNS 查询域名的 ip 地址,智能调度 DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的 CDN 节点 ip 地址回应给 LocalDns,LocalDns 将得到的域名 ip 地址,回应给用户端,用户得到域名 ip 地址后,访问站点服务器,CDN 节点服务器应答请求,将内容返回给客户端。

四、本地 host 文件

  1. 定义与作用
    • hosts 文件是一个用于将主机名映射到 IP 地址的本地文件,通常位于操作系统的系统目录中,主要作用是将网址域名与其对应的 IP 地址建立关联,类似于一个本地的 DNS 服务器。
    • 当浏览器需要访问一个网站时,系统会首先检查本机的 hosts 文件中是否有该网址域名和 IP 地址的映射关系。如果存在,浏览器将直接访问该 IP 地址所指向的网站;如果不存在,系统才会向 DNS 服务器发送域名解析请求。
  2. 使用场景
    • 加快域名解析:实现比 DNS 更快的域名解析速度,尤其适用于那些需要频繁访问但 DNS 解析较慢的网站。
    • 灵活控制网络访问:用户可以根据需求自由添加、修改或删除条目,实现对网络访问的精细管理。
    • 绕过限制:在特定环境下,如测试新网站、访问被地区限制的网站时,通过修改 hosts 文件,可以直接指定 IP 地址,绕过 DNS 解析的限制。
    • 本地开发调试:在前端开发中,通过在 hosts 文件中添加本地开发服务器的域名和 IP 地址映射,可以方便地进行调试和测试。
    • 安全控制:将广告服务器或恶意网站的域名映射到无效的 IP 地址,可以屏蔽这些内容。

五、子域名

  1. 定义
    • 二级域名是指顶级域名(如 .com)下的一个子域名。例如,在 subdomain.example.com 中,subdomain 就是二级域名。
  2. 应用场景
    • 在本地开发或测试环境中,可以使用 hosts 文件将子域名解析到指定的 IP 地址,方便进行多服务或多项目的开发和测试。