Pingelhet-e egy NIC-t MAC szerint

Van valahol egy NIC-kártya egy Debian-gépen. A gép ki van kapcsolva, de tudnom kell, hogy be van-e kapcsolva a NIC-kártya, hogy később (egy másik Debian-gépről) küldhessek egy WAN-on-lan mágikus csomagot annak felébresztésére. Megvan a kártya MAC-címe. Van valamilyen módja annak, hogy pingeljem az Ethernet kártyát a MAC segítségével, hogy lássam, be van-e kapcsolva?

Megpróbáltam létrehozni egy ARP bejegyzést:

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

Ez nem működött, mivel a NIC-kártya nem rendelkezik ezzel az ip-címmel. Tehát a NIC-kártya megkapja a ping kérést, de nem válaszol rá. Van erre megoldás?

I az etherwake csomagot használom az ébresztés-on-lan üzenet küldésére.

Válasz

Lehet, hogy nagyobb szerencsével jár az eszköz használata arping. A ping eszköz az OSI modell 3. rétegének szintjén működik , míg a arping a 2. rétegben működik.

Ezzel az eszközzel azonban még mindig ismernie kell a rendszer IP-jét. A ez, a legtöbb Unixhoz (Alekszej Kuznyecov) mellékelt szabvány az a verzió, amely csak IP-címekkel képes foglalkozni. A másik verzió (Thomas Habets “) állítólag MAC-címek segítségével tud lekérdezni.

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

A arping hasonlóan működik, mint a ping, kivéve, hogy ICMP csomagok küldése helyett ARP csomagokat küld.

Rendszer beszerzése ” s IP csak a MAC használatával

Íme néhány módszer a MAC IP-hez való visszakereséséhez.

  1. nmap

    $ nmap -sP 192.168.1.0/24 

    Ezután keresse meg az arp gyorsítótárában a megfelelő gépet arp -an.

  2. fping

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

    Ezután keresse meg az ARP gyorsítótárát, a fentiekkel megegyező módon.

  3. ping

    $ ping -b -c1 192.168.1.255 

    Ezután keresse meg az arp gyorsítótárát, a fentiekkel megegyező módon.

  4. nbtscan (csak a Windows gazdagépei)

    $ 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 

Megjegyzések

  • arping MAC címet vehet fel paraméterként: arping -c 5 38:e7:d8:63:5e:a6
  • @MichaelMr ozek – Azután tettem, hogy valaki alapvetően kommentként tette közzé a válaszomat, és nem olvasta el ‘ azt, amit az arping 2 verziójáról mondtam. Úgy tűnik, hogy a másik választ törölték, ezért köszönöm, hogy kivette a merész frusztrációmat.
  • Köszönöm a segítséget. Ennek megjelölése megoldottként. Nem sikerült ‘ megtalálni a WOL opciót a BIOS beállításaiban. Ez az én tippem: A BIOS-ban nem volt bekapcsolva a WOL, de a NIC igen. Tehát a hálózati kártya felébredt az első WOL csomagon, és üzenetet küldött a BIOS-nak. De mivel nem volt bekapcsolva a BIOS-ban, a BIOS nem tett semmit. Ettől a pillanattól kezdve az NIC válaszolt a pingre, mivel ébren volt, de a gép nem. Olyan gyors kérdés: Lehetséges-e, hogy a BIOS egyszerre kapcsolja ki a WOL-t és a NIC-et?
  • @AlastorMoody – azt mondanám, hogy Ön ‘ valószínűleg kikapcsolhatja a BIOS WOL-ot a NIC-vel ‘ s a WOL be van kapcsolva. Ha azonban a BIOS nem ‘ nem támogatja a WOL-ot, akkor nem ‘ nem gondolom, hogy ‘ képes lesz használni, még akkor is, ha a hálózati kártya igen. Lásd a wikipédia cikkét a WOL-ról: hu.wikipedia.org/wiki/Wake-on-LAN . Ugyanazt mondja, mint én a ” varázscsomagok hibaelhárításában ” szakaszban.
  • @niervol: arping egy MAC-címre: Igen, két megvalósítási módja van az arping 1. Linuxnak iputils 2. készítette: Thomas Habets . — Csak a 2. implementáció képes pingelni egy MAC-címet, de egy ilyen pingelés nagyon trükkös: A pingelt gépnek még mindig konfigurálnia kell a TCP / IP-t (legalább egy IP-címet), és meg kell adnia képes válaszolni egy sugárzott IP-cím pingelésére.

Válasz

