NetworkManager ブリッジインターフェイスに接続されたネットワークカードを使用した Wake on LAN

NetworkManager ブリッジインターフェイスに接続されたネットワークカードを使用した Wake on LAN

私はqemuを実行するDebian Bookwormであるハイパーバイザー用の環境を設定しようとしました。

私は端末があまりにも乾燥しているときにコンテンツを見ることができるようにWebインターフェースCockpitを使用してきました。しかし、systemd-nerworkdそうしながらNetworkManager

最近では、仮想マシンとホストが互いに通信できるようにブリッジネットワークを作成する方法を学びました。ただし、これを実行した後、ウェイクネットワークが動作を停止しました。これで、ルータがネットワークカードのMACアドレスではなく、ブリッジのMACアドレスを「認識」しているため、これが予想されることがわかります。

私が知る限り、wakeonlanはネットワークモデルのMACレベルで動作します。arping私はネットワークの他のクライアントでそれを試しましたが、私のハイパーバイザー(ブリッジ)のMACアドレスを「見る」ことができませんでした。

今、ウェイコンランと同時に足を持つことは不可能かもしれないと思い始めました。可能ですか?では、どうすればよいですか?使用するのが最善ですNetworkManager

答え1

Wake on LANはハードウェア機能です。これは、ルーティングに参加するプライマリインターフェイス(ブリッジ)に到達するためではありませんが、常に物理インターフェイス(ブリッジポートに設定されている物理NICインターフェイス)に到達します。 Wake-On-LANの一般的な方法はMagic Packet(1995年オリジナルAMDホワイトペーパー:PDF)を別の方法(ユニキャスト、ブロードキャスト、ARPなど)の代わりに使用して、不要な偽の目覚めを防ぐことができます。

ethtool通常、eth0Wake on LANは次のように(たとえば、on)有効にできます。

ethtool --change eth0 wol g

与える:

# ethtool eth0 | grep -i wake
    Supports Wake-on: pumbg
    Wake-on: g

ただし、実際に特に明記しないと、NetworkManagerは一時停止前または一時停止後に再管理するインターフェイスでWake on LANを無効にして、最初または2回目(および再起動後)に失敗する可能性があります。だからこれだけでは十分ではありません。 NetworkManagerは、このインターフェイスでWake on LANを使用するように指示する必要があります。

nmcliGUIが利用可能な場合は、GUIアプレットを使用して次のコマンドを完了できます。

たとえば、NetworkManagerが次の接続名を持ち、Bridge connection 1スレーブインターフェイスの場合、Ethernet connection 1その機能はで有効にする必要がありますEthernet connection 1

# nmcli connection show id 'Ethernet connection 1' | grep -i wake
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --

この内容は次のように記録されます。nm-settings-nmcli(5):

802-3-ethernet.wake-on-lan

NMSettingWiredWakeOnLan オプションを有効にします。すべてのオプションがすべてのデバイスでサポートされるわけではありません。 「phy」(0x2)、「unicast」(0x4)、「multicast」(0x8)、「broadcast」(0x10)、「arp」(0x20)の組み合わせが可能です。「魔法」(0x40)または、特殊値「デフォルト」(0x1)(グローバル設定を使用)および「無視」(0x8000)(NetworkManagerでWake-on-LAN管理を無効にする)。

他の場所にデフォルト値がある可能性がありますが、これを明示的に設定すると、magicWake on LANはこのインターフェイスで有効になります。

次のようにマジックに設定してください。

nmcli connection modify 'Ethernet connection 1' 802-3-ethernet.wake-on-lan magic

NetworkManagerはこの設定をただちに(または後でnmcli connection reload)適用しない可能性があるため、上記のように(必要に応じてインターフェイス名を変更する)、この設定を構成した後は一度だけ手動で設定する必要があります。

ethtool --change eth0 wol g

今使用法について。ブリッジのイーサネットMACアドレスがNICのイーサネットMACアドレスと同じである理由はありません。これは明示的にデフォルトではありません。近代的なシステム(NetworkManager自体がそれをブリッジにコピーすることを選択することもできます)。したがって、ARPがまだ同じLAN上のシステムキャッシュにある場合でも、Magic Packetを物理インターフェイスにインポートする正しい方法ではありません。中断すると、物理インターフェイスは無差別モードに維持できなくなります(ブリッジポートであるため)。それにもかかわらず、キャッシュエントリがシステムキャッシュから削除されると、これらのARPも失敗します。

IPをペイロードメカニズムとして使用する場合は、必ずARP検証を試みずにMACイーサネットブロードキャスト宛先(FF:FF:FF:FF:FF:FF)として識別される宛先を使用してください。 LAN ブロードキャスト 255.255.255.255 またはダイレクト ブロードキャスト (たとえば、LAN 192.168.1.0/24 の 192.168.1.255)。

たとえば、ネットワークカードのMACアドレスが12:34:56:78:9a:bcの場合を使用するには、wakeonlan次の手順を実行します。同じLANで:

wakeonlan 12:34:56:78:9a:bc

または、システムが 192.0.2.0/24 や 192.168.1.0/24 などの複数の LAN にアクセスでき、覚醒するシステムが後者にある場合:

wakeonlan -i 192.168.1.255 12:34:56:78:9a:bc

他のツールには追加機能がある場合とない場合があります。たとえば、etherwakeインターフェイスを指定する必要があり、IPは使用されませんが、イーサネットタイプ0x0842が使用されます。これはWake on LAN用に予約されている事実上のタイプ(使用する必要はありません)です。または十分な機能を使用してください。

etherwake -i eth0 12:34:56:78:9a:bc

これは質問の範囲外ですが、指示を提供するには、インターネットを介したリモートウェイクアップにはインターネットゲートウェイの助けが必要です。つまり、カスタムソフトウェアを実行するか、ブロードキャストをNATする必要があります。ルート指向ブロードキャストを有効にするこれはセキュリティ上の理由から、デフォルトでは常に無効になっています。。上記のように、永続ARPアドレスを設定することは通常ブリッジには役立ちませんが、徐々に進む永続ARPアドレスは、この目的のためにLANに仮想IPアドレス(ブリッジインターフェイスに存在しないものを含むどこにも使用されません)を予約してシステムを起動するために使用されます。

関連情報