当前位置: 首页 > java >正文

DNS实验

DNS原理

  1. 客户端发起请求:客户端向本地 DNS 服务器发送域名解析请求,这是流程的起始点。
  2. 本地 DNS 服务器查询根域名服务器:若本地 DNS 服务器缓存中无对应记录,它向根域名服务器发起查询,根域名服务器是 DNS 系统顶层,掌握顶级域名服务器信息。
  3. 根域名服务器响应:根域名服务器告知本地 DNS 服务器,负责该域名顶级域名服务器的地址。
  4. 本地 DNS 服务器查询顶级域名服务器:本地 DNS 服务器向顶级域名服务器发送查询请求,顶级域名服务器管理如.com、.org 等顶级域名下的域名信息。
  5. 顶级域名服务器响应:顶级域名服务器告知本地 DNS 服务器,负责该域名的权威域名服务器地址。
  6. 本地 DNS 服务器查询权威域名服务器:本地 DNS 服务器向权威域名服务器查询,权威域名服务器存储具体域名的解析记录。
  7. 权威域名服务器响应:权威域名服务器将域名对应的 IP 地址返回给本地 DNS 服务器。
  8. 本地 DNS 服务器响应客户端:本地 DNS 服务器将获取的 IP 地址返回给客户端,客户端就能通过 IP 访问对应网络资源。

此外,客户端和本地 DNS 服务器间虚线关联本地 DNS 缓存、/etc/hosts 文件 ,本地 DNS 服务器配置文件是 /etc/resolv.conf ,这些在解析中起到辅助作用。

  1. 主dns要完成dns解析:192.168.164.128

[root@localhost ~]# yum install bind -y

[root@localhost ~]# systemctl  start named

named:它是 BIND(Berkeley Internet Name Domain)域名服务器软件的守护进程。
[root@localhost ~]# vim /etc/named.conf
named.conf 是 BIND(Berkeley Internet Name Domain)软件的主配置文件,BIND 是在互联网上广泛使用的 DN(Domain Name System)服务器软件,named.conf 文件用于控制 named 守护进程的行为

[root@localhost ~]# vim /etc/named.conf

1. options 部分

  • listen-on port 53 { any; };
    • 作用:指定 named 服务监听在 TCP 和 UDP 的 53 端口,并且监听所有本地 IP 地址。这意味着该 DNS 服务器可以接收来自任何网络接口的 DNS 请求。
  • directory "/var/named";
    • 作用:定义区域文件(记录域名相关信息的文件)的存储目录。BIND 会在这个目录下查找和存放相关的区域文件。需要确保 named 服务对该目录有读写权限。
  • allow-query { any; };
    • 作用:允许任何客户端发起 DNS 查询请求。
  • allow-transfer { 192.168.164.129; };
    • 作用:允许指定的 IP 地址(这里是 192.168.164.129 )进行区域传送。区域传送是指主 DNS 服务器将区域数据复制给从 DNS 服务器的过程。如果设置不当,可能会导致 DNS 数据泄露,所以要谨慎设置,只允许可信的从 DNS 服务器 IP 进行区域传送 。