Nem lehet pingelni egy normál hálózati kártyát, mert a hálózati kártya önmagában nem küld válaszokat.

Csak egy futó számítógép képes válaszokat küldeni

A normál hálózati interfészkártyák önmagukban nem küldenek válaszokat. Ehhez mindig szükségük van egy futó szoftverre a számítógépen.

Ha a számítógép CPU-ja kikapcsol, akkor nincs olyan futó szoftver, amely választ adna egy pingre.

A Wake-on-LAN egyirányú

A Wake-on-LAN lehetővé teszi a számítógép számára, hogy csak a hálózati kártyát kapcsolja be a fogadáshoz Ethernet keretek, és keresse meg a varázslatos ébresztési sorrendet, de a hálózati kártya továbbra sem küld választ. A Wake-on-LAN szigorúan egyirányú. Nincsenek válaszok.

Kivételek

Vannak olyan speciális NIC-k, amelyek maguk is elküldhetik a válaszokat, például olyanok, amelyek egy teljes TCP kézfogás-kitöltést .

megjegyzések

  • +1 – ez az egyetlen válasz, amely valóban foglalkozik az OP ‘ s kérdés. ” A Wake-on-LAN egyirányú “.

Válasz

A ether-wake parancs mac címek szerint fog működni, így biztosan (a) nem lesz szüksége IP-címre, és (b) sérülés nélkül elküldheti a parancsot (ha már ébren van, akkor az ébresztésnek nincs hatása?)

A arp -an, és a MAC-ra kapaszkodva megkapja a célállomás IP-jét. Mivel azonban az arp gyorsítótár, előfordulhat, hogy “időzített” a gyorsítótárból (és még mindig “ébren van”). Ezután lehet, hogy nyers erő módszerrel kell megkeresnie annak IP-címét, például:

 sudo nmap -sP 192.168.2.0/24 | less 

(majd keresse meg a 00: 0c: 0d: ef: 02: 03) – feltéve, hogy a tűzfalak és egyéb hasonló dolgok nem akadályozhatók!

Hozzászólások

  • Nem ‘ nem akarja most felébreszteni a gépet. De szeretném biztosítani, hogy a hálózati kártya meg tudja fogadni az üzeneteimet, hogy amikor elmegyek a helyszínről, és bekapcsolom a gépet egy WOL csomagon keresztül, tudom, hogy bekapcsol. ‘ ezért szeretnék IP vagy MAC alapján pingelni, és nem ébreszteni fel.
  • Az alvó gépek nem reagálnak a pingelésre. Ha a gép be van kapcsolva, és az IP alapján pingel (és a gazdagép újrakezd), akkor egy bejegyzést tesz az arp gyorsítótárba. Ha az ott található bejegyzés megegyezik a gazdagép MAC-címével, akkor ésszerű az esélye annak működésére (más hálózati tűzfalak, útválasztók és egyéb fizikai problémák letiltása, amelyek miatt a ether-wake nem érje el). Valójában hozzáférnék egy másik gazdagéphez a helyszínen, elaludnám a célgépet, és megpróbálnám a ether-wake -t. A WOL működésének természeténél fogva a kérést mindenképpen ugyanazon az alhálózaton kell elküldeni, mint a gazdagép
  • @DravSloan a Bonjour Proxy elérhető pl. Az Alma Időkapszula meglehetősen ötletes módszer ennek a problémának a kezelésére. A gép alszik, de az útválasztó válaszol érte, és csak akkor ébreszti fel, ha a proxy már ‘ nem tudja kezelni.
  • Ne ‘ ne támaszkodjon a WOL-ra anélkül, hogy először tesztelné. Inkább szerezzen be egy IPMI-kártyát ebben az esetben.

Válasz

Az alkalmazásom egy szerver volt, amely RSYNC-be lépett munkaállomásra a szerezze be a munkaállomás Dokumentumkönyvtárát … de a munkaállomásnak nem volt garantált IP címe, de ismert MAC címe volt (az IP címet a DHCP végezte). Ez a kód CSAK pinget használ.

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 

Válasz

Itt van egy egyszerű szkript, amellyel pingelni lehet mac címen. Csak mentse és futtassa pl.
macping aa:bb:cc:dd:ee:ff

Az eredményt láncolhatja más feltételek feltételes elvégzéséhez is, például:

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; 

Válasz

Ez nem támaszkodik az eltérő az arping verziói, és nem is az összetett bash szkripteken:

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

Az arp helyett inkább az arp-scan programot használtam, mivel úgy tűnik, sokkal gyorsabban fut.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük