Linuxで、/etc/nsswitch.conf
のhosts
行にwins
と記入するとLinuxからNetBIOS名前解決できるという技があるのです。例えば
hosts: files wins dns myhostname
こんなふうに記入すると
$ ping windowsPC
PING windowsPC (192.168.0.32) 56(84) bytes of data.
こんな感じで名前解決ができるというものです。
これをCentOS7でやろうとしたら、意外とはまったので以下作業メモになります。バージョンは CentOS Linux release 7.3.1611 (Core)、x86_64版です。
#手順
まずsambaとwinbindをインストールします。
# yum install samba
# yum install samba-winbind
systemctl
コマンドでデーモンを立ち上げます。
# systemctl start winbind
# systemctl enable winbind
# systemctl start nmb
# systemctl enable nmb
# systemctl start smb
# systemctl enable smb
ファイアーウォールに穴をあけます。
# firewall-cmd --zone=public --add-service=samba --permanent
/etc/nsswitch.conf
にwins
を書き加えます。
hosts: files wins dns myhostname
以上!
。。。なのですが、ここまでやってもダメな場合があります。
現象としては、ホストによっては名前またはサービスが不明です
ではなくシステムエラー
が出るというものです。
$ ping windowsPC
ping: windowsPC: システムエラー
再現条件は、どうやら複数のネットワークインターフェースを持つWindows相手だと出るらしいのですが、原因は不明です。Ubuntuでは出ない現象なので、CentOS固有のバグかもしれません。
#参考
Microsoft Windows ネットワークへのSambaの統合
公式のSamba 3.2.x HOWTOとリファレンスガイド, Chapter 29
http://www.samba.gr.jp/project/translation/Samba3-HOWTO/integrate-ms-networks.html