web-dev-qa-db-ja.com

fstabのCIFSマウントがIPで成功し、/ etc / hostsに書き込まれたホスト名で失敗する

Ubuntu Server 14.04 LTSでfstabからのホスト名の解決に問題があるのはなぜですか。次のエントリをマウントしようとしました:

//NAS-5h2-20/backuppc/  /mnt/backuppc   cifs   auto,user=THEUSER,password=THEPASSWORD,cifsacl,uid=109      0       0

マウントはエラーで失敗します

mount: wrong fs type, bad option, bad superblock on //NAS-5h1-15/backuppc,
   missing codepage or helper program, or other error
   (for several filesystems (e.g. nfs, cifs) you might
   need a /sbin/mount.<type> helper program)
   In some cases useful info is found in syslog - try
   dmesg | tail  or so

syslogエントリ:

Unable to determine destination address.

しかし、ホスト名NAS-5h2-20をIP192.168.1.29に交換すると、これは魅力的なように機能します。ただし、移植性の理由から、fstab内のホスト名でマウントをマップしたいと思います。

/ etc/hostsの内容は(他の行の中で):

192.168.1.28    NAS-5h1-15
192.168.1.29    NAS-5h2-20
192.168.1.30    NAS-6h1-04

これらのホスト名はローカルDNSサーバーに登録されていません。また、場合によっては、DNSとサーバー内部で異なるIP(servercluster/workstation)を使用できるようにするため、DNSに登録できません。

それも問題ありません

ping NAS-5h2-20

したがって、私はそれがリゾルバの問題だと確信しています。しかし、どこにあるのかわかりません。私はnsswitch.confを見て、特別なことは何もありません。

passwd:         compat
group:          compat
shadow:         compat
hosts:          files dns
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis

また、/ etc/resolv.confも問題ありません。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.1
search ourdomain.local

だから、質問:-リゾルバーが読み取りに失敗するのはなぜですかORこの特別な場合、hostsファイルを無視しますか?
-DNS/WINS /他の解決方法がmount.cifsにハードコーディングされていますか?

10
Nachtexpress

デフォルトでは、一部のディストリビューションのsamba(cifs)パッケージは、名前を解決するためにhostsファイルを使用しません。代わりに、NetBIOS名を使用してIPに解決します。これには2つの方法があります。

  • 解決にhostsファイルを使用するようにsambaを設定します。

Smb.confファイルで、次の行を見つけて変更または作成します。

    [global]
    name resolve order =  hosts lmhosts wins bcast

sambaを再起動します。これにより、sambaは最初にhostsファイルを使用して名前を解決するように設定されます。さらに、machine-name.domainnameをホストファイルのエイリアスとして追加しました。

    192.168.1.28    machine-name    machine-name.domainname
  • 接続しようとしているマシンのNetBIOS名を設定します。

接続しようとしているマシンで、smb.confファイルに次のように設定します。

    netbios name = MachineName

sambaを再起動します。


理想的には、これらの両方を実行したいのですが、sambaがhostsファイルを使用するように設定するだけでうまくいくはずです。

参照: https://www.samba.org/samba/docs/using_samba/ch07.html

8
Tiksi