场景说明:因内外网服务器地址不相同,路由器上的DNS解析数量有限制。所以考虑将DNS服务配置在服务器中,只需要一台服务器配置双网卡,不同地址段的服务解析对应的服务地址。VMware workstation虚拟化出一台centos7.8,原有的已经有一个网络适配器(NAT模式),再添加一个网络适配器2(桥接模式)。
1.安装bind程序。
安装完成的应用名称为named
[root@centos ~]# yum -y install bind bind-utils
[root@centos ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@centos ~]# systemctl start named
2.修改配置named
[root@centos ~]# vim /etc/named.conf
listen-on port 53 和allow-query选项监听的地址段我这里直接改为any,允许所有来源的地址查询解析。当然也可以根据地址限制,这里不多做介绍。
注释掉红框中的配置(与分离解析服务冲突),添加include。
include "/var/named/named.xxx.zones";
该文件名称xxx可以自己定义,不一定要按照这种格式命名。我这里做演示,只配置正向解析,一般情况下我们也只需要配置正向解析就够了
配置name.xxx.zones:
[root@centos named]# vim /var/named/named.xxx.zones
acl "lan" { 192.168.5.0/24; }; //内网适配器网段
acl "wan" { 192.168.2.0/24; }; //外网适配器网段
view "lan"{
match-clients { "lan"; }; //匹配
zone "xxx.com" IN { //域名配置
type master;
file "xxx.com.lan"; //解析文件
};
};
view "wan"{
match-clients { "wan"; };
zone "xxx.com" IN {
type master;
file "xxx.com.wan";
};
};
配置xxx.com.lan:
[root@centos named]# vim xxx.com.lan
@ IN SOA xxx.com. admin.xxx.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.5.55
www A 192.168.5.55
配置xxx.com.wan;
[root@centos named]# vim xxx.com.wan
@ IN SOA xxx.com. admin.xxx.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.2.22
www A 192.168.2.22
检查配置,并刷新dns解析配置。不生效的时候可以尝试重启named。
[root@centos named]# named-checkconf -z "$NAMEDCONF"
xxx.com.lan:1: no TTL specified; using SOA MINTTL instead
zone xxx.com/IN: loaded serial 0
xxx.com.wan:1: no TTL specified; using SOA MINTTL instead
zone xxx.com/IN: loaded serial 0
[root@centos named]# systemctl reload named
[root@centos named]# systemctl restart named
3.试验
将有一台lan网段中的客户端主机dns服务器设置为该主机IP,然后使用nslookup解析域名。测试是否成功,不成功说明配置或者网络存在问题。
[root@centos ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.5.5
修改配置需要重启网络服务:
[root@centos ~]# systemctl restart network
同样添加网络适配器2到这台主机上,原先的网卡移除或关闭。再设置该主机的dns服务器地址。模拟外网访问DNS解析服务。
[root@centos ~]# ifdown ens33
将网卡dns解析地址改到服务器的wan网段IP
[root@centos ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.2.167
再试试解析www.xxx.com:
这时就能根据不同网段IP访问的客户端分发不同的DNS解析地址,从而实现DNS的解析分离。