阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DNS分离解析的实现方法详解

170次阅读
没有评论

共计 2508 个字符,预计需要花费 7 分钟才能阅读完成。

DNS 的分离解析,是指根据不同的客户端提供不同的域名解析记录。来自不同地址的客户机请求解析同一域名时,为其提供不同的解析结果。也就是内外网客户请求访问相同的域名时,能解析出不同的 IP 地址,实现负载均衡。

实验环境:

DNS 服务器:RedHat 6.5 系统
外网 IP 地址是 12.0.0.1
内网 IP 地址是 192.168.10.1
内网客户机:Windows 7 系统 IP 地址是 192.168.10.10
外网客户机:Windows 7 系统 IP 地址是 12.0.0.10

实验前提:DNS 服务器需要有双网卡,安装 bind 软件

  • 系统默认安装一个网卡,再添加一个网卡,用 ifconfig 命令查看
    DNS 分离解析的实现方法详解
  • 添加外网 eth1 外网的网络配置文件

    [root@RedHat6-2 ~]# cd /etc/sysconfig/network-scripts/
    [root@RedHat6-2 network-scripts]# cp ifcfg-eth0 ifcfg-eth1
    [root@RedHat6-2 network-scripts]# vim ifcfg-eth1

    DEVICE=eth1 #设备名称 eth1
    HWADDR=00:0C:29:AD:B6:15 #eth1 的 MAC 地址
    TYPE=Ethernet
    ONBOOT=yes #激活网络接口
    NM_CONTROLLED=yes
    BOOTPROTO=static #静态配置 IP
    IPADDR=12.0.0.1 #网络 IP 地址
    NETMASK=255.255.255.0 #网络子网掩码

  • 重启网络服务
    service network restart
  • ifconfig 命令查看内外网 IP 的设置
    DNS 分离解析的实现方法详解
  • Yum 安装 bind 软件
    yum install bind -y

实验步骤:

第 1 步:修改 bind 服务程序的主配置文件(/etc/named.conf)

将监听端口和允许查询主机参数设置为 any。由于配置的 DNS 分离解析的实现方法详解功能与 DNS 根服务器配置参数有冲突,需要将根域信息删除。

vim /etc/named.conf     # 编辑主配置文件 

options {
listen-on port 53 {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 服务的地址
recursion yes;

zone “.” IN {
# 删除根域信息
type hint;
file “named.ca”;
};

第 2 步:编辑区域配置文件(/etc/named.rfc1912.zone)

  • 由于区域配置文件是为不同的客户机地址启用不同的 zone 区域设置,各自使用独立的数据文件,所以要把配置文件中原有的数据清空。
  • 主要使用“view”配置语句和 “machine-clients”配置选项,根据不同的客户端地址对“benet.com”域的查询对应到不同的数据文件,从而得到不同的解析结果。
    view /etc/named.rfc1912.zone    # 编辑区域配置文件 

    view “lan” {
    # 设置面向内网用户的视图
    match-clients {192.168.10.0/24;}; #匹配条件为内网的客户端地址
    zone “benet.com” IN {
    type master;
    file “benet.com.zone.lan”; #指定面向内网用户的数据配置文件
    };
    zone “.” IN {
    type hint;
    file “named.ca”; #指向根域数据文件
    };
    };
    view “wan” {
    # 设置面向外网用户的视图
    match-clients {any;}; #匹配条件为“any”任意地址
    zone “benet.com” IN {
    type master;
    file “benet.com.zone.wan”; #指定面向外网用户的数据配置文件
    };
    };

第 3 步:建立区域数据配置文件(/var/named)

分别通过模板文件创建出两个不同的区域数据文件,对应内外网的客户端域名请求,名称应与上面的区域配置文件指定的名称一致。

cd /var/named                             # 切换目录 
cp -p named.localhost benet.com.zone.lan  # 保留文件的属性,建立内网用户数据文件 
cp -p named.localhost benet.com.zone.wan  # 保留文件的属性,建立外网用户数据文件 
vim /var/named/benet.com.zone.lan        # 编辑内网用户数据文件 

$TTL 1D
@       IN SOA  benet.com. admin.benet.com. (0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      benet.com.
        A       192.168.10.1                   # 服务器内网 IP 地址 
www   IN A       192.168.10.80          # 内网地址记录(www.benet.com)
mail IN A       192.168.10.25          # 内网地址记录(mail.benet.com)
vim benet.com.zone.wan              # 编辑外网用户数据文件 

$TTL 1D
@       IN SOA  benet.com. admin.benet.com. (0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      benet.com.
        A       12.0.0.1                      # 服务器外网 IP 地址 
www  IN A       12.0.0.20            # 外网地址记录(www.benet.com)
mail IN A       12.0.0.45            # 外网地址记录(mail.benet.com)

第 4 步:启动 named 服务

service named start

第 5 步:关掉防火墙

service iptables stop

第 6 步:验证结果

内网客户机将 DNS 地址设置为服务器的内网 IP,外网客户机将 DNS 地址设置为服务器的外网 IP,然后使用 nslookup 命令解析域名。
DNS 分离解析的实现方法详解
DNS 分离解析的实现方法详解

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2508字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中