场景:一个简单的家庭networking。 它的核心包括:
我最大的问题是,我不太了解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。