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でも先の設定のみでできた後、ものは試しと空ファイルも作って再起動してみましたが、状況は何ら変わらなかったので削除しました。