前言
在Linux中,域名系统(Domain Name System,DNS)服务是负责将域名解析为 IP 地址的重要组件。它将域名转换为与之对应的 IP 地址,实现网络通信的关键。
Linux中的DNS服务主要通过以下组件来实现:
1. DNS解析器:DNS解析器是操作系统提供的库函数,用于将域名解析为IP地址。它负责在应用程序请求解析域名时,将域名发送给DNS服务器,并接收并返回相应的IP地址给应用程序。常见的DNS解析器是GNU C库中的`getaddrinfo`函数。
2. DNS缓存:为了提高DNS解析的性能和效率,Linux系统通常会缓存最近的解析结果。DNS缓存可以在本地保存域名和对应的IP地址,以便在后续的解析请求中快速获取结果,避免频繁的网络查询。一般情况下,Linux系统使用`nscd`(Name Service Cache Daemon)守护进程来管理DNS缓存。
3. DNS服务器:DNS服务器是用于处理域名解析请求的服务端软件。常用的DNS服务器软件有Bind(Berkeley Internet Name Domain)和dnsmasq等。它们接收来自DNS解析器的请求,并根据配置的域名解析规则进行查询和响应。DNS服务器还可以作为权威服务器(Authoritative Server)来提供域名的解析信息。
配置好DNS服务后,Linux系统就能正常解析域名,并将域名转换为对应的IP地址,以实现网络通信。 DNS服务在互联网中起着至关重要的作用,为用户提供了便捷且高效的域名解析服务。
一、DNS服务器概述
DNS服务 全称 Domain Name system
概念:一套分布式的域名服务系统,即有多个DNS服务器遍布于世界。每个DNS服务器上存放着大量的机器域名和IP地址的映射,并且是动态更新。众多网络客户端程序都使用DNS协议来向DNS服务器查询目标主机的IP地址。
作用:1. 正向解析 将已知的域名解析为IP地址
2. 反向解析 将已知的IP地址解析为域名
监听端口53/udp | 53/TCP 默认运行用户named
域名
完全限定域名 FQDN
例如: www.baidu.com其中相对应的是主机名www 二级域名baidu 顶级域名com
二、DNS解析过程
客户端如何解析域名
(1)本地DNS缓存
(2)本地hosts文件
(3)指向的DNS服务器IP:1. 直接给出解析结果( 递归查询)
2.没有给出解析结果(迭代查询)
递归查询: 客户机与本地DNS服务器之间的查询。(所答即所问)
迭代查询: 本地DNS服务器与根等其他DNS服务器之间的查询。(所答非所问)
三、DNS服务器部署
1)基础环境配 置配置本地yum
配置IP
2)安装DNS服务
yum install -y bind
3)查看一下bind 的配置文件路径 rpm - ql bind 它的配置文件目录/etc/ 区域文件目录|安装目录 /var/named/ 服务名 named
4)查看DNS服务的配置文件
vim /etc/named.conf
其中:1.单行注释// 2. 多行注释 /* 多行数据 */
其中options中的意思是
配置DNS服务的运行状态
listen-on port 53 { 127.0.0.1; }; 表示 定义IPv4监听地址及端口号
listen-on-v6 port 53 { ::1; }; 表示定义IPv6监听地址及端口号
directory "/var/named"; 表示区域文件目录,不建议更改
dump-file "/var/named/data/cache_dump.db";表示缓存文件目录,不建议更改
allow-query { localhost; };表示允许哪些客户端来访问DNS服务器,any表示所有的客户端都能访问
5)继续往下看
zone可以正向解析或者反向解析,只需要修改内容就可例如:
配置区域文件的名称
正向解析
zone "jxedu.com" IN { type master; file "jxedu.com.zones"; };
zone "需要解析的域名" IN {
type 服务器类型; (master 、 slave)
file "解析文件名称";
}
反向解析
zone "100.168.192.in-addr.arpa" IN { type master; file "192.168.100.zones"; };
include: 将指定路径的配置文件内容加载到当前配置文件中(我们也可以将第一个include注释)
以上述内容为例我们进行操作
在进行编辑时要注意:1.用复制的方法把上面的模版粘下来 2.在进行反向配置的时候IP反写
6)下面进行区域文件的编辑首先区域文件类型 区域文件的模板文件 /var/name/named.empty
正向解析:解析文件名称命名规则 例如 jxedu.com.zones
反向解析: 解析文件名称命名规则 例如192.168.100.zones
生成区域文件的方法:正向
cp -p named.empty jxedu.xom.zones
反向
cp -p named.empty 192.168.100.zones
生成区域文件
解析记录的类型
A表示 IPv4正向解析揭露
NS表示DNS服务器解析记录
MX表示邮件解析记录
CNAME表示别名解析记录
PTR表示反向解析记录
7)修改区域文件
正向
反向
重启服
8)检查配置文件语法named-checkconf
检查区域文件语法named-checkzone zonename filename
9)客户端解析验证
打开客户机手动配置vim /etc/resolv.conf
输入 nameserver 192.168.100.254
正反解析成功
四、主从DNS服务器部署
1)我们打开一台新的虚拟机作为从服务器,关闭防火墙、图形化、selinux、配置本地yum源、挂载、安装DNS服务
2)设置从DNS服务器静态IP
3)配置主DNS服务器的配置文件,重启服务
4)配置从DNS服务器的配置文件
重启named服务
5)在主DNS服务器中vim /etc/resolv.conf 并输入从DNS服务器地址,重启服务
6)在从服务器中输入 cd /var/named/slaves/
查看
验证成功
总结
在进行此实验中一定要注意:1.在一开始配置环境时一定不能遗忘某一步2.在编辑文件时能用复制就用复制,手写错误率较高3.如果不能重行启动服务时可以去检查我们所配置的文件是否书写错误,或者是IP配置是否冲突4.注意我们的虚拟机网卡是否一致。