DNS(域名解析服务)服务进程bind
bind(Berkeley Internet Name Domain)伯克利大学因信息网络域名服务
相较于由数字构成的IP地址,域名更容易被理解和记忆,所以我们通常更习惯通过域名的方式来访问网络中的资源。但是,网络中的计算机之间只能基于IP地址来相互识别对方的身份,而且要想在互联网中传输数据,也必须基于外网的IP地址来完成。
为了降低用户访问网络资源的门槛,DNS(Domain Name System,域名系统)技术应运而生。这是一项用于管理和解析域名与IP地址对应关系的技术,简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的IP地址或域名,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析)。这样一来,我们只需要在浏览器中输入域名就能打开想要访问的网站了。DNS域名解析技术的正向解析也是我们最常使用的一种工作模式。
鉴于互联网中的域名和IP地址对应关系数据库太过庞大,DNS域名解析服务采用了类似目录树的层次结构来记录域名与IP地址之间的对应关系,从而形成了一个分布式的数据库系统,如图所示。
域名后缀一般分为国际域名和国内域名。原则上来讲,域名后缀都有严格的定义,但在实际使用时可以不必严格遵守。目前最常见的域名后缀有.com(商业组织)、.org(非营利组织)、.gov(政府部门)、.net(网络服务商)、.edu(教研机构)、.pub(公共大众)、.cn(中国国家顶级域名)等
了为网民提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转,提供了下面三种类型的服务器。
- 主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系
- 从服务器:从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况。
- 缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。
简单来说,主服务器是用于管理域名和IP地址对应关系的真正服务器,从服务器帮助主服务器“打下手”,分散部署在各个国家、省市或地区,以便让用户就近查询域名,从而减轻主服务器的负载压力。缓存服务器不太常用,一般部署在企业内网的网关位置,用于加速用户的域名查询请求
安装bind服务软件包
[root@localhost ~]# yum install bind bind-chroot -y
#bind-chroot牢笼机制将权限限制在服务本身
- 主配置文件/etc/named.conf,保存全局最重要的一些配置信息
- 区域配置文件/etc/named.rfc1912.zones保存域名配置信息
- 域名配置文件/var/named实际保存域名及IP对应关系的文件
主DNS服务器配置
修改主配置文件
[root@localhost etc]# vim /etc/named.conf
10 options {
11 listen-on port 53 { andy; };
#原先是listen-on port 53 { 127.0.0.1; };决定由哪块网卡提供服务,any表示所有网卡
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 allow-query { andy; };
#原先是allow-query { localhost; };决定谁可以访问DNS,也换成any表示所有
56 include "/etc/named.rfc1912.zones";
57 include "/etc/named.root.key";
#这两行表示引用的子配置文件
修改区域配置文件
[root@localhost etc]# vim /etc/named.rfc1912.zones
zone "linux.probe.com" IN {
type master; #定义为主服务器
file "linuxprobe.com,zone"; #保存域名IP对应关系的文件
allow-update {none;}; #允许哪台从服务器来同步数据,一般是从服务器地址
};
zone "10.168.192.in-addr.arpa" { #ip反向解析网段192.168.10.0、24网段
type master;
file "192.168.10.arpa";
allow-update {none;};
};
修改域名配置文件
[root@localhost var]# cd /var/named/
[root@localhost named]# cp -a named.localhost linuxprobe.com.zone
[root@localhost named]# cp -a named.loopback 192.168.10.arpa
[root@localhost named]# vim linuxprobe.com.zone
$TTL 1D
@ IN SOA linuxprobe.com. root.linuxprobe.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.linuxprobe.com.
ns IN A 192.168.10.10
www IN A 192.168.10.10
[root@localhost named]# vim 192.168.10.arpa
$TTL 1D
@ IN SOA linuxprobe.com. root.inuxprobe.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.linuxprobe.com.
ns IN A 192.168.10.10
10 PTR www.linuxprobe.com.
重启DNS服务并加入启动项及网络
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl restart network
[root@localhost named]# systemctl enable named
从DNS服务器配置
#首先还是修改主配置文件/etc/named.conf将11、17两行服务对象设置为any
#修改区域配置文件
[root@localhost etc]# vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/linuxprobe.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/192.168.10.arpa";
};
#重启named服务后会将解析文件自动同步到/var/named/slaves目录下