荣耀之链论坛

 找回密码
 立即注册
搜索
查看: 1068|回复: 9

dnsmasq相关

[复制链接]

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
发表于 2021-8-30 07:38 | 显示全部楼层 |阅读模式
https://www.ryzl.com.cn/forum.ph ... p;highlight=dnsmasq
这个帖子6楼有部分



下面这个介绍单独给某个客户端指定DNS地址和网关地址
为Dnsmasq增加配置
        不同的Dnsmasq版本可能使用了不同的配置文件,在配置文件中增加如下文本,并重启Dnsmasq或者路由器即可。
            dhcp-host=00:0B:AC:11:22:33,set:altdnsgw,10.0.0.11,hostname,12d
            dhcp-option=tag:altdnsgw,option:dns-server,114.114.114.115
            dhcp-option=tag:altdnsgw,option:router,10.0.0.3

原理解析
        通过为不同的客户端指定固定IP地址,并为每个解析增加专门的option即可实现。
详细解析
            dhcp-host=00:0B:AC:11:22:33,set:altdnsgw,10.0.0.11,hostname,12d
            #为mac地址是00:0B:AC:11:22:33主机名为hostanme的主机分配10.0.0.11的IP地址,并标记为使用altdnsgw选项,分配的租约是12天
            dhcp-option=tag:altdnsgw,option:dns-server,114.114.114.114
            #指定altdnsgw的dns服务器为114.114.114.114
            dhcp-option=tag:altdnsgw,option:router,10.0.0.3


            #指定altdnsgw的网关为10.0.0.3
            注意:这个altdnsgw只是个tag,理论上写什么都行,只要上下保持一致就行。另外,后面的主机名和分配租约不写也可以。
回复

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2021-8-30 07:40 | 显示全部楼层
server=/00000.host/114.114.114.114  
这个命令的意思是把这个域名用114解析 这个用来分流域名的


address=/abc.com/127.0.0.1
这个的意思是所有abc.com的域名 全部解析到127.0.0.1  一般慎用这个


回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2022-9-29 02:51 | 显示全部楼层
https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
这个是dnsmasq官网的介绍页面

linux里面记录日志如果想出现类似openwrt那样的编号 只需要这样配置
log-queries=extra
log-facility=/tmp/dnsmasq.log
然后就有编号了,每个DNS查询都有编号
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-4-18 10:49 | 显示全部楼层
dnsmasq2.87才开始支持nftset  类似ipset的功能
目前22.03.4默认的dnsmasq版本还是2.86
所以ipset功能没有
但是可以用过一个脚本,简单的把ipset里面的内容复制到nftset
https://github.com/openwrt/openwrt/issues/10759
In order to solve the same problem, I wrote a script and put it in crontab to run, the following is the content of the script

#!/bin/sh  i=1; numset=$((ipset list|wc -l-8)); while [ $i -le $numset ] ; do ipset list|tail -$i|head -1|sed 's|^|{|'|sed 's|$|}|'|xargs nft add element apric gfwzone  ; i=$((i+1)) ;  done
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-6-23 16:45 | 显示全部楼层
dnsmasq的dns缓存cache设置

https://www.haiyun.me/archives/1285.html

#缓存的数量
cache-size=10240
#如果查询的域名没ttl,则使用此设置为缓存ttl时间
neg-ttl=600
#指定允许返回给客户端最大ttl时间
max-ttl=600
#dnsmasq服务器缓存最大时间设定
max-cache-ttl=3600
#dnsmasq服务器缓存最小时间设定
min-cache-ttl=3600


总结:
想要客户端的ttl时间小于域名ttl,使用max-ttl,返回客户端为max-ttl设定值,但是dnsmasql缓存时间以域名ttl为准。

想要dnsmasq缓存时间小于域名ttl,使用max-cache-ttl,首次返回客户端ttl为域名ttl,再次请求返回的ttl则是dnsmasq缓存剩余时间ttl,配合max-ttl实现dnsmasq缓存ttl和客户端ttl一致。

想要dnsmasq缓存时间大于域名ttl,使用min-cache-ttl,首次返回客户端ttl为域名ttl,再次请求返回的ttl则是dnsmasq缓存剩余时间ttl,此值dnsmasq限制最高为1小时,更高需重新编译。

想要客户端ttl时间大于域名ttl时间,使用dnsmasq修改min ttl时间 patch,首次请求返回给客户端min-ttl时间,服务器缓存时间以域名ttl时间为准,可配合min-cache-ttl使用。
参考:
http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

标签:none



回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-7-4 18:31 | 显示全部楼层
https://blog.csdn.net/weixin_43749427/article/details/115203790

自己编译dnsmasq


官网源码地址:https://thekelleys.org.uk/dnsmasq/

#表示注释
$表示命令

# 下载源码到本地
$ wget https://thekelleys.org.uk/dnsmasq/dnsmasq-2.82.tar.gz
$ tar -zxvf dnsmasq-2.82.tar.gz
$ ls
dnsmasq-2.82  dnsmasq-2.82.tar.gz
$ cd dnsmasq-2.82
# 创建一个安装路径
$ mkdir install

# 设置编译环境
# export PATH=$PATH:交叉编译链路径
# export CC=交叉编译gcc
$ export PATH=$PATH:/opt/MyCrossCompile/arm-2011.03/bin
$ export CC=arm-none-linux-gnueabi-gcc

# 在MakeFile中修改安装路径PREFIX=install

# 编译
$ make
$ make install
————————————————
版权声明:本文为CSDN博主「Dbug~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43749427/article/details/115203790
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-11-19 16:44 | 显示全部楼层
dhcp分配信息默认保存在
/var/lib/dnsmasq/
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-12-8 21:19 | 显示全部楼层
https://access.redhat.com/solutions/2189401

这个教程里面有Configure dnsmasq to run under control of NetworkManager

先yum install dnsmasq
然后什么都不用管 按照下面几步用网络管理服务来启动dnsmasq[应该是这样的]

就几步
1.Create a /etc/NetworkManager/conf.d/dns.conf file, configuring NetworkManager to enable DNS caching via dnsmasq:

[main]
dns=dnsmasq

2.Additional dnsmasq configuration can be placed into /etc/NetworkManager/dnsmasq.d/ directory
把配置文件放这个目录

3.重启网络服务 貌似有时候不生效,可以重启系统生效
systemctl restart NetworkManager
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-12-8 21:57 | 显示全部楼层
rockylinux编译安装dnsmasq
下载文件
https://thekelleys.org.uk/dnsmasq/dnsmasq-2.89.tar.xz

然后解压
tar -xf dnsmasq-2.89.tar.xz

进入目录
cd dnsmasq-2.89

安装make install

这样就装好了
默认的执行文件路径是/usr/local/sbin/dnsmasq





最小化安装的rockylinux缺少很多命令 tar make net-tools 都没有 这些建议在装玩系统以后都安装上
yum install tar make net-tools

[如果遇到提示没有cc命令说明需要安装gcc]
yum -y install gcc gcc-c++ libstdc++-devel



通过make安装的dnsmasq不能集成到网络管理服务里面
想把dnsmasq集成到网络管理服务里面需要再用yum install dnamasq
这样装好以后用whereis dnsmasq查看
发现/usr/sbin/dnsmasq   /usr/share/dnsmasq  这2个路径也有dnsmasq命令
删掉这2个命令
然后替换为上面的文件
cp -f /usr/local/sbin/dnsmasq /usr/sbin/dnsmasq
cp -f /usr/local/sbin/dnsmasq /usr/share/dnsmasq

然后这个时候用dnsmasq -v查看版本就看到的是最新版了



我怎么感觉其实最终就只有/usr/sbin/dnsmasq 这个可执行文件是有用的呢  貌似可以通过备份2.89的版本的这个命令,然后直接替换yum安装的那个命令就行

测试成功
我在之前yum安装的2.78的那台虚拟机里面手动替换了这个文件
chmod +x /root/dnsmasq/bianyi/dnsmasq
cp -f /root/dnsmasq/bianyi/dnsmasq /usr/local/sbin/dnsmasq
cp -f /root/dnsmasq/bianyi/dnsmasq /usr/sbin/dnsmasq
cp -f /root/dnsmasq/bianyi/dnsmasq /usr/share/dnsmasq
然后执行dnsmasq -v看到的就是2.89的版本的文件了
然后重启dnsmasq服务 就是用我的这个版本的文件了

看来只要自己编译了一次以后把编译好的二进制文件保存好,以后再用就可以直接复制过去了


回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-12-8 22:40 | 显示全部楼层
我TM怀疑 这个kworker突然占用CPU导致DNSMASQ不能用的问题是不是因为我用了阿里的dns啊
我现在改为移动的默认DNS试试
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

荣耀之链

GMT+8, 2025-6-18 07:25 , Processed in 0.015116 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表