RHEL7的DNS服务

A.DNS域名解析服务

    在网络中计算机之间只能基于IP地址来相互识别对方身份,但记忆IP地址对人们来说不方便,所以产生了DNS服务。DNS(Domain  Name  System,域名系统)用于管理和解析域名与IP地址之间的对应关系。将域名解析为IP地址成为正向解析。将IP地址解析为域名为反向解析。互联网中的域名和IP地址对应关系数据库太多庞大,所有DNS服务采用了目录树的层析结构来记录域名和IP地址之间的关系,从而形成了一个分布式的数据库系统。

    域名后缀一般分为国际域名和国内域名,有.com、.net、.org、.edu等等,原则上,域名系统后缀有严格的定义,但在实际使用时也可不必严格遵守。

    为了给网民提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转,DNS提供了三种类型的服务器:1.主服务器。2.从服务器。3.缓存服务器。主服务器是用于管理域名和IP地址对应关系的真正服务器。从服务器帮助主服务器打下手,分散部署在各个国家、省市或地区,让用户方便查询域名,减轻主服务器的负载压力。缓存服务器不太常用,一般部署在企业内网的关键位置,用于加速用户的域名查询请求。

    DNS在查询的时候有两种查询方式:1.递归查询。2.迭代查询。递归查询是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。迭代查询是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另外一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。用户和DNS服务器之间是递归查询,DNS服务器和DNS服务器之间是迭代查询。

    当用户向网络指定的DNS服务器发起一个域名请求时,通常情况下会有本地由此DNS服务器向上级的DNS服务器发送迭代请求,如果该DNS服务器没有要查询的信息,则会进一步向上级DNS服务器发送迭代请求,直到获取正确的查询结果。其中最高级、最权威的根DNS服务器总共有13台,美国有10台,瑞典、英国、日本各有1台。

B.安装bind服务程序

    BIND(Berkeley Internet Name Domain,伯克利英特网名称域)服务是全球范围内使用最广泛、最安全且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设备服务,其责任之重可想而知,因此在生产环境安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,可以有效的限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。bind服务程序主要有个三个比较关键的文件:1.主配置文件(/etc/named.conf)用来定义bind服务程序的运行。2.区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。3.数据配置文件目录(/var/named)。用来保存域名和IP地址真实对应关系的数据配置文件。

    编辑主配置文件

vim /etc/named.conf
11 listen-on port 53 { any; };
17 allow-query { any; };

    正向解析实验

    1.编辑区域配置文件

vim /etc/named.rfc1912.zones
zone "linux.com" IN{
type master;
file "linux.com.zone";
allow-update { none; };
};

    2.编辑数据配置文件,并重启服务并加入启动项。

cd /var/named
cp -a named.localhost linux.com.zone
vim linux.com.zone
$TTL 1D
@ IN SOA linux.com root.linux.com(
                        0;serial
                        1D:refresh
                        1H:retry
                        1W:expire
                        3H);minimum
    NS ns.linux.com
ns IN A 192.168.10.10
   IN MX 10 mail.linux.com
mail IN A 192.168.10.10
www  IN A 192.168.10.10
bbs  IN A 192.168.10.20

systemctl restart named
systemctl enable named

    3.检验结果

    将Linux系统网卡中的DNS地址参数改成本机IP地址,就可以使用本机提供的DNS服务了。可以用nslookup检测。

    反向解析实验

    1.编辑区域配置文件

vim /etc/named.rfc1912.zones
zone "linux.com" IN {
type master;
file "linux.com.zone";
allow-update { none; };
};
zone "10.168.192.in-addr.arpa" IN{
type master;
file "192.168.10.arpa";
};

    2.编辑数据配置文件,重启服务并加入启动项

cp -a named.loopback 192.168.10.arpa
vim 192.168.10.arpa
$TTL 1D
@ IN SOA linux.com root.linux.com(
                    0;serial
                    1D;refresh
                    1H;retry
                    1W;expire
                    3H);minimum
    NS    ns.linux.com
ns A 192.168.10.10
10 PTR ns.linux.com
10 PTR mail.linux.com
10 PTR www.linux.com
20 PTR bbs.linux.com

systemctl restart named
systemctl enable named

    3.检验解析结果

    将DNS地址修改成本机的IP地址,就可以测试了,用nslookup测试。

    部署从服务器

    主服务器和从服务器的操作系统和IP地址。

主服务器   RHEL7   192.168.10.10
从服务器   RHEL7   192.168.10.20

    1.编辑主服务器的区域配置文件,重启服务并加入启动项

vim /etc/named.rfc.1912.zones
zone "linux.com" IN {
type master;
file "linux.com.zone";
allow-update { 192.168.10.20; };
};
zone "10.168.192.in-addr.arpa" IN{
type master;
file "192.168.10.arpa";
allow-update { 192.169.10.20; };
};

systemctl restart named
systemctl enable named

    2.在从服务器中填写服务器的IP地址与要抓取的区域信息,然后重启服务并加入启动项。

vim /etc/named.rfc1912.zones
zone "linux.com" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/linux.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.10.arpa";
};

systemctl restart named
systemctl enable named

    3.检验解析结果

在从服务器上执行:
cd /car/named/slaves
ls
#ls后会看到192.168.10.arpa  linux.com.zone这两个文件,用nslookup可以测试解析。

    安全的加密传输

    互联网中的绝大多数DNS服务器都是基于BIND域名解析服务搭建的,而bind服务程序为了提供安全的解析服务,已经对TSIG(RFC 2845)加密机制提供了支持。TSIG主要是利用了密码编码的方式来保护区域信息的传输(Zone Transfer),即TSIG加密机制保证了DNS服务器之间传输域名区域信息的安全性。这个实验是在刚刚那个实验的基础上做的。

    1.在主服务器生成密钥

dnssec-kengen -a HMAC-MD5 -b 128 -n HOST master-slave Kmaster-slave.+157+46845
cat Kmaster-slave.+157+46845.private | grep Key
#第二个命令可得到一串字符串,用来写入到tansfer.key文件中

    2.在主服务器中创建密钥验证文件

cd /var/named/chroot/etc/
vim transfer.key
key "master-slave" {
algorithm hmac-md5
secret "cat Kmaster-slave.+157+46845.private | grep Key"
#双引号里面的字符串是这个命令执行后的结果
};

    3.配置主配置文件

vim /etc/named.conf
9 include "/etc/transfer.key";
18 allow-transfer { key master-slave; };

rm -rf /var/named/slaves/*
#清空之前的文件
systemctl restart named

    4.配置从服务器

cd /var/named/chroot/etc
vim transfer.key
key "master-slave" {
algorithm hmac-md5;
secret "cat Kmaster-slave.+157+46845.private | grep Key"
#双引号里面的字符串是这个命令执行后的结果
};

    5.配置从服务器的主配置文件

vim /etc/named.conf
9 include "/etc/transfer.key";
43 server 192.168.10.10
44 {
45 keys { master-slave; };
};

    6.测试

在从服务器上执行:
cd /car/named/slaves
ls
#ls后会看到192.168.10.arpa  linux.com.zone这两个文件,用nslookup可以测试解析。

    部署缓存服务器

    DNS缓存服务器(Caching DNS Server)是一种不负责域名数据维护的DNS服务器。简单来说,缓存服务器就是把用户经常使用到的域名与IP地址的解析记录保存在本地,从而提升下次解析的效率。

    1.配置双网卡的参数

缓存服务器   RHEL7   网卡(外网)手动或者dhcp指定的
                    网卡(内网)192.168.10.10
客户端       RHEL7  192.168.10.20

    2.在bind服务程序的主配置文件中添加缓存转发参数

vim /etc/named.conf
17 forwarders { 61.134.1.4; };

    3.重启DNS服务,设置客户端DNS地址为192.168.10.10。

    分离解析技术

    分离解析技术是是让不同地位范围的用户通过访问相同的地址,而从不同的服务器获取到相同的数据。

DNS服务器    RHEL7    北京网络:122.71.115.10
                      美国网络:106.185.25.10
国内读者     windows7    122.71.115.1
国外读者     windows7    106.185.25.1

    1.安装bind服务程序,并修改主配置文件

vim /etc/named.conf
11 listen-on port 53 { any; };
17 allow-query { any; };

#zone "." IN {
#type hint;
#file "named.ca";
#};
#把根域信息注释掉

    2.编辑区域配置文件

vim /etc/named.rfc1912.zones
acl "china" { 122.71.155.0/24; };
acl "american { 106.185.25.0/24; };
view "china" {
match-clients { "china"; };
zone "linux.com" {
type master;
file "linux.com.china";
};
};
view "american" {
match-clients { "american"; };
zone "linux.com" {
type master;
file "linux.com.american";
};
};

    3.建立数据配置文件

cd /var/named
cp -a named.localhost linux.con.china
cp -a named.localhost linux.com.american

vim linux.com.china
STTL 1D
@ IN SOA linux.com root.linux.com (
                    0;serial
                    1D;refresh
                    1H;retry
                    1W;expire
                    3H);minimum
    NS  ns.linux.com
ns    IN A 122.71.115.10
www   IN A 122.71.115.15

vim linux.com.american
STTL 1D
@ IN SOA linux.com root.linux.com (
                    0;serial
                    1D;refresh
                    1H;retry
                    1W;expire
                    3H);minimum
    NS  ns.linux.com
ns    IN A 106.185.25.10
www   IN A 106.185.25.15

    4.重启服务,将客户端的IP地址分别设置为122.71.115.1与106.185.25.1,将DNS地址设置为服务器主机的两个IP地址。然后用nslookup测试。

你可能感兴趣的:(Linux)