ONTAPでCIFSファイルサーバを作る時、本来のホスト名とは違うホスト名でもアクセスできるようにしておきたい、ということがある。
(サーバ統合で2台が1台になるけど、どちらでも使える様にした、など)
NetAppの標準設定では、SVMをActive Directoryに参加させる際に指定したNetBIOS名とIPアドレスでのアクセス以外は受け付けないようになっている。
例えば、下記の様に「システムエラー 59」「予期しないネットワーク エラーが発生しました。」といったエラーが出力される。
C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。
'winserver' のユーザー名を入力してください: ADOSAKANA\testuser1
winserver のパスワードを入力してください:
システム エラー 59 が発生しました。
予期しないネットワーク エラーが発生しました。
C:\Users\Administrator>
SVMの設定を確認すると下記の様になっている。
netapp9101::> vserver cifs show -ins
Vserver: svm0
CIFS Server NetBIOS Name: SVM0
NetBIOS Domain/Workgroup Name: ADOSAKANA
Fully Qualified Domain Name: ADOSAKANA.LOCAL
Organizational Unit: CN=Computers
Default Site Used by LIFs Without Site Membership:
Workgroup Name: -
Authentication Style: domain
CIFS Server Administrative Status: up
CIFS Server Description:
List of NetBIOS Aliases: -
netapp9101::>
上記の場合、「svm0」とIPアドレス指定でのアクセス以外は受け付けない。
他のホスト名でもアクセスできるようにするにはNetBIOS Aliasを追加する必要がある。
(なお、別途、標準では無効となっているNetBIOSを有効にする必要がある。ただし、これを有効にした場合、NetApp SVM名と同じNetBIOS名の告知も始めてしまうので注意)
netapp9101::> vserver cifs add-netbios-aliases -netbios-aliases WINSERVER -vserver svm0
netapp9101::> vserver cifs show -ins
Vserver: svm0
CIFS Server NetBIOS Name: SVM0
NetBIOS Domain/Workgroup Name: ADOSAKANA
Fully Qualified Domain Name: ADOSAKANA.LOCAL
Organizational Unit: CN=Computers
Default Site Used by LIFs Without Site Membership:
Workgroup Name: -
Authentication Style: domain
CIFS Server Administrative Status: up
CIFS Server Description:
List of NetBIOS Aliases: WINSERVER
netapp9101::>
さて、これでアクセスできるようになったかな?と試してみるが、同じエラーが継続
C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。
'winserver' のユーザー名を入力してください: ADOSAKANA\testuser1
winserver のパスワードを入力してください:
システム エラー 59 が発生しました。
予期しないネットワーク エラーが発生しました。
C:\Users\Administrator>
NetApp KB:Access by NETBIOS Alias fails に該当する問題だった。
今回のADOSAKANAドメインには、既に「WINSERVER」としてコンピュータアカウントがあった。
これが残っていると問題が発生するらしい。
まず、Windows上からコンピュータアカウントWINSERVERに関する情報をsetspn -lコマンドで確認すると下記の様な内容で登録されていた。
C:\Users\Administrator>setspn -l winserver
次の項目に登録されている CN=WINSERVER,CN=Computers,DC=ADOSAKANA,DC=LOCAL:
HOST/winserver.adosakana.local
RestrictedKrbHost/winserver.adosakana.local
HOST/WINSERVER
RestrictedKrbHost/WINSERVER
WSMAN/winserver.adosakana.local
WSMAN/WINSERVER
TERMSRV/winserver.adosakana.local
TERMSRV/WINSERVER
C:\Users\Administrator>
次に、NetApp SVMとして登録されているsvm0について確認してみると、だいぶ少ない内容で登録されていた。
C:\Users\Administrator>setspn -l svm0
次の項目に登録されている CN=SVM0,CN=Computers,DC=ADOSAKANA,DC=LOCAL:
HOST/SVM0
HOST/svm0.adosakana.local
C:\Users\Administrator>
まず、WindowsのActive Directgory側でコンピュータアカウント「WINSERVER」を削除。
続いてNetApp KBにあるようにsetspn -aコマンドでWINSERVERをsvm0に追加する形で登録
C:\Users\Administrator>setspn -a HOST/WINSERVER svm0
ドメイン DC=ADOSAKANA,DC=local を確認しています
CN=SVM0,CN=Computers,DC=ADOSAKANA,DC=LOCAL の ServicePrincipalNames を登録しています
HOST/WINSERVER
更新されたオブジェクト
C:\Users\Administrator>
どのような登録になったのかを確認してみると、svm0の出力にwinserverが追加されており、winserverというエントリは無くなったことが分かる。
C:\Users\Administrator>setspn -l svm0
次の項目に登録されている CN=SVM0,CN=Computers,DC=adosakana,DC=local:
HOST/SVM0
HOST/svm0.adosakana.local
HOST/WINSERVER
C:\Users\Administrator>setspn -l winserver
FindDomainForAccount: DsGetDcNameWithAccountW への呼び出しが失敗し、戻り値 0x00000525 が返されました
アカウント winserver は見つかりませんでした
C:\Users\Administrator>
この状態で先ほどエラーになったnet useコマンドを実行すると、正常に実行ができる。
C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。
'winserver' のユーザー名を入力してください: adosakana\testuser1
winserver のパスワードを入力してください:
コマンドは正常に終了しました。
C:\Users\Administrator>