...
NetWorker NMM SQL Server remote agent fails to register. When NMM is installed on a SQL Server, it must register (automatically) a remote agent with NetWorker.Using this command nsrnmsqlra -i This fails to register with Error: Cannot open client side named pipe for authentication:Cause is related to Windows (SMB) Server Message Block protocol.
Microsoft Windows Operating System uses Named pipes for authentication, and access to files, printers, and shares.Named pipes use Server Message Block (SMB) as the underlying transport protocol. When SMB is disabled, the NMM remote agent fails due to authentication requiring use of named pipes.Engineering root cause defined as: Named Pipe uses the SMB protocol. Please find reference link. [[MS-WPO]: Named Pipes | Microsoft Learn|https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wpo/4de75e21-36fd-440a-859b-75accc74487c] This is windows requirement. During authentication process, Server will create the named pipe file in the client and open the named pipe to get the RPCSEC_GSS credentials. But when SMB protocol is disabled, server fails to get the details from the client. NOTES1. Microsoft Windows servers have SMB1 Feature installed by default. 2. Starting with Windows 2019 Server, SMB1 is not installed by default.Therefore if SMB is also disabled at same time that SMB1 is not installed, then remote agent fails.EXAMPLE POWERSHELL //* THIS SHOWS // SMB1 is disabled (not installed) // SMB2 is enabled // RESULT ---- remote agent works PS Get-SmbServerConfiguration |select enablesm* EnableSMB1Protocol EnableSMB2Protocol ------------------ ------------------ False True //* THIS SHOWS // SMB1 is disabled (not installed) // SMB2 is disabled (in Powershell) // RESULT ---- remote agent fails PS Set-SmbServerConfiguration -EnableSMB2Protocol $False Confirm Are you sure you want to perform this action? Performing operation 'Modify' on Target 'SMB Server Configuration'. [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): PS Get-SmbServerConfiguration |select enablesm* EnableSMB1Protocol EnableSMB2Protocol ------------------ ------------------ False False RESULT- nsrnmsqlra -D5 -i 2> deb5ra.txt The remote agent resource with the same values already exists. -- 02/21/23 20:54:22.013511 Auth methods not set, using default 02/21/23 20:54:22.016510 RPC Authentication: Client failed to obtain RPCSEC_GSS credentials: Cannot open client side named pipe for authentication: The specified network name is no longer available. (Win32 error 0x40). 02/21/23 20:54:22.016510 Could not get a session key for GSS authentication. Perhaps this authentication method is not allowed/supported by both the local and remote remote machines. 02/21/23 20:54:22.016510 Falling back to use the older protocol which does not support pipe impersonation. Perhaps were are talking to an older auth server. 02/21/23 20:54:22.017511 Auth methods not set, using default 02/21/23 20:54:26.575461 Auth methods not set, using default 02/21/23 20:54:26.576462 RPC Authentication: Client failed to obtain RPCSEC_GSS credentials: Cannot open client side named pipe for authentication: The specified network name is no longer available. (Win32 error 0x40). 02/21/23 20:54:26.576462 Could not get a session key for GSS authentication. Perhaps this authentication method is not allowed/supported by both the local and remote remote machines. 02/21/23 20:54:26.576462 Falling back to use the older protocol which does not support pipe impersonation. Perhaps were are talking to an older auth server. 02/21/23 20:54:26.576462 Auth methods not set, using default 02/21/23 20:54:26.592460 lg_getnameinfo(): Found the entry in getnameinfo_cache ... backup type: SQL Server; features: Configuration, NMM; name: SQL Server; product version: 19.7.0.54; remote agent executable: nsrnmsqlra; remote agent protocol version: 1; type: NSR remote agent; 02/21/23 20:54:26.595460 Received unkown message 02/21/23 20:54:26.595460 Failed to build reply object list for Unknown message 02/21/23 20:54:26.595460 Remote Agent Ending*********
ENABLE SMB2 protocolPOWERSHELL Set-SmbServerConfiguration -EnableSMB2Protocol $true ConfirmAre you sure you want to perform this action?Performing operation 'Modify' on Target 'SMB Server Configuration'.[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Get-SmbServerConfiguration |select enablesm* EnableSMB1Protocol EnableSMB2Protocol ------------------ ------------------ False True RESULT nsrnmsqlra -D5 -i 2> deb5okra.txt The remote agent resource with the same values already exists. ---------- DEB5OKRA.TXT 02/21/23 21:00:53.406661 lg_getnameinfo(): Successfully added entry into getnameinfo_cache ... 02/21/23 21:00:53.407661 lgto_auth for `nsrexec' succeeded 02/21/23 21:00:53.407661 Auth methods not set, using default 02/21/23 21:00:53.407661 Auth methods not set, using default 02/21/23 21:00:53.407661 Auth methods not set, using default 02/21/23 21:00:53.424661 lg_getnameinfo(): Found the entry in getnameinfo_cache ... backup type: SQL Server; features: Configuration, NMM; name: SQL Server; product version: 19.7.0.54; remote agent executable: nsrnmsqlra; remote agent protocol version: 1; type: NSR remote agent;