MAC経由でネットワークカードにpingを送信できますか?

MAC経由でネットワークカードにpingを送信できますか?

私のDebianコンピュータにNICカードがあります。コンピュータはオフになっていますが、後でウェイクオンLANマジックパケットを送信して、他のDebianコンピュータで起動するためにネットワークカードがオンになっていることを知っておく必要があります。カードのMACアドレスがあります。 MACでイーサネットカードをpingしてカードが開いていることを確認する方法はありますか?

ARPエントリを作成しようとしています。

arp -s 192.168.2.2 00-0c-0d-ef-02-03
ping 192.168.2.2

ただし、ネットワークカードにこのIPアドレスがないため、機能しません。したがって、ネットワークカードはping要求を受け取りますが、応答しません。この問題を解決する方法はありますか?

Wake-on-LANメッセージを送信するためにetherwakeパッケージを使用しています。

答え1

このツールを使用すると、より良い幸運を享受できますarping。このツールはpingレイヤ3で動作します。オープンシステム相互接続モデルarpingレイヤ2で作業している間。

ただし、このツールを使用するにはシステムのIPを知る必要があります。 2つのバージョンがあり、ほとんどのUnix(Alexey Kuznetsov)に含まれる標準バージョンはIPアドレスのみを処理できるバージョンです。これその他のバージョン(Thomas Habets)MACアドレスを利用して照会が可能だそうです。

$ sudo arping 192.168.1.1 -c 1
ARPING 192.168.1.1 from 192.168.1.218 eth0
Unicast reply from 192.168.1.1 [00:90:7F:85:BE:9A]  1.216ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

arpingpingICMPパケットを送信する代わりにARPパケットを送信することを除いて、同様に機能します。

MACのみを使用してシステムIPを取得する

以下は、MACからIPへのリバースルックアップを実行するいくつかの方法です。

  1. 地図

    $ nmap -sP 192.168.1.0/24
    

    次に、arpキャッシュでそのマシンを見つけますarp -an

  2. 平らな

    $ fping -a -g 192.168.1.0/24 -c 1
    

    次に、上記と同様にarpキャッシュを確認してください。

  3. 平らな

    $ ping -b -c1 192.168.1.255
    

    次に、上記と同様にarpキャッシュを確認してください。

  4. nbtscan(Windowsホストのみ)

    $ nbtscan 192.168.1.0/24
    
    Doing NBT name scan for addresses from 192.168.1.0/24
    
    IP address       NetBIOS Name     Server    User             MAC address      
    ------------------------------------------------------------------------------
    192.168.1.0 Sendto failed: Permission denied
    192.168.1.4      MACH1            <server>  <unknown>        00-0b-12-60-21-dd
    192.168.1.5      MACH2            <server>  <unknown>        00-1b-a0-3d-e7-be
    192.168.1.6      MACH3            <server>  <unknown>        00-21-9b-12-b6-a7
    

答え2

NIC自体は応答を送信しないため、通常のNICをpingできません。

実行中のコンピュータだけが応答を送信できます。

通常のネットワークインターフェイスカードは、自分自身に何の応答も送信しません。これには常にコンピュータで実行されるソフトウェアが必要です。

コンピュータのCPUの電源が切れると、pingへの応答を送信する実行中のソフトウェアはありません。

Wake on LANは一方向です。

LANで目覚めるコンピュータがNICに部分的に電力を供給してイーサネットフレームを受信し、その中でマジックウェイクアップシーケンスを見つけることを許可しますが、NICはまだ応答を送信しません。 Wake on LANは厳密に一方向です。返信は送信されませんでした。

例外

完全なNIC実装など、独自に応答を送信できる特別なNICがあります。TCPハンドシェイクオフロード

答え3

コマンドはether-wakeMACアドレスを介して機能します。(a)IPアドレスを必要とせず、(b)コマンドを無害に送信することができます(すでに起きている場合は目覚めると何の影響もありませんか?)。

arp -anMAC を取得するには、grep を使用して宛先ホストの IP を取得して、既存の arp キャッシュのリストを確認できます。ただし、arpはキャッシュなので、キャッシュが「タイムアウト」している可能性があります(そしてまだ「目覚めた」状態になる可能性があります)。その後、IPを見つけるために無差別代入方法を使用する必要があるかもしれません。たとえば、次のようになります。

 sudo nmap -sP 192.168.2.0/24 | less  

(それから00:0c:0d:ef:02:03を探してください。) - ファイアウォールやその他の要素が邪魔にならないとしましょう!

答え4

これはMacアドレスを介してpingする簡単なスクリプトです。たとえば、保存して実行します。
macping aa:bb:cc:dd:ee:ff

結果をデイジーチェーン方式で連結して、次のような他の操作を条件付きで実行することもできます。

macping aa:bb:cc:dd:ee:ff && echo do something if online || echo do something if offline

-

#!/bin/bash
network=192.168.1.1/24

if [ "$#" -ne 1 ]; then echo Usage example: $0 aa:bb:cc:dd:ee:ff; exit 2; fi;

nmap -sP $network >& /dev/null
ip=$(arp -n | grep $1 | awk ' { print $1 }')
ping $ip -n -q -c 2 -i 0.2 -w 1 >& /dev/null
if [ $? -eq 0 ]; then
    echo Device is online \($ip\)
else
    echo Device is offline
    exit 1
fi;

関連情報