在Kubernetes的DNS服务器中插入自定义解析记录

在Kubernetes的DNS服务器中插入自定义解析记录,第1张

之前写过一篇如何在Kubernetes的DNS服务器中插入自定义解析记录,当时K8S的版本是v1.20.4,使用的是coreDNS。如果您的K8S版本比较老,使用的是kube-dns,该如何配置呢?

1、在kube-system命名空间下,创建一个自定义解析记录的configmap

2、将创建的configmap挂载到kube-dns中的dnsmasq容器

3、 修改dnsmasq容器的启动参数,增加如下内容:

参考: https://www.jianshu.com/p/0b1c2d31180c

这是你接口的问题,解决方法:

ifconfig 先找出你公网的接口(如eth0)

vi /etc/dnsmasq.conf

找到interface=一行(大概是106行),取消注释并将接口名填入

然后sudo systemctl restart dnsmasq

或者dnsmasq --interface=eth0也可以

测试的话可以dig @你的公网ip baidu.com

ubuntu下面安装dns服务器使用dnsmasq

dnsmasq是一个Linux平台下的轻量级DNS 代理软件,我们只将其配置成一个简单的本地DNS Server。另外此软件最新版本含有DHCP Server以及TFTP Server的功能,这些功能默认都是关闭的, 根据依赖关系可能会安装其他包。

(如dnsmasq-base等, 但Ubuntu 10.04 Desktop已默认安装过,但在安装时可能会自动升级dnsmasq-base)。

打开文件/etc/dnsmasq.conf(安装后默认此配置文件内的所有参数都被注释掉), 找到参数resolv-file和addn-hosts, 去掉注释符号#后修改成如下值。

此处resolve-file指定dnsmasq从哪里获取上行DNS Server, 默认是从/etc/resolv.conf获取。

因为dnsmasq本是一个DNS代理软件而非Server, 我们只是利用dnsmasq的缓存功能来实现DNS Server, 故而要将上行server指定为本机地址, 在文件/etc/dnsmasq/dnsmasq.resolv中指定nameserver为127.0.0.1即可。

addn-hosts指定dnsmasq从哪个文件中读取“地址 域名”记录, 默认是系统文件/etc/hosts, 此处我们指定从自定义文件/etc/dnsmasq/dnsmasq.hosts中读取。

创建文件夹/etc/dnsmasq/(这里的文件夹是上一步中地址的两个文件所在目录, 可以自己任意指定, 但要和上一步中的保持一致), 并添加文件/etc/dnsmasq/dnsmasq.resolv和/etc/dnsmasq/dnsmasq.hosts。

添加一行内容到/etc/dnsmasq/dnsmasq.resolv文件中

添加自定义的“地址 域名”记录到文件/etc/dnsmasq/dnsmasq.hosts中, 支持IPv6地址, 例如:

可以任意添加自己的本地DNS Server可解析的“地址 域名”记录, 注意必须重新启动dnsmasq才可以使更新生效(也可以发送信号SIGHUP给dnsmasq进程, 具体请参考dnsmasq帮助文档, Shell命令man dnsmasq)。

实际上dnsmasq是将这些记录读取到内存中缓存起来(默认最多可以记录150条记录, 可以自己在配置文件/etc/dnsmasq.conf中修改), 收到DNS查询请求时从自身的缓存中直接查找答复。

更多功能及设置请参考dnsmasq的帮助文档或者查看配置文件/etc/dnsmasq中的注释说明内容。

如果启动DNS Server失败请查看系统log(/var/log/syslog),

使用nslookup直接测试

ipv4地址

ipv6地址


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11400893.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存