web-dev-qa-db-ja.com

SMBパケットでACPI S3サスペンドLinuxシステムをウェイクアップすることは可能ですか?

電力を節約するために、かなりの時間アイドリングした後、Debian NASシステムをRAMモード(ACPI S3)に移行させたい。 NICを、ユニキャストSMBパケットを待機してからウェイクアップするモードにすることを検討しました。これは、たとえば、 TVはNASからいくつかのコンテンツをストリーミングしたいと考えています。おそらくethtool -s eth0 wol pのようなもので可能であり、phyはいくつかのSMBユニキャストパケットに等しくなります。

このようなことは可能ですか?達成するのはそれほど難しいことではないはずですが、おそらく私は間違っています。

1
JohnnyFromBF

はい、可能です。次のことを行う必要があります。

aptitude install pm-utils
cd /usr/lib/pm-utils/sleep.d/
touch 70wol

以下を70wolに入れます

#!/bin/bash
ethtool -s eth0 wol pug

シェルに戻り、スクリプトを実行可能にします。

chmod +x 70wol

次に、ACPIS3サスペンドを実行します。

pm-suspend

これで、ICMP、SSH、SMBなどのパケットでシステムをウェイクアップできるようになります。

WindowsとLinuxの両方に30秒のARPキャッシュタイムアウトがあるという事実を忘れないでください。だから後

pm-suspend

ネットワーク上の他のマシンは、システムをウェイクアップするのに約30秒しかありません。その期間が過ぎると、ターゲットシステムにパケットを送信するためのMACアドレスがなくなるためです。

静的ARPアドレスで修正できます。各システムで、NASシステムをウェイクアップできるようにしたい場合は、Windowsで次の手順を実行します

arp -s 10.0.0.200 00-10-54-CA-E1-40

linuxでは以下

arp -s 10.0.0.200 00:10:54:CA:E1:40

NASホームサーバーがあり、24時間年中無休で実行されるべきではない場合はかなりきちんとしたセットアップです。シェルスクリプトをcronジョブとして記述し、NAS =たとえば5分間非アクティブになった後のサーバー。

これは、カーネル3.12を使用したDebianテストと、Intel I217-VNIC用の最新のIntele1000eドライバーで行いました。

2
JohnnyFromBF

それは可能であり、Windowsは実際にはデフォルトでネットワークカードのウェイクオンパターン機能を使用します。

ある種の特別なデータパケットには、ウェイクアップパターンが含まれています。デフォルトでは、WOLを有効にすると、Windows7およびWindowsVistaは次のパケットをリッスンします。

  • ネットワークアダプタのMACアドレスへのダイレクトパケット
  • ローカルコンピュータ名のNetBIOS名前解決ブロードキャスト
  • ネットワークアダプタのIPv4アドレスのアドレス解決プロトコル(ARP)パケット
  • ネットワークアダプタの要請ノードマルチキャストアドレスのIPv6近隣探索パケット

http://support.Microsoft.com/kb/941145

ただし、そのリストにはユニキャストSMBパケットが含まれていないことに注意してください。なぜですか?SMBパケットは、TCP =接続が確立され、その前に、クライアントはサーバーのハードウェアアドレスを見つける必要があります– IPv4のARPまたはIPv6の近隣探索のいずれかを使用します(NetBIOSを使用した名前解決もリストにありますが、LLMNRはリストにありません。理由。)したがって、非常によく似たフィルターリストを作成する必要があります。少なくとも、ARPと近隣探索を含むものです。

1
user1686