Linux之DNS服务器

一、DNS 简介

  1. 定义与作用:DNS(Domain Name System)是互联网上的一项服务,作为将域名和 IP 地址相互映射的分布式数据库,使人更方便地访问互联网。使用 53 端口,通常以 UDP 查询,未查到完整信息时用 TCP 重新查询。
  2. 因特网的域名结构
    • 国家顶级域名:采用 ISO3166 规定,如 cn、us、uk 等,记为 ccTLD。
    • 通用顶级域名:有 com、net、org、int、gov、mil 等。
    • 基础结构域名:只有 arpa,用于反向域名解析。

二、域名服务器的类型划分

  1. 根域名服务器:最高层次,最重要。知道所有顶级域名服务器的域名和 IP 地址,若本地域名服务器无法解析,先求助根域名服务器。全球有 13 个根服务器,美国占多数,“雪人计划”形成了 13 台原有根加 25 台 IPv6 根的新格局,中国部署了 4 台。
  2. 顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
  3. 权限域名服务器:负责一个“区”的域名服务器。
  4. 本地域名服务器:对域名系统非常重要,当主机发出 DNS 查询请求时,报文发送给本地域名服务器。
  5. 主从 DNS 服务器:主 DNS 服务器负责解析至少一个域,辅助域名服务器辅助主服务器,当主服务器故障时保证查询工作不中断,数据复制由主到从,更改数据只能在主服务器进行。
  6. 缓存 DNS 服务器:不负责解析域,只缓存域名解析结果。

三、DNS 域名解析的过程

  1. 先检查本地 hosts 文件是否有网址映射关系,有则调用完成解析。
  2. 若 hosts 没有,查找本地 DNS 解析器缓存,有则返回完成解析。
  3. 若前两者都没有,找首选 DNS 服务器(本地 DNS 服务器),若该服务器区域解析有结果则返回,完成解析;若已缓存网址映射关系也可完成解析。
  4. 若本地 DNS 服务器本地区域文件与缓存解析都失效,未用转发模式则向 13 台根 DNS 服务器请求,根服务器返回负责该顶级域名服务器的 IP,本地服务器继续联系,直至找到目标主机;若用转发模式则转发至上一级 DNS 服务器,循环查询。
  5. 从客户端到本地 DNS 服务器是递归查询,DNS 服务器之间是迭代查询。114.114.114.114 是国内常用 DNS,解析成功率高、速度快稳定;8.8.8.8 是谷歌提供的全球通用 DNS,更适合国外及访问国外网站用户。

四、DNS 服务器配置

提供DNS服务的软件叫bind,服务名是named。
[root@localhost ~]# yum install bind -y
[root@localhost ~]# rpm -ql bind
/etc/named.conf # bind主配置文件
/var/named/slaves # 从dns服务器文件夹
[root@localhost ~]# vim /etc/named.conf
options {
    #定义监听端口,如果所有地址都监听,则只写端口
    listen-on port 53 { 127.0.0.1; };
    listen-on-v6 port 53 { ::1; };
    #定义数据文件目录
    directory "/var/named";
    #只允许本地主机进行查询
    allow-query { localhost; };
};
#定义区域
zone "." IN {
    type hint;
    file "named.ca";
};

实验 1:配置 DNS 正向解析

[root@localhost ~]# vim /etc/named.conf主配置文件
options {  
	#监听端口为53,大括号内数据内容可以为any
	listen-on port 53 { 192.168.121.10; }; 
	directory       "/var/named";
};
zone "baidu.com" IN {                  
	        type master;              
	        file "named.baidu.com";
};  

正向解析文件资源记录(Resource Record,RR),常见的正解文件RR相关信息:

domainINRR typeRR data
主机名.INAIPv4的IP地址
主机名.INAAAAIPv6的IP地址
域名.INNS管理这个域名的服务器主机名字,即由哪一台主机去解析当 前所定义的域主机
域名.INSOA起始授 权记录管理这个域名的七个重要参数
域名.INMX顺序数字,接收邮件的服务器主机名字
主机别 名.INCNAME实际代表这个主机别名的主机名字

SOA主要是与区域有关,所以domain要写域名。而SOA后面会接七个参数,这七个参数的意义如下:

  • Master DNS服务器主机名:这个区域主要是哪台DNS作为Master的意思。
  • 管理员的Email,发生问题可以联系这个管理员。由于@在数据库文件中有特殊含义,所以将用“.”代替@
  • 序号(Serial),这个序号代表的是这个数数据库文件的新旧,序号越大代表越新。所以当你更改了数据库内容时,需要将这个数值放大。
  • 更新频率(Refresh)定义slave多久向Master要求数据更新。
  • 失败重新尝试时间(Retry),如果Slave无法对Master实现连接,那么在多长时间内,Slave会尝试重新连接到Master。
  • 失效时间(Expire),如果一直尝试失败,持续连接到达这个设置值时限,那么Slave将不再继续尝试连接,并且尝试删除这份下载的zone file信息。
  • 缓存时间(Minumum TTL),如果这个数据库zone file中,每条记录都没有写到TTL缓存时间的话,那么就以这个SOA的设置值为主。ttl的意思是当这笔记录被其他DNS服务器查询到后,这个记录会在对方DNS服务器的缓存中,保持多久时间。如果写了$TTL,则以该值为准。

时间单位:M(分钟),H(小时),D(天),W(周),默认是秒

