直到最近,我们的网络设置都是这样的:我们有一个 Samba4 服务器,充当一些内部名称的 DNS 服务器,并将其他所有内容(即互联网上的内容)转发到我们的主路由器。我们的主路由器是 Dlink DI-624,它很乐意将这些请求转发到适当的 DNS 服务器,它会从我们的调制解调器中获取这些服务器。
嗯,一切运行良好,没有任何问题,直到 DI-624 坏了。我们的新路由器没有 DNS 转发功能,因此我暂时从我们的互联网连接中取出主 DNS 服务器,并将其放在 smb.conf 中dns forwarder =
我们 D-Link 地址原来所在的行上。
我对此的主要不满是,如果我们的 ISP 更改了主 DNS 服务器(众所周知,他们每年会更改几次),那么在解决问题之前,我们的互联网将出现中断和普遍混乱,即使解决了问题,我们也必须重新启动 Samba,这会在此过程中中断我们的文件共享(更多停机时间)。而我们的旧路由器可以很好地解决所有这些问题。
不幸的是,是否使用空格或逗号dns forwarder
似乎smb.conf
不需要多个参数。如果没有必要,我不想运行 BIND,但如果它足够简单,我不介意从 Samba 的内置内部 DNS 切换,如果它有助于解决这个问题。
有没有办法让 CentOS 从我们的路由器获取当前的 DNS 服务器设置并用它们更新 smb.conf?或者至少让我列出一堆 DNS 服务器来尝试?或者更好的是,像我们的 D-Link 以前那样自动处理事情?
答案1
解决方案 1. 购买便宜的新路由器 - 您的全新 30 美元路由器不太可能没有 DNS 转发功能。购买前请检查产品规格!您的新路由器没有 DNS 功能也很奇怪 - 您仔细检查过手册和配置界面了吗?
解决方案 2. 使用谷歌的公共 DNS 转发器。这很好(namebench 测试声称谷歌的分布式 DNS 系统是速度提升 266%而不是使用我本地的 bind9 缓存服务)除非你担心隐私问题(谷歌可能会或可能不会收集你的查询)
最后,如果 OP 认为 isc bind 的开销太大,那么也许像dnsmasq
或这样的轻量级解析器unbound
可能会有所帮助
答案2
您可以安装一个绑定实例,将其设置为转发到您在named.conf.options中喜欢的任何列表,然后将samba指向它。您不必替换任何东西,只需将samba指向绑定,并绑定到您喜欢的任何服务器列表。
唯一的缺点是,现在您的 DNS 位于防火墙内,您可能需要打开一个漏洞以便转发的查询能够通过该漏洞进行响应。