2. 区域定义部分

  • zone "zhang.com." IN {
    • 作用:定义了一个名为 zhang.com. 的 DNS 区域,类型为 master(主区域) ,意味着这台服务器是该区域的主 DNS 服务器,负责维护和管理这个区域的 DNS 记录。
    • file "named.zhang.com";:指定该区域对应的区域文件名为 named.zhang.com ,这个文件应存放在前面 options 中定义的 directory 目录(/var/named )下,里面应包含 zhang.com 这个区域的具体 DNS 记录,如 A 记录(域名到 IP 地址映射)、MX 记录(邮件交换记录)等 。目前缺少具体的区域文件内容,需要创建并填充相关记录。
  • zone "164.168.192.in-addr.arpa" IN {
    • 作用:这是一个反向解析区域定义,in-addr.arpa 是用于 IPv4 反向地址解析的特殊域名。类型同样为 master 。反向解析是通过 IP 地址查询对应的域名,对于网络管理和安全审计等有重要作用。
    • file "named.192.168.164.zone";:指定该反向解析区域对应的区域文件 。

[root@localhost~]#cp -a /var/named/named.localhost /var/named/named.zhang.com

[root@localhost~]#cp -a /var/named/named.localhost /var/named/named.192.168.138.zone

vim  /var/named/named.zhang.com

vim  /var/named/named.192.168.164.zone

[root@localhost ~]# systemctl restart named

Job for named.service failed because the control process exited with error code.

See "systemctl status named.service" and "journalctl -xeu named.service" for details.

[root@localhost ~]# systemctl stop firewalld

从:192.168.164.129

[root@localhost ~]#  yum  install bind  -y

[root@localhost ~]# systemctl  start named

[root@localhost ~]# vim /etc/named.conf

options {

        listen-on port 53 { any; };

        directory       "/var/named";

        allow-query     { any; };

}

zone "zhang.com." IN {

type slave;

masters { 192.168.164.128; };
file “slaves/named.zhang.com”;};

zone "164.168.192.in-addr.arpa" IN {

 type slave;

masters { 192.168.164.128; };
file “slaves/named.192.168.164.zone”;

};

[root@localhost ~]# systemctl  restart named

[root@localhost ~]# systemctl stop firewalld

测试:

C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.128

C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.129

[root@localhost ~]# host xixi.zhang.com 192.168.164.128

[root@localhost ~]# host xixi.zhang.com 192.168.164.129

---------------增量

增量同步:

1、主:

tep1:往资源文件添加一行新的解析记录,(/var/named/named.zhang.com

和/var/named/named.192.168.164.zone )

tep2:序列号+1

tep3:[root@localhost ~]# systemctl restart named

2、从

手动增量同步

[root@localhost ~]# rndc refresh zhang.com

[root@localhost ~]# rndc refresh 164.168.192.in-addr.arpa

测试:

C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.128

C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.129

[root@localhost ~]# host xixi.zhang.com 192.168.164.128

[root@localhost ~]# host xixi.zhang.com 192.168.164.129

http://www.xdnf.cn/news/1654.html

相关文章:

  • 【Python语言基础】24、并发编程
  • 学习记录:DAY17
  • 机器学习(7)——K均值聚类
  • 【python】一文掌握 markitdown 库的操作(用于将文件和办公文档转换为Markdown的Python工具)
  • .NET代码保护混淆和软件许可系统——Eziriz .NET Reactor 7
  • Postgresql源码(143)统计信息基础知识(带实例)
  • Zynq7020 制作boot.bin及烧录到开发板全流程解析
  • 【AI平台】n8n入门1:详细介绍n8n的多种安装方式(含docer图形化安装n8n)
  • sass 变量
  • spark-streaming(二)
  • Python 爬虫实战 | 企名科技
  • 基于Pytorch的深度学习-第二章
  • 《仙剑奇侠传二》游戏秘籍
  • 01.02、判定是否互为字符重排
  • SpringCloud——负载均衡
  • 自动化标注软件解析
  • 颠覆传统NAS体验:耘想WinNAS让远程存储如同本地般便捷
  • 【leetcode100】组合总和Ⅳ
  • 【踩坑记录】stm32 jlink程序烧录不进去
  • 《Learning Langchain》阅读笔记7-RAG(3)生成embeddings
  • react 子组件暴露,父组件接收
  • Qt 入门 6 之布局管理
  • TinyVue v3.22.0 正式发布:深色模式上线!集成 UnoCSS 图标库!TypeScript 类型支持全面升级!
  • 架构-项目管理
  • 半导体---检测和量测
  • Shader 空间变换(七)
  • 深度学习3.7 softmax回归的简洁实现
  • Java面试:从Spring Boot到微服务的全面考核
  • sysstat介绍以及交叉编译
  • 【Redis】 Redis中常见的数据类型(二)