Wake-on-LAN信号がターゲットコンピュータに到達しません。

Wake-on-LAN信号がターゲットコンピュータに到達しません。

ファイアウォールの背後にあるターゲットコンピュータのスリープモード解除を実行したいと思います。対応する信号は、ポート9/udpに送信されるマジックパケットです。

私の信号は、ルーターを介して2つのイーサネットインターフェースを持つDebianサーバーに転送されます。これは "/etc/network/interfaces" ファイルです:

iface eth0 inet static (-->router)
  address 192.168.0.10
  netmask 255.255.255.0
  broadcast 192.168.0.255
  network 192.168.0.0
  gateway 192.168.0.1

iface eth1 inet static (-->local lan)
  address 192.168.1.10
  netmask 255.255.255.0
  broadcast 192.168.1.255
  network 192.168.1.0</span>

これは「route -n」コマンドの結果です。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

最後に、iptablesでdnatを作成するルールは次のとおりです。

iptables -A INPUT -p udp --dport 9 -i $RUTER_IFACE -j ACCEPT
iptables -A OUTPUT -p udp --sport 9 -d $LAN_NET -j ACCEPT
iptables -t nat -A PREROUTING -i $RUTER_IFACE -p udp --dport 9 -j DNAT --to $TARGET
iptables -A FORWARD -p udp --dport 9 -i $RUTER_IFACE -o $LAN_IFACE -j ACCEPT

まあ、トラフィックを確認した結果、マジックパケットがeth0インターフェイスに到着したことがわかりました。または、$ TARGETの値がIPアドレス(192.168.1.65など)の場合、パケットはeth0からeth1に移動して宛先コンピュータ(192.168.1.65)に到達します。ただし、$TARGET 値が IP 範囲 (例: 192.168.1.50-192.168.1.70) の場合、パケットは eth0 から eth1 に送信されず、ターゲット コンピューターに到達しません。

マジックパケットはIPではなくMACアドレスに送信されるため、IP範囲(1つのIPアドレスではない)を入力する必要があります。また、ローカル LAN 上のコンピュータには固定 IP はありません。 dnsmasqデーモン(Debianサーバー)はローカルコンピュータにIPをリースします。

まあ、問題はDebianサーバーのルーティングにあると思います。しかし、事実はどのように修正できるかわかりません。ご協力ありがとうございます。

私の英語が悪くてすみません。とても感謝しています。

答え1

あなたが達成したいのは「サブネット指向のブロードキャスト」だと思います。ここで、Wake on LAN パケットはルータの背後で実行されているすべてのデバイスに転送され、WoL パケットの情報が一致するとデバイスが起動します。

まず、サーバー/ルーター自体がWoL(ライン1)に目覚め、WoLパケット(ライン2)を送信する必要がある場合は、最初の2つのiptablesラインだけが必要です。ルーターの背後にあるホストに「外部」WoLパケットを送信したい場合は、この2行は必要ありません。

第二:WoLパケットは、ネットワーク上のすべてのコンピュータにパケットをブロードキャストする「ブロードキャストアドレス」に転送する必要があります。したがって、$TARGETに設定する必要があります192.168.1.255

また、IPv4転送を有効にする必要があります。

最後のiptablesコマンドは、FORWARDチェーンにこれらのパケットをドロップするルールまたは「DROP」ポリシーがある場合にのみ必要です。

関連情報