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分离解析案例
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR5UMBRVT6lERNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3YDO4QTNzUTM1ETMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
(一)在虚拟机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