通过address强制解析的2个IP地址怎么去探测这2个地址是否正常,验证不生效
问题现象
简要描述问题出现的现象
address /www.xiaohongshu.com/212.64.115.101,1.1.1.1 speed-check-mode ping,tcp:80,tcp:443 解析后结果能在
212.64.115.101
1.1.1.1 这2个IP之间进行轮询,但如果其中一个地址ping或者80,443不通,我就需要剔除这个不通地址,但通过
address /www.xiaohongshu.com/212.64.115.101,1.1.1.1 speed-check-mode ping,tcp:80,tcp:443 这个后缀命令然后看日志及抓包没看到存在探测功能,这个功能能否实现
运行环境
- 固件型号
xen虚拟机 - 运营商
电信 - smartdns来源以及版本 smartdns 1.2023.08.11-1937
- 涉及的配置(注意去除个人相关信息) bind [::]:53 -no-speed-check -force-aaaa-soa address /www.xiaohongshu.com/212.64.115.101,1.1.1.1 speed-check-mode ping,tcp:80,tcp:443
重现步骤
- 上游DNS配置。
bind [::]:53 -no-speed-check -force-aaaa-soa bind-tls [::]:53 #tcp空闲 tcp-idle-time 120 address /www.xiaohongshu.com/212.64.115.101,1.1.1.1 speed-check-mode ping,tcp:80,tcp:443 - 访问的域名。
www.xiaohongshu.com
信息收集
一个域名的多个配置应使用 domain-rules。可以试试 domain-rules -a 1.1.1.1,2.2.2.2 -c ping 之类的
如果能确保两个地址至少有一个生效,将其同时提供给客户端即可,第一个不通时客户端会自己去连第二个的
一个域名的多个配置应使用 domain-rules。可以试试 domain-rules -a 1.1.1.1,2.2.2.2 -c ping 之类的
注释#address /www.xiaohongshu.com/212.64.115.101,1.1.1.1 speed-check-mode ping,tcp:80,tcp:443 后
然后添加domain-rules /www.xiaohongshu.com/ -a 212.64.115.101,1.1.1.1 -c speed-check-mode ping,tcp:80,tcp:443
解析地址还是这2个,但还是没有进行这2个地址探测,那是不是说明这个-c speed-check-mode ping,tcp:80,tcp:443 是不生效的
不会去探测源站是不是网络正常
如果能确保两个地址至少有一个生效,将其同时提供给客户端即可,第一个不通时客户端会自己去连第二个的
这种也存在单点故障,比如解析第一个地址能通,解析第二个地址不能通,客户端没这么智能的,因为他们不会判断解析出来的地址是不是通,不通直接故障了
然后添加domain-rules /www.xiaohongshu.com/ -a 212.64.115.101,1.1.1.1 -c speed-check-mode ping,tcp:80,tcp:443 解析地址还是这2个,但还是没有进行这2个地址探测,那是不是说明这个-c speed-check-mode ping,tcp:80,tcp:443 是不生效的 不会去探测源站是不是网络正常
证实。address指定的ip是不测速的。 address多个ip测速排序问题可以考虑采用第二服务器多做一次查询
然后添加domain-rules /www.xiaohongshu.com/ -a 212.64.115.101,1.1.1.1 -c speed-check-mode ping,tcp:80,tcp:443 解析地址还是这2个,但还是没有进行这2个地址探测,那是不是说明这个-c speed-check-mode ping,tcp:80,tcp:443 是不生效的 不会去探测源站是不是网络正常
证实。address指定的ip是不测速的。 address多个ip测速排序问题可以考虑采用第二服务器多做一次查询
其实我想的是,如果我强制解析比如1.1.1.1,1.1.1.2,1.1.1.3 这3个地址轮询没有问题,就是假如某一天其中1.1.1.3地址不通了,但还是会正常轮询给客户端,客户端没有识别解析出来的1.1.1.3是否正常,照样会解析到1.1.1.3,从而访问会导致故障,如果可以新增探测,后续解析3个地址1.1.1.3会排序到最后,等于不通的地址不会优先直接给客户端解析结果,避免故障