红帽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.0zone0.168.192.in-addr.arpa/IN: loaded serial 1268360612OK

正向解析

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       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      www.lisi.com.A       192.168.10.20
www     A       192.168.10.20
ling    A       192.168.10.20AAAA    ::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       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      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


一、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"; };    //判断用户是否为GuangXizone "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"; };    //判断用户是否为GuangXizone "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"; };    //判断用户是否为GuangXizone "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"; };    //判断用户是否为GuangXizone "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网段能够相互通讯。
不正确的测试(使用服务器自身进行测试):

学习笔记(2022-5-26)——bind-dns相关推荐

  1. java 学习笔记2022.1.26

    排序 Comparator接口 有关于Comparator接口,这个接口一般是作为参数放在排序方法里的,最开始我也觉得挺别扭的,后面想了想,这也主要是因为在java中,单独的一个函数不能存在,所以设计 ...

  2. 《从零开始学Swift》学习笔记(Day 26)——可选链

     Swift2.0学习笔记(Day 26)--可选链 原创文章,欢迎转载.转载请注明:关东升的博客 在Swift程序表达式中会看到问号(?)和感叹号(!),它们代表什么含义呢?这些符号都与可选类型 ...

  3. Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面

    Building Worlds In Unreal 学习笔记--24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面 Lec24 用UE4.26的水来做一条河 River Water wi ...

  4. ida pro学习笔记2022.3.19

    2022.3.19学习笔记 基本块:是一个不包含分支,从头执行到尾的最大指令序列.每个基本块,都有唯一的入口点(块中的第一条指令)和退出点(块中的最后一条指令). 基本块的第一条指令通常是分支指令的目 ...

  5. Vue.js学习笔记 2022 04 17

    Vue.js学习笔记 1 Vue.js基础 Vue.js介绍 vuejs 渐进式 JavaScript 框架 Vue.js 如何应用 1 在普通html项目中,引入VUE.JS Hb 的项目 生成的 ...

  6. on java8学习笔记2022.2.19-2022.2.20

    2022.2.19 第十章 接口 如果一个类并不需要包含抽象方法,但同时还想阻止对它的任何实例化,这时将其定义为抽象类就很有用了. 接口和抽象类之间最显著的区别可能是两者的惯用方式.接口通常暗示&qu ...

  7. on java 8 学习笔记 2022.2.17-2022.2.18

    2022.2.17 问题 正如你在第8章会看到的,当引入继承时,通过继承而来的类(子类)可以访问父类的protected成员以及public成员(但不能访问private成员).只有当两个类在同一个包 ...

  8. 学习笔记2022.7.25-7.30

    Slam知识点 Harris响应 最近学习了一下关于Harris响应的相关知识,主要用于角点的提取上,它主要是利用一个滑动的窗口,对于某个固定方向的(u,v),我们可以得到在当前像素下的窗口进行移动所 ...

  9. 点云分割学习笔记2022

    PointCloudSegmentation 点云分割 PointCloudSegmentation测试笔记_AI视觉网奇的博客-CSDN博客 代码地址:https://github.com/Liya ...

  10. 【无标题】学习笔记-2022.8.1-8.6

    文献阅读笔记5 一.文章信息 1. 作者 Berta Bescos, Jose M. F ´ acil, Javier Civera and Jos ´ e Neira 2.单位 University ...

最新文章

  1. AI一分钟 | 万达网科裁员95%高达5000余人,被爆下一步将转型AI; 英伟达放话了:研究人员放心用,不更新驱动就没啥事儿
  2. arm架构的linux芯片方案,ARM推64位处理器架构ARMV8及芯片[多图]
  3. 复现经典:《统计学习方法》第13章 无监督学习概论
  4. Tomcat根据JSP生成Servlet机制解析
  5. 三大主流ETL工具选型
  6. MySQL入门之数据完整性约束与表维护
  7. 释放内容化势能 聚划算《划算8点档》给出新思路
  8. pytorch 一些关于模型参数冻结的问题
  9. 使用web gis 加载显示arcgis for server 发布出来的地图,并提供查询标记显示属性功能...
  10. Webtrends网站运营分析解决方案简介
  11. jQuery京剧人物动画
  12. 【产业互联网周报】阿里云栖大会、百度世界大会召开:阿里重推“云端一体”、百度AI全面升级...
  13. 什么是六类网线和超六类网线?
  14. springboot+vue新生宿舍管理系统(源码+说明文档),一款优秀的毕业设计
  15. 《视频解密》中文版(第四版) 第七章 数字视频处理(第一部分)
  16. NLP --- 词性标注
  17. 7-6厘米换算英尺英寸
  18. 成都Java培训班帮你分析如何通过企业面试
  19. EMQ X 插件持久化系列 (五)MySQL MQTT 数据存储
  20. 侯江亭的一些介绍,我是一个不怕苦不怕累的人

热门文章

  1. Java入门你值得拥有!java创建长度为n的数组
  2. 利用匿名管道向Android手机发送adb命令
  3. 海夕漫科技:店铺有等级之分吗
  4. MyBatisPlus又在搞事了!一个依赖轻松搞定权限问题!堪称神器
  5. 英派斯全方位健身方案 扬帆科学健身新航程
  6. 百度与英特尔成立5G+AI 边缘计算联合实验室
  7. html表格框怎么变消失了,html表格边框问题
  8. codeforces 1716 C Robot in a Hallway
  9. 女人,你是爱情呼叫转移中的哪一个?
  10. 算法学习(10):LeetCode刷题之Dijkstra最短路径算法