IP是计算机里的地址簿,但是IP是由一串数字组成,我们的大脑很难记住,所以就需要定义一个符合人类记忆规则的地址,而这就是我们现在常用的网站域名,域名就是我们和计算机作为地址沟通的桥梁, 虽然我们在浏览器里输入的是一串带有人类语义的英文字母符,但是计算机最终还是会解析成自己可识别的IP地址,而这个过程就是域名解析,而负责把域名解析成IP的就是DNS服务。

当然域名解析的功能不仅仅是方便记忆,从程序设计的角度也隔离了因为IP变化带来的不便性,避免了因为系统迁移更换网络等因素导致的IP变化。另外一方面从系统架构的角度,可以在域名上配置多个系统IP,把多个客户端的请求解析到不同的IP地址上,从而实现系统分流的目的。

域名解析流程

我们用域名访问网站第一步要做的就是域名解析,如果全世界的域名解析都向同一个服务器请求很显然这是不现实的,因为DNS解析不仅仅是请求量大,而且如果全世界域名和IP关系数据都存在一个地方,这个数据量也是巨大的。 所以DNS解析的设计就必须考虑其本身的性能和可用性问题。

DNS解析服务的设计充分的体现了分流的思想。 首先是把域名数据进行了纵向的拆分,DNS解析服务器分为根域名服务器、顶级域名服务器、权威域名服务器多个层次,每个层次只负责自己那部分域名数据的解析,通过分层的方式把域名数据拆分出来,从而避免由一个服务器保存所有的域名数据。

然后横向层DNS服务器都做了集群,就根域名服务器就有上千台域名服务器分布在网络中,不仅把流量分摊下来,也避免了解析某一个DNS服务器出现问题而导致域名无法提供服务。

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命令查看

重启网络服务

ifconfig命令查看内外网IP的设置

Yum安装bind软件

实验步骤:

第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区域设置,各自使用独立的数据文件,所以要把配置文件中原有的数据清空。

主要使用“”配置语句和”配置选项,根据不同的客户端地址对“benet.com”域的查询对应到不同的数据文件,从而得到不同的解析结果。

第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命令解析域名。

Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2023-12-27 13:26:01

results matching ""

    No results matching ""