实现DNS主从复制、子域、转发、智能DNS

2023-11-12

  • 主从复制

#前提准备:关闭SElinux 关闭防火墙 时间同步

#环境说明:Centos7

#ip地址:dns-master:10.0.0.100  dns-slave:10.0.0.103  web:10.0.0.101

目的:搭建DNS主从服务器架构,提升高可用性

主DNS服务配置:

1.安装软件包

yum install bind -y

2.修改配置文件

vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

#加上此项,只允许从服务器进行区域传输
allow-transfer { 10.0.0.103; };

vim /etc/named.rfc1912.zones
#加上这段
zone "zhang.org" {
   type master;
   file  "zhang.org.zone";
};

3.检查配置文件语法是否正确

named-checkconf 

4.复制一份模版文件

#-p选项保留属性,不然运行程序的named用户没有权限 

cp -p /var/named/named.localhost /var/named/zhang.org.zone

5.修改解析库文件

vim /var/named/zhang.org.zone 
$TTL 1D
@       IN SOA  master admin.zhang.org. (
                                        20230327        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
        NS      slave
master  A       10.0.0.100
slave   A       10.0.0.103
www     A       10.0.0.101

6.检查解析库文件语法是否正确

named-checkzone "zhang.org" /var/named/zhang.org.zone

7.启动服务

systemctl start named

从DNS服务配置:

1.安装软件包

yum install -y bind

2.修改配置文件

vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

#不允许其它主机进行区域传输
   allow-transfer { none;};

vim /etc/named.rfc1912.zones
#加上这段
zone "zhang.org" {
    type slave;
    masters { 10.0.0.100; };
    file "slaves/zhang.org.slave";
};

3.启动服务

systemctl start named

4.查看区域数据库文件是否生成

ls /var/named/slaves/zhang.org.slave

web服务部署:

1.安装软件包 

yum install -y httpd

 2.启动服务

systemctl start httpd

客户端测试主从DNS服务架构:

1.修改客户端的网络配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens32
#修改DNS地址
DNS1=10.0.0.100
DNS2=10.0.0.103

2.验证从DNS是否可以解析

#dig命令需要安装bind-utils这个包

dig www.zhang.org
curl www.zhang.org

3.停止主DNS服务

systemctl stop named

4.验证从DNS是否还可以解析

dig www.zhang.org
curl www.zhang.org
  • 实现子域

#前提准备:关闭SElinux 关闭防火墙 时间同步

#环境说明:Centos7

#ip地址:

DNS父域服务器:10.0.0.100    父域的web服务器:10.0.0.102,www.zhang.org

DNS子域服务器:10.0.0.101    子域的web服务器:10.0.0.103,www.bj.zhang.org

目的:搭建DNS父域和子域服务器

在父域DNS服务器上实现主zhang.org域的主DNS服务:

 1.安装软件包

yum install -y bind

2.修改配置文件

vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

#加上此项,只允许子域服务器进行区域传输
allow-transfer { 10.0.0.101;}; 

#关闭加密验证
dnssec-enable no;
dnssec-validation no;

vim /etc/named.rfc1912.zones  
#加上这段
zone "zhang.org" {
   type master;
   file  "zhang.org.zone";
};

3.复制一份模版文件

#-p选项保留属性,不然运行程序的named用户没有权限 

cp -p /var/named/named.localhost /var/named/zhang.org.zone

4.修改解析库文件

vim /var/named/zhang.org.zone
$TTL 1D
@       IN SOA  master admin.zhang.org. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
        NS      bj
master  A       10.0.0.100
bj      A       10.0.0.101
www     A       10.0.0.102

5.启动服务

systemctl start named

实现子域的DNS服务器:

1.安装软件包

yum install -y bind

2.修改配置文件

vim /etc/named.conf 
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

#加上此项
allow-transfer { none;}; 

vim /etc/named.rfc1912.zones
zone "bj.wang.org" {
   type master;
   file "bj.wang.org.zone";
};

3.复制一份模版文件

#-p选项保留属性,不然运行程序的named用户没有权限 

cp -p /var/named/named.localhost /var/named/zhang.org.zone

4.修改解析库文件

vim /var/named/bj.zhang.org.zone
$TTL 1D
@       IN SOA  master admin.zhang.org. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       10.0.0.101
www     A       10.0.0.103

在父域和子域的web服务器上安装httpd服务:

1.安装软件包

yum install -y httpd

2.启动服务

systemctl start httpd

客户端测试:

  •  实现转发

#前提准备:关闭SElinux 关闭防火墙 时间同步

#环境说明:Centos7

#ip地址:DNS转发服务器:10.0.0.100   DNS主服务器:10.0.0.101   web服务器:10.0.0.102         

目的:搭建DNS转发(缓存)服务器

实现转发(只缓存)DNS服务器:

1.安装软件包

yum install -y bind

2.修改配置文件

vim /etc/named.conf 
#注释掉两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

#加上此项,设定转发机制和转发地址
forward first;
forwarders { 10.0.0.101;}; 

#关闭dnsec功能
dnssec-enable no;
dnssec-validation no;

3.启动服务

systemctl start named

实现主DNS服务器:

1.安装软件包

yum install -y bind

2.修改配置文件

vim /etc/named.conf 
#注释掉两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

vim /etc/named.rfc1912.zones
#加上下面这段
zone "zhang.org" {
   type master;
   file  "zhang.org.zone";
};

3.复制一份模版文件

#-p选项保留属性,不然运行程序的named用户没有权限 

cp -p /var/named/named.localhost /var/named/zhang.org.zone

4.修改解析库文件

vim /var/named/zhang.org.zone
$TTL 1D
@       IN SOA  master admin.zhang.org. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS     master
master  A      10.0.0.101
websrv  A      10.0.0.102
www     CNAME  webbsrv

5.启动服务

systemctl start named

在web服务器上安装httpd服务:

1.安装软件包

yum install -y httpd

2.启动服务

systemctl start httpd

客户端测试:

  • 实现智能DNS 

#前提准备:关闭SElinux 关闭防火墙 时间同步

#环境说明:Centos7

#ip地址:主DNS服务器:10.0.0.100,192.168.10.100   客户端:10.0.0.101,192.168.10.101

目的:

上海用户访问www.zhang.org,DNS服务器将域名解析为10.0.0.102的ip返回给用户进行访问

北京用户访问www.zhang.org,DNS服务器将域名解析为192.168.10.102的ip返回给用户进行访问

实现主DNS服务器:

1.安装软件包

yum install -y bind

2.配置两块网卡 

2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d0:4a:61 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::c39a:6fea:e4fa:d5ca/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::2389:c758:d23a:151a/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::a2a0:1936:99b1:d760/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d0:4a:6b brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.100/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed0:4a6b/64 scope link 
       valid_lft forever preferred_lft forever

3.修改配置文件 

vim /etc/named.conf
#注释掉两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

#加上这段
acl shanghainet {
    10.0.0.0/24;
};

acl beijingnet {
    192.168.10.0/24;
};

#将下面这段剪切至/etc/named.rfc1912.zones中
zone "." IN {
        type hint;
        file "named.ca";
};

4.复制两份区域定义文件

cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.sh
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj

5.再次修改配置文件

vim /etc/named.conf
#注释此行
// include "/etc/named.rfc1912.zones";

#加上下面两段
view shanghai {
    match-clients { shanghainet;};
    include "/etc/named.rfc1912.zones.sh";
};

view beijing {
    match-clients { beijingnet;};
    include "/etc/named.rfc1912.zones.bj";
};

6.修改两份区域定义文件

vim /etc/named.rfc1912.zones.sh
#加上这段
zone "zhang.org" {
    type master;
    file "zhang.org.zone.sh";
};

vim /etc/named.rfc1912.zones.bj
#加上这段
zone "zhang.org" {
    type master;
    file "zhang.org.zone.bj";
};

7.启动服务

systemctl start named

客户端测试访问:

客户端ip

#10.0.0.101充当上海用户,192.168.10.101充当北京用户

访问结果 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现DNS主从复制、子域、转发、智能DNS 的相关文章

  • 如何告诉 python HTMLParser 停止

    我有一个用例告诉我们当标签是link它的属性是rel dns prefetch然后就说预解析dns已启用 我做了一个标志pre resolve dns enabled并将其设置为 true 如下所示 class Extractor HTML
  • Django 应用程序是否可以知道用户的 Windows 域名?

    我需要制作一个简单的知识库类型应用程序以在公司内部网络中使用 为了使最终用户使用起来简单快捷 我想部分跳过所有登录 因为它只对我们信任的内部网络用户可见 并自动从用户中提取域用户名并放入它进入数据库 不希望人们浪费时间手动输入他们的名字 他
  • 在 Android 上解析 DNS SRV 记录的轻量级方法

    在 Android 上进行 SRV 记录查找最节省资源的方法是什么 例如在 XMPP 客户端中 例如yaxim https github com pfleidi yaxim 我知道 JNDI http docs oracle com jav
  • DNS预取和页面优化[重复]

    这个问题在这里已经有答案了 今天我在一个网页的 HTML 源代码中看到了这个片段
  • Firebase 托管未验证 GoDaddy 中的 TXT 记录

    我部署了我的应用程序 现在我正在尝试添加我的自定义 URL 我按照 Firebase 的说明将他们的 TXT 记录添加到我的 DNS GoDaddy 中 但现在 Firebase 表示尚未得到验证 我认为我做错了什么 但这里没有什么可搞乱的
  • 相同视图和浏览器版本中不同的 IE XML/XSL 行为,但使用不同的域用户帐户

    我们的一位用户在尝试访问我们的 Web 应用程序视图之一时遇到问题 IE9 行为在 6 8 和 9 中显得一致 但在域帐户之间不一致 对于该特定用户的 Windows 域帐户 无论使用哪些凭据来访问我们的应用程序 或者使用哪台机器的浏览器
  • 对在欧盟地区运行的 Heroku 应用程序强制使用 SSL

    我正在努力为 Heroku 欧盟地区 上运行的 Rails 应用程序强制实施 SSL 连接 我已成功将证书 包括 Heroku SSL 附加组件 添加到自定义域 如果我明确声明 https com 则效果完美 但我想将所有 http 请求重
  • 如何过滤wireshark以仅查看从我的计算机发送/接收的dns查询?

    我是wireshark新手 正在尝试编写简单的查询 要查看仅从我的计算机发送或由我的计算机接收的 DNS 查询 我尝试了以下操作 dns and ip addr 159 25 78 7 其中 159 25 78 7 是我的 IP 地址 看起
  • Mono 的 DNS 刷新超时

    虽然目前Mono项目的ServicePointManager类有DnsRefreshTimeout属性启用到其接口中 相关属性未实现 调用示例 ServicePointManager DnsRefreshTimeout 10 60 1000
  • 如何让 Docker 容器访问主机上的 dnsmasq 本地 DNS 解析器?

    Docker 容器可能会通过多种方式对 DNS 设置感到困惑 只需在 SO 或更广泛的互联网上搜索 Docker DNS 即可了解我的意思 建议的常见解决方法之一是 将 dnsmasq 设置为主机系统上的本地 DNS 解析器 将其绑定到do
  • Java 无法从 AIX 解析 DNS 地址:UnknownHostException

    我遇到了这个奇怪的错误 在 AIX 上 如果我可以从命令行访问我的服务器 使用 ping telnet 但是如果我尝试使用 java 我会遇到 UnknownHostException 这是因为 Java 无法以某种方式 使用 DNS 但我
  • NGinx 域名重定向

    假设我有一个名为 xyz co 的网站 我还有其他具有相同前缀的域名 例如 xyz com xyz it xyz co it 现在 nginx 与端口 80 的 nginx conf 中的 server name xyz co 配合得很好
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • CakePHP 多站点(如 WPMU + 域映射)...可能吗?

    所以我刚刚开始使用 CakePHP 想知道是否可以执行以下操作 一次安装 Cake 并使用超级管理员登录 然后 管理员有权访问指定的 子站点 并能够在这些子站点上创建 编辑内容和用户 最后 能够将域名 不是子域 而是唯一域 映射到路由 所以
  • AWS Route 53 如何实现基于延迟的路由?

    AWS Route 53 可以提供基于延迟的路由策略 请参阅AWS Route 53 的延迟路由策略 http docs aws amazon com Route53 latest DeveloperGuide routing policy
  • Nodejs 上使用 DNS 进行 Consul 服务发现

    TL DR 大家好 我试图从用 Express 编写的 NodeJS 前端调用 NodeJS 后端微服务 通过Consul https www consul io DNS接口 https www consul io intro gettin
  • SSL握手时是否检查服务器域名

    在 SSL 握手期间 是否在 SSL 握手期间检查服务器的域名 我的意思是 是否根据服务器运行的域检查了经过认证的服务器中的域名 示例 假设服务器证书具有域 mydomain com 如果服务器在域 someotherdomain com
  • 无法解析docker容器内的域名

    我在 Windows PC 上的 virtualbox 中运行 Linux 虚拟机 我在虚拟机中安装了docker 然后我使用以下命令启动了一个高山容器docker run it alpine 在这个容器中 我可以成功 ping 外部 IP
  • CNAME 记录也转发 MX 请求吗?

    我的 DNS 设置为包含 A 和 MX 记录的域 base com 还有其他几个域设置了 CNAME 记录 指向 base com 我是否需要为 CNAME 域设置任何特殊内容 例如额外的 MX 记录 或者 CNAME 记录还会转发任何 M
  • 如何添加子域名条目

    我在 godaddy 注册了一个域名 somename com 并且我正在使用 godaddy DNS 管理器 但我使用 Hostinger com 托管我的网站 所以我在托管商上创建了一个子域 sub somename com 默认情况下

随机推荐

  • Error:JAVA_HOME is not set and could not be found

    解决办法 打开hadoop etc hadoop目录下的文件hadoop env sh 将语句 export JAVA HOME JAVA HOME 修改为 export JAVA HOME 你的java路径 比如我是将其修改为 expor
  • Apache服务

    Apache服务 apache与nginx服务的区别 什么是服务 服务是具备处理客户端请求能力的程序 网站服务就是可以处理http请求并回复响应报文及数据 apache相关文件 主配置文件 etc httpd conf httpd conf
  • HEIF & HEVC 你知道多少?

    点击上方 iOS开发 选择 置顶公众号 关键时刻 第一时间送达 在升级 iOS 11 之后 iPhone 7 及更新的设备内的照片存储将不再用 JPEG 了 而采用了一种新的图片格式 HEIF 发音同 heef 在 iOS 中对应的文件后缀
  • 百度站长HTML添加301错误,搜索资源平台(百度站长)添加网站 使用文件验证 验证失败,原因:未知原因:301的解决办法...

    搜索资源平台 百度站长 添加网站 使用文件验证 验证失败 原因 未知原因 301的解决办法 之前使用过百度站长后台添加新的网站时 从没遇到过问题 一般都是选择第一种验证方式 文件验证 文件验证应该是很简单的事 直接注册账号进行登录 再把文件
  • Unity游戏基本框架

    个人总结笔记 参考自B站各教程 希望对他人也有所帮助 对我自己也方便复习 感谢唐老狮的教学 目录 文件夹管理 单例模式基类 单例模式介绍 Unity中的单例模式 C 中泛型的知识 继承MonoBehaviour的单例基类模式 缓存池模块 常
  • java基础

    Java基础 Java基础特性 与cmd的交互 1 1 什么是cmd 就是在windows操作系统中 利用命令行的方式去操作计算机 我们可以利用cmd命令去操作计算机 比如 打开文件 打开文件夹 创建文件夹等 1 2 如何打开CMD窗口 按
  • 【路由篇】01. 电脑远程访问小米路由器硬盘文件

    简介 自带硬盘的小米路由器可以保存照片 视频等文件 通过手机的小米路由器APP可以远程查看 非常方便 但是美中不足的是电脑无法远程访问小米路由器的文件 这就让小米路由器硬盘的功能大打折扣了 如果电脑可以远程访问小米路由器硬盘的话 当我们在外
  • 遍历一个HashMap

    可以通过2种方法遍历HashMap Map map new HashMap for Iterator iter map entrySet iterator iter hasNext Map Entry entry Map Entry ite
  • Centos 6.5、7升级安装openssh8.2p1

    因centos7自带的ssh版本较低 存在高危漏洞 故升级到最新版本 目前是8 2p1 注意 升级ssh存在一定的危险性 一旦不成功可能无法通过远程连接到系统 因此在升级之前最好先安装vnc或者telnet等远程服务 1 准备工作 查看下当
  • Qt开发 入门

    1 Qt概述 什么是Qt 不论我们学习什么样的知识点首先第一步都需要搞明白它是什么 这样才能明确当前学习的方向是否正确 下面给大家介绍一下什么是Qt Qt是一个跨平台的C 应用程序开发框架 具有短平快的优秀特质 投资少 周期短 见效快 效益
  • 等待一秒lua

    等待1秒 threadpool wait 1 等待1秒 threadpool wait 1 lua 等待1秒 threadpool wait 1
  • 嵌入式学习之STM32实现OLED

    嵌入式学习之STM32实现OLED 一 实验要求 二 SPI介绍 三 OLED介绍 四 实验过程 1 代码编写 实验结果演示 一 实验要求 理解OLED屏显和汉字点阵编码原理 使用STM32F103的SPI或IIC接口实现以下功能 显示自己
  • VS2019之WebAPI的创建与调用方法

    一 使用VS2019创建WebAPI 使用ValuesController cs来编写WebAPI的方法 重要 WebApiConfig cs的配置代码 注意访问方式 WebApi在访问时在主机名后加 api 然后再加控件器 方法 参数 如
  • R、Rstudio和Rtools的安装(以4.3.0版本为例)

    1 R的安装 下载地址 The Comprehensive R Archive Network tsinghua edu cn 这里下载的是4 3 0版本 选择Windows版本 下载后选择路径进行安装 默认选项即可 2 Rtools的安装
  • LabVIEW2018安装与使用

    安装 https blog csdn net m0 38106923 article details 88654150 每一个labview程序叫做一个vi 文件 新建vi 前面板 放一些控件 eg 输入控件 输出控件 显示控件 右键 选择
  • HttpMessageNotReadableException: JSON parse error: Unexpected character (‘“‘ (code 34)): was expecti

    作者 我弟 接口请求报错 2022 07 16 16 41 01 579 WARN 18820 nio 9002 exec 3 w s m s DefaultHandlerExceptionResolver Resolved org spr
  • Redis数据库安装

    1 redis安装包下载 redis安装包下载地址 https github com MicrosoftArchive redis releases windows下载msi安装包即可 2 安装redis 下载完成后 点击进行安装 按默认配
  • IT项目管理 — 作业7

    题目 Tony Prince 和他的团队正在做一个娱乐和健康方面的项目 他们被要求修改现有的成本估计 以便能有一个可靠的评价项目绩效的基线 进度和成本目标是在 6 个月内在 200 000 美元的预算下完成项目 准备和打印一页类似于图 7
  • 有什么好用的Angular插件推荐吗?

    10 个最受欢迎的 Angular 库 一 Angular Material Angular Material 是由 Google 开发的一款工具 是适合与 Angular 框架一起使用的 UI UX 组件库 Angular Materia
  • 实现DNS主从复制、子域、转发、智能DNS

    主从复制 前提准备 关闭SElinux 关闭防火墙 时间同步 环境说明 Centos7 ip地址 dns master 10 0 0 100 dns slave 10 0 0 103 web 10 0 0 101 目的 搭建DNS主从服务器