DNS分离解析
DNS分离解析概述与配置环境
- 分离解析的域名服务器实际也是主域名服务器,这里主要是根据不同的客户端提供不同的域名解析记录。例如分别来自内网和外网的两个不同网段地址区域的客户机请求解析同一域名时,DNS分离解析将为它们提供不同的解析结果,从而得到不同的IP地址
- 实验配置环境
- DNS分离解析服务搭建在网关服务器上,并在网关服务器上配置双网卡
- 局域网主机IP:12.88.88.10。外网主机IP:192.168.88.1
- 局域网主机解析www.qz.com为12.88.88.15。外网主机解析www.qz.com为192.168.88.15
- 这里使用Windows作为外网测试机
DNS分离解析操作步骤
1.为网关服务器配置双网卡并安装bind包
-
对虚拟机进行VMnet添加
-
关机和开机状态下都可进行虚拟机网卡的添加操作
-
在宿主机上对新添加的VMnet地址进行修改,以便Xshell的连接
-
对两个网卡配置文件进行更改
[root@localhost /]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE="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="ens36" (需更改成ens36)
#UUID="0ad9bd17-0626-458e-8107-90b7c832a577" (因为该文件是从ens33复制过来的,所以UUID号相同,此处进行注释操作)
DEVICE="ens36" (需更改成ens36)
ONBOOT="yes"
IPADDR=192.168.88.1
NETMASK=255.255.255.0
#GATEWAY=192.168.131.2
#DNS1=192.168.131.2
[root@localhost network-scripts]# systemctl restart network
- 安装bind软件包并关闭防火墙和增强型安全功能
[root@localhost /]# yum install -y bind
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
2.修改主配置文件
[root@localhost /]# vim /etc/named.conf
options {
listen-on port 53 { any; }; (因为内、外客户端有2个不同网段,所以使用any。也可换成对应的2个网段)
#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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; (允许所有主机进行解析)
3.修改区域配置文件
[root@localhost /]# vim /etc/named.rfc1912.zones
view "lan" { (定义内网view。view代表容器分隔)
match-clients { 12.88.88.0/24; }; (匹配内网网段)
zone "qz.com" IN { (设置要解析的区域)
type master;
file "qz.com.zone.lan"; (数据配置文件)
};
zone "." IN { (从主配置文件里将根域配置剪切复制过来)
type hint; (hint是根区域类型)
file "named.ca";
};
};
view "wan" { (定义外网view)
match-clients { any; }; (匹配除了内网网段以外的任意地址)
zone "qz.com" IN {
type master;
file "qz.com.zone.wan";
};
(注意:因为一旦启用view,所有的zone必须都在view下,所以需要把系统默认的自检用的zone也放在view下或者直接删除)
4.修改区域数据配置文件
[root@localhost /]# cd /var/named/
[root@localhost named]# cp -p named.localhost qz.com.zone.lan
[root@localhost /]# vim var/named/qz.com.zone.lan
$TTL 1D
@ IN SOA qz.com. admin.qq.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS qz.com.
A 12.88.88.10
www IN A 12.88.88.15 (内网主机通过解析www.qz.com地址将得到12.88.88.15)
[root@localhost named]# cp -p qz.com.zone.lan qz.com.zone.wan
[root@localhost /]# vim var/named/qz.com.zone.wan
$TTL 1D
@ IN SOA qz.com. admin.qq.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS qz.com.
A 192.168.88.1
www IN A 192.168.88.15 (外网主机通过解析www.qz.com地址将得到192.168.88.15)
5.启动服务并查看网络连接情况
[root@localhost /]# systemctl start named
[root@localhost named]# netstat -nautp | grep named
tcp 0 0 192.168.88.1:53 0.0.0.0:* LISTEN 5146/named
tcp 0 0 12.88.88.10:53 0.0.0.0:* LISTEN 5146/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5146/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 5146/named
tcp6 0 0 ::1:953 :::* LISTEN 5146/named
udp 0 0 192.168.88.1:53 0.0.0.0:* 5146/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 5146/named
udp 0 0 12.88.88.10:53 0.0.0.0:* 5146/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 5146/named
6.在内、外网客户端添加DNS服务器地址
- 内网客户机
[root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 12.88.88.10
- 外网客户机
7.内、外网客户端测试
- 内网客户端
[root@localhost ~]# host qz.com
qz.com has address 12.88.88.10
- 外网客户端