For cluster servers, we don't want host names resolved to IP addresses by smbclient, using smbclient 4.0.7. We put the hostname in the smb.conf file. If we force using NT1, the hostname is sent fine to the server, but if we send using SMB2/3, the hostname gets resolved to an IP address, and we fail. Here is the content of the smb.conf file:
unix charset = UTF-8
interfaces = 126.96.36.199/24
default service = dev3k1.myserver.com
path = /ScanShare
client ntlmv2 auth = yes
client max protocol = SMB3
The invocation of the client is:
smbclient -s /etc/smb.conf -U user%pass
Try setting "name resolve order" in smb.conf...
I've tried different permutations of the "name resolve order", but if I take away too many options, it fails, otherwise it always resolves the hostname to an IP address.
It uses 2 different functions to send the Tree Connect Andx Request for NT1 and Tree Connect Request for SMB2.
I've tried disable "netbios = yes", because we also don't support that anymore. I saw in the code some of the functions were checking it.
I know I the functions in question are internal_resolve_name, and I don't see it checking for any config value NOT do resolve the hostname to an IP.
In 3.6.5 we just made sure the smb.conf file EITHER had an IP or hostname because of clusters, based on the following article:
The Microsoft technet article on 2008 clusters
I'm sure other people had this issue and resolved it. Either the client has to be told to send the hostname for SMB2, or something on the server has to be configured differently so it can accept IP addresses for these configurations.