DNS CNAME エイリアスを使用して SMB ファイル サーバー共有アクセスが失敗する
この記事では、DNS CNAME エイリアスが SMB ファイル サーバーにアクセスできない問題の解決策について説明します。
適用対象: Windows 10 - すべてのエディション、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows 7 Service Pack 1
元の KB 番号: 3181029
現象
構成
- Windows Server などの SMB ファイル サーバーを実行しています。 サーバーには、NetBIOS 名、DNS 完全修飾ドメイン名 (FQDN)、およびエイリアス (CNAME) を使用して構成されたファイルとリソースがあります。
- Windows 7、Windows Server 2008 R2、またはそれ以降のバージョンの Windows を実行しているクライアントがあります。
シナリオ
アプリケーションまたはユーザーが SMB を使用しているサーバー上のファイルまたはその他のリソースに実際のストレージ名 (NetBIOS 名または FQDN) を使用すると、アクセスは成功します。
アプリケーションまたはユーザーが、SMB を使用しているサーバー上のファイルまたはその他のリソースに CNAME エイリアスを使用し、その DNS CNAME エイリアスを使用してファイル サーバー上の共有に接続しようとするとします。 たとえば、DNS CNAME エイリアスを使用して、ファイル サーバー上の共有に接続しようとするとします。
NET USE * \\CNAME\share_name
この場合、次の動作が発生します。
Windows Server 2008 R2 または Windows 7 クライアントからのアクセスに成功しました。
Windows Server 2012 R2、Windows 8.1、またはそれ以降のバージョンの Windows クライアントからのアクセスは失敗します。 この場合、次のようなエラー メッセージが表示されます。
フォルダーを開く
\\uncpath にアクセスできません。 このネットワーク リソースを使用するアクセス許可がない可能性があります。 アクセス許可があるかどうかをこのサーバーの管理者に問い合わせてください。
ログオンエラー: ターゲット アカウント名が正しくありません。
原因
ネットワーク モニター、ワイヤ シャーク、または Microsoft メッセージ アナライザーを使用して、SMB セッションのセットアップが成功したときにネットワーク トレースを調べると、セッションは TREE Connect に移動します。
ただし、SMB セッションのセットアップが失敗したときにネットワーク トレースを調べると、Kerberos KRB_AP_ERR_MODIFIED エラーでセッションが失敗します。 ネットワーク トレースで SMB セッションセットアップ要求が失敗した例を次に示します。
MessageNumber DiagnosisTypes Timestamp Source Destination Module Summary 112 None DateTime Client Server SMB2 Negotiate, Status: Success, 2780879Guid: {12f74af4-be82-11e5-b5c2-005056890096}, DialectRevision: SMB 2. 112 None DateTime Client Server SMB2 NegotiateRequest, Dialects: [SMB 2.0.2, SMB 2.1], Capabilities: , 2780879Guid: {12f74af4-be82-11e5-b5c2- 115 None DateTime Server Client SMB2 NegotiateResponse, Status: Success, DialectRevision: SMB 2.1, Capabilities: SMB2GlobalCapDfs|SMB2GlobalC 116 None DateTime Client Server SMB2 SessionSetup, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, Flags: 0 116 None DateTime Client Server SMB2 SessionSetupRequest, Kerberos, Flags: Unknown(0), PreviousSessionId: 0x0000000000000000 122 None DateTime Server Client SMB2 SessionSetupResponse, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, SessionId: 0x000004030800006D 135 None DateTime Client Server SMB2 SessionSetup, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, Flags: 0 135 None DateTime Client Server SMB2 SessionSetupRequest, Kerberos, Flags: Unknown(0), PreviousSessionId: 0x0000000000000000 143 None DateTime Server Client SMB2 SessionSetupResponse, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, SessionId: 0x000004030800006D
SMB セッションセットアップ要求が失敗した場合、クライアントは正しくない CNAME SPN を転送します。 SPN は古いサーバーに登録されているため、正しくない可能性があります。 ただし、Windows Server 2008 R2 クライアントケースなど、SMB セッションセットアップ要求が成功した場合、クライアントは実際のサーバー名の SPN を転送します。
ファイル サーバー名が DNS を介して解決された場合、SMB クライアントは DNS サフィックスをユーザー指定の名前に追加します。 つまり、次の例のように、SPN の最初のコンポーネントは常にユーザー指定の名前になります。
CNAME.contoso.com\share_name
注:
この試行は、Kerberos 認証用に構成できず、SMB ダイレクト ホスト ポート 445 をリッスンせず、NetBIOS ポート 139 でのみリッスンする古い SMB 実装 (AIX Samba 3.5.8 など) では失敗します。
ファイル サーバー名が、次のような他のメカニズムによって解決された場合
- Netbios
- リンク ローカル マルチキャスト名解決 (LLMNR)
- ピア名解決プロトコル (PNRP) プロセス
SMB クライアントは、次のようなユーザー指定の名前を使用します。
CNAME\share_name
解決方法
SMB バージョン 1 プロトコルを実行しているファイル サーバーでこの問題を解決するには、レジストリに値を DisableStrictNameChecking
追加します。
レジストリの場所: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
DWORD 名: DisableStrictNameChecking
DWORD 値: 1
重要
ファイル サーバーには、今後 DNS CNAM を使用しないでください。 サーバーに代替名を付ける場合は、次のコマンドを使用します。
NETDOM COMPUTERNAME/ADD
このコマンドは、代替名の SPN を自動的に登録します。
Windows ベースのコンピューターの管理者特権のコマンド プロンプト ウィンドウに次のコマンドを入力して、Windows ベースではないファイル サーバーに対してこの問題を解決することはお勧めしません。 ドメイン管理者の資格情報を使用してログオンする必要があります。 次に、コマンド プロンプトで Enter キーを押して、Windows ベース以外のファイル サーバー ストレージ デバイスの CNAME の SPN を登録します。
SETSPN -a host/alias_name targetserver
SETSPN -a host/alias_name.contoso.com targetserver
注:
- Windows 2012 クラスタリングを使用する場合は、Windows XP または Windows Server 2003 コンピューターが接続できないダウンレベルのクライアントの修正プログラムをインストールします。Windows Server 2012 ベースのフェールオーバー クラスターでホストされているリソースにアクセスできません。
- クライアントが接続するクラスター化名の CNAME を作成する場合は、CNAME に応答するように、そのクラスター化名にプロパティを設定する必要があります。クラスター化された SMB 共有のエイリアスを構成する方法Windows Server 2012。
ネットワーク トレース
ネットワーク トレースを収集するには、次の手順に従います。
管理者特権のコマンド プロンプト ウィンドウを開き、次のコマンドを入力し、Enter キーを押します。
netsh trace start NetConnection capture=yes maxsize=100 filemode=circular overwrite=yes traceFile=c:\%COMPUTERNAME%_Repro_trace.etl
次のコマンドを実行して、既存の File Server ネットワーク接続を削除します。
NET USE * /DELETE
既存のキャッシュを削除して、すべての名前キャッシュを初期化します。
DNS キャッシュを削除するには、次のコマンドを入力し、Enter キーを押します。
IPCONFIG /FLUSHDNS
NetBIOS キャッシュを削除するには、次のコマンドを入力し、Enter キーを押します。
NBTSTAT /RR
Kerberos キャッシュを削除するには、次のコマンドを入力し、Enter キーを押します。
KLIST /PURGE
ARP キャッシュを削除するには、次のコマンドを入力し、Enter キーを押します。
ARP -d
次のコマンドを入力して Enter キーを押して、ネットワーク共有に接続してみてください。
NET USE * \\server_name\share_name
失敗したシナリオでネットワーク トレースを停止するには、次のコマンドを入力し、Enter キーを押します。
netsh trace stop
レジストリ設定を収集する
ファイル サーバーのレジストリ設定を収集するには、[ スタート] を選択し、[ 実行] を選択し、[開く] ボックスにコマンドを入力して、[ OK] を選択します。 次のコマンドに対してこの手順を繰り返します。
REG.EXE SAVE HKLM\SYSTEM C:\TEMP\%COMPUTERNAME%_SYSTEM.HIV
REG.EXE SAVE HKLM\SOFTWARE C:\TEMP\%COMPUTERNAME%_SOFTWARE.HIV
REG.EXE SAVE HKCU\Software C:\TEMP\%COMPUTERNAME%_HKCU.HIV
注:
レジストリ設定ファイル (。HIV) は、ファイル サーバーの TEMP フォルダーに保存されます。
レジストリ設定を確認する
ファイル サーバー上の次のレジストリ値の設定を確認します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SmbServerNameHardeningLevel
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking
修正プログラムを適用する (サーバーとクライアント)
Windows 7 および Windows Server 2008 R2 の場合は、次の Windows 7 Enterprise 修正プログラム ロールアップを適用します。
Windows 7 SP1 および Windows Server 2008 R2 SP1 では、エンタープライズ修正プログラムロールアップを使用できます
さらに、次の修正プログラムを適用します。
- Windows Server 2008 R2 を実行しているネットワーク ファイル サーバーに .pst ファイルが格納されている場合の "遅延書き込みに失敗しました" エラー メッセージ
- ローミング プロファイルを使用する Windows 7 ベースまたは Windows Server 2008 R2 ベースのクライアント コンピューターにログオンしようとすると、ログオン時間が長い
- OpsMgr 2012 または OpsMgr 2007 R2 によって "ハートビート エラー" メッセージが生成され、Windows Server 2008 R2 SP1 で灰色で表示された状態になります
関連情報
- Windows Server 2003 Service Pack 1 をインストールした後に FQDN またはその CNAME エイリアスを使用してサーバーにローカルでアクセスしようとすると、エラー メッセージ:"アクセスが拒否されました" または "ネットワーク プロバイダーが指定されたネットワーク パスを受け入れなかった"
- MS08-068: SMB の脆弱性により、リモートでコードが実行される
- Windows Server 2012 ベースのフェールオーバー クラスターでホストされているリソースにアクセスできない
- Windows Server 2008 および Windows Server 2008 R2 の File Services テクノロジで現在利用可能な修正プログラムの一覧
- Windows Server 2012および Windows Server 2012 R2 の File Services テクノロジで現在利用可能な修正プログラムの一覧
- DisableStrictNameChecking レジストリ キーの追加
- DisableStrictNameChecking;サーバー エイリアスが実際のサーバーから機能しない
- ファイル サーバー用の SPN (NAS/RAS/ファイル共有システム) DNS エイリアス (Cname) が必要な理由
サードパーティの情報に関する免責事項
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示