DNS服务介绍
DNS(Domain Name System–域名系统),是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。是一个应用层的协议DNS使用TCP和UDP端口53。
DNS是一个分布式数据库,命名系统采用层次的逻辑结构,如同一颗倒置的树,这个逻辑的树形结构称为域名空间,由于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息.
注:DNS域名空间中,树的最大深度不得超过127层,树中每个节点最长可以存储63个字符.
Linux centos7.9 下DNS服务器安装
安装bind服务和启动步骤:
[root@localhost ~]# yum install -y bind*
#安装bind组件
[root@localhost ~]# systemctl start named
#启动dns服务
[root@localhost ~]# systemctl enable named
#设置dns服务开机启动
防火墙配置和selinux关闭
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=953/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --zone=public --add-port=953/udp --permanent
firewall-cmd --reload
DNS配置的主要文件组:
/etc/hosts 主机的一个文件列表(强制解析) 添加记录如:111.13.100.92 www.baidu.com
对于简单的主机名解析(点分表示法),默认在请求DNS或NIS网络域名服务器前,/etc/named.conf 通常会告诉程序先查看此文件。
/etc/resolv.conf DNS配置文件,在配置程序请求BIND域名查询服务查询主机名时,必须告诉程序使用哪个域名服务器和IP地址来完成这个任务
/etc/named.conf BIND主文件,设置一般的name参数,指向该服务器使用的域数据库的信息源
/var/named/named.ca 根域名配置服务器指向文件,指向根域名配置服务器,用于告诉缓存服务器初始化
/var/named/localhost.zone localhost区正向域名解析文件,用于将本地IP地址(127.0.0.1)转换为本地回送IP地址(127.0.0.1)
/var/named/name.local localhost区反向域名解析文件,用于将localhost名字转换为本地回送IP地址(127.0.0.1)
/etc/named.rfc1912.zones 区块设置文件
DNS服务器配置实验,配置DNS正向解析:
第一步:修改主配置文件/etc/named.conf。将监听地址和运行查询的地址都改为 any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。
第二步:修改区域配置文件(/etc/named.rfc1912.zones)。用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
DNS默认端口是53的TCP和UPD,UDP是供用户查询的,主从复制用TCP和UDP的53端口都用。
BIND的ACL:bind有四个内置的acl:
none: 没有一个主机
any: 任意主机
localhost: 本机
localnet: 本机的IP同掩码运算后得到的网络地址段
注意:只能先定义,后使用;因此一般定义在配置文件中, 处于options的前面,当然也可自定义如下
acl lan{
192.168.25.0/24
} ;
访问控制:
访问控制的指令: allow-query {}: 允许查询的主机;白名单
allow-transfer {}:允许区域传送的主机;(白名单,一般用于主从)
allow-recursion {}: 允许递归的主机,建议全局使用
allow-update {}: 允许更新区域数据库中的内容
第三步:编辑数据配置文件。从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写数据配置文件中并保存。在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息,以便让bind服务程序顺利读取文件内容:
[root@localhost named]# cp -a named.localhost example.com
[root@localhost named]# vim example.com.zone
$TTL 1D
@ IN SOA @ example.com. (
#授权信息开始: #DNS区域的地址,在域地址后面还可以加管理员邮箱,不能加@,用.代替。
20181001 ; serial #更新序列号
1D ; refresh #更新时间
1H ; retry #重试时间
1W ; expire #失效时间
3H ) ; minimum #无效解析记录的缓存时间
NS ns.example.com. #DNS区域的地址
ns A 192.168.245.128 #地址记录
www A 192.168.245.128 #www站点记录
mail A 192.168.245.129 #地址记录
MX 10 mail.example.com. #邮箱交换记录
example.com. A 192.168.245.200
# 即使不写主机名,DNS也能解析到另外一个指定的地址
$GENERATE 1-245 server$ A 1.1.1.$
#如果服务器过多,对应主机名也很多,则可以这样写.例如:
#server1.example.com对应地址为:1.1.1.1
#server100.exmaple.com对应地址为:1.1.1.50
bbs CNAME www #别名记录
* A 192.168.245.128
#“*”代表所有,即便主机www写错,DNS也能正确解析出来。这就是泛域名解析
第四步:检查配置,重启服务和测试
[root@localhost ~]# named-checkconf #检查主配置文件语法
[root@localhost ~]# named-checkzone eample.com /var/named/example.com.zone
#检查区域配置文件语法
/var/named/example.com.zone:13: ignoring out-of-zone data (example.com)
zone eample.com/IN: loaded serial 20181001
[root@localhost ~]# vi /etc/resolv.conf
#进入该配置文件,指定使用的域名解析服务器。
# Generated by NetworkManager
nameserver 192.168.245.128
search 192.168.245.128
[root@localhost ~]# systemctl restart named #重启服务
测试:
配置DNS反向解析:
在DNS域名解析服务中,反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。它也可以针对某个IP地址进行反向解析,大致判断出有多少个网站运行在上面。当购买虚拟主机时,可以使用这一功能验证虚拟主机提供商是否有严重的超售问题。
第一步:配置区域文件。
反向解析是把IP地址解析成域名格式,因此在定义zone(区域)时应该要把IP地址反写,比如原来是192.168.10.0,反写后应该就是10.168.192,而且只需写出IP地址的网络位即可。
[root@localhost ~]# vim /etc/named.rfc1912.zones
#在中添加反向数据文件的记录
zone "245.168.192.in-addr.arpa" IN {
type master;
file "245.168.192.arpa";
};
第二步:编辑数据配置文件。
[root@localhost ~]# cp -a /var/named/named.loopback /var/named/245.168.192.arpa
[root@localhost ~]# vi /var/named/245.168.192.arpa
#编辑反正配置文件即可,和正向解析格式类似
#PTR为指针记录,仅用于反向解析中。
第三步:检查配置文件,重启服务,测试。
[root@localhost ~]# named-checkconf
[root@localhost ~]# named-checkzone 245.168.192 /var/named/245.168.192.arpa
zone 245.168.192/IN: loaded serial 20181001
OK
[root@localhost ~]# systemctl restart named
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/11720