一 . DNS简介
一般来讲域名比 IP 地址更加的有含义、也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过 IP 识别对方主机,那么就需要 DNS 域名解析服务了。DNS 域名解析服务(Domain Name System)是用于解析域名与 IP 地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的 IP 地址。反向解析:根据 IP 地址查找对应的主机名(域名)
DNS 服务协议采用类似目录树的层次结构记录域名与 IP 地址的映射对应关系,形成一个分布式的数据库系统:[DNS 结构模型]
而单靠几台 DNS 服务器肯定不能满足全球如此多用户的需求,所以从工作形式上又分主服务器、从服务器和缓存服务器。
主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与 IP 地址对应关系。
从服务器:从主服务器中获得域名与 IP 地址对应关系并维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与 IP 地址对应关系,提高重复查询时的效率。
这里还需要简单了解下,DNS 查询时还会分为递归查询与迭代查询。
递归查询:用于客户机向 DNS 服务器查询。
迭代查询:用于 DNS 服务器向其它 DNS 服务器查询。
互联网 DNS 访问模型——采用分布式数据结构保存海量区域数据信息,用户从互联网中查询过
二 . 安装Bind 服务程序
伯克利互联网域名服务 BIND(Berkeley Internet Name Daemon)是一款全球互联网使用最广泛的能够提供安全可靠、快捷高效的域名解析服务程序。并且 Bind 服务程序还支持 chroot(change root)监牢安全机制,chroot 机制会限制 bind 服务程序仅能对自身配置文件进行操作,从而保证了整个服务器的安全
1.域名解析服务 Bind 的程序名称叫做 named,服务程序的配置文件如下:
主程序 /usr/sbin/named
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones
2.安装bind . bind-chroot软件包
[root@localhost ~]# yum -y install bind-chroot #安装bind-chroot时会同时自动安装bind
3.查看安装软件生成的配置文件
[root@localhost ~]# 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
三 案例:
环境如下:
虚拟机A : IP 192.168.4.7
虚拟机B:IP 192.168.4.207
虚拟机C:IP 192.168.4.8
虚拟机D:IP 192.168.4.208
##########################################################
(一) 在虚拟机C 上搭建web服务:
1.下载软件包httpd : yum -y install httpd
2. 修改web调用配置文件:
[root@8 ~]# vim /etc/httpd/conf.d/qq.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost *:80>
ServerName www.163.com
DocumentRoot /var/www/yy
</VirtualHost>
[root@8 ~]# vim /etc/httpd/conf.d/qq.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost *:80>
ServerName www.163.com
DocumentRoot /var/www/yy
</VirtualHost>
3.书写web 页面:
[root@8 ~]# mkdir /var/www/qq
[root@8 ~]# echo qqqqqq域8号web服务器 > /var/www/qq/index.html
[root@8 ~]# mkdir /var/www/yy
[root@8 ~]# echo 163163163域8号web服务器 > /var/www/yy/index.html
4.重启服务
[root@8 ~]# systemctl restart httpd
(二 )虚拟机D搭建web服务
1.下载软件包httpd : yum -y install httpd
2.修改web调用配置文件:
[root@208 ~]# vim /etc/httpd/conf.d/nsd.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/mm
</VirtualHost>
<VirtualHost *:80>
ServerName www.163.com
DocumentRoot /var/www/nn
</VirtualHost>
3.书写web 页面:
[root@208 ~]# mkdir /var/www/mm
[root@208 ~]# echo 66666666666域208号web服务器 > /var/www/mm/index.html
[root@208 ~]# mkdir /var/www/nn
[root@208 ~]# echo 99999999999域208号web服务器 > /var/www/nn/index.html
4.重启服务:
[root@8 ~]# systemctl restart httpd服务
(三):在虚拟机A上搭建DNS分离解析服务:
1.安装软件包bind-chroot bind
[root@svr7 ~]# yum -y install bind-chroot
2.修改主配置文件:
[root@svr7 ~]# vim /etc/named.conf
****************************
options {
directory "/var/named";
};
view "nsd" {
match-clients { 192.168.4.7; };
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
zone "163.com" IN {
type master;
file "163.com.zone";
};
};
view "other" {
match-clients { 192.168.4.207; };
zone "qq.com" IN {
type master;
file "qq1.com.zone";
};
};
zone "163.com" IN {
type master;
file "1631.com.zone";
};
};
3.书写地址库文件
[root@svr7 ~]# cd /var/named
[root@svr7 named]# vim qq.com.zone
***************************************************************
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry在这里插入代码片
1W ; expire
3H ) ; minimum
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.8
[root@svr7 named]# vim 163.com.zone
***************************************************************
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
163.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.8
[root@svr7 named]# vim qq1.com.zone
*******************************************************************
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.208
[root@svr7 named]# vim 1631.com.zone
****************************************************************
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
163.com. NS mysql50
mysql50 A 192.168.4.50
www A 192.168.4.53
4.重启服务:
[root@svr7 named]# systemctl restart named
5.设置虚拟机A和B的DNS地址
[root@svr7 named]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@pc207 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
6.验证:
[root@svr7 named]# nslookup www.qq.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.qq.com
Address: 192.168.4.8
[root@svr7 named]# nslookup www.163.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.163.com
Address: 192.168.4.8
****************************************************
[root@pc207 ~]# nslookup www.qq.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.qq.com
Address: 192.168.4.208
[root@pc207 ~]# nslookup www.163.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.163.com
Address: 192.168.4.208
7.浏览器验证:
[root@svr7 named]# firefox www.qq.com
[root@svr7 named]# firefox www.163.com
[root@pc207 ~]# firefox www.qq.com
[root@pc207 ~]# firefox www.163.com