公司动态

DNS服务器

📅 2026/8/3 17:06:35
DNS服务器
文章目录一.DNS服务器软件介绍1.. DNS的基本概念2.DNS结构1.根域 .root2.顶级域DNS服务器(TLD DNS Servers)3.权威DNS服务器Authoritative DNS Servers3.DNS服务器软件介绍二.在DNS服务器上安装BIND三.配置BIND主配置⽂件四.配置内部区域注册⽂件1.正向解析1.添加正向解析声明2.添加正向解析内容2.反向解析1.添加反向解析的声明2.添加反向解析的内容3.语法检测五.启动BIND服务六.配置防⽕墙七.客⼾端配置操作【node1】八.测试服务器是否正常九.如何清空十.总结一.DNS服务器软件介绍1… DNS的基本概念DNSDomain Name System域名系统是互联⽹的“电话簿”它⽤于将⼈类易于记忆的域 名如 www.baidu.com转换为计算机能够理解的 IP 地址如 192.0.2.1。由于直接记住数字地址 不如记住域名⽅便DNS 使得⼈们能够通过域名访问⽹站⽽不必关⼼背后的数字地址。 作⽤ • 域名映射到IP地址DNS使得⽤⼾在浏览器中输⼊域名时能够查询到相应的IP地址从⽽连接到 ⽬标服务器。 • 反向解析除了域名到IP的正向解析DNS 还⽀持 IP 地址到域名的反向解析这对⽹络安全和故 障排查等⾮常重要。 • 提供负载均衡通过 DNS可以实现不同 IP 地址的轮换帮助分散流量提升访问速度和可靠 性。 • 简化⽹络配置通过 DNS管理员只需使⽤域名管理服务简化了⽹络配置和维护。2.DNS结构1.根域 .root在整个 DNS 系统的最上⽅⼀定是.(⼩数点)这个 DNS 服务器(称为 root)也叫”根域“。它们不 直接存储域名和IP地址的映射⽽是存储指向顶级域TLD服务器的信息。 根域 13台 全世界只有13台。1台为主根服务器放置在美国。其余12台均为辅根服务器其中9 台放置在美国欧洲2台位于英国和瑞典亚洲1台位于⽇本。2.顶级域DNS服务器(TLD DNS Servers)顶级域如.com,.org,.net,.cn 等的DNS服务器存储了关于某个域名下的权威DNS服务 器的信息。 例如.com 域的TLD服务器会告诉你要去查找与某个.com 域名相关的权威DNS服务器。 • 常⻅的顶级域及国家.com 商业机构.net ⽹络.org ⾮商业机构 www.centos.org www.kernel.org.edu 教育机构.gov 政府机关.cn 中国域名.us 美国域名.ai ⼈⼯智能.io 云计算.mil 军事机构除了顶级域名外 还有⼆级域名baidu.com、三级域名smartgo.net.cn、四级域名 it.smartgo.net.cn等3.权威DNS服务器Authoritative DNS Servers权威DNS服务器存储了某个域名的确切信息如 IP 地址。当DNS查询请求到达这些服务器时服务器会直接返回查询结果。它们对⾃⼰所管理的域名负责。除了这些类型的DNS服务器外其实还有递归DNS服务器、缓存DNS服务器、前向DNS服务器等3.DNS服务器软件介绍⽬前市场上⽀持搭建DNS服务器的软件有很多以下是⼏个常⽤的DNS服务器介绍 • 1- BINDBerkeley Internet Name Domain BIND 是最常⻅的 DNS 服务器软件之⼀⼴泛应⽤于 Linux 和 Unix 系统。它功能强⼤⽀ 持正向和反向解析并且具有灵活的配置选项。 优点 功能强⼤⽀持主从 DNS 配置。 配置灵活⽀持多种⾼级功能如 DNSSEC、访问控制等。 社区活跃⽀持⼴泛。 缺点 配置较为复杂初学者需要时间学习。 • 2- Unbound Unbound 是⼀个轻量级的、开源的 DNS 解析器主要⽤于递归查询它的设计⽬标是提供快 速、安全、灵活的 DNS 服务。相⽐ BINDUnbound 更加简洁易⽤适合⽤于简单的 DNS 解析服 务。 优点 配置简便容易上⼿。 安全性⾼⽀持 DNSSEC 和 DoHDNS over HTTPS。 性能优越适合⾼负载环境。 缺点 功能不如 BIND 强⼤主要⽤于递归解析⽽⾮权威 DNS 服务。 3- dnsmasq dnsmasq 是⼀个轻量级的 DNS 和 DHCP 服务器适⽤于⼩型⽹络或家庭环境。它可以提供 DNS 缓存功能并且⽀持 DHCP 服务。 优点 配置简单适合⼩型⽹络和家庭⽹络。 ⽀持 DHCP 服务可以同时作为 DNS 和 DHCP 服务器。 ⽀持 DNS 缓存加速访问速度。 缺点 功能相对有限适合⼩规模⽹络不能处理⾼负载。 4- PowerDNS PowerDNS 是⼀个⾼性能的 DNS 服务器⽀持多种后端数据库如 MySQL 和 PostgreSQL。 它适⽤于需要⾼性能、⾼可⽤性的企业级应⽤。 优点 ⽀持多种后端数据库便于管理⼤量 DNS 记录。 ⾼性能适合⼤规模部署。 缺点 配置较为复杂适合有经验的⽤⼾。 5- CoreDNS CoreDNS 是⼀个灵活、可扩展的 DNS 服务器⼴泛⽤于 Kubernetes 环境中也可以作为传 统 DNS 服务器使⽤。它由 Go 语⾔编写⽀持插件扩展。 优点 可扩展⽀持插件机制。 轻量级易于配置。 ⽀持现代云环境特别适⽤于 Kubernetes 集群。 缺点 主要⽤于云环境配置⽅式与传统 DNS 服务有所不同。本次我们主要采⽤BIND来完成建设DNS服务器的任务服务器规划• node1为访问的客⼾端• node2为DNS服务器二.在DNS服务器上安装BINDnode1和node2上面是均可以安装这个软件bind的说明 bind提供 DNS 服务器功能⽤于 解析域名包括内部和外部域名管理 DNS 区域和记录。 bind-utils提供⼀些 DNS 查询⼯具如 dig、nslookup、host⽤于测试和调试 DNS 配置三.配置BIND主配置⽂件我们使用vi /etc/named.conf这个命令来配置文件四.配置内部区域注册⽂件假设⽬前有以下内部⽹站需要配置内部转发 1 internal.local 192.168.88.1011.正向解析1.添加正向解析声明.我们修改配置文件vi /etc/named.rfc1912.zones,在文件里面添加正向解析的声明vi/etc/named.rfc1912.zones 添加以下内容 zoneinternal.localIN{typemaster;file/var/named/internal.local.db;allow-update{none;};};说明: zoneinternal.localIN{表示一个 DNS 区域的声明 internal.local 是此 DNS 区域的名称 IN 指 Internet 类别常用默认值typemaster;指定此区域的类型为 主master区域 主区域是该域名的权威数据源DNS 数据直接从此服务器的配置文件加载 file/var/named/internal.local.db;定义该区域的区域数据文件位置 文件 internal.local.db 包含该区域的记录如 A、MX、NS 等 allow-update{none;};指定此区域是否允许动态更新 none 意味着不允许任何动态更新域名记录只能通过手动修改文件更新2.添加正向解析内容.我们需要打开之前在rfc1912.zones这里面声明的文件然后在这个文件里面进行添加内容vi/var/named/internal.local.db# 添加以下内容$TTL86400 IN SOA ns1.internal.local.admin.internal.local.(2024011701;Serial 3600;Refresh 1800;Retry 1209600;Expire 86400);Minimum TTL IN NS ns1.internal.local.ns1 IN A 192.168.149.130 web1 IN A 192.168.149.128 web2 IN A 192.168.149.128 IN A 192.168.149.128 说明:$TTL默认 TTL(Time To Live)。 所有资源记录的默认缓存时间单位为秒。 这里设置为 86400一天。客户端在缓存数据时会遵循此值。 SOA 记录Startof Authority : 当前区域的根域即 internal.local。 IN: 表示 Internet 类别。 SOA: 开始授权记录定义该区域的关键元信息。 ns1.internal.local.主域名服务器的 FQDN全限定域名。 admin.internal.local.管理员的邮箱地址 替换为.即 admininternal.local。 2024011701 序列号每次修改区域文件时需递增用于从服务器检测更新。 3600 刷新时间从服务器多久检查主服务器是否有更新秒。 1800 重试时间从服务器在刷新失败后再次尝试的等待时间秒。 1209600 过期时间从服务器在无法联系主服务器时数据失效的时间秒。 86400 最小 TTL未覆盖的记录的默认缓存时间秒。 NS 记录Name Server 指定该区域的域名服务器地址。 ns1.internal.local.: 表示 internal.local 的主域名服务器。 A 记录Address: 定义域名到 IPv4 地址的映射。 ns1.internal.local.解析为 192.168.88.102 web1.internal.local.和 web2.internal.local.都解析为 192.168.88.101 扩展常见的DNS记录类型: A 记录Address Record: 将域名映射到 IPv4 地址。 AAAA 记录: 将域名映射到 IPv6 地址。 CNAME 记录Canonical Name Record: 为域名提供别名。 MX 记录Mail Exchange Record: 指定邮件服务器的地址。 NS 记录Name Server Record: 指定域名的权威 DNS 服务器。 SOA 记录Startof Authority Record: 定义 DNS 区域的起始权威信息。 PTR 记录Pointer Record: 用于反向 DNS 查找将 IP 地址映射回域名。 TXT 记录Text Record: 存储任意文本数据常用于 SPF、DKIM 等验证机制。要是我们需要其他域名比如说是it_test.cn那么的话我们需要先把internal.local都改成it_test.cn其次我们这个时候需要的子域名是heima以及boxuegu那么我们需要将web1修改为heimaweb2修改为boxuegu其实就可以了这个域名其实就添加成功了。2.反向解析1.添加反向解析的声明1.我们需要打开rfc1912.zones这个文件并且在文件添加反向解析的声明vi/etc/named.rfc1912.zones# 添加以下配置zone149.168.192.in-addr.arpaIN{typemaster;file/var/named/192.168.149.rev;allow-update{none;};};说明: zone149.168.192.in-addr.arpaIN{这是一个 反向区域reverse zone的声明。 反向区域用于将 IP 地址IPv4转换为域名这和正向 DNS 查询将域名转换为 IP 地址是相反的。 149.168.192.in-addr.arpa这是 192.168.149.x IP 地址段的反向区域名称。反向查找区域的命名规则是将 IP 地址的每个八位字节倒序并加上.in-addr.arpa 后缀。例如192.168.149.x 的反向区域名称就是 149.168.192.in-addr.arpa。typemaster;指定该区域是 主master区域也就是说这是该区域的权威 DNS 服务器并且数据会从本地文件加载 file192.168.149.rev;这是该区域的区域数据文件路径。 192.168.149.rev 文件包含了反向解析记录用于将 IP 地址如 192.168.149.101映射到对应的域名 allow-update{none;};allow-update 指定是否允许动态更新。在这里设置为 none意味着不允许任何动态更新 这是一种安全配置防止未经授权的客户端修改 DNS 记录2.添加反向解析的内容vi /var/named/192.168.149.rev # 添加以下配置 $TTL 86400 IN SOA ns1.internal.local. admin.internal.local. ( 2024011701 ; Serial 3600 ; Refresh 1800 ; Retry 1209600 ; Expire 86400 ) ; Minimum TTL IN NS ns1.internal.local. 130 IN PTR ns1 128 IN PTR web1 128 IN PTR web2 128 IN PTR 这个文件其实与正向的文件很相似只不过的是这个文件刚好在后几行反过来了,it_test.cn其实添加逻辑也是一样的,和正向文件差不多把Internal.local修改,以及把web1,web2修改一下就可以了然后我们保存文件就可以了3.语法检测我们需要采用named-checkconf /etc/named.conf这个命令来进行检测文件是否有错误# 配置文件语法检查named-checkconf/etc/named.conf 如果报了错误 一般都是由于配置文件丢失内容导致语法结构不对 请检查配置文件/etc/named.conf 【大概率是该文件的问题】/etc/named.rfc1912.zones我们再次进行区域文件的检查,查看正向与反向文件哪一个出错了呢# 区域文件语法检查named-checkzone internal.local/var/named/internal.local.db named-checkzone 149.168.192.in-addr.arpa/var/named/192.168.149.rev五.启动BIND服务systemctlstartnamed--立即启动 systemctl enable named--开启自动启动 systemctl status named--查看状态接下来我们需要把这个dns的bind服务打开就可以了可以看到这个服务我是成功的启动了的没有报任何的错误接下来我们需要在服务器上面把这个服务的端口放行那么其实node2上面的配置就解决了六.配置防⽕墙firewall-cmd--zonepublic--add-port53/udp--permanent firewall-cmd--zonepublic--add-port53/tcp--permanent firewall-cmd--reload 或者 firewall-cmd--zonepublic--add-servicedns--permanent firewall-cmd--reload# 查看规则信息firewall-cmd--list-all这上面的是配置防火墙的命令我们通过截图查看一下是否成功了的我们把防火墙放行可以看到其实也是完美的运行没有报出错误接下来我们需要对node1进行配置把node1的dns修改为node2的IP地址然后我们再次查看已经放行的服务列表七.客⼾端配置操作【node1】我们需要把node1的dns追加一条内容是node2的IP地址vim/etc/NetworkManager/system-connections/ens33.nmconnection#打开配置文件来进行相应的网络配置操作[connection]idens33 uuidf63e95b4-2d94-316d-9f6e-bddab78c0f43typeethernet autoconnect-priority-999 interface-nameens33 timestamp1785329942[ethernet][ipv4]address1192.168.149.128/24 dns192.168.149.130;1.1.1.1;8.8.8.8;gateway192.168.149.2 methodmanual[ipv6]addr-gen-modeeui64 methodauto[proxy]我们显示一下网卡的信息查看是否dns配置成功了nmcli device show ens160八.测试服务器是否正常使用 dig 或 nslookup 命令测试 DNS 查询确保内部域名解析正常工作。例如dig web1.internal.local我们再使用命令ping一下看一下是否与设定的域名可以连通**使用dig或nslookup命令测试 DNS 查询确保外部域名解析正常工作。 **可以看到域名解析服务是可以正常解析外部链接的九.如何清空node2: dnf-y remove bind bind-utils dnf clean allrm-rf/etc/named* node1: 修改网卡的DNS服务器 将其调整为 8.8.8.8;114.114.114;我们通过这个命令把今天做的再删掉多做几遍同时删掉的话可以更好的完成dns的作业十.总结**本次学习任务佳乐老师讲解了dns服务器的相关设定从软件包的安装文件的修改端口放行。以及node1的相关设定。修改的文件本次在node2里面主要是有1个主配置文件1个区域文件区域文件要追加正向解析和反向解析正向解析和反向解析都还要在你声明的时候指定的文件来进行修改就可以了我们在检测一下刚刚的配置文件是否出错最后进行服务的启动以及端口的放行.然后我们在node1中我们需要修改他的网络将他的dns新增一条记录内容是node2的IP地址我们再用dig检测是否node2的dns服务器可以正常运行,这个其实也是可以的windows也是同理将dns修改为node2的IP地址。需要注意我这里修改的是vmnet1网卡最后Windows也是成功ping通了。