MAC으로 NIC를 핑할 수 있습니까?

데비안 머신 어딘가에 NIC 카드가 있습니다. 컴퓨터가 꺼져 있지만 나중에 깨우기 위해 (다른 데비안 컴퓨터에서) wake-on-lan 매직 패킷을 보내서 깨울 수 있도록 NIC 카드가 켜져 있는지 알아야합니다. 카드의 MAC 주소가 있습니다. 이더넷 카드가 켜져 있는지 확인하기 위해 MAC으로 이더넷 카드를 ping 할 수있는 방법이 있습니까?

ARP 항목 생성을 시도했습니다.

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

NIC 카드에이 IP 주소가 없기 때문에 작동하지 않았습니다. 따라서 NIC 카드는 ping 요청을 수신하지만 응답하지 않습니다.이 문제를 해결할 방법이 있습니까?

I wake-on-lan 메시지를 보내기 위해 etherwake 패키지를 사용하고 있습니다.

답변

도구를 사용하는 것이 더 좋을 수 있습니다. 대신 arping. 도구 ping OSI 모델의 레이어 3 수준에서 작동합니다. 반면 arping는 레이어 2에서 작동합니다.

하지만이 도구를 사용하려면 시스템의 IP를 알아야합니다. 대부분의 Unix (Alexey Kuznetsov “s)에 포함 된 표준 버전은 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) 

arping는 ICMP 패킷을 보내는 대신 ARP 패킷을 보내는 것을 제외하고는 ping와 유사하게 작동합니다.

시스템 가져 오기 ” MAC 만 사용하는 IP

다음은 MAC에서 IP 로의 역방향 조회를 수행하는 두 가지 방법입니다.

  1. nmap

    $ nmap -sP 192.168.1.0/24 

    그런 다음 arp 캐시에서 해당 머신 arp -an을 찾습니다.

  2. fping

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

    그런 다음 위와 동일하게 arp 캐시를 살펴보세요.

  3. ping

    $ 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 

댓글

  • arping MAC 주소를 매개 변수로 사용할 수 있습니다. arping -c 5 38:e7:d8:63:5e:a6
  • @MichaelMr ozek-누군가가 기본적으로 내 답변을 댓글로 게시하고 ‘ 2 가지 버전의 arping에 대해 내가 말한 내용을 읽지 않은 후에 작업했습니다. 다른 답변은 삭제 된 것 같습니다. 저의 과감한 불만을 풀어 주셔서 감사합니다.
  • 도움을 주셔서 감사합니다. 해결 된 것으로 표시합니다. BIOS 설정에서 WOL 옵션을 ‘ 찾을 수 없습니다. 이것은 내 추측입니다. BIOS에는 WOL이 켜져 있지 않았지만 NIC는 켜져 있습니다. 따라서 NIC는 첫 번째 WOL 패킷에서 깨어 났고 BIOS에 메시지를 보냈습니다. 그러나 BIOS에서 켜지지 않았기 때문에 BIOS는 아무것도하지 않았습니다. 이 순간부터 NIC는 깨어 있었기 때문에 핑에 응답했지만 시스템은 그렇지 않았습니다. 빠른 질문입니다. BIOS에서 WOL을 끄고 NIC에서 동시에 켜는 것이 가능합니까?
  • @AlastorMoody-당신이 NIC ‘의 WOL을 켠 상태에서 BIOS WOL을 끌 수 있습니다. 하지만 BIOS가 ‘ WOL을 지원하지 않는다면 ‘ 당신이 ‘ NIC가 사용하더라도 사용할 수 있습니다. WOL에 대한 wikipedia 기사 : en.wikipedia.org/wiki/Wake-on-LAN 을 참조하십시오. ” 매직 패킷 문제 해결 ” 섹션에서 나와 동일한 내용을 말합니다.
  • @niervol : arping를 MAC 주소로 : 예, Linux에서 arping 1. 의 두 가지 구현이 있습니다. div id = “82d462c961”>

iputils 2. Thomas Habets의 Arping . — 2. 구현 만 MAC 주소를 ping 할 수 있지만 이러한 ping은 매우 까다 롭습니다. ping 된 시스템에는 여전히 TCP / IP가 구성되어 있어야하며 (최소한 IP 주소) 브로드 캐스트 IP 주소에 대한 핑에 응답 할 수 있습니다.

답변

NIC만으로는 응답을 보내지 않으므로 일반 NIC를 ping 할 수 없습니다.

