配置 DNS 分离解析
配置 DNS 分离解析
一:服务端配置
1.1 什么是分离解析
分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。
比如来自内网和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。
1.2 实验拓扑

1.3 VMware配置和 宿主机配置
先在 虚拟机添加 第二张网卡 ,设置为 vmnet 2
DNS服务器连接内网的网卡设为vmnet1,内网的http服务器设置为vmnet1 ,作为外网客户端的windows 设置为 vmnet1
1.3.1 VMware 配置

1.3.2 宿主机设置
宿主机上,vmnet 1 网卡配置

宿主机vmnet2 网卡配置
1.4 为网关服务器配置双网卡
# 配置 网卡一 192.168.23.10 作为对内网提供 DNS 服务的 DNS 服务器地址 # 配置 网卡二 12.0.0.1 作为对外网提供 DNS 服务的 DNS 服务器地址 [root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 [root@localhost network-scripts]# vim ifcfg-ens36 YPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME="ens33" #UUID=c4f6e9f4-8e96-4504-8c77-d419c5ae2cc7 #UUID 一定要注释或者删除 #UUID代表设备识别号,这是唯一的,不可以相同,否则会相互冲突 DEVICE="ens33" ONBOOT=yes IPADDR=12.0.0.1 # ens36 设置为外网的接口,配置外网ip NETMASK=255.255.255.0 #GATEWAY=192.168.23.2 #DNS1=192.168.23.2 :wq #保存退出 [root@localhost network-scripts]# vim ifcfg-ens33 YPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=c4f6e9f4-8e96-4504-8c77-d419c5ae2cc7 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.23.10 NETMASK=255.255.255.0 #GATEWAY=192.168.23.2 #注释或删除网关 #DNS1=192.168.23.2 #注释或删除DNS :wq #保存退出 [root@localhost network-scripts]# systemctl restart network #重启网卡 [root@localhost network-scripts]# ifconfig ens33 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.23.10 netmask 255.255.255.0 broadcast 192.168.23.255 [root@localhost network-scripts]# ifconfig ens36 ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 12.0.0.1 netmask 255.255.255.0 broadcast 12.0.0.25
1.5 修改主配置文件
(如果之前没有做DNS ,下载软件包bind )[root@localhost ~]# yum -y install bind
[root@localhost ~]# vim /etc/named.conf #修改主配置文件
options {
listen-on port 53 { any; }; #监听本机或者any
# listen-on-v6 port 53 { ::1; };
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 的主机,
......
};
# 将根域注释。一旦 启用 view ,所有zone 都必须在 view 里面
#zone "." IN {
# type hint;
# file "named.ca";
#};
1.6 修改区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones #配置区域配置文件
view "lan" { #定义内网 view ,view 代表容器分割,"lan" 便于区别
match-clients { 192.168.23.0/24; }; #匹配内网网段。多个网段用 分号";" 间隔
zone "mynet.com" IN { # 定义域名
type master; # 类型主
file "mynet.com.zone.lan"; # 设置区域数据配置文件名,设置 .lan ,便于区分内网和外网
};
zone "." IN {
type hint; # hint 是根区域类型
file "named.ca";
};
#有了根域,可以实现内网的服务器访问外网,
#根域配置在 主配置文件 /etc/named.conf 最后面. 可以切换文件 剪切粘贴
};
view "wan" { # 定义外网view,定义为 "wan" 便于区别
match-clients { any; }; # 匹配除了 内网网段以外的任意地址
zone "mynet.com" IN {
type master;
file "mynet.com.zone.wan";
};
};
# 注意!!!
#一旦启用 view ,所用的zone 必须在view 下所以要把系统默认的自检用的zone 也放在view下,或者注释,或者删除
#注意,主配置文件里 /etc/named.conf 文件里 最后面的 根域配置,注释或者删除
1.7 修改区域数据配置文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost mynet.com.zone.lan
[root@localhost named]# cp -p named.localhost mynet.com.zone.wan
[root@localhost named]# vim mynet.com.zone.lan #配置 内网 区域数据文件
$TTL 1D
@ IN SOA mynet.com. admin.mynet.com. ( #要设置完整合格域名
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS mynet.com. #完整合格域名
A 192.168.23.10 # DNS 地址
www IN A 192.168.23.11 # www 的解析地址,解析到web 服务器上
:wq #保存退出
[root@localhost named]# vim mynet.com.zone.wan # 配置外网的区域数据配置文件
$TTL 1D
@ IN SOA mynet.com. admin.mynet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS mynet.com.
A 12.0.0.1 # 对外网提供服务,所以设置成外网的地址
www IN A 12.0.0.1 # 外网主机通过解析 www.mynet.com 为外网 12.0.0.1 地址
:wq #保存并退出
1.8 启动服务,测试
[root@localhost named]# systemctl stop firewalld #关闭防火墙
[root@localhost named]# setenforce 0 #设置selinux 等级
[root@localhost named]# systemctl restart named #重启服务
[root@localhost named]# vim /etc/resolv.conf #配置 DNS 地址,测试
nameserver 192.168.23.10
[root@localhost named]# host www.mynet.com #测试域名解析
www.mynet.com has address 192.168.23.11
二 :客户端配置
2.1 内网web 服务器配置
#192.168.23.11 作为web服务器
[root@localhost ~]# vim /etc/resolv.conf #设置DNS 地址
nameserver 192.168.23.10
[root@localhost ~]# host www.mynet.com
www.mynet.com has address 192.168.23.11
[root@localhost ~]# yum -y install httpd #安装httpd
[root@localhost ~]# systemctl start httpd #启动httpd
[root@localhost ~]# netstat -natp | grep httpd
tcp6 0 0 :::80 :::* LISTEN 42891/httpd
2.2 访问测试
2.2.1 内网访问测试
内网访问测试:
[root@localhost ~]# firefox http://192.168.23.11
[root@localhost ~]# firefox http://www.mynet.com
192.168.23.11,分别使用 ip地址 192.168.23.11 和 域名 www.mynet.com 访问,看看是否会跳出 Apache 测试页面
2.2.2 windows 访问测试
三: 在DNS 服务器上,做DHCP 服务
web 服务器和 windows 客户端 都是用dhcp 获取
3.1 服务器设置
# DNS 和DHCP 服务器 192.168.23.10
[root@localhost ~]# yum -y install dhcp #下载安装包
[root@localhost ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
[root@localhost ~]# cd /usr/share/doc/
[root@localhost doc]# cd dhcp-4.2.5/
[root@localhost dhcp-4.2.5]# cp -p dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制模板文件
[root@localhost dhcp]# vim dhcpd.conf #编辑主配置文件
option domain-name "mynet.com"; #全局配置,设置域名
#option domain-name-servers ns1.example.org, ns2.example.org;
ddns-update-style none; #禁用dns 动态更新,可以加快dns 的响应速度
subnet 192.168.23.0 netmask 255.255.255.0 { #配置分配的网段
range 192.168.23.100 192.168.23.200; #配置网段地址池
option routers 192.168.23.10; #设置该网段的网关地址
option domain-name-servers 192.168.23.10; #设置该网段的DNS地址
}
subnet 12.0.0.0 netmask 255.255.255.0 {
range 12.0.0.100 12.0.0.200;
option routers 12.0.0.1;
option domain-name-servers 12.0.0.1;
}
[root@localhost dhcp]# systemctl stop firewalld #关闭防火墙
[root@localhost dhcp]# setenforce 0 #设置selinux 等级为 permissive
[root@localhost dhcp]# systemctl restart dhcpd #重启dhcp
3.2 web 服务器设置
# web 服务器设置 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=dhcp #将网卡的 BOOTPROTO 设置为DHCP 获取 [root@localhost ~]# systemctl restart network [root@localhost ~]# ifconfig ens33 #查看DHCP 获取到的地址 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.23.100 netmask 255.255.255.0 broadcast 192.168.23.255
3.3 DNS 服务器重新配置区域数据文件
由于web 服务器使用DHCP 获取后,IP 地址改变,所以要 重新 配置区域数据文件里的 正向解析地址
[root@localhost dhcp]# vim /var/named/mynet.com.zone.lan
$TTL 1D
@ IN SOA mynet.com. admin.mynet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS mynet.com.
A 192.168.23.10
www IN A 192.168.23.100
:wq
[root@localhost dhcp]# systemctl restart named
3.4 测试
3.4.1 内网测试
火狐浏览器访问域名
3.4.2windows 客户端使用 dhcp 获取,然后测试DNS 解析
(1) 网卡配置,选择自动获得IP地址
(2) 查看该网卡信息
(3) 解析测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现