数日前からメインパソコンとなっているラズパイ400で内蔵LANポートにおける有線LANを認識しない状況に遭遇しました。
数本、LANケーブルを替えても同じ状況。
再起動するとネット接続できたりもするものの、ネット接続できるときもできないときも共に[設定]パネル上にこれまではあったトグルボタンなど[自動 Ethernet]系の表示がなくなっていることに気づきました。
他方、LANポートUSBアダプタをつなぐと[設定]パネルに有線LANを有効にするON/OFFトグルと連動するラベル、速度が表示されつつ、ONにすれば、ネット接続もでき、USB Wi-Fiアダプタも認識されネット接続できました。
ifconfigしてみるとeth0がなく、USB LANアダプタをつなぐとeth1はある状況。
尚、自身は、従前より、/etc/netowrk/interfaces.d/以下のファイルと/etc/dhcpcd.confを併用し、ネットワークインタフェースeth0からbr0にブリッジ接続して運用していました。
頼みのnmtuiしてみると[自動 Ethernet]のような設定はあるものの、アクティベートできず、eth1があるときはnmtui設定上も[有線接続 1]といった接続設定も表示され、アクティベートされている、bridge-br0は常にアクティベート状態。
これまでnmtuiでは全く意識したことがなかったbridge-br0ですが、設定内容を覗いてみるとIPはDHCPによる自動配布、他方、固定IP設定もできるようになっており、固定して設定、そのままではifconfig結果なども変化がなかったのでUSB LANアダプタを外しつつ、マシンを再起動。
するとbr0に指定したIPで固定・設定され、ifconfig結果にIPアドレスが振られていないeth0も表示されるようになり、ネット接続もできるようになりました。
従前設定では、br0に固定IP、eth0にDHCPによる自動配布のIPが振られていたりしたこともあり、なんで?どうやったら固定のみにできるのと思いつつ、機能はしていたので放置していましたが、これも解消したようです。
とりあえず、解決したようですが、また何か起こるのか?
なんでネットワーク設定の方法がこんなにしょっちゅう変わるの?にしても、そのたびにアナウンスはあったのかな?
とは言え、nmtuiを使うまでもなく、IP固定もしているdynabook/Debian Bookwormでは、こうしたことは起きていないのでラズパイOS Bookworm固有の症状?
Orange Pi Zero 3の設定をしている内、今更ながら、NetWorkManagerで端末から(nmcuiよりも遥かに)nmtuiを使えば、Debianのネットワーク設定が簡単なことを知りました。
そんな自身が言うのもなんですが、端末からsudo nmtuiを実行すると[接続の編集]、[接続をアクティベートする]、[システムのホスト名を編集する]といった選択肢が表示されます。
[接続の編集]で有線や内蔵無線、接続してあれば、USB Wi-Fiドングルなどが表示されているので無線については、SSIDを選択後、タブや右矢印キーで右に移動し、[編集]からSSID/PASSPHRASE、以降は有線含め、IPv4/IPv6設定などができ、自動ならDHCPで自動配布(デフォルト)、そうでなければ、[表示する]などを選択して項目を表示して固定IPを設定することができるようになっています。
前の画面に戻って[接続をアクティベートする]で必要な選択肢を、[アクティベート](≒有効化)すれば、起動時、自動接続されるようになります。
ちなみに[システムのホスト名を編集する]なら、面倒なことなく、他デバイスからsshなどなら接続/再接続で即(自端末なら再ログイン後には)、変更されるので便利です。
Buster含む以降、アップグレードする度、悩んでいたのはなんだったんだろうとポカーンとするほど、楽...。
dynabook B45/DebianやRaspberry Pi 400/Raspberry Pi OS bullseyeで有線LANでは問題ないながら、いつからか無線LANのみだとpingも通らず、ssh接続もネット接続もできなくなっていることに気づき対処した話。
尚、有線も無線も同一ネットワークアドレス内のIPアドレスも配布されているのにです。
そんな折り、タイムリーにもDebianメジャーバージョンがリリースされていたので比較のためにもと昨日、dynabook B45のDebian 11.7 bullseyeを12.0 bookwormにアップグレードした直後も同様でしたが、これも解決。
結果、対処する前の状態としてNetworkManagerからイーサネットのON/OFFができないのは同様ながら、Raspberry Pi OS bullseyeでは、GUIのNetworkManagerのイーサネット部に[有線 管理対象外]という表示がある、他方、Debian bookwormには、この表示がないという違いだけでした。
自身の環境においては、bullseyeやbookworm何れのOS上にもKVM、LXD/LXC、Waydroid、VirtualBox等々をインストールしてあるからかifconfigやip aするとブリッジと思われるインタフェースがたくさんあります。
この内、e*とeで始まる有線イーサネット、w*とwで始まる無線・Wi-Fiにおいて前者の代わりにブリッジ用インタフェースbr0を使う前提の話です。
また、Wi-FiはDHCPによるIPアドレス自動配布ですが、有線LAN側のブリッジであるbr0については、固定IPで確認したこともあってDHCPでのIP自動配布は未確認です。
IP固定については、ルーターで個別設定できるか、DHCP配布のアドレス範囲指定、DHCP配布の開始アドレスと総数を設定するなど環境に応じて予め設定しておく必要があります。
eで始まるイーサネット、ブリッジbr0、何れのインタフェースにもIPアドレスが振られており、あれ?これって前者には振られちゃいけないんじゃ?とは思っていました。
気づけば、/etc/network/interfaces.d以下にWi-Fi以外の設定ファイルが、また、/etc/dhcpcd.confの有効な設定が1つもない...、これが原因だよね...。
そう言えば、既に、この事象に遭遇していて、ごにょごにょやってみてできず終いなまま、放置していた気がしなくもない...。
が、修正後、正常にもどってみればブリッジ設定については、bullseyeとbookwormで次のように設定ファイルが異なる結果となりました。
でも、bookwormでは、/etc/dhcpcd.confのみに集約されたという話もあったような...、もしかしてブリッジの場合は、/etc/network/interfaces(.d)になる!?
Buster以来自身の中で混乱が混乱を呼び、Debianのネットワーク設定、何が正解かわからなくなってきました...。
対処している間に逆に無線がつながり、有線がつながらなくなったり、何れにせよ、外に対しては、google.co.jp等のIPv6のサイトは接続できるもyahoo.co.jp等のIPv4のサイトには接続できないという事象もあり、遠回りした感もあります。
が、サイトを失念も「ブリッジと対象のインタフェース双方にIPアドレスが振られていることに起因してとある不具合が起き、まさかその解消で解決するとは意外だった」といった旨の情報を見かけ、おかげで、やはり、そこかと焦点が絞れた気がしました。
ただ、修正後、bullseyeについては、確かにブリッジのネットワークインタフェースのみIPアドレスが振られ、ブリッジ対象のネットワークインタフェースにIPがは振られなくなりました。
が、他方、修正後もbookwormについては、ブリッジもブリッジ対象のネットワークインタフェースにもIPアドレスが振られた状態で正常に機能していることもあり、気になりつつも後者にIPアドレスを振られないようにする設定については未確認です。
bullseyeについては、まず、/etc/network/interfaces.d以下にブリッジ設定ファイルを追加、/etc/dhcpcd.confを編集。
尚、/etc/dhcpcd.confファイルがない場合、dhcpcd5パッケージが未インストールと思われるのでapt install。
これらファイルでは有線LANの設定のみに留めますが、無線LANも使う場合、少なくとも妥当な/etc/wpa_supplicant/wpa_supplicant.confファイルがあるものとします。
/etc/network/interfaces.d/eth0_br0は、こんな感じ。
/etc/dhcpcd.confは、こんな感じ。
当該ファイルの説明と共にある有効値は、極めて重要(bookwormには初めからあったかな?bullseyeからもってきたんだったかな?失念)。
bookwormでのブリッジ設定については、/etc/network/interfaces.d以下のファイルのみ。
これらファイルでは有線LANの設定のみに留めますが、無線LANも使う場合、少なくとも妥当な/etc/wpa_supplicant/wpa_supplicant.confファイルがあるものとします。
/etc/network/interfaces.d/eth0_br0は、こんな感じ。
が、bullseyeもbookwormも、ここでマシンを再起動...してもダメでした...。
これだけだとGUIのNetworkManager上においてイーサネットのON/OFFができなくなると同時にラズパイOS bullseyeの方はDebian bookwormにはない[有線 管理対象外]という表示もされます。
また、何れもeth0など元のインタフェースにDHCPから配布されるIPアドレスを割り当てようとしながらできない状態に...。
ただ、この時、sudo dhcpcd br0とすれば、dhcpcd.confで指定したIPアドレスがbr0に割り当てられ、初めてイーサネット接続が有効になる。
という状況になりました。
そこで、とりあえず、GUIで有線LANのON/OFF切り替えをさせるべく、Debianの公式ドキュメントを求めて[networkmanager]と[not managed]や[unmanaged]で検索。
結果たどり着いたNetworkManager - Debian WikiのWired Networks are Unmanaged/Enabling Interface Managementに答えがありました。
そこには「Debian Squeeze以来、/etc/network/interfaces(や/etc/network/interfaces.d以下)に任意のインタフェースが定義された場合、NetworkMangerは管理しない」とあります。
が、かろうじてSqueezeの次のコードネームwheezyあたりから使っている自身は知りませんでした。
尤も歴代のデスクトップPCやノートPC、今や3B+に載せ替えたRaspberry Pi 2 Model BサーバやRaspberry Pi 3 Model B+パソコンも移行したRaspberry Pi 400パソコンも基本、有線前提、Raspberry Pi/Julius/Open JTalkスマートスピーカー専用機は無線前提だったので有線/無線を切り替えることもなく、気づかなかっただけでしょうが。
とは言え、後には、「それに加えて/etc/NetworkManager/NetworkManager.confの[ifupdown]でmanaged=falseになっている場合にNetworkManagerでは管理しない」に変わったようですが。
ここに来て何か朧気な記憶が蘇りそうな雰囲気...と思ったら、自身のページDebian Buster 10.2で無線LANに苦戦・解決の備考でNetworkManagerと/etc/interfaces設定が排他であることについて書いていました...。
さておき、これをmanaged=trueとした後、systemdのサービスファイルNetworkManager(bullseyeより以前はnetwork-managerだったっぽい)を再起動することで[有線 管理対象外]という表記もなくなり、GUIのNetworkManager上でもイーサネットのON/OFFや設定ができるようになりました。
続いて/etc/dhcpcd.confでの静的IP設定において、なぜか、sudo dhcpcd br0を実行しないと同ファイルの固定IP設定がなされない問題への対処。
システム起動時、sudo dhcpcd br0を自動実行するために/etc/systemd/systemにサービスファイルを作成、登録することにしました。
これにより、ようやく、eth0にはIPが振られることなく、br0に/etc/dhcpcd.confで設定したIPアドレスが割り当てられるようになりました。
また、これらを正しく設定したことにより、有線LANだけでも、無線LANだけでもping、sshできるだけでなく、ネットにも接続できるようになりました。
無線LANについては、これらファイルに何を指定するまでもなく、起動時に自動でONになり、NetworkManagerのオプションで自動起動をOFFにすることもできました。
それにしても、このIP割当の追加作業が必要になるのは、なぜ...。
ん?DHCPサーバによるIP割当のためのコマンドと思い込んでいましたが、もしかしてdhcpサーバの有無(動的IPや静的IP)に関わらず、IPを振る手段は、[dhcpcd ネットワークインタフェース]ってこと?
Wheezy、Jessie辺りから使ってるのにBuster辺りから混乱中...、なかなか、理解できない...Debianのネットワーク...。
ちなみに[有線 管理対象外]への対処や対処の一部として[/etc/NetworkManager/conf.d/10-globally-managed-devices.conf]という空ファイルを作成...という情報もあったものの、bullseye以前の話だったのか、少なくとも今日時点では不要なようです。
Debian bookwormでもRaspberry Pi OS bullseyeでも先の設定のみでできた後、ものは試しと空ファイルも作って再起動してみましたが、状況は何ら変わらなかったので削除しました。