我会尽力解释这一点……
我在 ubuntu 13.04 上,并且在 127.0.0.1 上运行本地 BIND 实例,以访问用于开发的基本通配符 DNS(即“*.dev == 127.0.0.1” - 是的,我知道,不要创建虚假的 tlds 等。但这完全是本地的,仅用于我的机器)。
我的一些客户也通过 VPN 设置了自己的 DNS 服务器(地址为 192.168.140.111 或类似地址)。
我的问题是,如果我的 resolv.conf 首先列出了他们的 DNS 服务器,我就无法访问我的 *.dev,而如果我首先列出了我的 DNS 服务器,我就无法访问他们的 *.vpn 记录。
目前,这是我的 resolv.conf:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.140.111
search ns1.vpn
nameserver 127.0.0.1
nameserver 127.0.1.1
search fritz.box
配置的前三行在 中/etc/resolvconf/resolv.conf.d/head
,因此它们将会保留下来resolvconf -u
。
本质上我想知道的是:有没有办法设置它,以便 *.dev 转到我的 dns 服务器,*.vpn 转到他们的服务器,(其他一切都转到我的 ISP)。
答案1
是的,有。将您的本地解析器配置为您的本地绑定(nameserver 127.0.0.1
在/etc/resolv.conf
),然后告诉您的本地名称服务器它是本地权威的.dev
(您已经拥有);这.vpn
是一个特殊的 TLD,查询应发送到自定义 DNS 服务器;所有其他查询都应发送到您的 ISP。这是您想要添加到的内容named.conf
:
zone "vpn" {
type forward;
forward first;
forwarders {
192.168.140.11 ;
} ;
} ;
zone "." {
type forward;
forward first;
forwarders {
dns.of.isp.1 ;
dns.of.isp.2 ;
} ;
} ;