天天看点

Linux下实现DNS的分离解析一、DNS简介二、安装DNS解析Bind服务三、DNS分离解析案例

Linux下实现DNS的分离解析

  • 一、DNS简介
    • 什么是DNS
    • DNS的基本概念
  • 二、安装DNS解析Bind服务
    • BIND
    • bind配置文件
    • 安装bind、bind-chroot软件包
    • 查看安装软件生成的配置文件
  • 三、DNS分离解析案例
    • (一)在虚拟机C上搭建web服务
      • 1、安装httpd
      • 2、添加虚拟web调用配置文件
      • 3、书写web网页文件
      • 4、启动测试
    • (二)在虚拟机D上搭建web服务
      • 1、安装httpd
      • 2、添加虚拟web调用配置文件
      • 3、书写web网页文件
      • 4、启动测试
    • (三)虚拟机A上搭建DNS服务器,实现DNS分离解析
      • 1、安装DNSbind服务
      • 2、编辑主配置文件named.conf
      • 3、新建并编辑地址库配置文件
      • 4、检测并重启服务
      • 5、配置虚拟机A和虚拟机B的DNS
      • 6、效果验证
      • 7、访问web页面

一、DNS简介

什么是DNS

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,使用的是UDP协议的53号端口,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作

DNS的基本概念

1、FQDN:Full Qualified Domain Name,完全限定域名,即每个域在全球网络都是唯一的;另外值得提到的一点是域并不是指诸如www.google.com这样的域名,而google.com才是域;

2、域的分类

(1)根域:标识为(.)点 ,全球13组根域名服务器以英文字母A到M依序命名,域名格式为“字母.root-servers.net”。其中有11个是以任播技术在全球多个地点设立镜像站。比如中国大陆在北 京有两台编号为L的镜像,编号为F、I、J的镜像各一台,共5台;香港有编号为D、J的镜像各2台,编号为A、F、I、L的镜像各一台,共8台;台湾则有编号为F、I、J各一台,共3台。

(2)顶级域:顶级域(Top Level Domain,简称TLD)分为三类

1> 通用顶级域:诸如 .com(商业机构) .org(非营利性组织) .net(网络服务机构)等

2> 国家顶级域:诸如 .cn(中国) .uk(英国) .us(美国) .jp(小日本)

3> 反向域(基础建设顶级域):.arpa,即从IP到FQDN的反向解析

3、DNS服务器查询的类型:

(1)递归查询:客户端仅发出一次请求,让DNS服务器去查询返回结果;

(2)迭代查询:要发出多次请求去分别查询不同的DNS服务器;

4、DNS名称解析方式:

(1)正向解析:即将FQDN转化为IP。

(2)反向解析:即将IP转化为FQDN。

5、DNS服务器类型:

(1)主DNS服务器:负责解析至少一个域。

(2)辅助(从)DNS服务器:负责解析至少一个,是主DNS服务器的辅助。

(3)缓存DNS服务器:不负责解析域,只是缓存域名解析结果。

6、DNS返回的结果类型:

(1)肯定答案:查询的域存在,会被缓存下来。

(2)否定答案:不存在查询的域名,因此不存在与其查询的域名对应的IP;会被缓存下来。

(3)权威答案:所查询的域名的结果是由负责解析这个域的DNS服务器所返回的答案。

(4)非权威答案:在缓存中查询的结果。

二、安装DNS解析Bind服务

BIND

伯克利互联网域名服务 BIND(Berkeley Internet Name Daemon)是一款全球互联网使用最广泛的能够提供安全可靠、快捷高效的域名解析服务程序。并且 Bind 服务程序还支持 chroot(change root)监牢安全机制,chroot 机制会限制 bind 服务程序仅能对自身配置文件进行操作,从而保证了整个服务器的安全

bind配置文件

主程序 /usr/sbin/named

主配置文件 /etc/named.conf

区域配置文件 /etc/named.rfc1912.zones

安装bind、bind-chroot软件包

yum -y install bind-chroot bind

查看安装软件生成的配置文件

rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf                      #主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones             #事先定义好的区域文件
/etc/named.root.key                  #实现事务签名的密钥文件
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
           

三、DNS分离解析案例

Linux下实现DNS的分离解析一、DNS简介二、安装DNS解析Bind服务三、DNS分离解析案例

(一)在虚拟机C上搭建web服务

1、安装httpd

yum -y install httpd
           

2、添加虚拟web调用配置文件

编辑文件qqbai.cof

vim /etc/httpd/conf.d/qqbai.conf
           

书写文件如下:

<VirtualHost *:80>
  ServerName www.qq.com
  DocumentRoot /var/www/qq
</VirtualHost>

<VirtualHost *:80>
  ServerName www.baidu.com
  DocumentRoot /var/www/baidu
</VirtualHost>
           

3、书写web网页文件

mkdir /var/www/qq      ##创建网页目录
echo '我是www.qq.com web1 192.168.105.72' > /var/www/qq/index.html     
mkdir /var/www/baidu     ##创建网页目录
echo '我是www.baidu.com web1 192.168.105.72' > /var/www/baidu/index.html
           

