DNS搭建
一、DNS简介
1、概念
- DNS(Domain Name System)是一种分布式的命名系统,用于将域名与其对应的IP地址相互映射。简单来说,DNS充当了互联网上的“电话簿”,帮助用户通过易于记忆的域名查找到相应的网络资源,例如网站、电子邮件服务器等。
2、正向解析与反向解析
- 正向解析(Forward DNS Lookup):
- 正向解析是最常见的DNS查询类型之一。
- 它将域名转换为相应的IP地址。
- 当用户在浏览器中键入网址时,操作系统将执行正向解析以查找该域名的IP地址,然后将请求发送到该IP地址。
- 例如,当用户输入"www.example.com"时,正向解析将其解析为相应的IP地址,比如"192.0.2.1",然后浏览器将向该IP地址发送请求以获取网站内容。
- 反向解析(Reverse DNS Lookup):
- 反向解析是将IP地址转换为相应的域名。
- 它与正向解析相反,用于确定特定IP地址对应的域名。
- 反向解析通常用于安全和身份验证目的,以及在网络管理中进行故障排除。
- 例如,如果知道IP地址"192.0.2.1",但不知道对应的域名,可以执行反向解析以查找域名,可能会返回"www.example.com"。
3、DNS查询方式
- 迭代查询(Iterative Query):
- 客户端向本地DNS服务器发送域名查询请求。
- 本地DNS服务器根据自己的缓存或配置向根域名服务器发送查询请求。
- 根域名服务器根据查询请求返回指向顶级域名服务器的响应。
- 本地DNS服务器根据返回的顶级域名服务器地址向顶级域名服务器发送查询请求。
- 顶级域名服务器返回指向权威域名服务器的响应。
- 本地DNS服务器向权威域名服务器发送查询请求,并将结果返回给客户端。
- 递归查询(Recursive Query):
- 客户端向本地DNS服务器发送域名查询请求。
- 本地DNS服务器根据自己的缓存或配置向根域名服务器发送查询请求,并指示根域名服务器继续查询。
- 根域名服务器返回指向顶级域名服务器的响应,并指示本地DNS服务器继续查询。
- 顶级域名服务器返回指向权威域名服务器的响应,并指示本地DNS服务器继续查询。
- 权威域名服务器返回域名解析结果,并将结果返回给本地DNS服务器。
- 本地DNS服务器将结果返回给客户端。
- 本地缓存查询(Local Cache Query):
- 本地DNS服务器在处理域名查询请求时首先检查自己的缓存,如果找到了相应的解析结果,则直接返回给客户端,不进行外部查询。
- 如果本地缓存中没有相应的解析结果,才会进行迭代查询或递归查询以获取解析结果。
4、DNS域名等级
- 根域名(Root Domain):
- 根域名位于DNS层次结构的最顶层,表示为一个点(.)。
- 根域名服务器负责管理顶级域名服务器的地址,以及各个顶级域名的注册机构。
- 顶级域名(Top-Level Domain,TLD):
- 顶级域名是根域名下直接的一级域名,例如.com、.org、.net等。
- 顶级域名可以是通用顶级域名(gTLD),也可以是国别顶级域名(ccTLD),例如.cn、.uk、.jp等。
- 顶级域名由相应的注册机构管理,并负责管理二级域名的分配和注册。
- 二级域名(Second-Level Domain,SLD):
- 二级域名是直接位于顶级域名下的域名,例如example.com中的"example"。
- 二级域名通常由注册者(域名持有者)自行选择和注册,并用于区分不同的网站或组织。
- 子域名(Subdomain):
- 子域名是在二级域名之下创建的域名,形式为subdomain.example.com。
- 子域名可以继续划分下去,形成更深层次的域名结构。
- 主机名(Hostname):
- 主机名是指在域名中指代具体计算机或网络设备的名称,通常是域名的一部分。
- 主机名可以位于任何域名层次中,例如www.example.com中的"www"就是一个主机名。
二、CDN服务器
1、概念
- CDN(Content Delivery Network)服务器是一种分布式网络架构,旨在提高互联网内容的传输速度、可用性和安全性。CDN服务器位于全球各地的数据中心,并存储着大量的静态和动态内容,例如网页、图片、视频、音频等。当用户请求访问某个网站或内容时,CDN系统会根据用户的地理位置和网络状况,自动选择最近或最适合的CDN服务器来提供内容,从而实现更快的加载速度和更稳定的访问体验。
2、CDN服务器的主要功能
- 内容缓存和分发:CDN服务器缓存原始内容并分发到全球各地的边缘节点,使用户能够从离自己最近的节点获取内容,减少了网络延迟和传输时间。
- 负载均衡:CDN系统会根据用户的请求负载情况和服务器负载情况,智能地分配流量到不同的CDN服务器,以保持服务器的稳定性和性能。
- 安全防护:CDN服务器提供各种安全功能,例如DDoS攻击防护、数据加密、内容验证等,保护网站和内容免受恶意攻击和非法访问。
- 加速静态和动态内容:CDN服务器不仅可以加速静态内容(如图片、CSS、JavaScript),还可以加速动态内容(如网页、API请求),通过优化网络路由和传输协议来提高加载速度。
- 实时监控和报告:CDN系统提供实时监控和报告功能,帮助网站管理员了
三、DNS服务器类型
- 权威服务器(Authoritative Server):权威服务器是负责存储特定域名的DNS记录,并提供对这些域名的解析服务。它们存储有关特定域名的权威信息,并且对外提供这些信息的查询服务。
- 递归服务器(Recursive Server):递归服务器也称为DNS缓存服务器或DNS递归解析器,它负责接收客户端的DNS查询请求,并在收到查询后,负责向其他DNS服务器发出必要的查询以获取答案。递归服务器会迭代地查询其他DNS服务器,直到找到所请求的域名的IP地址或者找不到答案为止,并将最终结果返回给客户端。
- 主服务器(Master Server):主服务器是存储特定域名的权威信息并提供解析服务的服务器。它负责管理域名的区域文件,并向其他服务器提供这些信息的更新。
- 从服务器(Slave Server):从服务器是通过复制主服务器上的区域文件来提供域名解析服务的服务器。它们定期从主服务器获取更新的区域文件副本,以确保与主服务器的数据同步。
- 转发服务器(Forwarding Server):转发服务器负责将客户端的DNS查询请求转发到其他DNS服务器,而不是直接执行查询。它们通常用于在本地网络中提供高速的DNS查询服务,通过向其他DNS服务器发送查询请求,从而加速DNS查询的响应速度。
- 缓存服务器(Caching Server):缓存服务器暂时存储最近查询的DNS记录,以便在以后的查询中快速响应相同的查询。它们可以减轻DNS服务器的负载并提高查询的响应速度。
四、以下是常见的DNS记录类型
A记录(Address Record):将域名解析为IPv4地址,用于网站或其他网络资源的访问。
AAAA记录(IPv6 Address Record):将域名解析为IPv6地址,支持IPv6网络的访问。
CNAME记录(Canonical Name Record):将域名指向另一个规范的域名,通常用于网站重定向或负载均衡。
MX记录(Mail Exchange Record):指定邮件服务器的地址,用于配置电子邮件服务。
NS记录(Name Server Record):指定域名服务器的地址,用于域名解析的递归查询。
PTR记录(Pointer Record):将IP地址解析为域名,用于反向DNS查找。
TXT记录(Text Record):存储任意文本信息,通常用于验证域名所有权、配置SPF记录等。
SRV记录(Service Record):指定提供特定服务的服务器地址和端口号,用于支持诸如SIP、XMPP等服务的自动发现和负载均衡。
SOA记录(Start of Authority Record):指定了管理特定区域的权威DNS服务器,并包含了该区域的重要参数信息。
CAA记录(Certification Authority Authorization Record):用于指定哪些证书颁发机构被允许为该域名签发SSL/TLS证书。
DNSKEY记录(DNS Key Record):用于存储DNSSEC相关的公钥,以验证DNS数据的完整性和真实性。
DS记录(Delegation Signer Record):用于存储上级域名的DNSKEY记录的散列值,用于在DNSSEC中建立信任链。
NAPTR记录(Naming Authority Pointer Record):用于在ENUM架构中将电话号码转换为URI地址。
TLSA记录(TLS Authentication Record):用于存储TLS证书的公钥指纹,增强TLS连接的安全性。
五、BIND服务
- BIND服务是一种DNS(Domain Name System,域名系统)服务器软件,用于提供域名解析服务。
1、主要功能和用途
- 域名解析:BIND服务主要用于将域名解析为相应的IP地址,使得用户可以通过域名访问互联网上的各种网络资源,如网站、邮件服务器等。
- DNS缓存:BIND服务器可以缓存最近的DNS查询结果,提高了域名解析的效率和速度,同时减轻了DNS系统的负载。
- 权威解析:BIND服务器可以配置为权威DNS服务器,管理特定区域的域名解析信息,包括配置A记录、CNAME记录、MX记录等。
- 反向解析:BIND服务支持反向DNS查找,即根据IP地址查找相应的域名,用于识别访问者的IP地址和验证邮件服务器的合法性。
- DNSSEC支持:BIND服务器支持DNSSEC(DNS Security Extensions),用于提供域名解析数据的认证和完整性保护,防止DNS劫持和篡改攻击。
- 负载均衡:通过配置DNS记录的权重和优先级,BIND服务器可以实现负载均衡,将访问请求分发到多个后端服务器上,提高了系统的可用性和稳定性。
- DNS转发:BIND服务器可以配置为DNS转发器,将无法解析的域名查询请求转发给其他DNS服务器进行处理,以实现全局DNS解析服务。
2、bind的服务类型
- 主服务器(Master Server):主服务器负责存储和管理区域文件的权威副本。当客户端发出DNS查询请求时,主服务器将提供所请求的DNS信息。
- 从服务器(Slave Server):从服务器通过在主服务器上定期获取区域文件的副本来提供DNS服务。它们通常用作备份服务器,以提供冗余和容错功能。
- 缓存服务器(Caching Server):缓存服务器会暂时存储DNS查询的结果,以便在以后相同的查询再次出现时快速响应,从而减轻DNS服务器的负载并加速DNS查询的响应时间。
- 转发服务器(Forwarding Server):转发服务器会将所有的DNS查询请求转发到另一个DNS服务器,而不是直接执行DNS解析。这种类型的服务器通常用于通过较大的、更高性能的DNS服务器提供查询服务。
3、顶级域名与权威域名
- 顶级域名(Top-Level Domain,TLD)是DNS(Domain Name System,域名系统)中的最高级别域名,位于域名的最右侧。顶级域名用于区分不同的域名类别和管理机构。在互联网中,顶级域名主要分为两类:通用顶级域名(gTLD)和国别顶级域名(ccTLD)。
-
通用顶级域名(gTLD):通用顶级域名是全球范围内使用的域名后缀,通常用于指示域名的用途或类别。例如,.com、.org、.net、.edu、.info等是常见的通用顶级域名,它们通常用于指示商业、非营利组织、网络服务提供商、教育机构、信息网站等不同类型的网站。
-
国别顶级域名(ccTLD):国别顶级域名是针对特定国家或地区的域名后缀,用于区分不同国家或地区的域名。例如,.us(美国)、.uk(英国)、.cn(中国)、.jp(日本)、.de(德国)等是常见的国别顶级域名,它们通常与特定国家或地区相关联。
-
顶级域名由相应的注册机构管理,负责管理顶级域名下的二级域名的分配和注册。例如,Verisign管理.com和.net等通用顶级域名,而CNNIC管理.cn等中国的国别顶级域名。
-
权威域名(Authoritative Domain)是指负责管理和控制特定域名区域的域名服务器,存储了该域名区域的全部或部分DNS记录,并能够对外提供相应域名的解析服务。权威域名服务器在DNS系统中具有权威性,负责对外提供域名解析服务。
区别:
-
位置:顶级域名是整个域名系统中的最高级别域名,用于区分不同的域名类别和管理机构;而权威域名是针对特定域名区域的域名服务器,负责管理和控制该域名区域的DNS记录。
-
功能:顶级域名主要用于标识域名的用途或类别,由注册机构管理;而权威域名负责管理和控制特定域名区域的DNS记录,并提供相应域名的解析服务。
-
范围:顶级域名包括通用顶级域名和国别顶级域名,涵盖了整个域名系统的最高级别;而权威域名仅针对特定域名区域,在该区域中具有权威性。
六、centos7中DNS主从服务器搭建实验
1、项目需求
- 现在一个IP为192.168.20.0/24的网络中,需要配置两台DNS服务器,192.168.20.133(yun01)做为从服务器,192.168.20.128(yun02)作为主服务器,实现双机热备份。另需一台同网络的主机(yun03)用于测试,其DNS1为192.18.1.128,DNS2为192.168.20.133。
2、项目搭建
(1)在yun01、yun02上安装bind服务
(2)在yun02上配置正向解析与反向解析,并指定其从服务器的IP
- 将/etc下的named.conf主配置文件中的允许访问的主机改为any
- 修改named.rfc1912.zones文件,配置正向解析与反向解析,并指定其解析文件名和从服务器IP
- 配置正、反向解析文件
- 直接复制模板文件进行修改
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
- 在yun01上修改named.conf配置文件,使得所有主机可访问;修改named.rfc1912.zones文件,配置正向解析与反向解析,并指定其解析文件名和主服务器IP
- 关闭三台服务器的防火墙,启动yun02、yun01的named服务,将yun03的DNS改为DNS1为192.18.1.128,DNS2为192.168.20.133。
- 因为我是使用dhcp的方式分配IP,需要修改一下/etc/resolv.conf文件,若使用静态IP的话不用更改
- 测试
- 将yun02的DNS服务关闭
[外链图片转存中…(img-1SbBK1Fr-1712121151849)]
- 因为我是使用dhcp的方式分配IP,需要修改一下/etc/resolv.conf文件,若使用静态IP的话不用更改
[外链图片转存中…(img-gIprflNk-1712121151849)]
- 测试
[外链图片转存中…(img-OxcDRg9l-1712121151849)]
- 将yun02的DNS服务关闭