学习笔记(2022-5-26)——bind-dns

红帽8.0版本(bind-dns)

个人有道云共享链接:https://note.youdao.com/s/OFuuT2o5

因为时间原因就不对显示内容进行美化,主要通过有道云观看即可。


BIND 域名解析服务


BIND服务是全球使用最广泛、最安全可靠且高效的域名解析服务程序

1、BIND主要配置文件:

安装 BIND服务程序:yum install -y bind-chroot
安装 DNS解析器:yum install -y bind-utils(主要命令 nslookup 测试dns解析)


2、BIND 服务程序中三个关键文件

主配置文件:/etc/named.conf 【服务主配置文件】
区域配置文件:/etc/named.rfc1912.zones 【记录每个域对应关系对应文件名称】
数据配置文件目录:/var/named 【保存域名和IP地址真实对应关系数据文件】


3、BIND服务器的基础环境配置

在linux系统中,bind服务程序的名称为:named

(1)通过修改配置文件,来手动指定DNS服务器:

echo "nameserver 192.168.20.11" >> /etc/resolv.conf

(2)或者直接在网络适配器中指定:

nmcli c mo 网卡名称 ipv4.dns 192.168.20.11


4、主配置文件参数介绍:/etc/named.conf

options {
listen-on port 53 { 127.0.0.1; };	# IPv4,DNS监听的端口,所有端口为:any
listen-on-v6 port 53 { ::1; };		# IPv6,DNS监听的端口
directory       "/var/named";		# 域名和IP地址对应关系文件的存放位置
dump-file       "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file   "/var/named/data/named.secroots";
recursing-file  "/var/named/data/named.recursing";
allow-query     { localhost; };		# 允许谁访问该服务器,所有人则修改为:any
recursion yes;			# 是否允许递归查询
dnssec-enable yes;		# 是否开启数据签名的校验(是否开启安全监测域名)
dnssec-validation yes;	# 是否进行数据签名的校验(是否使用校验)
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
include "/etc/crypto-policies/back-ends/bind.config";
<隐含参数>
forward only;	# 仅执行转发操作,即仅仅是一个DNS转发器
forward first;	# first先查询本地记录(缓存、本地hosts文件等),再转发
forwarders { 8.8.8.8;114.114.114.114; };	# 配置之后,将成为缓存服务器
};

5、配置检查

对于DNS配置文件修改之后,不确定是否写入错误,使用以下命令检查书写是否规范:

named-checkconf	# 检查主配置文件
named-checkconf /etc/named.conf	# 检查主配置文件

named-checkzone 区域 区域配置文件
 在192.168.0反向配置文件中,查询0.168.192xxx区域的配置是否有误

named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0
 zone0.168.192.in-addr.arpa/IN: loaded serial 1268360612
 OK

正向解析

1、配置区域文件

vim /etc/named.rfc1912.zones
服务类型有三种:分为 hint(根区域)master(主区域)slave(辅助区域)
master和slave指的就是主服务器和从服务器

——【写入(正向解析)内容】——

zone "lisi.com" IN {		//区域名称
	type master;			//服务类型
	file "lisi.com.zone";		//记录域名与主机地址的对应关系文件名称(/var/named目录下)
	allow-update {none;};	//允许哪些客户机动态更新解析信息,配置从服务器的时候使用
};

2、配置区域映射文件

cd /var/named
cp -a named.localhost lisi.com.zone // *.localhost指的是正向解析模板
vim lisi.com.zone //编辑正向映射内容
——【修改内容】——
要特别注意所有域名后面都有一个" . " 表示根域

lisi.com.       IN      SOA     www.lisi.com.   @ (
;区域名       关键词  记录类型  域名服务器FQDN名 管理员邮箱
;                               域名后面需要添加 . 这样才能够让根域名解析
                                        0       ; serial        序号
                                        1D      ; refresh       刷新间隔
                                        1H      ; retry         重试间隔
                                        1W      ; expire        过期/失效间隔
                                        3H )    ; minimum       无效解析记录,TTL值
        NS      www.lisi.com.   ;NS标识域名服务器FQDN名称
        A       192.168.10.20   ;A记录如不写入主机名则表示:域名区域的解析 ling.com
www     A       192.168.10.20  ;主机名:www,区域名:lisi.com,表示www.lisi.com的解析
        AAAA    ::1             ;IPv6版解析

——【最终效果预览】——