4、启动测试

添加本地解析hosts文件

重启web服务

>systemctl restart httpd       
           

curl测试web

curl 'http://www.baidu.com'
我是www.baidu.com web1 192.168.105.72
curl 'http://www.qq.com'
我是www.qq.com web1 192.168.105.72
           

(二)在虚拟机D上搭建web服务

1、安装httpd

yum -y install httpd
           

2、添加虚拟web调用配置文件

编辑qqbai.conf

vim /etc/httpd/conf.d/qqbai.conf
           

书写内容如下:

<VirtualHost *:80>
  ServerName www.qq.com
  DocumentRoot /var/www/qq
</VirtualHost>

<VirtualHost *:80>
  ServerName www.baidu.com
  DocumentRoot /var/www/baidu
</VirtualHost>
           

3、书写web网页文件

mkdir /var/www/qq      ##创建网页目录
echo '我是www.qq.com web2 192.168.105.73' > /var/www/qq/index.html     
mkdir /var/www/baidu     ##创建网页目录
echo '我是www.baidu.com web2 192.168.105.73' > /var/www/baidu/index.html
           

4、启动测试

添加本地解析hosts文件

重启web服务

systemctl restart httpd
           

curl测试web

curl 'http://www.baidu.com'
我是www.baidu.com web2 192.168.105.73
curl 'http://www.qq.com'
我是www.qq.com web2 192.168.105.73
           

(三)虚拟机A上搭建DNS服务器,实现DNS分离解析

1、安装DNSbind服务

yum -y install bind-chroot bind
           

2、编辑主配置文件named.conf

options {
        listen-on port 53 { 192.168.105.80; };      ##改为本机ip
        listen-on-v6 port 53 { any; };          ##修改为any
        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; };
##正向区域配置
view "local" {                     #注意所有的区域配置都必须在view下
    match-clients { 192.168.105.80; };
     zone "qq.com" IN {
        type master;
        file "qq.com.zone";
};
      zone "baidu.com" IN {
        type master;
        file "baidu.com.zone";
}; 
};

view "other" {
    match-clients { 192.168.105.71; };
     zone "qq.com" IN {
        type master;
        file "qq1.com.zone";
};
      zone "baidu.com" IN {
        type master;
        file "baidu1.com.zone";
};
};
           

3、新建并编辑地址库配置文件

新建地址库配置文件

cp -p named.localhost baidu.com.zone        #注意保留文件权限复制
cp -p named.localhost baidu1.com.zone 
cp -p named.localhost qq.com.zone 
cp -p named.localhost qq1.com.zone 
           

编写baidu.com.zone地址库配置文件

vim baidu.com.zone  
           
$TTL 1D
@       IN SOA  @ baidu.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      baidu.com.
        A       192.168.105.80
www IN  A       192.168.105.72
           

编写qq.com.zone地址库配置文件

vim qq.com.zone  
           
$TTL 1D
@       IN SOA  @ qq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      qq.com.
        A       192.168.105.80
www IN  A       192.168.105.72
           

编写baidu1.com.zone地址库配置文件

vim baidu1.com.zone
           
$TTL 1D
@       IN SOA  @ baidu.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      baidu.com.
        A       192.168.105.80
www IN  A       192.168.105.73
           

编写qq1.com.zone地址库配置文件

vim qq1.com.zone 
           
$TTL 1D
@       IN SOA  @ qq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      qq.com.
        A       192.168.105.80
www IN  A       192.168.105.73
           

4、检测并重启服务

named-checkconf      #检测配置文件编写正确性
systemctl restart named    #重启服务
           

5、配置虚拟机A和虚拟机B的DNS

虚拟机A上:

echo nameserver 192.168.105.80> /etc/resolv.conf
           

虚拟机B上:

echo nameserver 192.168.105.80> /etc/resolv.conf
           

6、效果验证

在虚拟机A上:

[[email protected] named]# nslookup www.baidu.com
Server:         192.168.105.80
Address:        192.168.105.80#53

Name:   www.baidu.com
Address: 192.168.105.72
           
[[email protected] named]# nslookup www.qq.com
Server:         192.168.105.80
Address:        192.168.105.80#53

Name:   www.qq.com
Address: 192.168.105.72
           

在虚拟机B上:

[[email protected] ~]# nslookup www.baidu.com
Server:         192.168.105.80
Address:        192.168.105.80#53

Name:   www.baidu.com
Address: 192.168.105.73
           
[[email protected] ~]# nslookup www.qq.com
Server:         192.168.105.80
Address:        192.168.105.80#53

Name:   www.qq.com
Address: 192.168.105.73
           

7、访问web页面

虚拟机A上:

[[email protected] named]# curl www.baidu.com
我是www.baidu.com web1 192.168.105.72
[[email protected] named]# curl www.qq.com
我是www.qq.com web1 192.168.105.72
           

虚拟机B上:

[[email protected] ~]# curl www.baidu.com
我是www.baidu.com web2 192.168.105.73
[[email protected] ~]# curl www.qq.com
我是www.qq.com web2 192.168.105.73
           

继续阅读