获得桑巴,DHCP和DNS打好

场景:一个简单的家庭networking。 它的核心包括:

  • 一个ADSL 4端口无线路由器。 充当DHCP服务器。 (运行dd-wrt)
  • 作为NAS运行Samba的Ubuntu服务器。
  • 其他基于Linux或Windows客户端的混合。

我最大的问题是,我不太了解Windows(和Linux)盒子是如何为TCP / IPnetworking上的SMB共享命名parsing的。

据我所知,唯一的名字parsing服务,我真正要去的是DNSMasq – 提供无线路由器DHCP服务 – 这使我所有的DHCP注册设备使用DNS查询解决彼此。

这是不理想的,如果DHCP服务器重新启动它丢失其DNSMasq条目,直到各种主机DHCP预留过期,他们重新查询。

我尝试设置一些更强大的function,为dhcp服务器添加一个.local域后缀,并打开NAS盒子上的WINS服务器,但NAS盒子从任何SMB /工作组枚举中立即消失。 我仍然可以ping它,然后SSH,但试图浏览它,或直接导航到(smb://服务器或smb://server.local)所有错误了。

SMB名称parsing如何实际工作? 这样我可以从我的DHCP / DNSMasq实验中解耦。

SMB是networking文件共享协议,因此不存在特定于SMB / CIFS共享的名称parsing机制。 SMB / CIFS的名称parsing取决于客户端,它的configuration名称parsing机制(DNS,WINS,广播等)和顺序取决于您使用的是FQDN还是单标签名称。

在没有DNS或WINS服务器的情况下,Windows客户端将使用NetBIOS广播(如果启用了NetBT over TCP)尝试parsing名称。 Windows Vista,7和W2K8客户端也将使用LLMNR进行本地名称parsing。

没有深入了解Windows客户端如何以及以何种顺序parsing主机名的所有细节,我可能会build议您在内部实现更强大的DNS服务器,如Windows DNS。