Sambaサーバに名前でアクセスできない問題解決
状況としては、LAN内の別のマシンからSamba名でアクセスすることができない。IPアドレスを指定するとブラウジングできる。日本Sambaユーザ会 - Sambaが動作しないときの診断方法に従って調べてみると、どうもnmblookupしたときのブロードキャストに反応がないようだ。
# nmblookup -d 5 knzm ... querying knzm on 192.168.0.255 Sending a packet of len 50 to (192.168.0.255) on port 137 Sending a packet of len 50 to (192.168.0.255) on port 137 Sending a packet of len 50 to (192.168.0.255) on port 137 name_query failed to find name knzm
そう思って調べてみると、
# iptables -nL INPUT | grep 192.168.0.255 DROP 0 -- 0.0.0.0/0 192.168.0.255
これじゃダメじゃん。
# iptables -D INPUT -d 192.168.0.255 -j DROP
としたら、
# nmblookup -d 5 knzm ... querying knzm on 192.168.0.255 Sending a packet of len 50 to (192.168.0.255) on port 137 Received a packet of len 62 from (192.168.0.2) port 137 nmb packet from 192.168.0.2(137) header: id=20281 opcode=Query(0) response=Yes header: flags: bcast=No rec_avail=Yes rec_des=Yes trunc=No auth=Yes header: rcode=0 qdcount=0 ancount=1 nscount=0 arcount=0 answers: nmb_name=KNZM<00> rr_type=32 rr_class=1 ttl=259200 answers 0 char ...... hex 0000C0A80002 Got a positive name query response from 192.168.0.2 ( 192.168.0.2 ) 192.168.0.2 knzm<00>
となって、名前解決ができるようになった。
ちなみに、iptablesの設定を変更した場合は
# /etc/rc.d/init.d/iptables save
とすると設定が/etc/sysconfig/iptablesに保存される。