请教下有没有这样一种 DNS 解析工具,可能定义地址池的,根据地址池的不同,使用不同的公共 DNS 来解析?

164 天前
 echoo00
背景:外企,有两条互联网线路,一条出口在国内,一条出口在日本;流量默认从日本走,DNS 默认是域控的地址,上游默认查询 8.8.8.8

遇到的问题:因为所有的 DNS 查询默读都是从日本出去的,返回的 IP 地址也绝大多数是国外的 IP ,这样访问国内一些政府网站,或者比较大的有 CDN 的网站时,默认就是日本绕回来访问,一些网站的样式无法正常显示;财务和 HR 同事日常使用这类系统/网站比较多,有较多的抱怨,临时方案是拉了条 ADSL 线他们用,要上国内网站就连这条 ADSL 放出来的 SSID ;

需求:有没有一个 wiin 系统下的软件,可以自定义一个域名池,这个池子里的域名固定去 223.5.5.5 解析,其他默认的该怎么走怎么走
网络上有负载均衡设备可以实现上述功能,但目前公司不太愿意投资,我只是想方便我自己使用,来找这么一个软件测试下,谢谢!
4342 次点击
所在节点    DNS
49 条回复
zbatman
164 天前
mosdns ?
FrankAdler
164 天前
dnsmasq 也可以做到,iptables 重定向 dns 也能做的
soukiya
164 天前
DNS 分流? Mac 和 iOS 下好实现,类似于你的要求的?: https://github.com/VirgilClyne/GetSomeFries/wiki/%F0%9F%8C%90-DNS#%E7%AE%80%E4%BB%8B
Win 端 Clash 的 fake ip 也能够实现 DNS 分流:
https://blog.lv5.moe/p/use-dns-to-create-split-routing-for-different-domain-or-ip-ranges
artnowben
164 天前
部署一个内网 DNS 服务器,在服务器上去实现这个特性
lifei6671
164 天前
你说的是 SmartDNS 吧,支持自定义分组解析,自定义域名解析。
crac
164 天前
SmartDNS 可以 我就这么用的, 各家的服务用各家自己的 DNS, 效果非常好
tool2d
164 天前
弄个软路由可以做到,我在公司的出口安装了一个 IP 包过滤器,自己写了一个 DNS UDP 抢答模块,只要是国内的域名不查询网络,直接用缓存里数据就返回了。

如果你自己电脑用,干脆写一个 hosts 文件管理,定期更新,更简单。
sadfQED2
164 天前
echoo00
164 天前
多谢各位的建议,我去试一下各位提到的方案先
qishouvip2022
164 天前
内网中搭建 Smartdns 或 Mosdns 分流服务,AD 域的 DNS 服务器中把首选转发器设置为分流 DNS 的地址,然后分流服务中设置好上游 DNS 服务器(国内 223.5.5.5/119.29.29.29 )和远程 DNS 服务器(国外 8.8.8.8/1.1.1.1 ),然后每天更新 GeoIP & GeoSite 数据库。
mouyase
164 天前
adguard home 也能实现(
qishouvip2022
164 天前
@qishouvip2022 我现在的做法是虚拟化平台上,新建两台虚拟机,同时部署了 Smartdns 和 Openwrt (开启 Mosdns ),AD 域的 DNS 服务器的转发器设置为 Smartdns 和 Openwrt 的 IP 。
A1188
164 天前
yyzh
164 天前
同外企,我们用的是 CITIC 的网络解决方案,DNS 和分流全都由他们处理好.
echoo00
164 天前
目前是我自己用,只能在自己的笔记本上折腾,企业级的方案有不少,但很多东西都要总部来决定,总部又觉得我国是一个管控比较严的国家,也怕泄密,管理员权限都不给我们,没办法部署其他服务器,或者添加其他设备
Mrealy
164 天前
@yyzh #14 我公司也用他们的线路也没有看到他们有啥 DNS 方案,我们自建 DNS 的用的 dnsmasq 加 dnsforward
Puteulanus
164 天前
https://www.appinn.com/acrylic/
Windows 的我们之前用过这个,作为最前面的分流 DNS ,顺便可以支持通配 hosts
yyzh
164 天前
@Mrealy 那可能是你们的套餐不支持或者客户经理没说?我们这的客户经理特别提醒过要把域 DNS 的上游调成他们的 DNS.
kursk
164 天前
linux 下使用 dnsmasq + (nftables)iptables + ipset 可以完美解决

dnsmasq 的配置如下

server=/facebook.net/8.8.8.8#53
nftset=/facebook.net/4#inet#wgcross#crs_dst

server=/163.net/223.5.5.5#53
nftset=/163.net/4#inet#wgcross#cn

server 和 nftset 是 dnsmasq 的两个配置项,server 项的作用是收到 dns 请求后进行匹配(可按照域名级别进行匹配),比如上面例子中*.facebook.net 的域名都被转发给 8.8.8.8 解析,并且将解析的 ip 写入 nftables 中的 wgcross 表的 crs_dst set 进行存储,然后路由表当然也要设置,我的例子如下

chain PREROUTING { # handle 2
type nat hook prerouting priority filter; policy accept;
ip daddr { 23.95.146.49, 65.49.219.226, 193.22.152.174 } accept # handle 4
ip daddr { 0.0.0.0/8, 10.0.0.0/8, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0-255.255.255.255 } accept # handle 6
ip daddr @cn accept # handle 8
ip daddr @crs_dst counter name "cnt_cross" meta mark set 0x00000009 accept # handle 10
}

最后两个路由条目,cn set 针对国内的路由,命中这个 set 中的路由就返回上级 chain(及走国内线路),而另一个 crs_dst set 会 mark 0x9 ,然后在 ip route 中挑出来走海外线路

这个技术路线,必须 DNS\route gateway 的功能集中在一台设备上。
uncat
164 天前
Windows 原生支持 DNS 分流,叫做 NRPT Rules 参考: https://x.com/jinmiaoluo/status/1723948812224360585?s=20

Linux 也是原生支持 DNS 分流的,你可以在内网,随便一台 Linux ,通过 systemd 内置的 systemd-resolved 配置好分流规则后,作为一台内网 DNS proxy 。啥都不用安装。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/995812

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX