See an important update here. The information that follows is still relevant to mount.cifs.
With my current client, when I’m working at home, I have to connect to a CIFS share that uses Microsoft’s DFS through their Cisco AnyConnect VPN. It seemed like the mount would work, but I couldn’t see any of the files or folders below the share. (This is with Ubuntu 10.04 Lucid Lynx.)
Fortunately, some other consultants working on the same project had the same problem, and they found a work-around. The work-around was to connect to the underlying server and folder, rather than through the DFS root.
As my position with this client has evolved, I’ve needed to get to other folders on their file server, and I’ve occasionally had problems because I didn’t know the underlying server and folder I needed to get to. So I continued to work on the problem. I think I’ve found the solution.
I already had the keyutils package installed. You’ll need it:
sudo apt-get install keyutils
Then I added the following two lines to /etc/request-key.conf:
create
cifs.spnego
/usr/sbin/cifs.upcall %k %d
create
dns_resolver
/usr/sbin/cifs.upcall %k