When attempting to crawl a Windows file share that has SMB signing enabled and enforced from a Linux based Network Discover server, you may encounter the following warning/error during the crawl stage trying to open the content root:
jcifs.smb.SmbTreeConnection connectHost
WARNING: Referral failed, trying next
jcifs.smb.SmbException: Failed to connect: <hostname>/<ip address>
at jcifs.smb.SmbTransportImpl.ensureConnected(SmbTransportImpl.java:656)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:214)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:1)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:560)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:484)
at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:460)
at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:421)
at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:545)
at jcifs.smb.SmbFile.exists(SmbFile.java:821)
at com.vontu.filesystemcrawler.file.SmbFileAdapter.ensureExists(SmbFileAdapter.java:222)
at com.vontu.filesystemcrawler.file.FileFactory.createFile(FileFactory.java:74)
at com.vontu.filesystemcrawler.RootFileFactory.createRootFile(RootFileFactory.java:59)
at com.vontu.filesystemcrawler.FileSystemContentRoot.open(FileSystemContentRoot.java:99)
at com.vontu.discover.crawler.framework.RepositoryCrawler.openContentRoot(RepositoryCrawler.java:837)
at com.vontu.discover.crawler.framework.RepositoryCrawler.crawlUserContentRoot(RepositoryCrawler.java:677)
at com.vontu.discover.crawler.framework.RepositoryCrawler.crawl(RepositoryCrawler.java:518)
at com.vontu.discover.crawler.framework.RepositoryCrawler$CrawlerThread.run(RepositoryCrawler.java:353)
Caused by: jcifs.util.transport.TransportException: java.io.IOException: transport closed in negotiate
at jcifs.util.transport.Transport.run(Transport.java:759)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: transport closed in negotiate
at jcifs.smb.SmbTransportImpl.negotiatePeek(SmbTransportImpl.java:580)
at jcifs.smb.SmbTransportImpl.negotiate2(SmbTransportImpl.java:622)
at jcifs.smb.SmbTransportImpl.negotiate(SmbTransportImpl.java:524)
at jcifs.smb.SmbTransportImpl.doConnect(SmbTransportImpl.java:673)
at jcifs.util.transport.Transport.run(Transport.java:732)
... 1 more
com.vontu.discover.crawler.framework.RepositoryCrawler handleRepositoryException
SEVERE: Unknown Error.
com.vontu.discover.repository.RepositoryException: Unknown Error.
at com.vontu.filesystemcrawler.ExceptionConverterImpl.createRepositoryException(ExceptionConverterImpl.java:164)
at com.vontu.filesystemcrawler.ExceptionConverterImpl.convertSmbException(ExceptionConverterImpl.java:247)
at com.vontu.filesystemcrawler.RootFileFactory.createRootFile(RootFileFactory.java:63)
at com.vontu.filesystemcrawler.FileSystemContentRoot.open(FileSystemContentRoot.java:99)
at com.vontu.discover.crawler.framework.RepositoryCrawler.openContentRoot(RepositoryCrawler.java:837)
at com.vontu.discover.crawler.framework.RepositoryCrawler.crawlUserContentRoot(RepositoryCrawler.java:677)
at com.vontu.discover.crawler.framework.RepositoryCrawler.crawl(RepositoryCrawler.java:518)
at com.vontu.discover.crawler.framework.RepositoryCrawler$CrawlerThread.run(RepositoryCrawler.java:353)
Caused by: jcifs.smb.SmbException: Failed to connect: <hostname>/<ip address>
at jcifs.smb.SmbTransportImpl.ensureConnected(SmbTransportImpl.java:656)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:214)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:1)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:560)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:484)
at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:460)
at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:421)
at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:545)
at jcifs.smb.SmbFile.exists(SmbFile.java:821)
at com.vontu.filesystemcrawler.file.SmbFileAdapter.ensureExists(SmbFileAdapter.java:222)
at com.vontu.filesystemcrawler.file.FileFactory.createFile(FileFactory.java:74)
at com.vontu.filesystemcrawler.RootFileFactory.createRootFile(RootFileFactory.java:59)
... 5 more
Caused by: jcifs.util.transport.TransportException: java.io.IOException: transport closed in negotiate
at jcifs.util.transport.Transport.run(Transport.java:759)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: transport closed in negotiate
at jcifs.smb.SmbTransportImpl.negotiatePeek(SmbTransportImpl.java:580)
at jcifs.smb.SmbTransportImpl.negotiate2(SmbTransportImpl.java:622)
at jcifs.smb.SmbTransportImpl.negotiate(SmbTransportImpl.java:524)
at jcifs.smb.SmbTransportImpl.doConnect(SmbTransportImpl.java:673)
at jcifs.util.transport.Transport.run(Transport.java:732)
... 1 more
Network Discover on RHEL 7
This is caused by the JCIFS library treating the content root "//hostname/share" as a DFS root.
On the Discover server, disable the DFS client in Jcifs.properties under /opt/Symantec/DataLossPrevention/DetectionServer/DLP VERSION/Protect/config/ by setting the following:
jcifs.smb.client.dfs.disabled=true