실행중인 컴퓨터 만 응답을 보낼 수 있습니다.

일반 네트워크 인터페이스 카드는 자체적으로 응답을 보내지 않습니다. 그렇게하려면 항상 컴퓨터에서 실행중인 소프트웨어가 필요합니다.

컴퓨터의 CPU 전원이 꺼지면 ping에 대한 응답을 보내는 실행중인 소프트웨어가 없습니다.

Wake-on-LAN은 단방향입니다.

Wake-on-LAN 을 사용하면 컴퓨터에서 NIC의 전원 만 일부만 켜서 수신 할 수 있습니다. 이더넷 프레임에서 매직 웨이크 업 시퀀스를 찾으지만 NIC는 여전히 응답을 보내지 않습니다. Wake-on-LAN은 엄격하게 단방향입니다. 보낸 응답이 없습니다.

예외

예를 들어 완전한 TCP 핸드 셰이크 오프로드

를 구현하는 것과 같이 스스로 응답을 보낼 수있는 특정 특수 NIC가 있습니다. a>.

댓글

  • +1 — 이것은 OP를 진정으로 해결하는 유일한 답변입니다. ‘의 질문입니다. ” Wake-on-LAN은 단방향 “입니다.

답변

ether-wake 명령은 mac 주소로 작동하므로 (a) IP 주소가 필요하지 않으며 (b) 명령을 손상없이 보낼 수 있습니다 (이미 깨어있는 경우 깨어있는 경우 아무런 영향이 없습니까?)

arp -an 및 대상 호스트의 IP를 얻기 위해 MAC에 대한 grepping. 그러나 arp는 캐시이기 때문에 캐시에서 “시간 초과”되었을 수 있습니다 (여전히 “깨어 있습니다”). 그런 다음 무차별 대입 방법을 사용하여 다음과 같은 IP를 찾아야 할 수 있습니다.

 sudo nmap -sP 192.168.2.0/24 | less 

(그런 다음 00 : 0c : 0d를 찾습니다 : ef : 02 : 03)-제공된 방화벽 및 기타 이러한 것들은 방해가되지 않습니다!

댓글

  • 나는 ‘ 지금 시스템을 깨우고 싶지 않습니다. 하지만 NIC가 내 메시지를 수신 할 수 있는지 확인하여 오프 사이트로 이동하여 WOL 패킷을 통해 시스템을 켤 때 켜질 것임을 알고 싶습니다. 이것이 ‘ IP 또는 MAC으로 ping하고 깨우지 않으려는 이유입니다.
  • 슬리핑 머신은 ping에 응답하지 않습니다. 머신이 켜져 있고 IP로 핑 (호스트 응답)하면 arp 캐시에 항목이 저장됩니다. 거기에있는 항목이 호스트의 MAC 주소와 일치하면 작동 할 수있는 합리적인 기회가 있습니다 (다른 네트워크 방화벽, 라우터 및 기타 물리적 문제를 제외하면 ether-wake가 그것에 도달). 실제로 현장에서 다른 호스트에 액세스하고 대상 시스템을 절전 모드로 전환하고 ether-wake를 시도합니다. WOL 작동 방식의 특성상 요청은 어쨌든 호스트와 동일한 서브넷에서 전송되어야합니다.
  • @DravSloan 예를 들어 사용 가능한 Bonjour 프록시 Apples Time Capsule은이 문제를 처리하는 매우 독창적 인 방법입니다. 시스템은 절전 모드이지만 라우터는 이에 대해 응답하며 프록시가 더 이상 처리 할 수 없을 때만 ‘ 깨 웁니다.
  • Don ‘ 먼저 테스트하지 않고 WOL에 의존하지 마십시오. 이 경우에는 오히려 IPMI 카드를 받으십시오.

답변

내 응용 프로그램은 워크 스테이션에 RSYNC하는 서버였습니다. 워크 스테이션의 문서 디렉토리를 가져 오지만 워크 스테이션에는 보장 된 IP 주소가 없지만 알려진 MAC 주소가 있습니다 (IP 주소는 DHCP에서 수행됨).이 코드는 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 

답변

다음은 Mac 주소를 통해 핑하는 간단한 스크립트입니다. 예를 저장하고 실행하기 만하면됩니다.
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; 

답변

이것은 다른 것에 의존하지 않습니다. arping 또는 복잡한 bash 스크립트 버전 :

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

훨씬 빠르게 실행되는 것 같아 arp 대신 arp-scan을 사용했습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다