lisi.com.       IN      SOA     www.lisi.com.   @ (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      www.lisi.com.
        A       192.168.10.20
www     A       192.168.10.20
ling    A       192.168.10.20
        AAAA    ::1

3、重启服务

systemctl restart named
nslookup lisi.com、nslookup www.lisi.com
需要让其它人访问到你的DNS服务器,需要放行防火墙:
(1)firewall-cmd --permanent --add-service=dns
(2)设置本机的DNS,指向该服务器:nmcli c mo ens160 ipv4.dns 192.168.10.20


反向解析

1、配置区域文件

vim /etc/named.rfc1912.zones
服务类型有三种:分为 hint(根区域)master(主区域)slave(辅助区域)
master和slave指的就是主服务器和从服务器
——【写入(反向解析)内容】——

zone "10.168.192.in-addr.arpa" IN {
	type master;
	file "192.168.10.arpa";		//反向文件位置为/var/named目录中的
	allow-update {none;};
};

2、配置区域映射文件

cd /var/named
cp -a named.loopback 192.168.10.arpa // *.loopback指的是正向解析模板
vim 192.168.10.arpa //编辑正向映射内容
——【最终效果预览】——
要特别注意所有域名后面都有一个" . " 表示根域

10.168.192.in-addr.arpa. IN SOA www.lisi.com. @ (		
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      www.lisi.com.
        A       192.168.10.20
20      PTR     www.lisi.com.
20      PTR     ling.lisi.com.

3、重启服务

systemctl restart named
nslookup lisi.com、nslookup www.lisi.com
需要让其它人访问到你的DNS服务器,需要放行防火墙:

(1)firewall-cmd --permanent --add-service=dns

(2)设置本机的DNS,指向该服务器:

  nmcli c mo ens160 ipv4.dns 192.168.10.20
修改DNS


一、BIND从服务器

1、主服务器上需要配置 allow-update 参数信息

allow-update { 192.168.10.10; }; //指定从服务器IP
配置完成之后,重启named服务器

zone "lisi.com" IN {
    type master;
    file "lisi.com.zone";
    allow-update { 192.168.10.10; };
};
zone "10.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.10.arpa";
    allow-update { 192.168.10.10; };
};

参数介绍

2、从服务器需要配置为 Slave 类型

(1)安装服务bind(named)服务
yum install -y bind-chroot
systemctl enable --now named
(2)配置主配置文件
修改主配置文件

(3)配置映射文件
为什么需要保存文件的路径需要增加slaves/
主要为了区分主从映射文件。方便查看和管理,当然也可以不加:file "slaves/linuxprobe.com.zone";


zone "lisi.com" IN {
    type slave;
    masters { 192.168.10.20; };		//指向主服务器
    file "slaves/lisi.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.10.20; };		//指向主服务器
    file "slaves/192.168.10.zone";
};

二、主从服务器安全加密传输

1、主服务器配置

(1)主配置文件开启签名

dnssec-enable yes; # 是否开启数据签名的校验(是否开启安全监测域名)
dnssec-validation yes; # 是否进行数据签名的校验(是否使用校验)

(2)生成密钥

man dnssec-keygen # 去帮助中查找案例/example

dnssec-keygen -a [加密类型] -b [秘钥长度] -n HOST [秘钥名称]

案例:dnssec-keygen -a HMAC-MD5 -b 128 -n HOST lisi.com
执行完之后,将会看到两个文件:

*.private # 私钥

私钥介绍

*.key # 密钥

密钥介绍

(3)在区域文件,添加密钥

配置域名记录信息文件:/etc/named.rfc1912.zones
[添加内容]

key bind_key {			// bind_key密钥名称
	algorithm HMAC-MD5;	// 呼应前面设置的加密类型
	secret "HhbuUUL1PQxBR3q0m2L/7A==";	// 复制的Key字段内容
};

(4)将允许更新列表换成密钥认证

zone "lisi.com" IN {
	type master;
	file "lisi.com.zone";
	allow-update { 192.168.10.10; };	//删除该行内容
	allow-transfer { key bind_key; };	//调用前面设置的密钥
};

——【最终在/etc/named.rfc1912.zones文件中的内容】——
//设置的密钥

key bind_key {
        algorithm HMAC-MD5;
        secret "HhbuUUL1PQxBR3q0m2L/7A==";
};

//前面设置过的正向

zone "lisi.com" IN {
        type master;
        file "lisi.com.zone";
        allow-transfer { key bind_key; };
};

//前面设置过的反向

zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.10.arpa";
        allow-transfer { key bind_key; };
};

2、从服务器配置

(1)复制一份主服务器中的Key字段内容

//此时的密钥名称可自定义

key bind_key {
        algorithm HMAC-MD5;
        secret "HhbuUUL1PQxBR3q0m2L/7A==";
};

(2)在区域文件,应用秘钥

zone "lisi.com" IN {
type slave;
masters { 192.168.10.20; };         //因为无认证功能需要删掉
masters { 192.168.10.20 key 秘钥名称; }; 	//采用密钥进行同步
file "lisi.com.zone";
};

zone "lisi.com" IN {
    type slave;
    masters { 192.168.10.20 key bind_key; }; 	//采用密钥进行同步
    file "lisi.com.zone";
};

zone "10.168.192.in-addr.arpa" IN {
    type slave;
   masters { 192.168.10.20 key bind_key; }; 	//采用密钥进行同步
    file "192.168.10.zone";
};

——【最终在/etc/named.rfc1912.zones文件中的内容】——

key bind_key {
        algorithm HMAC-MD5;
        secret "HhbuUUL1PQxBR3q0m2L/7A==";
};

