Linux DNS服务

news2024/11/18 5:32:18

 DNS

作用

DNS是 域名系统 的英文缩写,作为将域名与IP地址相互映射的一个分布式数据库,让人可以通过域名访问互联网

  • 正向解析 将域名解析为IP
  • 反向解析 根据IP查找对应域名

域名结构

http://www.sina.com.cn./

http://主机名.子域.二级域.顶级域.根域 /

每一级的域名长度限制63字符,总长度不能超过253字符

根据域名查看网站ip

nslookup www.naidu.com
host www.naidu.com
dig www.naidu.com

DNS端口

  • TCP 53         用于连接DNS服务器
  • UDP 53         用于解析地址

DNS系统的分布式数据结构

根域                                     域名空间顶层,用“ . ”表示

顶级域                                 一般代表组织机构或国家

二级域                                 标明顶级域内的一个特定的组织(可有可无)

子域                                     二级域下创建的各级域统称为子域

主机名                                 位于域名空间最底层,具体的计算机。

DNS解析过程(面试常问)

解析过程分迭代模式和递归模式。

迭代查询较为常用,因为他不像递归查询一样容易占用上层域服务器的资源

递归模式解析过程:

客户端发出请求 查找本地缓存域服务器,若没有

将相关请求转发给根域服务器解析,

根域服务器将请求转发给相应顶级域服务器,

顶级域服务器再转发给二级域服务器,

二级域服务器再转发给子域服务器,根据主机名解析出ip地址,

逐层返回给客户端,客户端即可使用ip地址访问对方主机。

同时本地缓存域服务器记录对应关系,以便下一次的访问。

迭代模式解析过程:

客户端发出请求 查找本地缓存域服务器,若没有

向根域服务器发送解析请求,返回顶级域服务器地址

向顶级域服务器发送解析请求,返回二级域服务器地址

向二级域服务器发送解析请求,返回子域服务器地址

向子域服务器发送解析请求,解析出IP地址并返回结果给本地缓存域服务器

本地缓存域服务器返回结果给客户端,并且记录对应关系,以便下一次的访问

DNS服务器类型

主域名服务器

负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
从域名服务器

当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库
缓存域名服务器

只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名顺务器查询的结果,并放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
转发域名服务器

负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

设置DNS服务器地址

  • Linux系统

    • vim /etc/resolv.conf → nameserver IP   (直接保存生效)
    • /etc/sysconfig/network-scripts/ifcfg-ens33   (需要重启)
  • windows系统

    • 网卡适配器→属性→ipv4→DNS服务器地址

本地host文件映射

hosts文件映射 更快 优先级更高

但是 hosts文件 只对本机有效,所以集群管理时 DNS解析 更方便

优先选择本地hosts文件映射,然后才是网络请求DNS服务器

  • Linux系统

    • 更改/etc/hosts 本地映射      [IP 域名1 域名2 ...]
  • windows系统

    • 更改C:/windows/system32/drivers/etc/hosts




DNS服务器搭建

安装bind软件包

yum install -y bind 

配置正向解析

查看需要修改的配置文件的路径

rpm -qc bind                #查询bind软件配置文件所在路径
/etc/named.conf                #主配置文件
/etc/named.rfc1912.zones       #区域配置文件
/var/named/named.localhost     #区域数据文件,在rfc1912文件中可自由指定位置,对应即可

1.修改主配置文件(修改监听端口 允许解析的主机)

注意格式!地址后要;并且加一个空格!!!

vim /etc/named.conf

options {
        listen-on port 53 { 192.168.80.101; };  #✨监听53端口 IP地址填入网卡地址 也可any表示所有
        #listen-on-v6 port 53 { ::1; };          #ipv6设置 不用可以注释掉
        directory       "/var/named";             #区域数据文件存放位置
        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"; #内存统计文件的位置
        allow-query     { 192.168.80.101/24; 172.16.100.0/24; }; #✨允许使用本DNS解析服务的网段 也可any表示所有
        recursion yes;      #递归查询
..............................................

zone "." IN {                #正向解析 . 根区域
        type hint;           #类型为根区域
        file "named.ca";     #区域数据文件为named.ca 记录了13台根域服务器的域名与IP 
};    #此条定义了一个根域,文件位于named.ca

include "/etc/named.rfc1912.zones";  #引入区域配置文件里的所有配置,为了方便管理不写在一起

2.修改区域配置文件(修改需要解析的域名和其数据文件位置)

vim /etc/named.rfc1912.zones

zone "xue.com" IN {                 #✨设置域名 正向解析xue.com区域
        type master;                #✨设置为主域名服务器
        file "xue.com.zone";        #✨设置区域数据文件存放位置
        allow-update { none; };
};
systemctl restart named

3.修改区域数据文件(记录域名与IP对应关系 主从域服务器设置)

复制一定要带上文件权限!这个文件的属主是named!不带权限复制会出错!

cd /var/named/
cp -p named.localhost xue.com.zone   #保留源文件的权限和属主的属性复制
cp -a named.localhost xue.com.zone   #-a 比-p功能更全 相当于组合选项

注意配置文件中域名后都有个 . 若缺少会导致失效!

vim /var/named/xue.com.zone

$TTL 1D        #有效解析记录的生存周期 1天
@       IN SOA  @ mailbox.xue.com. (    #等同下条
@       IN SOA  xue.com. admin.xue.com. (   #✨邮箱(管理员地址)为admin@xue.com 但是@指代当前域名,用 . 代替
    #“@"符号表示当前的DNS区域名,如果仅是正向解析不用改,可用xue.com.替代 
    #SOA用于同步主从服务器区域数据 
    #mailbox.xue.com为域名的邮箱名

                   #此段只需要关注serial序列号主从不能一样,其他一般默认
                   20230419       ; serial #✨更新序列号,可以是 10 位以内的整数,主从不能一样
                   1D      ; refresh  #刷新时间,重新下载地址数据的间隔,1天
                   1H      ; retry    #重试延时,下载失败后的重试间隔 1小时
                   1W      ; expire   #失效时间,超过该时间仍无法下载则放弃 1周
                   3H )    ; minimum  #无效解析记录的生存周期 3小时
        
        NS      @      #与下一条同义,@代表当前域名
        NS      xue.com.            #✨记录当前区域的DNS服务器的名称
        A       192.168.80.101      #✨记录主机IPv4地址
        #AAAA    ::1                #记录主机IPv6地址,此处不用ipv6,注释掉
IN   MX 10      mail.xue.com.       #Mx为邮件交换记录,数字越大优先级越低,通过域名找到邮件服务器
www  IN A       192.168.80.33       #✨IN A代表正向解析 记录www.xue.com对应的IP
mail IN A       192.168.80.66       #✨IN A代表正向解析 记录mail.xue.com对应的IP
ftp  IN CNAME   www                 #✨CNAME使用别名,ftp是www的别名,解析为www相同IP
*    IN A       192.168.80.222      #✨泛域名解析,*代表任意主机名,除了上方设置的以外的主机名全部解析为此IP

注意@位置,可以填域名也可以用@指代

 

启动DNS服务

systemctl start named      
#软件名为bind,服务名为named

netstat -lntup | grep :53
#验证端口
journalctl -xe
vim /var/log/messages   #按 G 到底

#若报错查看日志

 关闭防火墙

systemctl stop firewalld
setenforce 0

修改客户机DNS服务器地址 

客户机DNS服务器地址为刚刚配置的地址

vim /etc/resolv.conf             #DNS配置文件中指定服务器地址
     nameserver 192.168.80.101    

DNS配置文件路径vim /etc/resolv.conf  (面试会问)

验证

此时成功获取到刚刚设置的域名与ip映射关系

配置反向解析(很少用到 了解即可)

1.修改主配置文件(刚刚已经修改过)

2.修改区域配置文件(修改需要解析的网段和其数据文件位置)

vim /etc/named.rfc1912.zones

zone "80.168.192.in-addr.arpa" IN {   #只需要写网段 不需要写主机 倒序
        type master;
        file "xue.com.local";
        allow-update { none; };
};
systemctl restart named

3.修改区域数据文件(记录IP与域名对应关系 主从域服务器设置)

复制一定要带上文件权限!这个文件的属主是named!不带权限复制会出错!

cd /var/named/
cp -p named.localhost xue.com.local    #保留源文件的权限和属主的属性复制
cp -a named.localhost xue.com.local    #-a 比-p功能更全 相当于组合选项

注意配置文件中域名后都有个 . 若缺少会导致失效!

vim xue.com.local

$TTL 1D
@       IN SOA  xue.com. admin.xue.com. (    #此处的@在反向解析时必须修改(正向解析可以不改)
                                        20230419        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      xue.com.           #域名
        A       192.168.80.101     #域服务器地址(此处本机作为域服务器)

33 IN PTR www.xue.com.
66 IN PTR mail.xue.com.     #与正向解析反着写。PTR:反向指针

 重启DNS服务

systemctl restart named

关闭防火墙

systemctl stop firewalld
setenforce 0

修改客户机DNS服务器地址

vim /etc/resolv.conf
    nameserver 192.168.80.101

验证

主从域服务器设置

主服务器 192.168.80.101

从服务器 192.168.80.102

验证客户机 192.168.80.103

 1.修改主配置文件(主服务器已经设置 这里只需要设置从服务器)

注意格式!地址后要;并且加一个空格!!!

##########从服务器##########
vim /etc/named.conf

options {
        listen-on port 53 { any; };       #✨✨改了any 也可为192.168.80.102(本机)
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };         #✨✨改了any 也可为192.168.80.102(本机)

2.修改区域配置文件(主服务器要允许从服务器获取数据 从服务器填写主服务器地址)

##########主服务器##########
vim /etc/named.rfc1912.zones

zone "xue.com" IN {                 #✨设置域名 正向解析xue.com区域
        type master;                #✨设置为主域名服务器
        file "xue.com.zone";        #✨设置区域数据文件存放位置
        allow-transfer{ 192.168.80.102; };    #✨✨设置允许从服务器获取数据
};


zone "80.168.192.in-addr.arpa" IN {  #✨只需要写网段 不需要写主机 倒序
        type master;
        file "xue.com.local";
        allow-transfer{ 192.168.80.102; };     #✨✨反向解析也设置允许从服务器获取数据
};


##########从服务器##########
vim /etc/named.rfc1912.zones

zone "xue.com" IN {
        type slave;                           #✨✨设置从服务器
        masters { 192.168.80.101; };          #✨✨设置主服务器地址
        file "slaves/xue.com.zone";
};
zone "80.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.80.101; };          #✨✨设置反向解析
        file "slaves/xue.com.local";
};

systemctl restart named

3.修改区域数据文件(主服务器已经设置过 从服务器无须设置自动同步)

关闭主服务器和从服务器防火墙

systemctl stop firewalld
setenforce 0

修改客户机DNS服务器地址 

客户机DNS服务器地址为刚刚配置的地址

##########192.168.80.103验证客户端##########

vim /etc/resolv.conf             #DNS配置文件中指定服务器地址
     nameserver 192.168.80.101      #主
     nameserver 192.168.80.102      #从  
  

验证

关闭主服务器

#####主服务器#####
systemctl stop named

此时解析全部走从服务器

 

补充: 默认域名

/etc/resolv.conf ——search

vim /etc/resolv.conf
    search xue.com

此时只需要输入主机名(www、ftp)即可补全后面的域名

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux学习】信号——预备知识 | 信号产生 | 核心转储

🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言:你只管努力,剩下的交给时间! 信号 🔔信号🎵预备知识🎵信号处理方法的注册 🔔信…

C/C++每日一练(20230421)

目录 1. 位1的个数 🌟 2. 递归和非递归求和 ※ 3. 俄罗斯套娃信封问题 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 位1的…

大数据技术之Kafka——Kafka入门

目录 一、概述 1.1 为什么要有Kafka ​编辑 1.2 定义 1.3 消息队列 1)消息队列的应用场景 2)消息队列的两种模式 1.4 基础架构 二、Producer生产者 2.1 生产者消息发送流程 2.1.1 发送原理 2.2 异步发送API 2.2.1 普通异步发送 2.2.2 带回调…

