CentOS
samba
centos7

CentOS7でNetBIOSホスト名解決

More than 1 year has passed since last update.

Linuxで、/etc/nsswitch.confhosts行にwinsと記入するとLinuxからNetBIOS名前解決できるという技があるのです。例えば


/etc/nsswitch.conf

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.confwinsを書き加えます。


/etc/nsswitch.conf

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