最近、自宅ネットワークで新しいパソコンが、ネットワークに接続できなくなるトラブルが発生する。
再起動などがかかれば、普通にネットワークにつながるので、多少不気味ながらもそのままだった。
しかし、うちの奥さんのノートPCも、出先から帰ってきたらつながらない。
IPアドレス取得に失敗しているっぽいので、dhcpサーバの設定を疑う。
今まで、長年運用していた dhcpd.conf ファイルなので、壊したとも思えなかったが、
試しに、dhcpサーバの再起動をすると、普通に接続が回復した。
ということで、
"grep dhcpd /var/log/syslog"で履歴を眺めると、下記のようなメッセージが
あったので、色々と調べてみた。
...: DHCPINFORM from 192.168.X.XX via eth0:
not authoritative for subnet 192.168.X.0
...: If this DHCP server is authoritative for that subnet,
...: please write an `authoritative;' directive either in the
...: subnet declaration or in some scope that encloses the
...: subnet declaration - for example, write it at the top
...: of the dhcpd.conf file.
DHCPサーバは、クライアントが使いたいIPアドレスを要求してきたとき、
サーバがこのセグメントでは正しくないと"DHCPNAK"を返すことで、
クライアントは新しいIPアドレスを要求する。
どうも、この辺で"威厳のない"設定だと、再取得に問題がでるみたい。
"とっとと新しいアドレスを要求してこんかぃ"と、「威厳をもって」返答するために、
subnet文の内部に"authoritative;"を書くといいみたい。
当初、"authoritative"を記載させてみたけど、端末をau回線に切り替えてから、自宅回線にもどすと、やはりDHCPでアドレスが取れなかった。逆に、"not authoritative"を記載したら、うまく繋がった。うーん、よくわからん....
subnet 192.168.X.0 netmask 255.255.255.0 {
not authoritative;
(略)
}