第八章_Redis复制(replica)

是什么 官网地址 一句话 就是主从复制,master以写为主,Slave以读为主 当master数据变化的时候,自动将新的数据异步同步到其它slave数据库 能做什么 读写分离容灾恢复数据备份水平扩容支撑高并发 怎么使用 配从(库)不配主(库) 权限细节&am…

YOLOv8 更换主干网络之 MobileNeXt

《重新思考瓶颈结构以实现高效移动网络设计》 倒置残差块成为了移动网络架构设计的主流。它通过引入学习倒置残差和使用线性瓶颈的两个设计规则,改变了经典的残差瓶颈。在本文中,我们重新思考了这种设计改变的必要性,并发现它可能会带来信息丢失和梯度混淆的风险。因此,我们…

助力工业物联网,工业大数据之ODS层构建:代码结构及修改【九】

文章目录 01:ODS层构建:代码结构及修改02:ODS层构建:连接代码及测试03:ODS层构建:建库代码及测试04:ODS层构建:建表代码及测试 01:ODS层构建:代码结构及修改 …

漏扫常见(可验证)漏洞复现方法

SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 检测到目标服务支持SSL弱加密算法 检测到目标服务支持SSL中等强度加密算法 nmap -sV -p 端口 --script ssl-enum-ciphers 目标ipSSH支持弱加密算法 nmap -sV -p 端口 --script ssh2-enum-algos 目标ipApache Tomcat示例脚本信息泄露…

YOLOv8 更换主干网络之 ShuffleNetv2

《ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design》 目前,神经网络架构设计多以计算复杂度的间接度量——FLOPs为指导。然而,直接的度量,如速度,也取决于其他因素,如内存访问成本和平台特性。因此,这项工作建议评估目标平台上的直接度量,而…

Vue 表单

文章目录 Vue 表单输入框复选框单选按钮select 列表修饰符.lazy.number.trim Vue 表单 这节为大家介绍 Vue.js 表单上的应用。 你可以用 v-model 指令在表单控件元素上创建双向数据绑定。 输入框 v-model 会根据控件类型自动选取正确的方法来更新元素。 输入框 实例中演示…

Maven(二)高级操作

目录 一、分模块开发与涉及(重点)1.工程模块划分2.modules_common拆分3.modules_pojo拆分4.modules_dao拆分5.modules_service拆分6.modules_controller拆分7.总结 二、聚合(重点)1.多模块构建维护2.聚合 三、继承(重点…

HTML5 <param> 标签、HTML5 <progress> 标签

HTML5 <param> 标签 实例 HTML5 <param>标签为<object>标签提供嵌入内容的运行时参数的name与value对。请参考下述示例&#xff1a; 设置参数 "autoplay" 为 "true"&#xff0c;音频载入后会自动播放&#xff1a; <object data&qu…

基于AT89C51单片机的电子时钟设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87695258?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; 1.设计出电子数字钟的电路&#xff0c;并用protus进行仿真画出对应的电路图 2.设计出电子数字钟…

2021地理设计组二等奖:基于GIS的东江源区土壤侵蚀及其影响因素空间分析

一、作品背景 水土保持情况普查对我国具有重要意义。我国目前是世界上水土流失最严重的国家之一&#xff0c;水土流失面积极其广且量大&#xff1b;严重的水土流失问题是我国生态环境问题的重要板块&#xff0c;若是持续恶化&#xff0c;将会严重影响我国的生态安全、饮水安全…

不得不说的创建型模式-抽象工厂模式

抽象工厂模式是一种创建型模式&#xff0c;它提供一个接口来创建一系列相关或相互依赖的对象&#xff0c;而不需要指定它们的具体类。这个接口被称为“抽象工厂”&#xff0c;它可以被不同的具体工厂实现来创建不同的产品族。 下面通过一个简单的示例来说明抽象工厂模式的底层原…

[API]string常量池string常用方法StringBuilder类(一)

String字符串类型&#xff1a; java.lang.String类使用final修饰&#xff0c;不能被继承 String的底层封装的是一个字符数组 String在内存中采用Unicode编码格式&#xff0c;每个字符占用2个字节的内存空间 字符串对象一旦创建&#xff0c;对象内容永远无法改变&#xff0c;…

Python爬虫实战——下载小说

Python爬虫实战——下载小说 前言第三方库的安装示例代码效果演示结尾 前言 使用requests库下载开源网站的小说 注意&#xff1a;本文仅用于学习交流&#xff0c;禁止用于盈利或侵权行为。 操作系统&#xff1a;windows10 家庭版 开发环境&#xff1a;Pycharm Conmunity 202…

Node【NPM】

文章目录 &#x1f31f;前言&#x1f31f;NPM使用&#x1f31f;NPM使用场景&#x1f31f;NPM的常用命令&#x1f31f;NPM命令使用介绍&#x1f31f; 使用NPM安装模块&#x1f31f; 下载三方包&#x1f31f; 全局安装VS本地安装&#x1f31f; 本地安装&#x1f31f; 全局安装&am…

Vue全家桶

作为后端对vue学习完的快速总结 目录 1.vue-cli 2 vuex 3 axios 4 router vue-cli vue-cli 3 是基于webpack 4 打造的vue-cli 2 还是 webpack 3webpack是基于node.js的&#xff0c;所以我们在安装脚手架前必须安装node 安装node.js(应用商店或者官网) 1.安装vue脚手架 npm…

Storm proxies动态代理IP抓取产品信息用什么类型的代理呢?

抓取产品信息时&#xff0c;可以根据实际需求和目标网站的反爬虫策略选择合适的代理类型。以下是一些常见的代理类型&#xff1a; HTTP代理&#xff1a;HTTP代理是最常见的代理类型&#xff0c;适用于基于HTTP协议的网站。它可以用于发送HTTP请求和接收HTTP响应&#xff0c;适合…

storm proxies动态HTTP代理IP的三大功能?

动态HTTP代理IP主要具有以下三大功能&#xff1a; 隐私保护&#xff1a;动态HTTP代理IP可以隐藏用户的真实IP地址&#xff0c;将用户的请求发送到目标网站时&#xff0c;目标网站只能看到代理IP地址&#xff0c;而无法知道用户的真实IP地址&#xff0c;从而保护用户的隐私和身份…