全网独家:修改CoreDNS禁用ipv6解析后的查询反馈信息

news2024/11/25 20:21:40

CoreDNS是用Go开发的,可以配置多种插件来扩展其功能,非常灵活高效,它是Kubernetes的默认DNS服务器。笔者的平台采用CoreDNS来作单独的高并发域名解析服务器,在禁用ipv6解析后应用侧遇到反馈信息识别问题,本例全网独家提供了修改反馈信息的解决方法。

一、问题背景

CoreDNS在非双栈环境中为提升效率,最佳实践是禁用ipv6的DNS解析,方法是启用template插件,给所有IPV6的AAAA请求立即返回一个空结果的应答,避免请求forward到上游DNS。这是客户端会出现ipv6解析不成功,降级到ipv4的A解析。
template插件默认是在coredns启用的,只需要在配置文件中添加如下配置即可:

template ANY AAAA {
    rcode NXDOMAIN
}

笔者的平台配置以后,性能得到极大提升,但某应用客户端说存在问题,称跟踪DNS解析包结果如下:

  应答报文中的所询域名的ipv6应答码是:“No such name (3)”,非其期望值“No error (0)”,导致应用响应有问题。

二、问题分析及解决措施

从系统运行逻辑上来说,我既然不提供ipv6域名解析,你请求域名的ipv6地址,我反馈“No such name (3)”,结果非常ok呀。

但客户程序够严谨不怕麻烦,还去解析应答码,然后卡在那里了,如果DNS不改应答码,就需要应用侧改代码,然后还涉及大量客户端设备更新固件,也挺麻烦的。还是想办法试试能不能改改反馈信息吧。

首先测试一下当前反馈情况:

# nslookup -timeout=2 abc.test.com 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   abc.test.com
Address: 192.168.3.140
** server can't find abc.test.com: NXDOMAIN

目前全网给出的CoreDNS的ipv6禁用优化,均是以上配置,查了半天也没有什么有效办法。请教文心一言和ChatGPT,像哄小姑娘一样换了N多种问法,终于问到了以下内容:

CoreDNS 是一个灵活的 DNS 服务器,其主要作用是将域名解析为 IP 地址,以便服务之间进行通信。 CoreDNS 有许多错误类型,常见的如下:

  1. SERVFAIL - DNS 服务器无法响应查询时,将返回 SERVFAIL 错误。

  2. NXDOMAIN - 如果域名不存在,则返回 NXDOMAIN 错误。

  3. NOERROR - 如果查询成功,则返回此错误。

  4. REFUSED - 如果服务器拒绝查询,则返回此错误。

好吧,看到“NXDOMAIN”错误了,现在就是需要当查询ipv6域名不解析时,仍返回查询成功,那就改成“NOERROR”了,让ipv6域名虽不解析,但仍反馈查询成功。

尝试将coredns相关配置修改如下:

    template ANY AAAA {
        rcode NOERROR
    }

重启服务,验证结果:

# nslookup -timeout=2 abc.test.com 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   abc.test.com
Address: 192.168.3.140

业务侧抓包验证:

 客户端反馈问题已经解决。

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

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

相关文章

MSP430F5529单片机,万年历,闹钟,数字时钟,温湿度dht11,蜂鸣器音乐

文章目录 功能硬件连接实物程序 功能 功能1 万年历显示2 按键修改时间3 按键修改闹钟4 闹钟到达 蜂鸣器鸣叫10秒自动关闭 闹钟是音乐5 温湿度显示6 温度到达28度以上蜂鸣器鸣叫 采用单片机内部的RTC模块走时。 按键1 切换选择年月日时分秒,靠按键1退出时间不会保存…

Openlayers实战:加载google地图

google地图在业界一直是标杆的存在, 其zoomlevel超级大,可看到非常精细的程度。 Openlayers中如何加载谷歌地图呢?同样是XYZ的挂载方式,根据参数的不同,可以显示不同状态的谷歌地图,如果矢量地图,瓦片遥感图片等。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuan…

36. 合并两个排序的链表

目录 链接: 题目: 思路: 代码: 链接: 链接 题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。 数据范围 链表长度 [0,500][0,500]。 样例 输入&#x…

第五章 爬虫小程序-实例43-获取网页内容

1、准备工作 用Python编写的访问网页的程序中,有很多是调用 requests 库模块中的函数来进行操作,这个库模块把网页请求和操作等多项功能进行了高度封装,使其可以轻而易举完成浏览器的许多操作。 requests库是第三方模块,需要进行…

【算法与数据结构】239、LeetCode滑动窗口最大值

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:这道题我们如果用暴力破解法需要 O ( n ∗ k ) O(n*k) O(n∗k)的复杂度。思索再三,我们需要…

electron-vue 台称串口对接 SerialPort

