GeraldCarter Case Study CIFS-DFS
GeraldCarter Case Study CIFS-DFS
Gerald Carter
<[email protected]>
Director of Engineering
Likewise Software
SRV SMB/SMB2
Listener Task tcp/445
Protocol Response
Shares
SMB SMB2
Device IoControls
2010 Storage Developer Conference. Likewise Software. All Rights Reserved.
6
FSD and Shares
CreateFile(\docs\expenses.xls)
PATH_NOT_COVERED
TreeConnect(\\server\IPC$)
SUCCESS
GetDfsReferral
(\server\dfs\docs\expenses.xls) SUCCESS
Referrals,
Path Consumed
TreeConnect(\\target\documents)
CreateFile(\expenses.xls)
SUCCESS
Software
Documents
\server1\docs
\server2\docs
Public
\appserv.do…
IRP_TYPE_CREATE
Must match a DFS_CREATE_CTRL_BLOCK or a
REFERRAL_CTRL_BLOCK and be a FILE_OPEN
Partial namespace match returns PATH_NOT_COVERED
Otherwise return OBJECT_PATH_NOT_FOUND
IRP_TYPE_CLOSE
Standard handle close
IRP_TYPE_QUERY_DIRECTORY
If handle is to a ROOT_CTRL_BLOCK, then enumerate
referrals control blocks
IRP_TYPE_QUERY_INFORMATION
DFS Root Ctrl Blocks are reported as reparse points
IRP_TYPE_DEVICE_IO_CONTROL
Interface to GET/SET DFS_REFERRAL info structures
SMBTrans2GetDfsReferral, SMB2_IO_CTL
IRP_CREATE tcon&X(\\host\mydfs)
PVFS SRV
ntcreate&X
(\iso\Likewise.iso)
NPFS “MyDfs” (/dfs/Software)
PVFS SRV
GetDfsReferral
(\host\mydfs\iso\Likewise.iso)
NPFS “MyDfs” (/dfs/Software)