学习笔记(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.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相关推荐
- java 学习笔记2022.1.26
排序 Comparator接口 有关于Comparator接口,这个接口一般是作为参数放在排序方法里的,最开始我也觉得挺别扭的,后面想了想,这也主要是因为在java中,单独的一个函数不能存在,所以设计 ...
- 《从零开始学Swift》学习笔记(Day 26)——可选链
Swift2.0学习笔记(Day 26)--可选链 原创文章,欢迎转载.转载请注明:关东升的博客 在Swift程序表达式中会看到问号(?)和感叹号(!),它们代表什么含义呢?这些符号都与可选类型 ...
- Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面
Building Worlds In Unreal 学习笔记--24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面 Lec24 用UE4.26的水来做一条河 River Water wi ...
- ida pro学习笔记2022.3.19
2022.3.19学习笔记 基本块:是一个不包含分支,从头执行到尾的最大指令序列.每个基本块,都有唯一的入口点(块中的第一条指令)和退出点(块中的最后一条指令). 基本块的第一条指令通常是分支指令的目 ...
- Vue.js学习笔记 2022 04 17
Vue.js学习笔记 1 Vue.js基础 Vue.js介绍 vuejs 渐进式 JavaScript 框架 Vue.js 如何应用 1 在普通html项目中,引入VUE.JS Hb 的项目 生成的 ...
- on java8学习笔记2022.2.19-2022.2.20
2022.2.19 第十章 接口 如果一个类并不需要包含抽象方法,但同时还想阻止对它的任何实例化,这时将其定义为抽象类就很有用了. 接口和抽象类之间最显著的区别可能是两者的惯用方式.接口通常暗示&qu ...
- on java 8 学习笔记 2022.2.17-2022.2.18
2022.2.17 问题 正如你在第8章会看到的,当引入继承时,通过继承而来的类(子类)可以访问父类的protected成员以及public成员(但不能访问private成员).只有当两个类在同一个包 ...
- 学习笔记2022.7.25-7.30
Slam知识点 Harris响应 最近学习了一下关于Harris响应的相关知识,主要用于角点的提取上,它主要是利用一个滑动的窗口,对于某个固定方向的(u,v),我们可以得到在当前像素下的窗口进行移动所 ...
- 点云分割学习笔记2022
PointCloudSegmentation 点云分割 PointCloudSegmentation测试笔记_AI视觉网奇的博客-CSDN博客 代码地址:https://github.com/Liya ...
- 【无标题】学习笔记-2022.8.1-8.6
文献阅读笔记5 一.文章信息 1. 作者 Berta Bescos, Jose M. F ´ acil, Javier Civera and Jos ´ e Neira 2.单位 University ...
最新文章
- AI一分钟 | 万达网科裁员95%高达5000余人,被爆下一步将转型AI; 英伟达放话了:研究人员放心用,不更新驱动就没啥事儿
- arm架构的linux芯片方案,ARM推64位处理器架构ARMV8及芯片[多图]
- 复现经典:《统计学习方法》第13章 无监督学习概论
- Tomcat根据JSP生成Servlet机制解析
- 三大主流ETL工具选型
- MySQL入门之数据完整性约束与表维护
- 释放内容化势能 聚划算《划算8点档》给出新思路
- pytorch 一些关于模型参数冻结的问题
- 使用web gis 加载显示arcgis for server 发布出来的地图,并提供查询标记显示属性功能...
- Webtrends网站运营分析解决方案简介
- jQuery京剧人物动画
- 【产业互联网周报】阿里云栖大会、百度世界大会召开:阿里重推“云端一体”、百度AI全面升级...
- 什么是六类网线和超六类网线?
- springboot+vue新生宿舍管理系统(源码+说明文档),一款优秀的毕业设计
- 《视频解密》中文版(第四版) 第七章 数字视频处理(第一部分)
- NLP --- 词性标注
- 7-6厘米换算英尺英寸
- 成都Java培训班帮你分析如何通过企业面试
- EMQ X 插件持久化系列 (五)MySQL MQTT 数据存储
- 侯江亭的一些介绍,我是一个不怕苦不怕累的人