大致流程 1.首先找一个串口工具(sscom5.12.1)试试读取串口是否成功连上; 2.创建electron-vue的项目; 3.安装依赖,调整版本,启动项目;(在electron中使用串口_electron 串口_Jack_K…

Eclipse控制台输出log4j日志乱码解决

1. 出现乱码可能是编码格式对应不起来,主要是Eclipse控制台编码和log4j编码的匹配 log4j.properties 主要是查看这两个地方编码一致不一致,如果不一致则手动更改成一致编码,GBK或UTF-8

Ribbon 负载均衡服务调用

文章目录 1 SpringCloud Load Balance2 总结:3 Ribbon工作流程:4 自定义Ribbon 负载均衡算法:4.1 iRule接口:4.2 Ribbon自带的负载均衡算法:4.3 负载均衡算法替代:4.3.1、在非启动类包及子包下创建配置类4.3.2、定义4.…

LayUI动态选项卡的使用

目录 一、Tab选项卡 1.什么是Tab选项卡 2.Tab选项卡的作用 二、Tab选项卡的详细使用步骤 1.参考官网,选择自己喜欢的选项卡 ​ 2.将静态选项卡转换成动态选项卡 3.将选项卡的标签名变成实际菜单名 4.重名选项卡不能二次打开 5.切换到指定选项卡 6.iframe的…

Python示例解释观察者模式

观察者模式是一种常用的设计模式,用于在对象之间建立一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。下面通过一个简单的例子来解释观察者模式的概念。 假设我们有一个名为"主题"&a…

神经网络万能近似定理探索与实验

神经网络万能近似定理探索与实验 今天,我们来做神经网络万能近似定理的探索与实验。关于万能近似定理呢,就是说,对这个神经元的输出进行非线性激活函数处理,单层的神经网络就可以拟合任何一个函数。 下面先看我们搭建的第一个网…

docker部署达梦数据库

一、下载安装包 安装步骤: 先跟着网页走 注:第二步导入安装包,如果是在自己电脑上,就不一定要拷贝到/opt目录下,在安装包所在目录地址栏输入cmd,进入终端进行操作即可 操作到正常打印日志(如…

java项目之房屋租赁系统(ssm+mysql+jsp)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的房屋租赁系统。技术交流和部署相关看文章末尾! 开发环境: 后端: 开发语言:Java 框架&…

尚硅谷Docker实战教程-笔记14【高级篇,Docker容器监控之CAdvisor+InfluxDB+Granfana、Docker终章总结】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【基础篇,Docker理念简介、官网介绍、平台入门图解、平台架构图解】…

centos7.9 连续登录失败处理

如果有人恶意破解你的服务器,下面的操作可以起到一定的作用,连续登录失败锁定账户一段时间,让攻击者的成本增加,从而降低服务器被恶意破解的风险。 参考博客 https://blog.csdn.net/hjxloveqsx/article/details/129004832 https…

MyBatis 中如何使用分页

MyBatis 中如何使用分页 在实际的项目开发中,我们经常需要对数据库中的数据进行分页查询,以提高数据查询的效率和用户体验。MyBatis 是一种流行的 Java 持久层框架,它提供了多种分页查询的方式,本文将介绍其中常用的两种方式&…

MySQL数据库详解

文章目录 引言1. SQL1.1 SQL通用语法1.2 SQL分类1.3 DDL1.3.1 数据库操作1.3.2 表操作1.3.2.1 表操作-查询创建1.3.2.2 表操作-数据类型1.3.2.3 表操作-修改1.3.2.3 表操作-删除 1.4 DML1.4.1 添加数据1.4.2 修改数据1.4.3 删除数据 1.5 DQL1.5.1 基本语法1.5.2 基础查询1.5.3 …

车载以太网之SOME/IP-SD专题篇

前言 首先,请问大家几个小小问题,你清楚: 你知道什么是SOME/IP SD吗?SOME/IP-SD报文是如何发送与接收的呢?SOME/IP-SD 存在哪几种Entry Type呢?SOME/IP-SD内部状态机转换又是如何?今天,我们就来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲: 目录…

Sentinel 规则详解

Sentinel 规则 流控规则 flow1、QPS流控2、并发线程数流控3、流控模式4、流控效果 熔断(降级)规则 degrade1、慢调用比例2、异常比例3、异常数 热点规则 param-flow授权规则 authority1、应用场景2、自定义来源3、授权规则配置 系统规则 前言&#xff1a…

代码随想录day1 | 704.二分查找 27.移除元素

一、二分 1、二分易错点 1、循环变量 while(left < right) 还是while(left <right)2、判断条件 if(num[mid] > tar) mid right 还是 mid right -12、循环不变量 [left, right] [left, right) (left, right]3、左闭右闭写法 当时左闭右闭时&#xff0c;while循…