Armadilloフォーラム

動作運用中に、”/etc/resolv.conf”に記載しているDNSサーバ情報がなくなり、名前解決ができなくなる現象について

secual.satoh

2023年1月13日 10時57分

Armadillo640を使用し、管理サーバへのデータ配信を、1年以上動作していた環境で、機器からのデータ配信が停止したことから、調査した所、突然にサーバの名前解決が行えない現象が発生しました。
暫定的な解決方法として、再起動(reboot)で現状復旧。

【質問事項】
・機器の再起動で復旧していますが、”/etc/resolv.conf”に設定されたDNS情報が消える要因は何が考えられるでしょうか?
・”/etc/resolv.conf”のファイル内容を再起動せずに復旧させる方法はあるでしょうか?

ご存じの方がいらっしゃればご教示頂きたくお願いいたします。

当時の確認状況

【サーバへのデータ配信停止時(名前解決せず)】
root@armadillo:/etc# cat /overlay/system/etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
root@armadillo:/etc# cat /etc/resolv.conf
root@armadillo:/etc#
root@armadillo:/etc#ls -la
-rw-r--r-- 1 root root 0 Dec 21 18:34 resolv.conf

【再起動後】
root@armadillo:/etc# cat /overlay/system/etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
root@armadillo:~# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 208.67.222.222

コメント

at_akihito.irie

2023年1月13日 13時20分

入江です。

> ・機器の再起動で復旧していますが、”/etc/resolv.conf”に設定されたDNS情報が消える要因は何が考えられるでしょうか?

NetworkManagerがresolv.confを勝手に更新しているようですが、Armadillo-640は
NetworkManagerをサポートしていません。

お客様がネットワークの設定にNetworkManagerを使用されている場合は、製品マニュ
アルの以下の箇所を参考に設定をNetworkManagerを使用しない方法に切り替えていた
だくのが正しい運用方法です。
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…

> ・”/etc/resolv.conf”のファイル内容を再起動せずに復旧させる方法はあるでしょうか?

復旧させる方法ではありませんが、NetworkManagerがresolv.confを生成しないようにす
る設定はあります。
https://centos.bungu-do.jp/archives/472

しかし、前述の通りArmadillo-640ではNetworkManagerの動作をサポートしないので、
NetworkManagerを使用しないことを強く推奨します。

入江様
早々のご連絡ありがとうございます。
以前から、ご連絡頂いたサイトを参考に、固定IPで設定しており、NetworkManagerの使用をしていないつもりですが、
cat /etc/resolv.confを参照すると、”# Generated by NetworkManager”で表示されます。
また、/etcフォルダ内に、NetworkManagerフォルダもありませんでしたが、NetworkManagerの実行確認方法などありましたら、
ご教示頂きたくお願いいたします。

【各コマンド実行】
root@armadillo:~# ip address
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:0c:2a:29:b4 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.5/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
root@armadillo:~#

root@armadillo:~# ip link
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:11:0c:2a:29:b4 brd ff:ff:ff:ff:ff:ff
root@armadillo:~#

root@armadillo:~# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo eth0
iface lo inet loopback
#iface eth0 inet dhcp
iface eth0 inet static
address 172.17.0.5
netmask 255.255.0.0
network 172.17.0.0
broadcast 172.17.255.255
gateway 172.17.0.1

root@armadillo:~# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
root@armadillo:~#

root@armadillo:/etc# uname -a
Linux armadillo 4.14-at11 #1 Tue Jan 29 10:11:05 JST 2019 armv7l GNU/Linux

入江様
NetworkManager のサービスのステータスも確認してみましたので、追記致します。

root@armadillo:~# service NetworkManager status
Unit NetworkManager.service could not be found.
root@armadillo:~#

at_akihito.irie

2023年1月18日 12時57分

入江です。

追加の情報ありがとうございます。

確かなことは言えませんが、NetworkManagerでないのであれば、疑わしいのは
dhclientがresolv.confを変更した線です。
しかし、dhclientによってresolv.confが空になるケースがあるかはわかりかねます。

dhclientが原因である場合は、/etc/dhcp/dhclient.confにオプションを追加
することで、dhclientがresolv.confを変更しないようにしたり、変更したと
しても必ず固定で任意のDNSサーバのIPアドレスを付け加えるようにするなど
の設定を行なうことが可能なので試してみてください。

参考
https://linuxjm.osdn.jp/html/dhcp2/man5/dhclient.conf.5.html

※dhclientがresolv.confを書き換えても、必ず8.8.8.8はDNSとして残す設定例

[armadillo]# echo "prepend domain-name-servers 8.8.8.8;" >> /etc/dhcp/dhclient.conf

もちろんdhclient以外が原因の可能性もあります。
原因を探るのであれば、resolv.confの中身が消えた時のsyslogなどが見れれ
ば何かわかるかもしれません。

また、inotifyや、fanotifyなどを利用して/etc/resolv.confの変更を監視す
ることができます。

当方では試してはいませんが、特にfanotifyではファイルにアクセスしたプロ
セスを特定することもできるので試してみるのも良いかもしれません。
原因の調査を行なう際には調べてみてください。

参考
https://www.nminoru.jp/~nminoru/programming/file_change_notification.ht…
https://qiita.com/stc1988/items/464410382f8425681c20

To: 入江様

情報を頂きありがとうございます。

前任者が環境構築していたこともあり、ルータも含め確認してみたところ、該当のarmadilloについて、固定IP(/etc/network/interfaces)で、登録を行っている環境で、
ルータにて、静的IP割り当て(同一固定IP)も行われていることがわかりました。

ルータで、DNS機能の障害が発生したかは、ログから判断できませんでしたが、ルータからDNS情報更新が行われた可能性があるかもしれません。
ルータ側の静的IP割り当てを削除し、頂いた情報と合わせ、経過観察をしたいと思います。

ご対応ありがとうございました。