Může někdo pingnout NIC pomocí MAC

Mám někde NIC kartu na Debianu. Stroj je vypnutý, ale potřebuji vědět, zda je zapnutá karta NIC, abych mohl později probudit magický paket Wake-on-LAN (z jiného stroje Debianu). Mám MAC adresu karty. Existuje nějaký způsob, jak mohu pomocí příkazu ping na ethernetovou kartu pomocí MAC zjistit, zda je zapnutá?

Zkusil jsem vytvořit položku ARP:

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

To nefunguje, protože karta NIC nemá tuto adresu IP. Karta NIC tedy obdrží požadavek ping, ale neodpoví na ni. Existuje nějaký způsob, jak to obejít?

I používám balíček etherwake k odesílání zprávy Wake-on-LAN.

Odpovědět

S nástrojem můžete mít větší štěstí Místo toho arping. Nástroj ping pracuje na úrovni vrstvy 3

modelu OSI , zatímcoarpingfunguje ve vrstvě 2.

S tímto nástrojem však musíte znát IP systému. K dispozici jsou 2 verze standardní verze, která je součástí většiny unixů (Alexey Kuznetsov), je verze, která umí pracovat pouze s IP adresami. jiná verze (Thomas Habets „) údajně může dotazovat pomocí MAC adres.

$ 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) 

arping funguje podobně jako ping kromě toho, že místo odesílání paketů ICMP odesílá pakety ARP.

Získání systému “ s IP pomocí pouze MAC

