bind域名解析 部署主、从服务器 安全的加密传输 分离解析技术

DNS域名解析服务

相较于由数字构成的IP地址,域名更容易被理解和记忆,所以我们通常更习惯通过域名的方式来访问网络中的资源。但是,网络中的计算机之间只能基于IP地址来相互识别对方的身份,而且要想在互联网中传输数据,也必须基于外网的IP地址来完成。
为了降低用户访问网络资源的门槛,DNS(Domain Name System,域名系统)技术应运而生。这是一项用于管理和解析域名与IP地址对应关系的技术,简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的IP地址或域名,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析)。
鉴于互联网中的域名和IP地址对应关系数据库太过庞大,DNS域名解析服务采用了类似目录树的层次结构来记录域名与IP地址之间的对应关系,从而形成了一个分布式的数据库系统,如图所示。

在这里插入图片描述

域名后缀一般分为国际域名和国内域名。原则上来讲,域名后缀都有严格的定义,但在实际使用时可以不必严格遵守。目前最常见的域名后缀有.com(商业组织)、.org(非营利组织)、.gov(政府部门)、.net(网络服务商)、.edu(教研机构)、.pub(公共大众)、.cn(中国国家顶级域名)等。

为了为网民提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转,DNS技术提供了下面三种类型的服务器。

主服务器:
特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系。
从服务器:
主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况。
缓存服务器:
通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。

Bind服务程序

BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议大家在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。

bind服务程序的配置并不简单,因为要想为用户提供健全的DNS查询服务,要在本地保存相关的域名数据库,而如果把所有域名和IP地址的对应关系都写入到某个配置文件中,估计要有上千万条的参数,这样既不利于程序的执行效率,也不方便日后的修改和维护。因此在bind服务程序中有下面这三个比较关键的文件。

(1)安装Bind服务

部署主服务器

[root@lizhiqiang Desktop]# yum install -y bind-chroot.x86_64 
[root@lizhiqiang Desktop]# cd /etc
[root@lizhiqiang etc]# ls | grep named
named
named.conf
named.iscdlv.key
named.rfc1912.zones
named.root.key
`主配置文件`
[root@lizhiqiang etc]# vim named.conf 
...
listen-on port 53 { any; };		#服务器上的所有IP地址均可提供DNS域名解析服务。原始值为127.0.0.1
...
allow-query { any; };		#允许所有人对本服务器发送DNS查询请求。原始值为localhost
`区域配置文件`
[root@lizhiqiang etc]# vim named.rfc1912.zones 
zone "linux.com" IN {		 #正向解析参数
type master;		#服务类型为主服务器
file "linux.com.zone";		 #域名与IP地址解析规则保存的文件位置(/var/named/linux.com.zone)
allow-update {none;};		#允许指定客户机动态更新该解析信息(这里不允许任何人)
};
zone "14.168.192.in-addr.arpa" IN {		#反向解析参数,表示192.168.14.0./24网段的反向解析区域
type master;
file "192.168.14.arpa";
};
`数据配置文件目录`
`**正反向解析实验**`
复制一份正向解析的模板文件(named.localhost),反向解析的模板文件(named.loopback)。
[root@lizhiqiang etc]# cd /var/named
[root@lizhiqiang named]# ls | grep named
named.ca
named.empty
named.localhost
named.loopback
[root@lizhiqiang named]# cp -a named.localhost linux.com.zone		
[root@lizhiqiang named]# cp -a named.loopback 192.168.14.arpa
[root@lizhiqiang named]# vim linux.com.zone 		#编辑正向解析数据配置文件
$TTL 1D
@       IN SOA  linux.com. lizhiqiang.linux.com. (#授权信息开始(Start Of Authority) 域名 域名管理员邮箱(邮箱的@符号用.代替)
                                        0       ; serial #更新序列号(该序列号作为slave与master更新的依据,一般利用日期来设定)
                                        1D      ; refresh #更新时间(命令slave多久进行一次主动更新)
                                        1H      ; retry#重试延时(当到了refresh时间但slave无法连接master时重试连接的时间间隔)
                                        1W      ; expire #失效时间(当slave一直无法连接上master,则经过expire的时间后命令)
                                        3H )    ; minimum#无效解析记录的缓存时间(没有指定生存期的数据,可以保存在数据库中的时间和TTL)    
        NS      ns.linux.com. #域名服务器记录(Name Server,NS后面接的一定是主机名称)
ns      IN A    192.168.14.30 #地址记录(A表示正向解析的标记,格式 [hostname] IN A [IP])
www     IN A    192.168.14.30
bb      IN A    192.168.14.20

[root@lizhiqiang named]# vim 192.168.14.arpa 
$TTL 1D
@       IN SOA  linux.com. lizhiqiang.linux.com. ( #编辑反向解析数据配置文件
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.linux.com.
30      PTR     www.linux.com.#PTR为指针记录,仅用于反向解析(格式: [IP] IN PTR [主机名称])
40      PTR     cc.linux.com.
把网卡的DNS地址修改为本机(192.168.14.30)的IP地址,重启网卡服务和named服务,用nslookup命令检验正反向解析结果。

在这里插入图片描述
部署从服务器
在DNS域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。

主服务器192.168.14.30
从服务器192.168.14.10
主服务器192.168.14.30的更改:
在这里插入图片描述
对named.rfc1912.zones的修改
在这里插入图片描述
从服务器192.168.14.10更改

安装bind服务,对/etc下的named.conf进行更改

在这里插入图片描述

   对named.rfc1912.zones进行更改
   更改主服务器的区域配置文件,使其允许指定从服务器的更新请求

在这里插入图片描述
过程:
在这里插入图片描述
安全的加密传输

互联网中的绝大多数DNS服务器(超过95%)都是基于BIND域名解析服务搭建的,而bind服务程序为了提供安全的解析服务,已经对TSIG(RFC2845)加密机制提供了支持。TSIG主要是利用了密码编码的方式来保护区域信息的传输(ZoneTransfer),即TSIG加密机制保证了DNS服务器之间传输域名区域信息的安全性。

主服务器192.168.14.30
从服务器192.168.14.10

`主服务器`
[root@lizhiqiang ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave
Kmaster-slave.+157+05097
[root@lizhiqiang ~]# ls Kmaster-slave.+157+05097.*
Kmaster-slave.+157+05097.key  Kmaster-slave.+157+05097.private
[root@lizhiqiang ~]# cat Kmaster-slave.+157+05097.private 
Private-key-format: v1.3
Algorithm: 157 (HMAC_MD5)
Key: gq9kFtV0TL0/mmoZiV3SQg==
Bits: AAA=
Created: 20201117113823
Publish: 20201117113823
Activate: 20201117113823
[root@lizhiqiang ~]# cd /var/named/chroot/etc/
[root@lizhiqiang etc]# vim transfer.key

key master-slave {
algorithm HMAC-MD5;
secret "gq9kFtV0TL0/mmoZiV3SQg==";
};

[root@lizhiqiang etc]# ls -Zd transfer.key 
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0   transfer.key
[root@lizhiqiang etc]# chown root:named transfer.key 
[root@lizhiqiang etc]# chmod 640 transfer.key 
[root@lizhiqiang etc]# ls -Zd transfer.key 
-rw-r-----. root named unconfined_u:object_r:etc_t:s0   transfer.key
[root@lizhiqiang etc]# ln transfer.key /etc/transfer.key
[root@lizhiqiang etc]# vim /etc/named.conf 

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

[root@lizhiqiang etc]# systemctl restart named

`从服务器`
[root@lizhiqiang slaves]# ls
192.168.14.arpa  linux.com.zone
[root@lizhiqiang slaves]# rm -rf /var/named/slaves/*
[root@lizhiqiang slaves]# ls
[root@lizhiqiang slaves]# systemctl restart named
[root@lizhiqiang slaves]# ls
[root@lizhiqiang slaves]# cd /var/named/chroot/etc
[root@lizhiqiang etc]# vim transfer.key
[root@lizhiqiang etc]# ls -Zd transfer.key 
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0   transfer.key
[root@lizhiqiang etc]# chown root:named transfer.key 
[root@lizhiqiang etc]# chmod 640 transfer.key 
[root@lizhiqiang etc]# ls -Zd transfer.key 
-rw-r-----. root named unconfined_u:object_r:etc_t:s0   transfer.key
[root@lizhiqiang etc]# ln transfer.key /etc/transfer.key
[root@lizhiqiang etc]# vim /etc/named.conf 
[root@lizhiqiang etc]# systemctl restart named
[root@lizhiqiang etc]# cd /var/named/slaves/
[root@lizhiqiang slaves]# ls
192.168.14.arpa  linux.com.zone

部署缓存服务器

DNS缓存服务器(Caching DNS Server)是一种不负责域名数据维护的DNS服务器。简单来说,缓存服务器就是把用户经常使用到的域名与IP地址的解析记录保存在主机本地,从而提升下次解析的效率。DNS缓存服务器一般用于经常访问某些固定站点而且对这些网站的访问速度有较高要求的企业内网中,但实际的应用并不广泛。而且,缓存服务器是否可以成功解析还与指定的上级DNS服务器的允许策略有关,因此当前仅需了解即可。

此实验很简单,配置不会有错,但为什么客户机不能解析dns,很大原因可能出在上级DNS服务器不允许同步DNS信息。上级DNS服务器地址指的是获取数据配置文件的服务器。

缓存服务器准备两张网卡,一张桥接(能上外网),一张仅主机模式(只能主机间通信),客户机只有一张仅主机模式网卡。只要客户机能解析外网的DNS,就说明一定是由缓存服务器提供域名解析服务的。

缓存服务器需要做的:配置bind服务程序的主配置文件,添加缓存转发参数,重启bind服务。
vim /etc/named.conf
...
17 forwarders { 8.8.8.8; };    #上级DNS服务器地址最好ping测试下,ping通再用
...
systemctl restart named        #重启bind服务
客户机需要做的:修改网卡参数,把DNS地址改为缓存服务器的IP,重启网卡。
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
...
DNS=192.168.10.10
...
systemctl restart network

客户机用nslookup测试外网网站,检验DNS能否被解析。

分离解析技术

为了满足海内外用户的需求,可以购买多台服务器并分别部署在全球各地,然后再使用DNS服务的分离解析功能,即可让位于不同地理范围内的读者通过访问相同的网址,而从不同的服务器获取到相同的数据。

DNS分离解析技术
在这里插入图片描述
DNS服务器的工作:

1.配2块仅主机模式网卡,地址分别为122.71.115.10(北京)和106.185.25.10(美国);
2.配置bind服务的主配置文件。删除51-54行的根域信息(DNS分离解析功能和DNS根服务器配置参数有冲突);
3.编辑区域配置文件;
4.建立数据配置文件(正向解析),重启bind服务;

服务端

[root@lizhiqiang Desktop]# yum install -y bind-chroot.x86_64	#安装bind服务
[root@lizhiqiang Desktop]# vim /etc/named.conf 		#配置bind服务的主配置文件
...
listen-on port 53 { any; };
...
allow-query     { any; };
...
#zone "." IN {		#注释等同删除,删除根域信息
#       type hint;
#       file "named.ca";
#};
...
[root@lizhiqiang Desktop]# vim /etc/named.rfc1912.zones 		#编辑区域配置文件
acl "china" { 122.71.115.0/24; };
acl "america" { 106.185.25.0/24; };
view "china" {
match-clients { "china"; };
zone "linux.com" {
        type master;
        file "linux.china";
};
};
view "america" {
match-clients { "america"; };
zone "linux.com" {
        type master;
        file "linux.america";
};
};
[root@lizhiqiang Desktop]# cd /var/named
[root@lizhiqiang named]# ls 
chroot  dynamic   named.empty      named.loopback
data    named.ca  named.localhost  slaves
[root@lizhiqiang named]# cp -a named.localhost linux.china
[root@lizhiqiang named]# cp -a named.localhost linux.america
[root@lizhiqiang named]# vim linux.china 

$TTL 1D
@       IN SOA  linux.com. lizhiqiang.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.20

[root@lizhiqiang named]# vim linux.america 

$TTL 1D
@       IN SOA  linux.com. lizhiqiang.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.20
~                                 
[root@lizhiqiang named]# systemctl restart named

客户端
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS 7上,可以使用BIND(Berkeley Internet Name Domain)软件实现域名解析服务。BIND是一个开源软件,可以将机名解析为IP地址,或将IP地址解析机名。在CentOS 7上,BIND默认安装在系统中,但需要进行配置才能使用。 下面是在CentOS 7上实现BIND分离解析的步骤: 1. 确认BIND服务已经安装 可以使用以下命令检查BIND服务是否已经安装: ``` rpm -qa | grep bind ``` 如果已经安装,则会显示bind相关的软件包名称。 2. 配置BIND服务 可以使用以下命令打开BIND配置文件: ``` vi /etc/named.conf ``` 在配置文件中,可以添加以下内容来定义DNS解析的域名和IP地址: ``` zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; }; ``` 其中,“example.com”是需要解析的域名,“type master”表示该服务器服务器,“file”指定了保存DNS记录的文件路径,“allow-update”指定了哪些机可以更新该DNS记录文件。 3. 创建DNS记录文件 可以使用以下命令创建DNS记录文件: ``` vi /var/named/example.com.zone ``` 在文件中,可以添加以下内容来定义DNS记录: ``` $TTL 86400 @ IN SOA ns1.example.com. hostmaster.example.com. ( 2019010101 ; serial number 86400 ; refresh 7200 ; retry 3600000 ; expire 172800 ) ; minimum TTL @ IN NS ns1.example.com. @ IN A 192.168.1.100 www IN A 192.168.1.101 mail IN A 192.168.1.102 ``` 其中,“$TTL”是DNS记录的时间戳,“IN”表示Internet,“SOA”表示起始授权记录,“NS”表示命名服务器,“A”表示机记录。 4. 启动BIND服务 可以使用以下命令启动BIND服务: ``` systemctl start named ``` 可以使用以下命令设置BIND服务开机自启动: ``` systemctl enable named ``` 5. 测试DNS解析服务 可以使用以下命令测试DNS解析服务是否正常: ``` nslookup www.example.com ``` 如果返回了正确的IP地址,则表示DNS解析服务已经正常工作。 至此,就完成了在CentOS 7上实现BIND分离解析的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值