DNS相关技术------
DNS分离解析
概念
当收到客户机的DNS查询请求时能够区分客户机的来源地址,为不同类别的客户机提供不同的解析结果。
BIND的view视图------
根据源地址集合将客户机分类,不同客户机获得不同结果。
示例:
view "vip"{
match-clients{ 来源地址1;......}
zone "12306.cn" IN{
......地址库文件1;
};
}
view "other"{
match-clients{ 来源地址2;......}
zone "12306.cn" IN{
......地址库文件2;
};
}
示例说明:
同一个区域在多个视图内分别定义,其他地址库文件相互独立,从而实现解析结果的分离
定义view视图后,不允许在view以外出现zone配置
案例
环境及需求:
权威DNS:server.abcd.cn 192.168.88.240
负责区域:abcd.cn
A记录分离解析------以www. abcd.cn为例
|--------------|---------------|
| 客户机来自 | 解析结果 |
| 192.168.88.2 | 192.168.4.100 |
| 其他地址 | 1.2.3.4 |
设备:
server 192.168.88.240
pc1 192.168.88.2
pc2 192.168.88.3
操作步骤
server机配置
1、设置selinux和防火墙
#server设置selinux为宽松
Setenforce 0
Vim /etc/selinux/config
SELINUX=permissive
#卸载防火墙
yum remove firewalld
#其他两台机器都一样操作
2、安装DNS软件包
yum --y install bind bind-chroot
3、修改主配置文件
vim /etc/named.conf
options {
directory "/var/named";
};
zone "abcd.cn" IN{
type master;
file "abcd.cn.zone";
};
4、新建zone文件用于dns解析
cd /var/named/
cp --p named.localhost abcd.cn.zone
vim abcd.cn.zone
...
NS server
server A 192.168.88.240
www A 192.168.4.100
5、重启服务
systemctl restart named
6、指定dns服务器
cd /
echo nameserver 192.168.88.240 > /etc/resolv.conf
其他两台机器也执行这条命令指定一下
pc1机配置
1、测试域名
nslookup www.abcd.cn
显示:192.168.4.100
设置server机分离解析
1、修改主配置文件
vim /etc/named.conf
options {
directory "/var/named";
};
view "haha" {
match-clients { 192.168.88.2; }; #解析结果就是192.168.4.100
zone "abcd.cn" IN{
type master;
file "abcd.cn.zone";
};
};
view "xixi" {
match-clients { any; }; #所有其他IP地址,解析结果就是192.168.4.100,文件是由上到下匹配的,先匹配的是192.168.88.2
zone "abcd.cn" IN{
type master;
file "abcd.cn.other";
};
};
2、编辑zone地址库文件
cp /var/named/abcd.cn.zone /var/named/abcd.cn.other
vim /var/named/abcd.cn.other
...
NS server
server A 192.168.88.240
www A 1.2.3.4
3、重启服务
systemctl restart named
4、pc1机测试域名
nslookup www.abcd.cn
显示:192.168.4.100
5、pc2机测试域名
nslookup www.abcd.cn
显示:1.2.3.4
主从DNS架构
概念
主域名服务器------
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有的"域名<--->IP地址"记录
从域名服务器------
也叫辅助域名服务器,可以没有
其维护的"域名<--->IP地址"记录取决于主域名服务器
案例
网络架构
|--------|----------------|--------|
| 服务器名 | IP地址 | 说明 |
| Server | 192.168.88.240 | 主域名服务器 |
| pc1 | 192.168.88.2 | 从域名服务器 |
| pc2 | 192.168.88.3 | 测试服务器 |
操作步骤
搭建主域名服务器
注意:首先要关闭SElinux和防火墙
1、修改DNS服务器地址的配置
vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.88.2; }; #告诉DNS服务器,谁是从域名服务器
};
zone "abcd.cn" IN{
type master;
file "abcd.cn.zone";
};
2、修改地址库文件
vim /var/named/abcd.cn.zone
...
NS server
NS pc1
server A 192.168.88.240
pc1 A 192.168.88.2
www A 192.168.4.100
3、重启服务
systemctl restart named
搭建从域名服务器
1、装包,启动服务
yum --y install bind bind-chroot
2、修改DNS服务器地址的配置
vim /etc/named.conf
options {
directory "/var/named";
};
zone "abcd.cn" IN{
type slave;
file "abcd.cn.slave";
masters { 192.168.88.240; };
masterfile-format text; #要明文的abcd.cn.slave文件,不加这句就是加密的
};
3、查看named用户有对/var/named目录有读写执行权限
id named
ls --ld /var/named
4、重启服务
systemctl restart named
ls --ld /var/named #看到有abcd.cn.slave文件
5、在pc2上测试
nslookup www.abcd.cn 192.168.88.240
nslookup www.abcd.cn 192.168.88.2
都显示:
Name:www.abcd.cn
Address:192.168.4.100
配置主从同步
1、服务器改配置文件
vim /var/named/abcd.cn.zone
...
NS server
NS pc1
server A 192.168.88.240
pc1 A 192.168.88.2
www A 1.1.1.1
2、重启服务
systemctl restart named
3、在pc2上测试
nslookup www.abcd.cn 192.168.88.240
显示:
Name:www.abcd.cn
Address:1.1.1.1
nslookup www.abcd.cn 192.168.88.2
显示:
Name:www.abcd.cn
Address:192.168.4.100
说明没同步。
4、要让主从的数据同步,服务器还要改配置文件
vim /var/named/abcd.cn.zone
...
2022060601 ; serial #第三行------数据版本号 0改成任意数字,只要改了就表示有更新,就会触发主从同步。专业写法就是修改的年月日加修改次数
1D ; refresh #天数 每隔一天确认一次从活着
1H ; retry #小时数 如果找不到从,每隔1小时联系下从
1W ; expire #星期数 联系从一个星期都找不到,认为从挂了
3H ) ; minimum #失效记录的记录时间3小时,就是接受客户端请求找域名,但是找不到,找不到的这个记录会记录3个小时,以便还有客户端来请求找这个域名时可以速度回复
NS server
NS pc1
server A 192.168.88.240
pc1 A 192.168.88.2
www A 1.1.1.1
systemctl restart named
5、重启服务后去查看从域名服务器的配置文件,发现第三行也改成2022060601 ; serial了
6、再去pc2上测试,就看到同步了
nslookup www.abcd.cn 192.168.88.2
显示:
Name:www.abcd.cn
Address:192.168.88.2
缓存DNS服务器
概念
主要应用场景------
互联网出口带宽较低的企业局域网络
ISP服务商的公共DNS服务器

核心功能与优势
加速域名解析
通过存储已查询的域名-IP映射关系,减少重复查询时间,显著提升用户访问速度。当客户端与缓存服务器间存在高速连接时,响应时间可缩短至毫秒级。
降低网络流量
减少对上游DNS服务器的重复请求,有效缓解机构网络带宽压力,节省升级成本。同时可降低互联网整体流量负载。
内容分发支持
在互联网各层级部署缓存服务器,可快速扩散热门内容,即使源服务器带宽有限也能满足用户需求。
技术实现原理
缓存机制
自动保存DNS查询结果(包括A记录、CNAME等),并设置TTL(Time-to-Live)控制缓存有效期2。例如Linux系统通过/etc/named.conf配置缓存策略。
层级结构
分为主缓存服务器(存储完整DNS数据)和辅助缓存服务器(仅存储常用记录),通过SOA记录同步数据。
缓存更新
当域名IP变更时,需手动清空缓存(如Windows执行ipconfig /flushdns)或等待TTL过期。
基本配置步骤
- 建立named.comf主配置文件,设置forwarders{ 公共DNS; }; 转发器
- 启动named服务
- 验证缓存DNS服务器
案例
网络架构
|--------|----------------|---------|
| 服务器名 | IP地址 | 说明 |
| Server | 192.168.88.240 | 主域名服务器 |
| pc1 | 192.168.88.2 | 缓存域名服务器 |
| pc2 | 192.168.88.3 | 测试服务器 |
pc2主机配置
1、编辑配置文件
vim /etc/named.conf
options {
directory "/var/named";
};
2、重启服务,这时pc2测试域名就没有任何返回了
systemctl restart named
3、再编辑配置文件
vim /etc/named.conf
options {
directory "/var/named";
forwarders { 192.168.88.240; }; #设置了DNS转发器地址为192.168.88.240,转发的地址可以写多个
};
4、重启服务,转发域名访问到server
systemctl restart named
pc3主机测试
nslookup www.abcd.cn 192.168.88.2
显示:1.1.1.1