目录
6.2.2 配置区域文件 /etc/named.rfc1912.zones
6.2.3 配置正向区域数据文件 /var/named/benet.com.zone
6.2.4 配置反向区域数据文件 /var/named/benet.com.zone.local
6.3.2 配置从服务器的主配置文件 /etc/named.conf
6.3.3 修改从服务器的区域配置文件 /etc/named.rfc1912.zones
一、DNS概述
互联网的快速发展使得人们越来越依赖于快速、便捷的网络访问,而域名系统 (DNS) 在其中扮演着不可或缺的角色。本文将详细介绍DNS的作用、工作原理及其在全球的分布情况。
1.1DNS是什么?
DNS,即域名系统(Domain Name System),是互联网的一项核心服务。它作为一个分布式数据库,能够将人们熟知的域名与机器可识别的IP地址相互映射,从而使用户可以方便地访问互联网,而无需记住复杂的IP地址。DNS系统提供了正向解析和反向解析两种功能:
-
正向解析:根据域名查找对应的IP地址。
-
反向解析:根据IP地址查找对应的域名(此功能较少使用,多用于反垃圾邮件验证等特殊场合)。
1.2DNS的协议及端口号
DNS使用的默认端口为53,分为TCP和UDP两种协议:
-
TCP协议:用于区域传送,多用于主从同步。主DNS服务器从自己的数据文件中读取DNS信息,而辅助DNS服务器则从主DNS服务器中读取信息。
-
UDP协议:用于DNS解析。通常情况下,DNS查询采用UDP协议,因为它效率更高。
1.3FQDN:完全合格域名
域名通常由完全合格域名 (FQDN) 标识。FQDN能够准确表示其在DNS域树中的位置,从节点到树根采用反向书写,并将每个节点用“.”分隔。例如,google.com 是一个FQDN,其中 google 是 com 域的子域,www.google.com 是 google 域的子域。
FQDN的命名有严格限制,长度不能超过256字节,只允许使用字符 a-z, 0-9, A-Z 和减号(-),点号(.)用于域名标志之间或FQDN的结尾。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域。
例如:
-
域名结构:
http://www.sina.com.cn./
-
主机名:
www
-
子域:
sina
-
二级域:
com
-
顶级域:
cn
-
根域:
.
(通常省略)
-
全域名 (FQDN) 是带有主机名和域名的完整名称。例如,www.baidu.com.
是一个完整的FQDN,其中最后的点表示根域,通常在书写时省略。
1.4全球DNS根服务器的分布
全球共有13个DNS根服务器系统,每个系统有多个物理服务器,分布在世界各地。这13个根服务器系统分别以字母“A”到“M”命名。具体分布如下:
-
美国VeriSign公司 - 2台
-
网络管理组织IANA (Internet Assigned Number Authority) - 1台
-
欧洲网络管理组织RIPE-NCC (Resource IP Europeens Network Coordination Centre) - 1台
-
美国PSINet公司 - 1台
-
美国ISI (Information Sciences Institute) - 1台
-
美国ISC (Internet Software Consortium) - 1台
-
美国马里兰大学 (University of Maryland) - 1台
-
美国太空总署 (NASA) - 1台
-
美国国防部 - 1台
-
美国陆军研究所 - 1台
-
挪威NORDUnet - 1台
-
日本WIDE (Widely Integrated Distributed Environments)研究计划 - 1台
实际上,这些根服务器系统由全球1000多台物理服务器组成,分布在100多个地区。例如,北京就有3台根服务器。
1.5DNS的查询过程
DNS查询分为递归查询和迭代查询:
1.5.1递归查询
在递归查询模式下,DNS服务器接收到客户机请求后,必须提供一个准确的查询结果。如果DNS服务器本地没有存储查询信息,则会向其他服务器询问,并将返回的查询结果提交给客户机。
查询过程:
-
查询本机缓存记录。
-
查询hosts文件。
-
查询DNS域名服务器。
-
如果DNS服务器没有结果,求助根域服务器。
-
根域服务器返回顶级域服务器的地址。
-
顶级域服务器返回二级域服务器的地址。
-
二级域服务器返回最终IP地址。
-
本地域名服务器将结果缓存并返回给客户端。
1.5.2迭代查询
在迭代查询模式下,DNS服务器接收到客户机请求时,并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询结果。
查询过程:
-
客户机向本地DNS服务器发送请求。
-
本地DNS服务器向根域服务器请求。
-
根域服务器返回顶级域服务器的地址。
-
顶级域服务器返回二级域服务器的地址。
-
二级域服务器返回最终IP地址给客户机。
1.5.3查询方式总结
-
递归查询:客户端向本地DNS服务器请求,本地DNS服务器负责向其他DNS服务器查询并返回最终结果。客户端只需等待最终结果。
-
迭代查询:客户端向本地DNS服务器请求,本地DNS服务器返回下一步要查询的DNS服务器地址,客户端依次查询直到获得最终结果。
1.6DNS在IPv6下的未来
目前,互联网广泛使用的是第一代互联网协议 (IPv4),但随着互联网的迅速发展,IPv4地址即将耗尽。第二代互联网协议 (IPv6) 提供了几乎无限数量的IP地址,为未来互联网的发展提供了坚实的基础。
中国正在积极推进下一代互联网 (IPv6) 的研究工作,并已经开展了对IPv6根服务器的研究。未来,IPv6协议下可以拥有更多的根服务器,这些服务器能够与现有的IPv4服务器实现互通。中国有望通过IPv6获得更多的互联网根服务器资源。
1.7结语
DNS作为互联网的“导航员”,在保障互联网的正常运行和用户良好体验方面发挥着重要作用。随着IPv6的推广和应用,互联网将更加开放和多样化。通过不断的研究和创新,互联网的未来将更加美好。
二、DNS的分布式互联网解析库
DNS(Domain Name System,域名系统)是互联网的核心服务之一,它使用户能够通过易记的域名而非IP地址来访问网站。DNS是一个大型、分布式的互联网解析库,下面我们将详细介绍DNS的各个层级、结构以及关键知识点。
2.1DNS的分层结构
2.1.1根域名DNS服务器
根域名DNS服务器是DNS系统的基础,负责管理根域名。全球共有13个根服务器系统(从“A”到“M”命名),分布在世界各地。
2.1.2 一级DNS服务器
一级DNS服务器负责一级域名的解析,通常代表一种类型的组织机构或国家地区。这些域名包括:
-
.com(工商企业)
-
.net(网络供应商)
-
.edu(教育机构)
-
.cn(中国国家域名)
-
.org(团体组织)
-
.gov(政府部门)
2.1.3 二级DNS服务器
二级DNS服务器负责二级域名的解析,进一步细分了域名结构。例如:
-
.net.cn
-
.edu.cn
-
.com.cn
2.1.4 子域名DNS服务器
子域名DNS服务器(也称为三级域名服务器)负责子域名的解析。例如:
-
sina.com.cn
-
pku.edu.cn
2.1.5 主机站点
主机站点是具体的服务器或服务,例如:
-
tts9
-
tts6
-
mail
-
www
2.2DNS的管理机构
2.2.1IANA(互联网数字分配机构)
IANA(Internet Assigned Numbers Authority)是整个域名系统的最高权威机构,负责管理DNS根域名、.int、.arpa等国际化域名资源。
2.2.2CNNIC(中国互联网络信息中心)
CNNIC(China Internet Network Information Center)负责管理中国的国家顶级域名.cn。
2.2.3域名代理/注册/购买服务商
-
中国数据
2.3域名体系结构
2.3.1根域名
所有的域名必须以点结尾,例如:
2.3.2一级域名
一级域名通常代表国家或地区,例如:
-
.cn(中国)
-
.us(美国)
-
.kr(韩国)
-
.jp(日本)
-
.hk(香港)
-
.uk(英国)
2.3.3二级域名
二级域名进一步细分域名结构,例如:
-
.com.cn(中国商业组织)
-
.edu.cn(教育机构)
-
.org.cn(非盈利组织)
-
.net.cn(中国运营商)
-
.gov.cn(政府部门)
2.3.4三级域名
三级域名进一步细化,例如:
-
sina.com.cn
-
nb.com.cn
-
haixi.com.cn
2.4组织域与国家域
2.4.1组织域
-
.com
-
.org
-
.net
-
.cc
2.4.2国家域
-
.iq(伊拉克)
-
.ir(伊朗)
-
.jp(日本)
2.4.3反向域
反向域用于反向解析,通过IP地址查找对应的FQDN。
2.5常用DNS服务器
2.5.1常用DNS服务器IP地址
-
114.114.114.114(国内移动、电信和联通通用的DNS)
-
8.8.8.8(Google公司提供的全球通用DNS)
-
223.5.5.5 和 223.6.6.6(阿里云DNS)
-
IPv6地址:2400:3200::1 和 2400:3200:baba::1
2.5.2本地DNS服务器示例
江苏省南京市(中国电信)的DNS:
-
首选DNS:218.2.135.1
-
备用DNS:61.147.37.1
2.6FQDN(全限定域名)
FQDN(Fully Qualified Domain Name,全限定域名)是同时带有主机名和域名的名称。从FQDN中可以看出主机在域名树中的位置。例如:
-
www.baidu.com. 是一个FQDN,其中最后一个点表示根域。
2.7DNS解析方式
2.7.1正向解析
- 正向解析是将FQDN解析为IP地址,通常使用正向解析。
- FQDN--------IP(一对多)
- 一般使用正向解析
2.7.2反向解析
- 反向解析是将IP地址解析为FQDN,通常用于特殊场合,如反垃圾邮件验证。
- IP------------FQDN
三、DNS服务器系统类型
在DNS(Domain Name System)中,服务器类型多种多样,各自承担着不同的功能。了解这些服务器类型有助于我们更好地管理和优化DNS系统,提高域名解析的效率和可靠性。以下是DNS服务器的主要类型:
3.1 主域名服务器
3.1.1定义
主域名服务器负责维护一个区域的所有域名信息,是该区域内所有信息的权威信息源。它具有域名数据的修改权限,可以直接更新和管理域名信息。
3.1.2特点
-
权威性:主域名服务器是特定区域的权威信息源。
-
数据修改:可以修改和更新域名数据。
-
构建要求:在构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
3.1.3使用场景
主域名服务器通常用于关键的域名管理任务,确保域名信息的准确性和及时更新。
3.2 从域名服务器
3.2.1定义
从域名服务器是主域名服务器的备份,当主域名服务器出现故障、关闭或负载过重时,从域名服务器提供域名解析服务。它不直接管理域名数据,而是从主域名服务器同步数据。
3.2.2特点
-
备份功能:在主域名服务器不可用时提供服务。
-
数据同步:从主域名服务器获取并同步数据。
-
非权威性:提供的解析结果来源于主域名服务器。
3.2.3构建要求
在构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
3.2.4使用场景
从域名服务器用于增强DNS系统的可靠性和容错能力,确保在主服务器不可用时依然能够提供解析服务。
3.3 缓存域名服务器
3.3.1定义
缓存域名服务器不维护权威的域名数据库,它只提供域名解析结果的缓存功能。其目的是提高查询速度和效率。
3.3.2特点
-
缓存功能:存储和提供查询结果的缓存。
-
非权威性:信息来源于其他权威服务器。
-
构建要求:需要设置根域或指定其他DNS服务器作为解析来源。
3.3.3使用场景
缓存域名服务器用于减少查询延迟和减轻权威DNS服务器的负载,提高整体DNS系统的响应速度。
3.4 转发域名服务器
3.4.1定义
转发域名服务器负责处理所有非本地域名的本地查询。当接到查询请求时,它会首先在自己的缓存中查找结果,如果找不到,就将请求转发到其他指定的域名服务器。
3.4.2特点
-
查询转发:将未能解析的查询请求转发给其他服务器。
-
缓存功能:存储查询结果以提高效率。
-
非权威性:主要作为查询请求的中继。
3.4.3使用场景
转发域名服务器用于集中管理和优化DNS查询流量,特别是在需要跨多个网络或组织进行域名解析时。
四、BIND DNS服务器软件
在本章中,我们将详细介绍BIND(Berkeley Internet Name Domain)软件,这是最常用的DNS服务器软件之一。BIND软件的强大功能和灵活配置使其成为构建和管理DNS服务的首选工具。
4.1 BIND软件包
BIND软件包含多个关键组件,每个组件都在DNS服务器的运行和管理中发挥着重要作用。以下是主要的BIND软件包及其功能:
4.1.1 BIND软件包列表
-
bind-9.9.4-37.el7.x86_64.rpm:提供了域名服务的主要程序及相关文件。
-
bind-utils-9.9.4-37.el7.x86_64.rpm:提供了DNS服务器的测试工具程序,如nslookup等。
-
bind-libs-9.9.4-37.el7.x86_64.rpm:提供了bind和bind-utils需要使用的库函数。
-
bind-chroot-9.9.4-37.el7.x86_64.rpm:为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND服务的根目录),以提高安全性。
4.1.2 安装指南
默认情况下,系统已经安装了bind-utils和bind-libs,因此只需要安装bind和bind-chroot即可:
yum install bind -y
yum install bind-chroot -y
4.2 BIND主配置文件named.conf
BIND的主配置文件是named.conf,它控制着DNS服务器的全局行为。以下是如何查询和修改该配置文件的详细步骤。
4.2.1 查询配置文件路径
使用以下命令查询bind软件的配置文件路径:
rpm -qc bind
4.2.2 配置文件路径
-
/etc/logrotate.d/named:主配置文件,控制系统全局设置。
-
/etc/named.rfc1912.zones:区域配置文件,控制具体单个区域。
-
/var/named/named.localhost:区域数据配置文件,存储区域信息。
4.2.3 安装BIND软件包
确保安装BIND软件包,可以使用网络源或光盘挂载:
yum install bind -y
4.2.4 修改主要配置文件
编辑主要配置文件 /etc/named.conf,设置监听端口、数据文件位置及允许查询的网段:
vim /etc/named.conf
options {
listen-on port 53 { 192.168.78.22; }; # 监听53端口,使用本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; # IPv6行如不使用可以注释掉或者删除
directory "/var/named"; # 区域数据文件的默认存放位置
dump-file "/var/named/data/cache_dump.db"; # 域名缓存数据库文件的位置
statistics-file "/var/named/data/named_stats.txt"; # 状态统计文件的位置
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 内存统计文件的位置
allow-query { 192.168.78.0/24; 172.16.100.0/24; }; # 允许使用本DNS解析服务的网段,也可用any代表所有
};
zone "." IN { # 正向解析“."根区域
type hint; # 类型为根区域
file "named.ca"; # 区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
include "/etc/named.rfc1912.zones"; # 包含区域配置文件里的所有配置
4.2.5 修改区域配置文件
添加正向区域配置:
vim /etc/named.rfc1912.zones
zone "benet.com." IN {
type master; # 类型为主区域
file "benet.com.zone"; # 指定区域数据文件为benet.com.zone
allow-update { none; };
};
4.2.6 配置正向区域数据文件
创建并编辑区域数据文件:
cd /var/named/
cp -p named.localhost xiewei.com.zone # 保留源文件的权限和属主的属性复制
vim /var/named/xiewei.com.zone
$TTL 1D # 有效解析记录的生存周期
@ IN SOA xiewei.com. admin.xiewei.com. (
0 ; serial # 更新序列号,可以是10位以内的整数
1D ; refresh # 刷新时间,重新下载地址数据的间隔
1H ; retry # 重试延时,下载失败后的重试间隔
1W ; expire # 失效时间,超过该时间仍无法下载则放弃
3H ) ; minimum # 无效解析记录的生存周期
NS benet.com. # 记录当前区域的DNS服务器的名称
A 192.168.78.22 # 记录主机IP地址
MX 10 mail.benet.com. # MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.78.22 # 记录正向解析www.benet.com对应的IP
mail IN A 192.168.78.23 # 记录邮件服务器IP地址
ftp IN CNAME www # CNAME使用别名,ftp是www的别名
* IN A 192.168.78.22 # 泛域名解析,“*”代表任意主机名
4.3 启动BIND服务并配置客户端
4.3.1 启动BIND服务
启动BIND服务并关闭防火墙:
systemctl start named
systemctl stop firewalld
setenforce 0
4.3.2 查看日志和解决启动问题
如果服务启动失败,可以查看日志文件来排查错误:
tail -f /var/log/messages
如果服务启动卡住,可以执行以下命令:
rndc-confgen -r /dev/urandom -a
检查配置文件的语法:
named-checkconf -z /etc/named.conf
4.3.3 配置客户端的DNS解析
在客户端的域名解析配置文件中添加DNS服务器地址:
vim /etc/resolv.conf
nameserver 192.168.80.10
或者修改网络接口配置文件,并重启网卡:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.80.10
systemctl restart network
4.3.4 测试DNS解析
使用以下命令测试DNS解析是否正常:
host www.benet.com
nslookup www.benet.com
通过以上配置和测试步骤,我们可以成功安装、配置和运行BIND DNS服务器,并确保其能够提供可靠的域名解析服务。这一章的内容帮助我们理解了BIND软件的关键组件和配置方法,为构建高效的DNS系统奠定了基础。
五、DNS反向解析配置
在DNS系统中,反向解析通过IP地址查找对应的域名。反向解析通常用于网络配置验证、邮件服务器反垃圾邮件检查以及其他需要验证IP地址归属的场景。本章将详细介绍如何配置反向解析。
5.1 反向解析简介
反向解析是DNS中的一种功能,通过IP地址查找对应的域名。与正向解析(域名到IP地址)相反,反向解析的目的是验证某个IP地址对应的域名。反向解析记录通常使用PTR(Pointer)记录来实现。
5.2 反向解析配置步骤
5.2.1 修改反向解析区域配置文件
首先,我们需要在BIND的区域配置文件中添加反向解析区域。
修改 /etc/named.rfc1912.zones
编辑 /etc/named.rfc1912.zones
文件,添加反向解析区域配置:
vim /etc/named.rfc1912.zones
zone "78.168.192.in-addr.arpa" IN {
type master;
file "xiewei.com.zone.local"; # 指定反向解析的数据文件,可以与正向解析的数据文件相同或不同
allow-update { none; }; # 禁止动态更新
};
5.2.2 创建反向解析数据文件
接下来,我们需要创建反向解析的数据文件。可以通过复制正向解析的数据文件并进行适当修改来完成。
复制并修改正向解析数据文件
cd /var/named/
cp -p xiewei.com.zone xiewei.com.zone.local
编辑 benet.com.zone.local
文件:
vim /var/named/xiewei.com.zone.local
$TTL 1D # 有效解析记录的生存周期,默认单位为秒
@ IN SOA benet.com. admin.benet.com. ( # SOA记录,包含域名和管理员邮箱
0 ; serial # 更新序列号,主从同步时主服务器的序列号要大于从服务器
1D ; refresh # 刷新时间
1H ; retry # 重试时间间隔
1W ; expire # 失效时间,超过该时间则放弃
3H ) ; minimum # 无效解析记录的生存周期
NS xiewei.com.
A 192.168.78.22
22 IN PTR www.xiewei.com. # 反向解析记录,100表示192.168.78.100
200 IN PTR mail.xiewei.com. # 反向解析记录,200表示192.168.78.200
5.2.3 启动和测试反向解析
启动BIND服务
重新启动BIND服务以应用新的配置:
systemctl restart named
或者使用 rndc
工具重载配置文件:
rndc reload
测试反向解析
使用 host
或 nslookup
工具测试反向解析:
host 192.168.78.22
# 输出应为:
# 22.78.168.192.in-addr.arpa domain name pointer www.xiewei.com.78.168.192.in-addr.arpa.
nslookup 192.168.78.22
# 输出应为:
#22.78.168.192.in-addr.arpa name = www.xiewei.com.78.168.192.in-addr.arpa.
5.3 反向解析配置的作用及原因
5.3.1 增强网络管理
反向解析可以帮助网络管理员验证IP地址的归属,确保网络资源的合理使用和管理。例如,网络监控工具可以通过反向解析来识别访问来源的主机名,从而提供更详细的访问日志。
5.3.2 提高邮件系统安全性
邮件服务器常用反向解析来防止垃圾邮件和欺诈行为。当邮件服务器接收到来自某个IP地址的邮件时,它可以进行反向解析来确认该IP地址是否与发送域名匹配。如果不匹配,邮件可能被标记为垃圾邮件。
5.3.3 DNS查询优化
反向解析配置还可以优化DNS查询过程,减少不必要的解析请求,提高DNS系统的整体性能和响应速度。
六、DNS主从服务器及自动同步配置
在DNS系统中,设置主从服务器(Primary and Secondary DNS Servers)可以提高域名解析的可靠性和可用性。当主服务器不可用时,从服务器可以继续提供DNS解析服务。本文将详细介绍如何配置DNS主从服务器及实现自动同步。
6.1 实验环境
-
主服务器:192.168.78.7
-
从服务器:192.168.78.4
6.2 配置主服务器(192.168.78.7)
6.2.1 配置主配置文件 /etc/named.conf
首先,修改主服务器的配置文件,以允许任何来源查询DNS并监听所有网络接口。
vim /etc/named.conf
options {
listen-on port 53 { any; }; # 监听所有网络接口的53端口
allow-query { any; }; # 允许所有来源进行DNS查询
directory "/var/named"; # 区域数据文件的默认存放位置
dump-file "/var/named/data/cache_dump.db"; # 域名缓存数据库文件的位置
statistics-file "/var/named/data/named_stats.txt"; # 状态统计文件的位置
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 内存统计文件的位置
};
6.2.2 配置区域文件 /etc/named.rfc1912.zones
定义主区域和反向解析区域,并设置允许从服务器进行区域传输。
vim /etc/named.rfc1912.zones
zone "xiewei.com" IN {
type master; # 类型为主区域
file "xiewei.com.zone"; # 区域数据文件
allow-transfer { 192.168.78.4; }; # 允许从服务器192.168.100.17传输数据
};
zone "78.168.192.in-addr.arpa" IN {
type master;
file "xiewei.com.zone.local";
allow-transfer { 192.168.78.4; }; # 允许从服务器192.168.100.17传输数据
};
6.2.3 配置正向区域数据文件 /var/named/benet.com.zone
编辑正向区域数据文件,包含各DNS记录。
cd /var/named/
cp -p named.localhost xiewei.com.zone
vim /var/named/xiewei.com.zone
$TTL 1D # 有效解析记录的生存周期
@ IN SOA benet.com. admin.xiewei.com. ( # SOA记录,包含域名和管理员邮箱
0 ; serial # 更新序列号
1D ; refresh # 刷新时间
1H ; retry # 重试时间间隔
1W ; expire # 失效时间
3H ) ; minimum # 无效解析记录的生存周期
NS xiewei.com. # 记录当前区域的DNS服务器
www IN A 192.168.78.7 # www.xiewei.com对应的IP
mail IN A 192.168.78.8 # mail.xiewei.com对应的IP
ftp IN CNAME www # ftp是www的别名
* IN A 192.168.78.200 # 泛域名解析
6.2.4 配置反向区域数据文件 /var/named/benet.com.zone.local
编辑反向解析区域数据文件,包含各反向解析记录。
cd /var/named/
cp -p named.localhost xiewei.com.zone.local
vim /var/named/xiewei.com.zone.local
$TTL 1D # 有效解析记录的生存周期
@ IN SOA xiewei.com. admin.xiewei.com. ( # SOA记录
0 ; serial # 更新序列号
1D ; refresh # 刷新时间
1H ; retry # 重试时间间隔
1W ; expire # 失效时间
3H ) ; minimum # 无效解析记录的生存周期
NS benet.com. # DNS服务器
7 IN PTR www.xiewei.com. # 192.168.78.7的反向解析
8 IN PTR mail.xiewei.com. # 192.168.78.8的反向解析
6.2.5 启动BIND服务
重启BIND服务以应用配置:
systemctl restart named
6.3 配置从服务器(192.168.78.4)
6.3.1 安装BIND
首先,确保从服务器上安装了BIND软件包。
yum install -y bind
6.3.2 配置从服务器的主配置文件 /etc/named.conf
编辑从服务器的主配置文件:
vim /etc/named.conf
options {
listen-on port 53 { 192.168.78.4; }; # 监听53端口,使用本地IP地址
#listen-on-v6 port 53 { ::1; }; # IPv6配置,如不使用可注释掉
directory "/var/named"; # 区域数据文件的默认存放位置
dump-file "/var/named/data/cache_dump.db"; # 域名缓存数据库文件的位置
statistics-file "/var/named/data/named_stats.txt"; # 状态统计文件的位置
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 内存统计文件的位置
allow-query { any; }; # 允许所有来源查询DNS
};
6.3.3 修改从服务器的区域配置文件 /etc/named.rfc1912.zones
添加正向和反向区域配置:
vim /etc/named.rfc1912.zones
zone "xiewei.com" IN {
type slave; # 类型为从区域
file "slaves/xiewei.com.zone"; # 下载的区域数据文件保存到slaves目录下
masters { 192.168.78.7; }; # 设置主服务器地址
};
zone "78.168.192.in-addr.arpa" IN {
type slave;
file "slaves/xiewei.com.zone.local";
masters { 192.168.78.7; }; # 设置主服务器地址
};
6.3.4 启动BIND服务并验证同步
重启BIND服务,并检查从服务器是否正确同步了主服务器的区域数据文件:
systemctl restart named
ls -1 /var/named/slaves/
注意 :(一定要记得关防火墙和加强,对于新学者而言)
6.4 客户端配置及测试
6.4.1 配置客户端使用从服务器进行DNS解析
编辑客户端的DNS解析配置文件:
echo "nameserver 192.168.100.17" >> /etc/resolv.conf
6.4.2 测试DNS解析
使用 host
和 nslookup
命令测试解析是否正确:
host 192.168.78.7
nslookup xiewei.com
6.4.3 模拟主服务器故障
停止主服务器上的BIND服务,模拟主服务器故障,验证从服务器能否继续提供DNS解析服务:
systemctl stop named
再次在客户端进行测试,确保从服务器仍然能够解析域名:
host 192.168.78.7
nslookup xiewei.com
七、DNS 分离解析配置与实验
7.1 实验环境
-
主服务器:192.168.78.8(网卡:vmnet2)
-
内网客户主机:192.168.100.9(网卡:vmnet1)
-
外网客户主机:192.168.78.5(网卡:NAT)
7.2 DNS分离解析概述
DNS分离解析的域名服务器是主域名服务器,根据不同客户端提供不同域名解析记录。例如,内网和外网不同网段的客户请求解析同一域名时,提供不同的解析结果。
7.3 实验步骤
7.3.1 为主服务器配置双网卡
确保主服务器有两块网卡:
-
ens33: 192.168.78.8
-
ens37: 192.168.100.8
7.3.2 安装BIND软件包
在主服务器上安装BIND:
yum install -y bind
7.3.3 修改主配置文件
编辑 /etc/named.conf
,确保配置如下:
options {
listen-on port 53 { any; }; # 监听所有网络接口
#listen-on-v6 port 53 { ::1; }; # 如不使用IPv6,可注释或删除
directory "/var/named"; # 区域数据文件的默认存放位置
dump-file "/var/named/data/cache_dump.db"; # 缓存数据库文件位置
statistics-file "/var/named/data/named_stats.txt"; # 状态统计文件位置
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 内存统计文件位置
allow-query { any; }; # 允许所有网段使用DNS解析服务
}
include "/etc/named.rfc1912.zones";
7.3.4 修改区域配置文件
编辑 /etc/named.rfc1912.zones
,配置分离解析:
view "lan" {
match-clients { 192.168.100.0/24; }; # 内网网段
zone "xiewei.com" IN {
type master;
file "xiewei.com.zone.lan";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
};
view "wan" {
match-clients { any; }; # 匹配外网
zone "xiewei.com" IN {
type master;
file "xiewei.com.zone.wan";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
};
7.3.5 修改区域数据配置文件
创建并编辑区域数据配置文件:
cd /var/named
cp -p named.localhost xiewei.com.zone.lan
cp -p named.localhost xiewei.com.zone.wan
编辑 xiewei.com.zone.lan
文件:
$TTL 1D
@ IN SOA xiewei.com. admin.xiewei.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.xiewei.com.
ns IN A 192.168.100.8
www IN A 192.168.100.8
mail IN A 192.168.100.8
ftp IN CNAME www
* IN A 192.168.100.8
编辑 xiewei.com.zone.wan
文件:
$TTL 1D
@ IN SOA xiewei.com. admin.xiewei.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.xiewei.com.
ns IN A 192.168.78.8
www IN A 192.168.78.8
mail IN A 192.168.78.8
ftp IN CNAME www
* IN A 192.168.78.8
7.3.6 启动BIND服务
启动BIND服务:
systemctl start named
systemctl enable named
7.3.7 配置客户端使用DNS服务器
在内网客户主机上添加DNS服务器地址:
echo "nameserver 192.168.100.8" > /etc/resolv.conf
在外网客户主机上添加DNS服务器地址:
echo "nameserver 192.168.78.8" > /etc/resolv.conf
7.3.8 测试DNS解析
在内网客户主机上测试:
nslookup www.xiewei.com
在外网客户主机上测试:
nslookup www.xiewei.com
这样即可验证内网和外网的DNS分离解析是否正确配置和工作。
7.4实验目的
DNS分离解析即将内外网的相同域名解析为不同的IP地址。现实网络中一些电商网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度