在运行openSUSE 11.4的工作桌面上,我有一个本地networking,它通过DHCP获取其地址,域(work.site)和域名服务器(10.100.1.1,10.100.1.2)信息 – 写入/etc/resolv.conf
我使用工作networking访问互联网,这两个名称服务器最终返回了互联网上任何公共域名查询的条目。
我也有一个私人的VPN,我最终连接。 域名服务器(10.111.1.1)和域名(private.site)在这个networking中几乎没有任何改变,但是现在它们被openVPN客户端推入networkingpipe理器,并且也被合并到现有的/etc/resolv.conf
我的resolv.conf最终看起来像这样:
search private.site work.site nameserver 127.0.0.1 nameserver 10.111.1.1 nameserver 10.100.1.1
正如你所看到的,我的工作networking中的第二个名称服务器被推出,因为最多3个条目的限制。 现在还好,但如果这个名字服务器出于维护或其他原因就会出现问题。
所以我发现dnsmasq可以在这里帮助我,所以我设置dnsmasq就像本地DNSparsing器一样,没有任何DHCP支持。
所以现在这是我的/etc/dnsmasq.conf:
resolv-file=/etc/resolv.conf server=/private.site/10.111.1.1 server=/1.111.10.in-addr.arpa/10.111.1.1 listen-address=127.0.0.1 bind-interfaces log-queries
我已经让dnsmasq从/etc/resolv.conf中获得名称服务器的列表,因为NetworkManager似乎正确地更新了这个列表(最多3个名称服务器)。 我能够正确parsing两个networking中的主机名。
所以这些是我有的问题:
更新:这些是我find的解决scheme:在/ etc / sysconfig /networking/configuration更改以下内容:
NETCONFIG_DNS_FORWARDER="dnsmasq" NETCONFIG_DNS_FORWARDER_FALLBACK="no" NETCONFIG_DNS_STATIC_SEARCHLIST="work.site private.site"
在/etc/dnsmasq.conf中添加这些行:
resolv-file=/var/run/dnsmasq-forwarders.conf
我还必须修改我的openVPN server.conf不要为客户端推送名称服务器,因为我已经在该域的dnsmasq.conf中添加了一个服务器规则。
如果你安装了resolvconf ,NetworkManager将直接使用它来代替直接写入/etc/resolv.conf 。 然后可以在/var/run/resolvconf/interface/NetworkManagerfind来自NM的DNS服务器。
dnsmasq发送所有的查询到10.111.1.1,因为它在resolv.conf列出 – 你可能想从resolv.conf删除它,这样它只能用于private.site域。 resolv.conf中的名称服务器基本上是默认的。