DNS域名解析的分离解析

一.DNS介绍

        DNS域名解析是一种将域名转换为IP地址的服务,在互联网上访问网站时,输入的通常是网站的域名,而计算机在通信时则使用IP地址。因此,DNS域名解析就是将用户输入的域名解析为对应的IP地址,以便计算机能够找到并访问目标网站。

具体来说,DNS域名解析的过程如下:

  1. 当用户输入一个域名并尝试访问时,计算机会首先向本地DNS服务器发出查询请求。
  2. 本地DNS服务器会检查其缓存中是否有该域名的解析记录。如果有,则直接返回对应的IP地址;如果没有,则向根域名服务器发出查询请求。
  3. 根域名服务器会返回该域名所属顶级域名(如.com、.cn等)的权威DNS服务器的地址。
  4. 本地DNS服务器再向该权威DNS服务器发出查询请求,获取该域名的IP地址。
  5. 权威DNS服务器会返回该域名的IP地址给本地DNS服务器。
  6. 本地DNS服务器将获取到的IP地址缓存起来,并返回给用户计算机。

这样,用户计算机就可以根据获取的IP地址访问目标网站了。同时,由于本地DNS服务器已经缓存了该域名的解析记录,所以下次用户再次访问该网站时,可以直接从缓存中获取IP地址,提高了访问速度。

二.分离解析简介

        分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。如来自内网和来自外网的客户端(不同网段)请求解析同一域名时,为其提供不同的解析结果。

 如何进行相关配置呢?在下面我将在一个地址为192.168.10.101/24的主服务器上演示相关配置。

三.实现分离解析

1.部署环境

  • ifconfig命令查看网卡的名称
  • 为服务器添加两个网卡

        ens33网卡的桥接不变(NAT模式)→内网客户机192.168.10.106(NAT模式)

        ens36网卡桥接到仅主机模式→外网客户机172.16.16.106,桥接也为仅主机模式

  • 修改两个网卡的IP地址
[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33         //修改其IP地址为192.168.10.101
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens36         //修改其IP地址为173.16.16.101
[root@localhost ~]# systemctl restart network

注意修改完成后要使用systemctl restart network 重启网络

  • 安装bind软件包

bind软件包提供了完整的DNS功能,包括域名解析、区域管理和反向解析等;是目前世界上使用最为广泛的DNS服务器软件。

[root@localhost ~]# yum -y install bind
[root@localhost ~]# systemctl enable named            //设置开机自启

安装完成后就到了要配置DNS服务器的时候了。

  • 修改DNS配置文件
    [root@localhost ~]# 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";
            recursing-file  "/var/named/data/named.recursing";
            secroots-file   "/var/named/data/named.secroots";
            allow-query     { any; };                              //允许任何主机查询
    };
    //将原有的缓存DNS服务器注释掉
    /*zone "." IN {
           type hint;
          file "named.ca";
    };
    */
    
    //设置本地的主DNS服务器
    view "lan"{                                            //创建名为“lan”的视图
            match-clients{192.168.10.0/24;};               //指定该网段地址可以访问该视图  
            zone "nei.com" IN{                             //创建一个名为“nei.com”,类别为Intenet类的DNS区域
            type master;                                   //此DNS服务器是“nei.com”区域的主服务器
            file "lan.com.zone";                           //指定了包含“nei.com”区域信息的文件的名称和位置
            };
    };
    
    
    //设置外网访问的主DNS服务器
    viwe "wan"{
            match-clients{any;};
            zone "nei.com" IN{
            type master;
            file "wan.com.zone";
            };
    };
    
  • 创建区域文件
  1. 内部区域文件 
    [root@ns1 ~]# cd /var/named/
    
    [root@ns1 named]# vim lan.com.zone         //文件名要与named.conf设置的一致
    $TTL 1D
    @       IN SOA  nei.com.   admin.bt.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @    IN  NS  ns1.nei.com.
    ns1  IN  A   192.168.10.101
    www  IN  A   192.168.10.102
    mail IN  A   192.168.10.103
    ftp  IN  A   192.168.10.104
    
  2. 外部区域文件
    [root@ns1 named]# vim wan.com.zone 
    $TTL 1D
    @       IN SOA  nei.com.  admin.bt.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @    IN NS  ns1.nei.com.
    ns1  IN A   173.16.16.101
    www  IN A   173.16.16.102
    mail IN A   173.16.16.103
    ftp  IN A   173.16.16.104

    然后键这两个文件的属组改为named,启动named服务;即可去测试。

  • 测试

外网客户端 

[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# nslookup www.nei.com
Server:		173.16.16.1
Address:	173.16.16.1#53

Name:	www.nei.com
Address: 173.16.16.101

内网客户端

[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# nslookup www.nei.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Name:	www.nei.com
Address: 192.168.1.5

  • 38
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS 7上,可以使用BIND(Berkeley Internet Name Domain)软件实现域名解析服务。BIND是一个开源软件,可以将主机名解析为IP地址,或将IP地址解析为主机名。在CentOS 7上,BIND默认安装在系统中,但需要进行配置才能使用。 下面是在CentOS 7上实现BIND分离解析的步骤: 1. 确认BIND服务已经安装 可以使用以下命令检查BIND服务是否已经安装: ``` rpm -qa | grep bind ``` 如果已经安装,则会显示bind相关的软件包名称。 2. 配置BIND服务 可以使用以下命令打开BIND配置文件: ``` vi /etc/named.conf ``` 在配置文件中,可以添加以下内容来定义DNS解析的域名和IP地址: ``` zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; }; ``` 其中,“example.com”是需要解析的域名,“type master”表示该服务器是主服务器,“file”指定了保存DNS记录的文件路径,“allow-update”指定了哪些主机可以更新该DNS记录文件。 3. 创建DNS记录文件 可以使用以下命令创建DNS记录文件: ``` vi /var/named/example.com.zone ``` 在文件中,可以添加以下内容来定义DNS记录: ``` $TTL 86400 @ IN SOA ns1.example.com. hostmaster.example.com. ( 2019010101 ; serial number 86400 ; refresh 7200 ; retry 3600000 ; expire 172800 ) ; minimum TTL @ IN NS ns1.example.com. @ IN A 192.168.1.100 www IN A 192.168.1.101 mail IN A 192.168.1.102 ``` 其中,“$TTL”是DNS记录的时间戳,“IN”表示Internet,“SOA”表示起始授权记录,“NS”表示命名服务器,“A”表示主机记录。 4. 启动BIND服务 可以使用以下命令启动BIND服务: ``` systemctl start named ``` 可以使用以下命令设置BIND服务开机自启动: ``` systemctl enable named ``` 5. 测试DNS解析服务 可以使用以下命令测试DNS解析服务是否正常: ``` nslookup www.example.com ``` 如果返回了正确的IP地址,则表示DNS解析服务已经正常工作。 至此,就完成了在CentOS 7上实现BIND分离解析的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值