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

【博客629】Linux DNS解析原理与配置

Linux DNS解析原理与配置

1、DNS缓存

作用:

程序客户端、下游的 DNS 服务器每次查询 DNS 成功之后,通常会将该 DNS 记录缓存一段时间,避免频繁发出查询请求的耗时。

Linux下的DNS缓存:

Linux 系统默认不会在本地建立 DNS 缓存,可以安装 nscd、dnsmasq 等工具提供 DNS 缓存。

2、配置DNS的三种方式

  • 2-1、本地hosts

    修改本地hosts文件,利用hosts自动解析域名到ip

    vim /etc/hosts
    123.123.123.123 www.baidu.com
    124.123.123.123 www.qq.com

  • 2-2、修改网卡配置文件

    假设我们的网卡名为eth0,那我们可以修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0的内容,增加dns规则:

    vim /etc/sysconfig/network-scripts/ifcfg-eth0,从而添加规则 例如:

    DSN1=114.114.114.114
    DNS2=xxx.xxx.xxx.xxx
    DNS3=xxx.xxx.xxx.xxx

    重启网络服务:service network restart
    重启服务后会在/etc/resolv.conf自动生成一样的DNS

  • 2-3、修改系统默认DNS配置

    • linux上没有安装systemd-resolved这类DNS解析代理服务时:

      修改配置文件/etc/resolv.conf,添加多条规则 例如:

      vim /etc/resolv.conf
      nameserver 114.114.114.114
      nameserver 123.123.123.123

    • linux上安装了systemd-resolved这类DNS解析代理服务时:

      修改/etc/systemd/resolved.conf,添加多条规则 例如:

      [Resolve]
      DNS=114.114.114.114
      DNS=8.8.8.8

      重启DNS代理服务:systemctl restart systemd-resolved.service

      查看是否生效:systemd-resolve --status

      $ systemd-resolve --status
      Global
      DNS Servers: 114.114.114.114
      8.8.8.8
      DNSSEC NTA: 10.in-addr.arpa
      16.172.in-addr.arpa
      168.192.in-addr.arpa
      17.172.in-addr.arpa
      18.172.in-addr.arpa
      19.172.in-addr.arpa

3、DNS解析优先级

  • 本地/etc/hosts > 网卡配置文件DNS服务地址 > 系统DNS配置文件/etc/resolv.conf

4、DNS多个nameserver的情况

example:

nameserver 192.168.0.2
nameserver 127.0.0.1

nameserver优先级:

  • 按照定义顺序从上至下(默认情况)

DNS解析流程:

  • 1、查询192.168.0.2,如果服务器可以连接,则响应对应ip或者响应无记录。

  • 2、如果192.168.0.2服务器不可达,则查询127.0.0.1

注意:

  • 192.168.0.2网络可达,但没有查询出对应dns记录,不会继续查询下面的dns服务器了。

解析过程debug: host -v debug-domain

# host -v www.baidu.com
Trying "www.baidu.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30232
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:
;www.baidu.com.			IN	A;; ANSWER SECTION:
www.baidu.com.		134	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	134	IN	A	14.215.177.39
www.a.shifen.com.	134	IN	A	14.215.177.38Received 90 bytes from 223.5.5.5#53 in 22 ms
Trying "www.a.shifen.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45392
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION:
;www.a.shifen.com.		IN	AAAA;; AUTHORITY SECTION:
a.shifen.com.		600	IN	SOA	ns1.a.shifen.com. baidu_dns_master.baidu.com. 2109090004 5 5 2592000 3600Received 97 bytes from 127.0.0.1#53 in 581 ms
Trying "www.a.shifen.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24903
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION:
;www.a.shifen.com.		IN	MX;; AUTHORITY SECTION:
a.shifen.com.		600	IN	SOA	ns1.a.shifen.com. baidu_dns_master.baidu.com. 2109090004 5 5 2592000 3600Received 97 bytes from 127.0.0.1#53 in 25 ms

5、DNS配置优化

example:

