linux之DNS部署—— dns的集群(辅助dns)及dns的更新及dns的key认证_dnskey_weixin_44224288的博客-CSDN博客


本站和网页 https://blog.csdn.net/weixin_44224288/article/details/87555112 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

linux之DNS部署—— dns的集群(辅助dns)及dns的更新及dns的key认证_dnskey_weixin_44224288的博客-CSDN博客
linux之DNS部署—— dns的集群(辅助dns)及dns的更新及dns的key认证
最新推荐文章于 2023-02-28 16:18:24 发布
weixin_44224288
最新推荐文章于 2023-02-28 16:18:24 发布
499
收藏
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44224288/article/details/87555112
版权
一.实验环境的搭建
在dns服务端: 如果做了dns的双向解析的化应该要进行以下操作:
vim /etc/named.conf ##把反向解析时的配置内容还原
systemctl restart named ##重启服务
(1)还原根分区: 即把根分区的注释去掉 (2)注释反向解析配置文件所添加的内容 (3)还原辅助文件的内容 在另一台辅dns配置的虚拟机上: (1)配置网络
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##编辑网络配置文件
systemctl restart network
(2)配置yum源 首先要准备一个rhel-server-7.0-x86_64-dvd.iso的镜像
hostnamecrl set-hostname dns2.westos.com ##设置辅助dns的主机名以便于实验的时候区分
更改主机名位dns2即为dns辅助
systemctl stop firewalld ##关掉火墙
二.辅助dns
作用:为了缓解主DNS服务器的压力,从而配置多个辅助DNS服务器,这些DNS服务器就为辅助DNS服务器。
辅助dns的配置过程: 1.在辅助dns上 查看ip 编辑dns客户机配置文件
(1)配置环境
[root@dns2 ~]# yum install bind -y
[root@dns2 ~]# systemctl restart named
注:刚开始第一次重启服务是要动鼠标和键盘才可重启服务 (2)更改主配置文件的内容
vim /etc/named.conf
systemctl restart named
(3)更改辅配置文件的内容
[root@dns2 ~]# vim /etc/named.rfc1912.zones
systemctl restart named
编辑内容如下:
26 type slave; ##类型设置为辅助dns
27 masters {172.25.77.102;}; ##主dns的ip
28 file "slaves/westos.com.zone"; ##指定辅助dns在解析时参考的文件
29 allow-update { none; };
30 };
(4)重启动服务后在/var/named/slaves下会自动生成 刚刚指定的文件westos.com.zone 2.在主dns上
[root@dns named]# vim /etc/named.rfc1912.zones
[root@dns named]# systemctl restart named
编写内容为:
24 zone "westos.com" IN {
25 type master;
26 file "westos.com.zone";
27 allow-update { none; };
28 also-notify {172.25.77.202;} ##将主dns的信息同步到辅dns上
29 };
3.检测: (1) 在主dns端: vim westos.com.zone 在辅助dns端: 则证明可同步过来 (2) 在主dns端: vim westos.com.zone 修改前的内容如下: 修改后的内容如下: 注意:同时修改了serial前面的值 在辅助dns端:验证解析文件同步成功 注意: 再修改dns服务器的域名和ip时,必须要修改“serial”的数值,因为在俩台服务器同步数据时,系统不是读取整个文件的内容,而是比较“serial”的数值是否有所变化,是为了节约时间,同时该数字最长为10位 验证如下: a. 首先在辅助dns查看westos.com.zone文件的时间状态 b.修改主dns配置文件解析的数值但不修改“serial”的数值 c.在辅dns中可以看到文件westos.com.zone的时间值没有更新 d.再次修改主配置文件中“serial”的值 e.查看辅助dns文件的时间状态发现发生变化
三.DNS的远程更新
1.在辅助dns端更新主dns,会有如下报错 2.备份主dns的解析文件,以便后续方便恢复 3.查看主dns服务器的selinux的状态 注意:如果为enforcing,则要打开相应的开关
getsebool -a | grep named
setsebool -p named_write_master_zones on ##打开开关
4.在主dns端
[root@dns named]# vim /etc/named.rfc1912.zones
[root@dns named]# systemctl restart named
表示允许辅助dns来更新。 5.此时在辅助dns端更新主dns,报错发生改变,是因为缺少权限 6.更改/var/named的权限,添加其的可写权限 7.在辅助dns端进行再次测试,不会再产生报错,此时更新成功 8.更新成功后,主dns端/var/named的目录下出现westos.com.zone.jnl文件 解析文件内容也改变了 注:如果文件内容没变可以重启服务,然后再看文件内容 9.在主dns端再次验证 dig hello.westos.com 会发现刚才更新的hello.westos.com可以解析到对应的ip 10.删除更新所生成的文件,则更新的hello.westos.com也不存在 注:也可以在辅dns中用命令删除更新的hello.westos.com然后在主dns上再进行如上操作
四.基于key的dns更新
1.生成key
[root@dns mnt]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey
若遇到加密停顿情况可以在主机中敲击键盘来解决
查看key已经生成:一个为密钥一个为私钥,可以看到其中的内容都是相同的 2.将key摸版复制到自己的key文件中 3.编辑key文件 注意:密码为自己生成key文件的密码 4.编辑主配置文件加入key认证
[root@dns mnt]# vim /etc/named.conf
[root@dns mnt]# systemctl restart named
5.
[root@dns mnt]# vim /etc/named.rfc1912.zones
[root@dns mnt]# systemctl restart named
6.将密钥匙和公匙都传到辅助dns 7.测试 在辅助dns端 开启远程更新,发现更新成功
weixin_44224288
关注
关注
点赞
收藏
打赏
知道了
评论
linux之DNS部署—— dns的集群(辅助dns)及dns的更新及dns的key认证
一.实验环境的搭建在dns服务端:如果做了dns的双向解析的化应该要进行以下操作:vim /etc/named.conf ##把反向解析时的配置内容还原systemctl restart named ##重启服务(1)还原根分区:即把根分区的注释去掉(2)注释反向解析配置文件所添加的内容(3)还原辅助文件的内容在另一台辅dns配置的虚拟机上:(1)配置...
复制链接
扫一扫
基于twisted实现的智能dns系统smartdns.zip
07-19
smartdns 是 python 语言编写,基于 twisted 框架实现的dns server,能够支持针对不同的dns请求根据配置返回不同的解析结果。smartdns获取dns请求的源IP或者客户端IP(支持edns协议的请 求可以获取客户端IP),根据本地的静态IP库获取请求IP的特性,包括所在的国家、省份、城市、ISP等,然后根据我们的调度配置返回解析结果。
smartdns的使用场景:
服务的多机房流量调度,比如电信流量调度到电信机房、联通流量调度到联通机房;
用户访问控制,将用户调度到离用户最近或者链路质量最好的节点上。
举个简单的例子,我们的一个站点test.test.com同时部署在电信和联通两个机房,该站点在电信机房的ip为1.1.1.1、在联通机房的ip为 2.2.2.2,就可以通过smartdns做到该站点域名解析时判断源IP为电信的IP时返回1.1.1.1、判断源IP为联通的IP时返回 2.2.2.2,从而达到不同运营商机房流量调度的目的。
支持的功能
支持A、SOA、NS记录的查询,支持DNS forward功能
性能
在虚拟机2.4G CPU上能够处理1000QPS查询请求,打开debug日志后可以到800QPS。3-5台dns server组成的集群已经能够满足大部分站点的需求。
目前我们正在实现和小流量测试go语言实现的smartdns,能够达到3wQPS以上,后续测试稳定后会开源出来,大家敬请期待:)
原理
smartdns响应dns请求的处理流程如下:
IPPool类的初始化和该类中FindIP方法进行解析处理是smartdns中最关键的两个要素,这两个要素在下面详细介绍。其他的特性比如继 承twisted中dns相关类并重写处理dns请求的方法、升级twisted代码支持解析和处理edns请求等大家可以通过代码了解。edns知识可 以猛戳这里:DNS support edns-client-subnet
IPPool初始化
ip.csv内容格式如下:200000001, 200000010,中国,陕西,西安,电信
其中各个字段含义分别为 IP段起始,IP段截止,IP段所属国家,IP段所属省份,IP段所属城市,IP段所属ISP
a.yaml配置文件格式:
test.test.com:
ttl: 3600
default: 5.5.5.5 2.2.2.2
中国,广东,,联通: 1.1.1.1 3.3.3.1
中国,广东,,电信: 1.1.1.2 3.3.3.2
配置中地域信息的key包括四个字段,分别带有不同的权重:
国家: 8
省份: 4
城市: 2
运营商: 1
初始化阶段,会生成一个名为iphash的dict,具体数据结构如下图:
其中,iphash的key为ip.csv每一条记录的起始IP,value为一个list,list长度为6,list前5个字段分别为以该 key为起始IP记录的IP段截止、IP段所属国家、IP段所属省份、IP段所属城市、IP段所属ISP,第六个字段是一个hash,key为 a.yaml里面配置的域名,value为长度为2的list,iphash[IP段起始][6][域名1][0]为域名1在该IP段的最优解 析,iphash[IP段起始][6][域名1][1]为该最优解析的总权值,该总权值暂时只做参考。
iphash初始化过程中最关键的是iphash[IP段起始][6][域名1]的最优解析的计算,最简单直接的方式是直接遍历域名1的所有调度配 置,挑选出满足条件且总权值最高的解析,即为最优解析。这种方式记录整个iphash的时间复杂度为O(xyz),x为ip.csv记录数,y为域名总数 量,z为各个域名的调度配置数。为了优化启动速度,优化了寻找最优解析的方法:事先将每个域名调度配置生成一颗树,这棵树是用dict模拟出来的,这样需 要最优解的时候就不需要遍历所有调度配置,而是最多检索15次即可找到最优,即时间复杂度为O(15xy),具体实现参考IPPool的 LoadRecord和JoinIP两个方法。
有了初始化后的iphash数据结构之后,每次请求处理的时候,只需要定位请求IP处在哪个IP段,找到IP段起始IP,然后从iphash中取出最优解析,取出最优解析的过程是O(1)的。具体流程如下:
代码
github: https://github.com/xiaomi-sa/smartdns
安装
依赖:
python 2.6或者2.7 Twisted 12.2.0 zope.interface 4.0.1
安装:
git clone smartdns到本地路径,进入script目录,执行install_smartdns.sh即可将smartdns安装在本地,同时python环境和相关的依赖都是使用virtualenv来进行管理,不会对系统环境造成影响。
启动:
进入smartdns的bin路径下,执行sh run_dns.sh即可启动smartdns
测试
本地测试 dig test.test.com @127.0.0.1
或者将搭建的smartdns加到测试域名的ns中进行测试。
支持
mail: fangshaosen@xiaomi.com
github: jerryfang8
EDNS相关请参考:DNS support edns-client-subnet
标签:smartdns
DNSSEC学习笔记
热门推荐
huangzx3的博客
01-17
1万+
1 、什么是DNSSEC
DNSSEC(DNS Security Extension)----DNS安全扩展,主要是为了解决DNS欺骗和缓存污染问题而设计的一种安全机制。
1.1 DNS欺骗&缓存污染
客户端(pc)发起域名(例如:www.baidu.com)请求的时候,如果在本地缓存没有的情况下,会往递归服务器发送域名查询请求(我们也称之为localdns),递归服务器再一层层递归...
参与评论
您还未登录,请先
登录
后发表或查看评论
LINUX-DNS部署 超详细
2201_75288693的博客
02-28
267
DNS(domain name system)域名管理系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用记住能够被机器直接读取的IP地址。
DNS 服务器部署 - 实践 (七) - 基于 Key 更新
毕加索的忧伤
11-26
453
DNS 服务器部署 - 实践 (七) - 基于 Key 更新
文章目录DNS 服务器部署 - 实践 (七) - 基于 Key 更新基于 Key 更新server1 配置测试实验截图
基于 Key 更新
基于 Key 更新:只有指定的密钥才可以更改记录
注意
当做 nsupdate 的操作,则原来 directory 所指的目录将会产生一些日志文件,这个日志文件就是 zone_name.jnl。重启服务并不会消失,重启服务时,出现以下情况,删除该文件就好。
server1 配置
# 生成 key
DNS部署(三)DNS的集群、远程更新、基于key的DNS更新
qq_39376481的博客
03-15
446
1.DNS的集群
解释:DNS集群指的是两台主机组成的功能的集合(变一个都变),之所以创建集群,是因为如果访问dns的人过多,可能会挂掉,所以需要添加另外一个服务器辅助dns,缓解访问压力,完全同步主dns
<1>首先在客户端安装named服务并进行重启
[root@dns2-server ~]# yum install bind -y
[root@dns2-server ~]# sy...
DNSSEC资源记录安全扩展(RFC4034翻译)
u013617791的专栏
02-27
1511
文章目录1. 引言1.1 背景和相关文档1.2 关键字2. DNSKEY资源记录2.1 DNSKEY RDATA 有线格式2.1.1 标志(Flags)字段2.1.2 协议(Protocol)字段2.1.3 算法(Algorithm)字段2.1.4 公钥(Public Key)字段2.1.5 关于DNSKEY RDATA设计的说明2.2 DNSKEY RR 的表现形式2.3 DNSKEY RR ...
给DNS设置KEY
a18829898663的博客
05-09
1309
给DNS设置KEY
Linux运维~2.DNS——7.dns的key更新
Stella_Potter的博客
11-21
176
dns的key更新:
在集群中只要把自己的IP改成辅服务器还是能更新主服务器
很不安全
需要加密
主服务器生成公钥和私钥(对称加密)
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey
(要在虚拟机中敲几下键盘)
cp -p /etc/rndc.key /etc/westos.key
key "westoskey" {
...
dns服务器的搭建
weixin_38076419的博客
05-09
377
################################3_3.DNS服务器
DNS:服务:bind.x86_64 主配置文件:/etc/named.conf
/var/named:包含名称服务器所使用的其他数据文件
A:名称至ipv4地址
AAAA:名称至ipv6地址
CNAME:域名规范
PTR:逆向解析,IP->域名
MX:用于名称的邮件交换器 ( 向何处发送其...
DNS 中的协议字段详细定义
weixin_33877885的博客
01-31
1033
DNS中的协议字段定义
Table of Contents
1 概述
2 DNS Classes
3 DNS OpCodes
4 DNS RCODEs
5 DNS Label Types
6 DNS资源记录
7 EDNS Version
8 DNS EDNS0 Option Codes (OPT)
1 概述
总结DNS协议中各字段的取值
...
consulate-0.6.0 consul python linux,win 插件
06-16
health checking:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。 key/value storage:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方...
aks-agic:此示例显示如何使用应用程序网关,应用程序网关入口控制器,Azure容器注册表,日志分析和密钥保管库部署AKS群集
03-05
此ARM模板可用于部署具有和加载项的公共或私有。 该模板允许部署丰富的AKS功能集,例如: 有关如何在多租户AKS集群中使用Application Gateway Ingress Controller的,请参阅此。 建筑学 该图显示了总体架构: ARM...
BlockChain Automation Framework Key Concepts之Kubernetes Services简介
01-20
1. 官方文档 Kubernetes Services 2. Kubernetes Service简介 2.1 容器(Container) 一个Docker容器 (Docker Container) 是ephermeral运行的过程,该容器包含它多有必要软件包的依赖。...集群的一
详解consul的安装和配置
01-11
health checking:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。 key/value storage:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方...
infrastructures:基础架构定义
04-17
基础设施 基于Ansible和Vagrant。 引导顺序 绑定保管库etcd kubernetes-server kubernetes-node IP分配 系结 192.168.33.10 ... coredns部署 git clone https://github.com/coredns/deployment.git # 10.96.0.1
DNS基本知识及搭建
weixin_34192993的博客
08-13
478
DNS是什么大家已经很清楚了,就不多做累述了。一、DNS解析过程1.1 DNS解析的顺序linux进行DNS解析的顺序,先查找/etc/hosts文件,如果没有再通过配置/etc/resolv.conf里面设置的DNS服务器进行DNS解析。Centos6的文件设置:# cat /etc/nsswitch.conf |grep hosts #在Centos6里/etc/nss...
DNS 服务与邮件服务器(1)
weixin_52623251的博客
02-03
566
1、 基础配置
(1)修改 mail 节点与 dns 节点主机名
[root@localhost ~]# hostnamectl set-hostname mail
[root@localhost ~]# bash
[root@jing ~]# hostnamectl set-hostname dns
[root@jing ~]# bash
(2)关闭防火墙
[root@mail ~]# systemctl stop firewalld
[root@mail ~]# systemctl disable f.
DNS的配置
wcczb的博客
05-18
375
DNS 总揽
权威名称服务器
– 存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。权威名称服
务器的类型包括
Master : 包含原始区域数据。有时称作 “ 主要 ” 名称服务器
Slave : 备份服务器 , 通过区域传送从 Master 服务器获得的区域数据的副本。有时称作 “ 次要 ” 名称服务
非权威 / 递归名称服务器
– 客户端通
linux部署dns服务
最新发布
03-16
要在Linux上部署DNS服务,可以使用BIND软件包。以下是一些基本步骤:
1. 安装BIND软件包。在大多数Linux发行版中,可以使用包管理器来安装BIND。例如,在Ubuntu上,可以使用以下命令安装:
sudo apt-get install bind9
2. 配置BIND。BIND的配置文件位于/etc/bind/named.conf中。您需要编辑此文件以指定您的域名和DNS服务器的设置。例如,以下是一个简单的配置文件示例:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};
3. 创建DNS记录文件。在上面的示例中,我们指定了一个名为“db.example.com”的文件来存储DNS记录。您需要创建此文件并添加所需的记录。例如,以下是一个包含A记录和MX记录的示例文件:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2019010101 ; serial
360 ; refresh
180 ; retry
604800 ; expire
86400 ; minimum TTL
IN NS ns1.example.com.
IN A 192.168.1.1
IN MX 10 mail.example.com.
4. 启动BIND服务。在大多数Linux发行版中,可以使用以下命令启动BIND服务:
sudo systemctl start bind9
5. 测试DNS服务。您可以使用nslookup或dig等工具来测试您的DNS服务器是否正常工作。例如,以下是使用nslookup测试A记录的示例:
nslookup example.com
如果您看到返回的IP地址,则说明您的DNS服务器已成功部署。
希望这些步骤能帮助您在Linux上部署DNS服务。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
weixin_44224288
CSDN认证博客专家
CSDN认证企业博客
码龄4年
暂无认证
173
原创
23万+
周排名
168万+
总排名
11万+
访问
等级
2984
积分
148
粉丝
155
获赞
35
评论
225
收藏
私信
关注
热门文章
linux下的网络配置
8378
linux系统无法正常启动的解决方法
7637
linux之数据库
7145
企业—pacemaker基本概念及其原理
5061
企业—habor docker镜像仓库的搭建
3799
分类专栏
云主机i
最新评论
企业—saltstack远程执行模块(python)及其salt syndic(topmaster)的应用)
leightg:
大佬,我这个master推送模块minion没反应是咋回事呀...?[code=plain]
sumav4:/srv/salt/_modules # salt -N 'test' saltutil.sync_modules
10.185.26.118:
10.185.26.117:
[/code]
Python——栈的实现(面向对象法)
shmily_xwy:
为什么多加几个元素就不能按照倒叙输出了
Python——习题:轮盘抽奖游戏
Python大星:
我也用tk来试试https://www.toutiao.com/i6722354054682378756/
Python——面向对象的三大方法:封装,继承和多态
杨晓尚:
感谢博主分享
Python——面向对象的三大方法:封装,继承和多态
杨晓尚:
感谢博主分享
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
ELK——ELK日志架构学习
Mysql主从数据库的搭建并实现MHA高可用,并通过zabbix对其监控
企业—kibana部署及其elk开源日志分析平台实现对httpd的分析
2020年1篇
2019年169篇
2018年3篇
目录
目录
分类专栏
云主机i
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
weixin_44224288
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值