zone "lisi.com" IN {
    type slave;
    masters { 192.168.10.20 key bind_key; };    //采用密钥进行同步
    file "lisi.com.zone";
};

zone "10.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.10.20 key bind_key; };     //采用密钥进行同步
    file "192.168.10.zone";
};

3、最终校验

结果验证


三、部署缓存服务器

(1)在主配置文件中添加参数:
forwarders { 8.8.8.8;114.114.114.114; }; # 配置之后,将成为缓存服务器
设置转发器

四、DNS的分离解析技术

主要作用:

通过在不同地域架设服务器,防止单一服务器流量负载,通过view功能判断主机所处地域,使其访问到该地域对应的服务器上。
分离解析介绍

主配置文件正常配置

配置区域文件

(1)配置ACL用于匹配客户端位置

主服务器配置
主配置介绍

//之前配置的Key私钥内容

key bind_key {
        algorithm HMAC-MD5;
        secret "HhbuUUL1PQxBR3q0m2L/7A==";
};

//创建ACL用于匹配客户端位置

acl "GuangXi" { 192.168.10.0/24; };     //[ershi        表示网段为192.168.20.0/24的主机]
acl "BeiJing" { 192.168.20.0/24; };     //[ershi        表示网段为192.168.30.0/24的主机]

//主服务器配置

view "GuangXi"    //View构架,用于GuangXi的用户解析
{
    match-clients { "GuangXi"; };    //判断用户是否为GuangXi
        zone "lisi.com"            //与普通的Zone相比,没有  “IN”
        {
            type master;
            file "GuangXi.lisi.com.zone";        //为了好区分文件的所属区域可修改命名
            allow-transfer { key bind_key; };
        };
        zone "10.168.192.in-addr.arpa"
        {
            type master;
            file "GuangXi.192.168.10.zone";        //为了好区分文件的所属区域可修改命名
            allow-transfer { key bind_key; };    
        };  
};          
view "BeiJing"    //View构架,用于GuangXi的用户解析
{          
    match-clients { "BeiJing"; };    //判断用户是否为GuangXi
        zone "lisi.com"            //与普通的Zone相比,没有  “IN”
        { 
            type master;
            file "BeiJing.lisi.com.zone";        //为了好区分文件的所属区域可修改命名
            allow-transfer { key bind_key; };             
        };
        zone "20.168.192.in-addr.arpa"
        { 
            type master; 
            file "BeiJing.192.168.20.zone";        //为了好区分文件的所属区域可修改命名
            allow-transfer { key bind_key; };
        };
};

——【如果从服务器也需要配置,则可以参考如下配置】——
//之前配置的Key私钥内容

key bind_key {
        algorithm HMAC-MD5;
        secret "HhbuUUL1PQxBR3q0m2L/7A==";
};

//创建ACL用于匹配客户端位置

acl "GuangXi" { 192.168.10.0/24; };	//[ershi	表示网段为192.168.20.0/24的主机]
acl "BeiJing" { 192.168.20.0/24; }; 	//[ershi	表示网段为192.168.30.0/24的主机]

//主服务器配置

view "GuangXi"    //View构架,用于GuangXi的用户解析
{       
    match-clients { "GuangXi"; };    //判断用户是否为GuangXi
   	zone "lisi.com"            //与普通的Zone相比,没有  “IN”
    	{
            type slave;
            masters { 192.168.10.20 key bind_key; };
            file "GuangXi.lisi.com.zone";        //为了好区分文件的所属区域可修改命名
                     
};
   zone "10.168.192.in-addr.arpa"
   {
       type slave;
       masters { 192.168.10.20 key bind_key; }; 
       file "GuangXi.192.168.10.zone";        //为了好区分文件的所属区域可修改命名
          
   };
};
view "BeiJing"    //View构架,用于Beijing用户解析
{       
    match-clients { "BeiJing"; };    //判断用户是否为GuangXi
   	zone "lisi.com"            //与普通的Zone相比,没有  “IN”
    	{
            type slave;
            masters { 192.168.10.20 key bind_key; };
            file "BeiJing.lisi.com.zone";        //为了好区分文件的所属区域可修改命名                     
    	};
        zone "20.168.192.in-addr.arpa"        //帮助192.168.20.0/24用户解析
        {
            type slave;
            masters { 192.168.10.20 key bind_key; }; 
            file "GuangXi.192.168.20.zone";        //为了好区分文件的所属区域可修改命名            
        };
};

(2)将主配置中的根区域解析删除掉

  vim /etc/named.conf
删除根解析

(3)重启服务器

  systemctl restart named
  如果无法启动,且报错内容为:when using 'view' statements, all zones must be in views
报错

解决的方法就是删除View以外的参数信息,或者通过DNS分离解析实验排障(日志文件排错)

(4)如何测试?

 正确的测试:
测试

需要使用到路由功能,实现192.168.10.0和192.168.20.0网段能够相互通讯。
不正确的测试(使用服务器自身进行测试):

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hades_Ling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值