[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
 IN NS ns.baidu.com. 
 IN MX 10 mail.baidu.com.
ns IN A 192.168.121.10
mail IN A 192.168.121.10
www IN A 192.168.121.10
ftp IN CNAME www
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl disable firewalld --now
[root@webserver ~]# setenforce 0
#客户端测试
host [-a] FQDN [server]
nslookup [FQDN] [server]
dig [options] FQDN [@server]
 options:+trace代表从.开始追踪;-t type查询的数据主要有MX、NS、SOA、A等类型;-x查
询反解信
息
[root@localhost ~]# host www.baidu.com 192.168.121.10
[root@localhost ~]# nslookup www.baidu.com 192.168.121.10
[root@localhost ~]# dig -t A www.baidu.com @192.168.121.10

在这里插入图片描述

实验 2:反向解析

[root@localhost ~]# vim /etc/named.conf
zone "121.168.192.in-addr.arpa" IN { 
    type master;
    file "named.192.168.121";
};
#反向区域文件
[root@localhost ~]# vim /var/named/named.192.168.121
$TTL 1D
@ IN SOA ns.baidu.com. admin.baidu.com. ( 0 1D 1H 1W 3H )
	IN NS ns.baidu.com.
10 IN PTR ns.baidu.com.
10 IN PTR www.baidu.com.
10 IN PTR mail.baidu.com.
10 IN PTR ftp.baidu.com.
#反解需要注意:主机名尽量使用完整的FQDN,即要写上“.”
#客户端测试
[root@localhost ~]# host 192.168.121.10 192.168.121.10
[root@localhost ~]# nslookup 192.168.121.10 192.168.121.10
[root@localhost ~]# dig -x 192.168.121.10  @192.168.121.10

在这里插入图片描述

实验 3:主从 DNS 服务器

  • 完全区域传送:主服务器配置允许区域传送并设置从服务器 IP,编辑区域文件并添加从服务器信息;从服务器安装 bind,配置区域为 slave 类型并指定主服务器 IP 和文件存储位置,重启服务后进行测试。
  • 增量区域传送:修改主服务器区域配置文件,增大序号并添加新记录,重启服务。
#主DNS服务器的配置【主dns服务器的ip地址为192.168.121.10】
[root@localhost ~]# vim /etc/named.conf
options {  
listen-on port 53 { 192.168.121.10; }; 
directory       "/var/named";
allow-transfer { 192.168.121.11; }; 
};
zone "baidu.com" IN {                  
     type master;              
     file "named.baidu.com";
};       
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com. 
IN MX 10 mail.baidu.com.
ns IN A 192.168.121.10
slave IN A 192.168.121.11
mail IN A 192.168.121.10
www IN A 192.168.121.10
ftp IN CNAME www
[root@localhost ~]# systemct restart named 
#从DNS服务器的配置【从dns服务器的ip地址为192.168.121.11】
[root@localhost ~]# yum install bind -y
[root@localhost ~]# vim /etc/named.conf
options {  
listen-on port 53 { 192.168.121.10; }; 
directory       "/var/named";
};
zone "baidu.com" IN {                  
     type slave;              
     file "slaves/named.baidu.com";
     masters {192.168.121.10;};
};  
[root@localhost ~]# systemctl restart named 
#测试
[root@localhost ~]# host www.baidu.com 192.168.121.11

在这里插入图片描述

#修改主服务器的区域配置文件,序号比之前的序号大【注:区域文件里面必须要写从服务器的NS和A记
录】
#主DNS服务器的配置【主dns服务器的ip地址为192.168.121.10】
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D 
@ IN SOA @ admin.baidu.com. ( 1 1D 1H 1W 3H )
 IN NS ns.baidu.com. 
 IN NS slave.baidu.com.
 IN MX 10 mail.baidu.com. 
ns IN A 192.168.121.10
slave IN A 192.168.121.11
mail IN A 192.168.121.10
www IN A 192.168.121.10
ftp IN CNAME www
www1 IN CNAME www
[root@localhost ~]# systemct restart named

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914676.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

已解决:spark代码中sqlContext.createDataframe空指针异常

这段代码是使用local模式运行spark代码。但是在获取了spark.sqlContext之后,用sqlContext将rdd算子转换为Dataframe的时候报错空指针异常 Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.Nu…

物联网低功耗广域网LoRa开发(一):LoRa物联网行业解决方案

一、LoRa的优势以及与其他无线通信技术对比 (一)LoRa的优势 1、164dB链路预算 、距离>15km 2、快速、灵活的基础设施易组网且投资成本较少 3、LoRa节点模块仅用于通讯电池寿命长达10年 4、免牌照的频段 网关/路由器建设和运营 、节点/终端成本低…

【2024最新】渗透测试工具大全(超详细),收藏这一篇就够了!

【2024最新】渗透测试工具大全(超详细),收藏这一篇就够了! 黑客/网安大礼包:👉基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 所有工具仅能在取得足够合…

Redis - 哨兵(Sentinel)

Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务,需要⼈⼯进⾏主从切换,同时⼤量 的客⼾端需要被通知切换到新的主节点上,对于上了⼀定规模的应⽤来说,这种⽅案是⽆法接受的, 于是Redis从2.8开始提…

双十二入手什么比较划算?双十二母婴好物推荐

随着双十二购物狂欢节的临近,双十二入手什么比较划算?许多准父母和有小孩的家庭都在寻找最佳的母婴产品优惠。在这个特别的日子里,各大电商平台都会推出一系列针对母婴用品的折扣和促销活动,使得这个时期成为囤货和更新宝宝生活必…

[运维][Nginx]Nginx学习(1/5)--Nginx基础

Nginx简介 背景介绍 Nginx一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一…

手动安装Ubuntu系统中的network-manager包(其它包同理)

自己手闲把系统中的network-manager包给删了,导致的结果就是Ubuntu系统彻底没有网络。结果再装network-manager时,没有网络根本装不了,网上的方法都试了也没用,然后就自己源码装,这篇文章就是记录一下怎么手动下载包然…

【 ElementUI 组件Steps 步骤条使用新手详细教程】

本文介绍如何使用 ElementUI 组件库中的步骤条组件完成分步表单设计。 效果图: 基础用法​ 简单的步骤条。 设置 active 属性,接受一个 Number,表明步骤的 index,从 0 开始。 需要定宽的步骤条时,设置 space 属性即…

Java项目实战II基于微信小程序的童装商城(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于微信小…

基于Cocos Creator开发的打砖块游戏

一、简介 Cocos简而言之就是一个开发工具,详见官方网站TypeScript简而言之就是开发语言,是JavaScript的一个超集详解官网 今天我们就来学习如何写一个打砖块的游戏,很简单的一个入门级小游戏。 二、实现过程 2.1 布局部分 首先来一个整体…

BigDecimal 详解

《阿里巴巴 Java 开发手册》中提到:“为了避免精度丢失,可以使用 BigDecimal 来进行浮点数的运算”。 浮点数的运算竟然还会有精度丢失的风险吗?确实会! 示例代码: float a 2.0f - 1.9f; float b 1.8f - 1.7f; Sys…

使用git命令实现对gitee仓库的下载、更新、上传、上传更新操作。

博客内容为使用git命令实现对gitee仓库的下载、更新、上传、上传更新操作。 1、下载(检出) 使用 git clone 命令 项目仓库地址 eg: git clone https://gitee.com/zzzzzed/ChinessChess.git 如果本地已经下载了该项目则跳过该步骤。 注意使用 git clone 首次检出需要输入用户名…

攻防世界38-FlatScience-CTFWeb

攻防世界38-FlatScience-Web 点开这个here看到一堆pdf,感觉没用&#xff0c;扫描一下 试试弱口令先 源码里有&#xff1a; 好吧0.0 试试存不存在sql注入 根本没回显&#xff0c;转战login.php先 输入1’,发现sql注入 看到提示 访问后得源码 <?php ob_start(); ?>…

JavaWeb后端开发案例——苍穹外卖day01

day1遇到问题&#xff1a; 1.前端界面打不开&#xff0c;把nginx.conf文件中localhost:80改成81即可 2.前后端联调时&#xff0c;前端登录没反应&#xff0c;application.yml中默认用的8080端口被占用&#xff0c;就改用了8081端口&#xff0c;修改的时候需要改两个地方&…

常用中间件介绍

1. RabbitMQ RabbitMQ是一个基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff09;的开源消息代理软件&#xff0c;实现了面向消息的中间件。它支持消息持久化、队列、交换机&#xff08;Exchange&#xff09;和绑定&#xff08;Bin…

【HAProxy06】企业级反向代理HAProxy调度算法之其他算法

HAProxy 调度算法 HAProxy通过固定参数 balance 指明对后端服务器的调度算法&#xff0c;该参数可以配置在listen或backend选项中。 HAProxy的调度算法分为静态和动态调度算法&#xff0c;但是有些算法可以根据不同的参数实现静态和动态算法 相互转换。 官方文档&#xff1…

什么是 eCPRI,它对 5G 和 Open RAN 有何贡献?

这里写目录标题 eCPRI 协议平面&#xff1a;功能分解eCPRI与CPRI的区别CPRI具有以下特点&#xff1a;eCPRI具有以下特点&#xff1a;eCPRI 的优势 所需带宽减少 10 倍适用于 5G 和 Open RAN 的 eCPRI&#xff1a; 通用公共无线接口&#xff08;CPRI&#xff09;是一种行业合作&…

【网页设计】HTML5 和 CSS3 提高

目标 能够说出 3~5 个 HTML5 新增布局和表单标签能够说出 CSS3 的新增特性有哪些 1. HTML5 的新特性 注&#xff1a;该部分所有内容可参考菜鸟教程菜鸟教程 - 学的不仅是技术&#xff0c;更是梦想&#xff01; (runoob.com) HTML5 的新增特性主要是针对于以前的不足&#xf…

Dinky控制台:利用SSE技术实现实时日志监控与操作

1、前置知识 1.1 Dinky介绍 实时即未来,Dinky 为 Apache Flink 而生,让 Flink SQL 纵享丝滑。 Dinky 是一个开箱即用、易扩展,以 Apache Flink 为基础,连接 OLAP 和数据湖等众多框架的一站式实时计算平台,致力于流批一体和湖仓一体的探索与实践。 致力于简化Flink任务开…

如何判断 Hive 表是内部表还是外部表

在使用 Apache Hive 进行大数据处理时&#xff0c;理解表的类型&#xff08;内部表或外部表&#xff09;对于数据管理和维护至关重要。本篇文章将详细介绍如何判断 Hive 表是内部表还是外部表&#xff0c;并提供具体的操作示例。 目录 Hive 表的类型简介判断表类型的方法 方法…