Zde je několik metod pro zpětné vyhledávání MAC na IP.

  1. nmap

    $ nmap -sP 192.168.1.0/24 

    Poté ve své arp mezipaměti vyhledejte odpovídající stroj arp -an.

  2. fping

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

    Pak se podívejte do své arp mezipaměti, stejně jako výše.

  3. ping

    $ ping -b -c1 192.168.1.255 

    Pak se podívejte do své arp mezipaměti, stejně jako výše.

  4. nbtscan (pouze 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 

Komentáře

  • arping může jako parametr použít adresu MAC: arping -c 5 38:e7:d8:63:5e:a6
  • @MichaelMr ozek – Udělal jsem to poté, co někdo v podstatě zveřejnil mou odpověď jako komentář a nečetl ‚ co jsem řekl o 2 verzích arpingu. Zdá se, že druhá odpověď byla smazána, takže děkuji za odstranění mé odvážné frustrace.
  • Díky za pomoc. Označení jako vyřešené. Nelze ‚ v nastavení systému BIOS najít možnost WOL. To je můj odhad: BIOS neměl zapnutou WOL, ale NIC ano. NIC se tedy probouzel na prvním WOL paketu a posílal zprávu do BIOSu. Ale protože to nebylo v BIOSu zapnuto, BIOS nic neudělal. Od tohoto okamžiku NIC reagoval na ping, protože byl vzhůru, ale stroj nebyl. Tak rychlá otázka: Je možné, aby měl BIOS vypnutý WOL a NIC jej měl zapnutý současně?
  • @AlastorMoody – řekl bych, že ‚ Pravděpodobně je povoleno vypnout BIOS WOL w / NIC ‚ s WOL zapnut. Pokud však váš BIOS nepodporuje ‚ t WOL, nemyslím si ‚ ‚ Budu jej moci využít, i když to bude NIC. Přečtěte si článek wikipedia o WOL: en.wikipedia.org/wiki/Wake-on-LAN . V sekci “ řešení problémů s magickými pakety “ říká totéž jako já.
  • @niervol: arping na adresu MAC: Ano, existují dvě implementace arping 1. z Linuxu iputils 2. arping od Thomase Habetsa . — Pouze implementace 2. může ping na MAC adresu, ale takový ping je velmi choulostivý: Pingovaný stroj musí mít stále nakonfigurovaný TCP / IP (alespoň IP adresu) a musí být schopen reagovat na ping na vysílanou adresu IP.

Odpověď

Normální NIC nemůžete pingovat, protože samotný NIC neposílá žádné odpovědi.

Odpovědi může odesílat pouze běžící počítač

Normální karty síťového rozhraní samy neposílají žádné odpovědi. K tomu vždy potřebují spuštěný software v počítači.

Když je CPU počítače vypnuto, neexistuje žádný spuštěný software, který by odesílal odpověď na ping.

Wake-on-LAN je jednosměrný

Wake-on-LAN umožňuje počítači povolit pouze částečné zapnutí síťové karty pro příjem Ethernetové rámce a hledejte v nich magickou sekvenci probuzení, ale síťová karta stále neodesílá žádnou odpověď. Funkce Wake-on-LAN je přísně jednosměrná. Nejsou odeslány žádné odpovědi.

Výjimky

Existují určité speciální síťové karty, které by mohly posílat odpovědi samy, jako například ty, které implementují úplné TCP handshake offload .

Komentáře

  • +1 – toto je jediná odpověď, která skutečně osloví OP ‚ s otázkou. “ Wake-on-LAN je jednosměrný „.

odpověď

Příkaz ether-wake bude fungovat podle adresy Mac, takže určitě (a) nepotřebujete IP adresu a (b) může poslat příkaz bez poškození (pokud je již vzhůru, probuzení nebude mít žádný dopad?)

Seznam existující mezipaměti arp můžete zobrazit pomocí arp -an a pozdrav pro váš MAC pro získání IP cílového hostitele. Protože však arp je mezipaměť, mohl být z mezipaměti „vypršen“ (a přesto být „vzhůru“). Možná budete muset použít metodu hrubé síly k vyhledání IP adresy, například:

 sudo nmap -sP 192.168.2.0/24 | less 

(a pak hledat 00: 0c: 0d: ef: 02: 03) – za předpokladu, že brány firewall a další podobné věci vám nebudou překážet!

Komentáře

  • Nemám ‚ právě teď nechcete stroj probudit. Ale chci zajistit, aby NIC mohla přijímat moje zprávy, takže když odejdu mimo pracoviště a zapnu stroj přes WOL paket, vím, že se to zapne. Proto ‚ proto chci pingovat pomocí IP nebo MAC a neprobudit to.
  • Spící stroje na ping nereagují. Pokud je stroj zapnutý a pingujete pomocí IP (a hostitel odpovídá), vloží záznam do mezipaměti arp. Pokud se položka v něm shoduje s MAC adresou hostitele, existuje rozumná šance, že bude fungovat (blokování jiných síťových bran firewall, směrovačů a dalších fyzických problémů, které mohou způsobit, že ether-wake nebude dosáhnout toho). Vlastně bych získal přístup k jinému hostiteli na místě, usnul cílový počítač a zkusil ether-wake. Z povahy toho, jak WOL funguje, bude požadavek stejně muset být odeslán ve stejné podsíti jako hostitel
  • @DravSloan Bonjour Proxy dostupný např. Apples Time Capsule je docela důmyslný způsob, jak zvládnout tuto proble. Zařízení spí, ale směrovač na něj reaguje a probudí ho, až když to proxy ‚ už nezvládne.
  • Don ‚ Nespoléhejte se na WOL, aniž byste jej museli nejprve otestovat. V takovém případě si pořiďte kartu IPMI.

Odpovědět

Moje aplikace byla serverem RSYNCing na pracovní stanici získejte adresář dokumentů pracovní stanice … ale pracovní stanice neměla zaručenou IP adresu, ale měla známou MAC adresu (IP adresa byla provedena pomocí DHCP). tento kód používá POUZE ping.

export COUNTER=1 while [ $COUNTER -lt 255 ] do #ping $1$COUNTER -c 1 -w 400 | grep -B 1 "Lost = 0" & # activate all 254 addresses in the subnet.. dont really need to grep the ping output ping 192.168.0.$COUNTER -c 1 -w 4 2> /dev/null | grep -B 1 " 0\% packet loss" > /dev/null & COUNTER=$(( $COUNTER + 1 )) done # wait till 254 background processes finished wait # the arp cache will automatically flush it"s incomplete entries in about 10 minutes... #echo "finished" # #SRC_SERVER_IP="192.168.0.160:873" SRC_SERVER_IP=$(arp -a | grep "00:22:4d:81:8f:76" | awk "{print $2}" | sed "s/[()]//g")":873" if [ $SRC_SERVER_IP == ":873" ] ; then echo "ws1.example.com is not on the network... exiting..." exit 0 fi 

Odpovědět

Zde je jednoduchý skript, který lze pingovat pomocí adresy mac. Stačí uložit a spustit např.
macping aa:bb:cc:dd:ee:ff

Výsledek můžete také řetězit tak, aby podmíněně prováděl jiné věci, například:

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; 

Odpověď

To se nespoléhá na odlišné verze arpingu ani na složitých bash skriptech:

ping $(arp-scan --localnet | grep 80:1f:02:fa:90:b7 | awk " { printf $1 } ") 

Použil jsem spíše arp-scan než arp, protože se zdá, že běží mnohem rychleji.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *