筆者は、特定のLinux Distributionを長期間使用する事はあまり無いのですが、Debian Buster stable ベースや、Ubuntu 20.04 LTS ベースをインストール・セッティングするにあたり、概ね数時間を要する事が多く、この際、wifiが割に切れまくる事に違和感を感じていました。設定対象マシンはThinkpad X250、Thinkpad E570, Thinkpad T480sであり、それぞれ異なるインテル製内蔵Wifiカードを搭載しているため、全機種で同じようにWifiが切れまくるという現象は、ドライバーが原因では無いと判断しています。
このため、今回は、Linux Mint 20 Xfce edition(Ubuntu 20.04 LTSベース)を使って、この現象の簡易検証と応急措置に関して投稿していきます(使用マシンは、Thinkpad T480sです)。
最初にDHCP関連のログを追いかけてみましたが、どうやら、3600秒(1時間)毎にIPv4 アドレスがリリースされるようになっているものの、アドレスの再取得フェーズで結果的にターミネートされている模様。
NetworkManager[565]: <info> [1601065531.1883] dhcp4 (wlp61s0): option dhcp_lease_time => '3600'
NetworkManager[576]: <info> [1601057449.6893] dhcp4 (wlp61s0): state changed bound -> expire
NetworkManager[576]: <info> [1601057539.9579] device (wlp61s0): DHCPv4: grace period expired
NetworkManager[576]: <info> [1601058184.3715] dhcp4 (wlp61s0): state changed expire -> done
・・・・・・・・
試しにpgrepで、dhclientが常駐しているかどうかを確認すると、常駐していません。
もう少しこの現象は使用中のプロバイダーから提供されたホームゲートウェイも含めて検証が必要ですが、とりあえずNetwork Managerのコンフィグファイルを触って、DHCP clientを強制的にdhclientに変更し、応急措置をした上で、根本的な解決策を探っていく事にしました。
今回Ubuntu 20.04 LTSとこれをベースとしたDistributionは、Built in DHCP clientが使用されている節がありますが、これをdhclientに変更するためには、 /etc/NetworkManager/conf.dディレクトリー配下に、dhcp-client.confの内容を以下の体裁で作成する必要があります(これは、Network Managerのconfigドキュメントに記載されています)。
[main]
dhcp=使用するdhcpクライアント
具体的には、dhcp-client.confは、以下の内容で作成します。
以上で、再起動すると、DHCP clientは、dhclientに変更され、dhclientは、常駐します。
上記設定で、IPv4接続が1時間毎に切れるという現象はなくなりますが、ログファイルにはapparmorのエラーメッセージが頻繁に出力されるようになり・・・^^;。。
--------------
kernel: audit: type=1400 audit(1601105854.014:27): apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/994/task/996/comm" pid=994 comm="dhclient" requested_mask="wr" denied_mask="wr" fsuid=0 ouid=0
--------------
このエラーを抑制するためには、apparmorのdhclientプロファイルをdisableにするしか方法がありません。・・・・このために、以下コマンドを順次投入し対処します。
まず、プロファイル sbin.dhclientのシンボリックリンクを
/etc/apparmor.d/disableディレクトリ直下に作成します。
→sudo ln -s /etc/apparmor.d/sbin.dhclient /etc/apparmor.d/disable
次に、 カーネルにロードされた、apparmorのdhclientプロフィルを削除します。
→sudo apparmor_parser -R /etc/apparmor.d/sbin.dhclient
以上で、apparmorのエラーは止まります。
あくまでも応急措置のため、dhclientの細かいコンフィグは行いませんでしたが、とりあえず、これで、IPv4接続が1時間単位で切れるという問題はなくなりました。
今後は、ホームゲートウェイと built-in DHCPクライアントの正しいconfig内容を調査・検証していく事にしています。
友人とマイクラサーバーを建てるために以前使っていた自作PCにUbuntu Desktop 20.04.1 LTSをインストールして、サーバーを立てMODを導入しプレイしています。自宅では接続が切れることなく安定して使用できていましたが、友人宅にて稼働開始したら、1時間おきにネットが切断され、Ubuntu のネットワーク設定のところで接続をオンオフにする必要があり大変不便です(汗)
返信削除我が家の回線はニューロ光 ルーターはZXHN F660A
友人宅はau光でルーターがBL900HWです。
どちらも有線です。
自作PCのマザボはGA-H170-D3HP (rev. 1.0)でLANはIntel® GbE LAN chip (10/100/1000 Mbit)です。
こちらのページを参考にして対処しようとしていますが、Linux初心者為、 /etc/NetworkManager/conf.dのディレクトリ等がみつからず、立ち往生しております((涙)
cat / /etc/NetworkManager/conf.d
のcatは自分のホームフォルダでしょうか?
設定は標準のターミナル(端末)では無理ですか?pgrepが必要でしょうか?
色々とわからないだらけな状態ですがよろしくおねがいします。
ブログ中のcatは、作成したルートディレクトリ直下/etc/NetworkManager/conf.d/dhcp-client.confを表示させているだけです。ホームディレクトリ直下ではありません。/etc/NetworkManagerディレクトリは存在するはずですので、この下にconf.dディレクトリが無い場合はこれをルート権限で作成します。conf.dディレクトリの下にdhcp-client.confを上記ブログの内容で作成します。これもルート権限で作成します。editorは何を使用しても構いません。dhclientが常駐しているかどうかを確認するためにはpgrepを使いますが、これはpre-installされているはずです。通常のターミナルを使用して上記作業を行います。ルート権限での作業はsuを使ってrootに切り替えるか、sudoコマンドを使用します。尚当方の環境は有線はありません。wifiのみのインターネット接続環境ですが、ホームゲートウェイはBL902HWとなっています。
削除ご連絡ありがとうございます。
削除丁寧に説明ありがとうございます。cd でルートに行っていると勘違いしていました。
無事1時間切断が解決できました、この度はありがとうございました。