options timeout:1 attempts:1 rotate
nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3
  • timeout:

    查询一个nameserver的超时时间,单位是秒。系统缺省是5,最大可以设为30。一般改为较小的值比较合适一些,网络正常情况下缺省的5秒粒度太大

  • attempts:

    这个是查询的整个都尝试一遍的次数。缺省是2。根据需要来决定失败前的循环重试次数

  • rotate:

    这个参数的含义是随机选取一个作为首选查询的dns server,系统缺省是从上到下的。如果彼此没有优先级,是负载均衡的关系,那么应该设置轮询,有优先级关系的话就不用设置这个,按照优先级从高到低,依次定时nameserver即可

相关文章:

【博客629】Linux DNS解析原理与配置

Linux DNS解析原理与配置 1、DNS缓存 作用&#xff1a; 程序客户端、下游的 DNS 服务器每次查询 DNS 成功之后&#xff0c;通常会将该 DNS 记录缓存一段时间&#xff0c;避免频繁发出查询请求的耗时。 Linux下的DNS缓存&#xff1a; Linux 系统默认不会在本地建立 DNS 缓存…...

【CSP】202212-2 训练计划

题目 问题背景 西西艾弗岛荒野求生大赛还有 天开幕&#xff01; 问题描述 为了在大赛中取得好成绩&#xff0c;顿顿准备在 天时间内完成“短跑”、“高中物理”以及“核裂变技术”等总共 项科目的加强训练。其中第 项&#xff08; &#xff09;科目编号为 &#xff0c;也可简…...

java基础学习 day42(继承中构造方法的访问特点,this、super的使用总结)

继承中&#xff0c;构造方法的访问特点 父类的构造方法不会被子类继承&#xff0c;但可以通过super()调用父类的构造方法&#xff0c;且只能在子类调用&#xff0c;在测试类中是不能手动单写构造方法的。子类中所有的构造方法默认先调用父类的无参构造&#xff0c;再执行自己构…...

生物医药多组学与生物信息方法介绍

基因组学告诉你可能发生什么&#xff0c;转录组学和蛋白组学告诉你即将发生什么&#xff0c;而代谢组学告诉你正在发生什么 1、多组学与生信方法 生物医学技术的组学包括基因组学、转录组学、蛋白质组学、代谢组学和表观基因组学等。这些组学研究领域通过大量数据的高通量技术…...

3|物联网控制|计算机控制-刘川来胡乃平版|第2章:计算机控制系统中的检测设备和执行机构-2.2过程控制中常用的执行器|课堂笔记|ppt

...

【进阶篇】线程的硬件基础

文章目录高速缓存缓存一致性协议写缓冲区和无效化队列高速缓存 简介 高速缓存是主内存与处理器之间的硬件&#xff0c;其容量小于主存&#xff0c;但存取速率远高于主存。因此处理器在执行读写操作时&#xff0c;可直接和高速缓存交互&#xff0c;提高响应速度。 我们常见的变…...

关于 ISP Tuning的学习,分享几点看法

关于学习&#xff0c;分享几点看法&#xff0c;欢迎讨论 。1、分阶段性的&#xff0c;阶梯式学习。2、带目的性的&#xff0c;任务式学习。3、有总结性的&#xff0c;输出式学习。如上3条&#xff0c;可以依次循环去执行&#xff0c;下面我以 ISP Tuning 的学习为例&#xff0c…...

RocketMQ源码阅读

没有用过rocketmq&#xff0c;但是一直对RocketMQ的实现很感兴趣&#xff0c;本次阅读源码基于5.0.0 一、 nameserver 通过源码阅读发现&#xff0c;它的作用主要是当作一个注册中心&#xff0c;注册broker、topic等信息&#xff0c;维护topic以及broker队列的路由信息&#…...

重磅 | 小O软件新品【鲸鱼地图】发布

千呼万唤始出来.......&#xff0c;小O系列软件又添新品【鲸鱼地图】&#xff01;&#xff01;&#xff01; 2023年新年伊始&#xff0c;小O就投入到新品研发工作中&#xff0c;秉承“发现地理价值”理念&#xff0c;为用户提供更加好用、易用的地图软件产品&#xff0c;经过春…...

软考高级信息系统项目管理师系列之二十五:项目合同管理

软考高级信息系统项目管理师系列之二十五:项目合同管理 一、项目合同管理内容整理一、合同管理基本概念1.项目合同管理定义2.合同的分类3.合同类型选择4.合同内容二、合同管理过程1.合同管理过程的内容2.合同签订和履行管理3.合同变更和档案管理4.合同违约索赔管理项目合同管理…...

测试开发之Django实战示例 第十三章 上线

在上一章&#xff0c;为其他程序与我们的Web应用交互创建了RESTful API。本章将学习如何创建生产环境让我们的网站正式上线&#xff0c;主要内容有&#xff1a;配置生产环境创建自定义中间件实现自定义管理命令1创建生产环境现在该将Django项目正式部署到生产环境中了。我们将按…...

python实战应用讲解-【语法基础篇】Python中的数值类型(附示例代码)

目录 前言 数值类型 十六进制、八进制和二进制 Python 数值类型转换 数值和表达式 前言...

Git常用命令以及如何在IDEA中使用Git

前言Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、xml文件、html页面等&#xff09;。Git在管理文件过程中会记录日志&#xff0c;方便回退到历史版本&#xff1b;Git存在分支的概念&#xff0c;一个项目可以有多个分支&…...

音乐播放器-- 以及数据库数据存储

运行环境 &#xff1a; java1.8 数据库以及代码编写工具 &#xff1a; sqlserver -- mysql 也可以 工具 eclipse 编码gbk窗体 &#xff1a; Swing使用了jaudiotagger 进行了音乐处理 图片展示 ----- 空闲时间 做出来玩的项目 部分功能还没有完善 完善了的功能 音乐 /// 主页 &a…...

[JAVA安全]Spring Messaging之CVE-2018-1270

漏洞简介 Spring 框架中通过spring-messaging 模块来实现 STOMP &#xff08;Simple Text-Orientated Messaging Protocol&#xff09;,STOMP是一种封装 WebSocket的简单消息协议。攻击者可以通过建立WebSocket连接并发送一条消息造成远程代码执行&#xff0c; spring-messagin…...

CAN通信笔记-位时间、Tq及采样点同步

本文框架1.前言2. 位时间2.1 位时间定义2.2 位时间计算3. Tq3.1 Tq的计算3.1.1 举个例子3.2 位时间与Tq的换算4. 采样点同步4.1 硬同步4.2 重同步4.2.1 延长PBS1的重同步4.2.2 缩短PBS2的重同步1.前言 本篇记录些关于CAN的一些学习笔记&#xff0c;说实话CAN协议发展的已经非常…...

玩转 Kubernetes 配置管理:ConfigMap 和 Secret 实战演示

目录一、简介二、ConfigMap2.1 基于目录创建 ConfigMap2.2 基于文件创建 ConfigMap2.3 从环境文件创建 ConfigMap2.4 定义从文件创建 ConfigMap 时要使用的键2.5 根据字符串创建 ConfigMap三、Secret3.1 基于文件创建Secret3.2 基于字符串创建Secret3.3 yaml文件方式创建secret…...

Kubernetes

一、 kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用程序定义…...

从零开始 verilog 以太网交换机(三)MAC发送控制器的设计与实现

从零开始 verilog 以太网交换机&#xff08;三&#xff09;MAC发送控制器的设计与实现 &#x1f508;声明&#xff1a; &#x1f603;博主主页&#xff1a;王_嘻嘻的CSDN主页 &#x1f9e8; 从零开始 verilog 以太网交换机系列专栏&#xff1a;点击这里 &#x1f511;未经作者允…...

使用vector<char>作为输入缓冲区

一、引言 当我们编写代码&#xff1a;实现网络接收、读取文件内容等功能时&#xff0c;我们往往要在内存中开辟一个输入缓冲区(又名&#xff1a;input buffer/读缓冲区&#xff09;来存贮接收到的数据。在C里面我们可以用如下方法开辟输入缓冲区。 ①使用C语言中的数组&#x…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...