主从DNS服务器
**实验目的:**
数据备份,分摊压力(调度器)
**先关闭服务器和客户机上的防火墙和SELinux**
**实验准备:**
一台主服务器、一台从服务器、一台测试机![[Pasted image 20240913135841.png]]
规划:
7-3 #DNS主服务器
192.168.90.102
7-4 #DNS从服务器
192.168.90.103
7-6 #web server
192.168.90.101
7-7 #client
192.168.90.100
![[Pasted image 20240917141207.png]]
如何备份?从服务器向主服务器发起请求,然后主服务器将相关数据发送给从服务器
![[Pasted image 20240913144350.png]]
**搭建过程:**
服务器webserver要执行的命令 安装apache服务
``` shell
yum -y install httpd
systemctl start httpd
cd /var/www/html/
ll
echo "欢迎" >> index.html
```
**1.** **搭建主服务器步骤**
a. 安装bind软件
b. 主配置文件的修改
![[Pasted image 20240913141348.png]]
c. 区域配置文件的修改
![[Pasted image 20240913141230.png]]
修改为:allow-transfer { IP地址; };
d. 配置数据文件
![[Pasted image 20240913141513.png]]
正向数据文件
1. 修改版本号{格式:2024091301 #序号每次+1 最多到99
2. 添加两条解析记录
NS dns2.xxhf.com.
dns2 A 192.168.90.103
相关命令
``` shell
按如下步骤
yum -y install bind
vim /etc/named.conf #主配置文件
listen-on port 53 { any; }; allow-query { any; };
vim /etc/named.rfc1912.zones #区域配置文件
zone "xxhf.com" IN {
type master;
file "xxhf.localhost";
allow-transfer { 192.168.90.103; };
};
cd /var/named/
cp -a named.localhost xxhf.localhost
vim xxhf.localhost #域名正向解析配置文件
$TTL 1D
@ IN SOA xxhf.com. rname.invalid. (
2024091301 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.xxhf.com.
NS dns2.xxhf.com. #在搭建的从dns服务器域名
dns A 192.168.90.102 主dns
dns2 A 192.168.90.103 次dns
www A 192.168.90.101 server服务器域名
systemctl start named
```
e. 启动named服务
**2.** **搭建从服务器步骤:**
a. 安装bind软件
b. 修改主配置文件/etc/named.conf
![[Pasted image 20240913142044.png]]
c. 配置区域文件(/etc/named.rfc1912.zones)![[Pasted image 20240913141840.png]]
注意:从配置文件的类型需要修改为slave,并且需要填写主服务器的地址,如下
type slave;
masters { 192.168.90.102; }; #大括号两侧留有空格
文件保存位置修改为 file “slaves/xxhf.localhost”;
d. 重启服务
相关命令
``` shell
yum -y install bind
vim /etc/named.conf
listen-on port 53 { any; }; allow-query { any; };
vim /etc/named.rfc1912.zones
zone "xxhf.com" IN {
type slave;
masters { 192.168.90.102; };
file "slaves/xxhf.localhost"; #注意保存路径在全局路径下的相对路径多了slaves
allow-update { none; };
};
systemctl start named
#当修改了主dns的配置可以用 不用重新启动
systemctl reload named
```
测试:
在slave服务器上查看是否备份了主dns服务器的文件
![[Pasted image 20240913140622.png]]
开始测试client 先添加dns 并使用nslookup测试
``` shell
vim /etc/resolv.conf #添加网卡dns的配置文件
nameserver 192.168.90.102
nameserver 192.168.90.103
systemctl restart network
#要测试的命令
nslookup www.xxhf.com
nslookup dns.xxhf.com
nslookup dns2.xxhf.com
nslookup www.baidu.com
curl www.xxhf.com
```
把主dns关闭看从dns服务器能否独立运行
![[Pasted image 20240913142725.png]]
在client端测试发现可以访问apache服务 证明从dns服务器可以独立运行但是时间不能维持很久![[Pasted image 20240913143528.png]]
ps : 扩展 curl #url资源访问命令 不可以识别html
elinks #字符界面下的浏览器(需要手动安装) 可以识别html
### DNS缓存服务器
**先关闭服务器和客户机上的防火墙和SELinux**
**实验作用:**
加快解析速度,提高工作效率
**实验软件:**
dnsmasq dns缓存服务
![[Pasted image 20240913145858.png]]
规划:
7-3 #DNS主服务器
192.168.90.102
7-4 #DNS缓存服务器
192.168.90.103
7-6 #web server
192.168.90.101
7-7 #client
192.168.90.100
![[Pasted image 20240913144523.png]]
**搭建webserve服务器步骤**
服务器webserver要执行的命令 安装apache服务
``` shell
yum -y install httpd
systemctl start httpd
cd /var/www/html/
ll
echo "欢迎" >> index.html
```
**搭建dns服务器步骤**
``` shell
yum -y install bind
vim /etc/named.conf #修改主配置文件 改下面两个
listen-on port 53 { any; }; listen-on port 53 { any; };
vim /etc/named.rfc1912.zones #修改地方
zone "xxhf.com" IN zone "90.168.192.in-addr.arpa" IN
cd /var/named/
cp -a named.localhost named.localhost.bak
cp -a named.loopback named.loopback.bak
vim named.localhost #正向文件
vim named.loopback #反向文件
systemctl start named
```
**搭建dns缓存服务器步骤**
``` shell
yum -y install dnsmasq
vim /etc/dnsmasq.conf
domain=xxhf.com
server=192.168.90.102
cache-size=5
systemctl restart dnsmasq
```
**配置文件:**
/etc/dnsmasq.conf
domain=域名 #需要解析的域名
server=ip #主DNS服务器IP
cache-size=15000 #声明缓存条数
**重启服务:**
systemctl restart dnsmasq
**client测试效果:**
在测试机上填写DNS缓存服务器的ip地址
``` shell
vim /etc/resolv.conf #添加网卡dns的配置文件
nameserver 192.168.90.102
nameserver 192.168.90.103
systemctl restart network
#要测试的命令
nslookup www.xxhf.com
nslookup dns.xxhf.com
nslookup dns2.xxhf.com
nslookup www.baidu.com
curl www.xxhf.com
```
![[Pasted image 20240913150911.png]]
一旦dns服务器关闭,缓存dns服务器不可以独立运行测试如下![[Pasted image 20240913151226.png]]
## 缓存服务器和从服务器的不同点?
缓存服务器保存部分常用的数据副本,以加快访问速度,当客户端请求如百度时,缓存服务器会存储这个请求的结果,供后续快速使用。不像从服务器那样复制全部数据。
``` shell
#!/bin/bash
read i
#已实现免密登录
ssh $i
systemctl enable --now named
if [ "$?" -ne "0" ]
then
sed -i '/server/ s/192.168.90.102/192.168.90.103/ ' /etc/dnsmasq.conf
fi
```
智能dns案例
![[Pasted image 20240913195906.png]]
当北京用户访问该网站时,他们的请求会被发送到本地的 DNS 服务器进行解析,并得到指向北京数据中心 IP 地址的结果;同样地,上海用户也会通过当地的 DNS 服务获取到指向上海数据中心相应 IP 的映射关系。这样一来,尽管地理位置不同,但是每个用户都能够准确地找到自己所在区域内的服务器并获得相同的内容体验。同时由于两个地区之间的数据同步功能的存在,确保了无论哪个地区的用户都能看到最新的、一致性的页面内容。
### 分离解析 (重难点)
**实验原理:**DNS分离解析即将相同域名解析为不同的IP地址。现实网络中一些网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度
==同一个DNS服务器在解析给不同客户端时,会根据客户端来源地址的不同解析给响应的服务 这就叫分离解析,或者叫智能DNS 智能DNS采用"就近原则",以优化用户访问资源的效率并减轻单个数据中心的压力==
网卡拓扑图
![[Pasted image 20240917142152.png]]
![[Pasted image 20240913192502.png]]
**实验环境:**
规划:
7-6 #内网测试机
ens33 vmnet10 192.168.100.100
7-3 #web服务器
ens33 vmnet10 192.168.100.101
ens36 vmnet8 192.168.90.101
7-4 #DNS服务器
ens33 vmnet10 192.168.100.102
ens36 vmnet8 192.168.90.102
7-7 #外网测试机
ens33 vmnet8 192.168.90.103
![[Pasted image 20240913191632.png]]
**先关闭服务器和客户机上的防火墙和SELinux**
**先搭建dns服务器**
**实验步骤:**
**1. 请在配置网卡前安装bind软件
**2. 修改主配置文件/etc/named.conf
``` shell
vim /etc/named.conf
listen-on port 53 { any; }; allow-query { any; };
view lan {
match-clients { 192.168.100.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/lan.zones";
};
view wan {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/wan.zones";
};
#include "/etc/named.rfc1912.zones";
```
![[Pasted image 20240917142343.png]]
==注意:主配置文件在调用这两个区域配置文件时, 在区域配置文件每一个单独的匹配视窗里边,单独include的某一个区域配置文件 此外要注释掉原本的区域配置文件==
**3.** **生成自己定义的区域文件
``` shell
cd /etc
cp -a named.rfc1912.zones lan.zones
cp -a lan.zones wan.zones
vim lan.zones
zone "xxhf.com" IN {
type master;
file "xxhf.lan";
allow-update { none; };
};
vim wan.zones
zone "xxhf.com" IN {
type master;
file "xxhf.wan";
allow-update { none; };
};
```
cp –a named.rfc1912.zones lan
cp –a named.rfc1912.zones wan
**5.** **配置数据文件**
配置内网的正向解析文件
配置外网的正向解析文件
``` shell
cd /var/named/
cp -a named.localhost xxhf.lan #内网
vim xxhf.lan
$TTL 1D
@ IN SOA xxhf.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.xxhf.com.
dns A 192.168.100.102
www A 192.168.100.100
cp -a xxhf.lan xxhf.wan #外网
vim xxhf.wan
$TTL 1D
@ IN SOA xxhf.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.xxhf.com.
dns A 192.168.90.102
www A 192.168.90.100
```
**6.** **启动服务**
systemctl start named
**在搭建web服务器**
**1. 请在配置网卡前安装httpd软件 并添加两个不同网络模式的网卡
``` shell
#相关命令
yum -y install httpd
systemctl start httpd
cd /var/www/html/
ll
echo "欢迎" >> index.html
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
cp -a ifcfg-ens33 ifcfg-ens36
```
![[Pasted image 20240913194656.png]]
**在搭建内网和外网服务器**
![[Pasted image 20240913194924.png]]
![[Pasted image 20240913194956.png]]
``` shell
之后的操作要连接dns服务器
#内网测试机
vim /etc/resolv.conf #添加网卡dns的配置文件
nameserver 192.168.100.102
systemctl restart network
#外网测试机
vim /etc/resolv.conf #添加网卡dns的配置文件
nameserver 192.168.90.102
systemctl restart network
```
**7.** **效果测试**
内网客户端网卡配置
将dns和网关都指为网关服务器的内网口地址
![[Pasted image 20240913195339.png]]
外网客户端网卡配置
将dns和网关都指为网关服务器的外网口地址
![[Pasted image 20240913195300.png]]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App