![仅限 PDNS 转发区域子域](https://linux22.com/image/650622/%E4%BB%85%E9%99%90%20PDNS%20%E8%BD%AC%E5%8F%91%E5%8C%BA%E5%9F%9F%E5%AD%90%E5%9F%9F.png)
我正在尝试使用区域转发,但仅限于子域。
假设您在域 vpn.provider.tld 上有一个 VPN 服务器。此域指向一个全局 IP 地址,可从互联网访问,并由全局 DNS 服务器提供。在 VPN(内部网)内部,有一个 DNS 服务器,位于本地地址(VPN_DNS_LOCAL_IP,即 10.0.0.1)。VPN DNS 服务器包含指向内部 VPN 地址的记录 *.vpn.provider.tld。例如 host.vpn.provider.tld -> 10.0.0.2。
我的目标是在 VPN 主机上配置 PDNS 递归器,以将区域 vpn.provider.tld 转发到 VPN_DNS_LOCAL_IP 的内部 DNS 服务器。但是当转发配置为:
forward-zones=vpn.provider.tld=10.0.0.1
主机无法连接到 VPN 服务器,因为 vpn.provider.tld 被转发到无法访问的内部 VPN IP。
有没有办法仅将 *.vpn.provider.tld 转发到 VPN DNS 本地 IP,并将 vpn.provider.tld 保留为全局 IP 地址进行全局解析?
答案1
虽然在 Recursor 中很难做到,但使用域名系统。
- 将
vpn.provider.tld
其交给你常用的解析器,使用https://dnsdist.org/rules-actions.html#QNameRule - 将内部其他所有内容移交
vpn.provider.tld
给 VPN DNS 服务器,使用https://dnsdist.org/rules-actions.html#SuffixMatchNodeRule
对于(2),makeRule
可以节省您一些打字时间。