Linux에서 arping 명령을 사용하는 방법

0
361

Linux에서 arping 명령을 사용하는 방법
Fatmawati achmad zaenuri/Shutterstock.com

리눅스 arping 명령은 같다 ping, 그러나 로컬 네트워크에만 해당됩니다. 그것의 장점은 낮은 네트워킹 수준에서 작동하며 때때로 다음과 같은 경우 응답을 받는다는 것입니다. ping 할 수 없습니다. 사용 방법은 다음과 같습니다.

ARP 프로토콜

IP 주소는 네트워크 장치에 대한 숫자 레이블입니다. 적절한 네트워크 트래픽이 올바른 장치에 도달하도록 주소로 사용됩니다. 그러나 근거리 통신망에 있는 대부분의 장치에는 동적 IP 주소. 즉, 다음에 부팅할 때 IP 주소가 변경될 수 있습니다.

네트워크 트래픽을 적절한 장치로 올바르게 라우팅하려면 IP 주소를 MAC(Media Access Control) 주소에 매핑하는 체계를 사용해야 합니다. MAC 주소는 장치 제조 시점에 설정된 고유한 ID입니다. IP 주소는 논리적 주소. MAC 주소는 물리적 인 주소.

데이터 패킷이란 무엇입니까?

관련된데이터 패킷이란 무엇입니까?

주소 확인 프로토콜은 IP 주소를 MAC 주소에 매핑하는 중개자입니다. 네트워크에서 네트워크 패킷을 마샬링하고 전달하는 장치(일반적으로 라우터)는 IP 주소를 MAC 주소에 연결하는 ARP 테이블을 만들고 유지 관리합니다.

라우터가 알지 못하는 장치로 데이터를 라우팅해야 하는 경우 새 장치의 MAC 주소를 얻기 위해 ARP 요청을 합니다.

새 장치가 네트워크에 연결되면 IP 주소가 할당되지만 실제로 트래픽을 라우팅하기에 충분하지 않습니다. 라우터는 퍼즐의 누락된 부분인 MAC 주소를 얻어야 합니다. 그러나 IP 주소 자체는 패킷을 장치로 라우팅하기에 충분한 정보가 아니기 때문에 Catch-22는 IP 주소를 사용하여 MAC 주소를 얻기 위해 하드웨어를 쿼리할 수 없다는 것입니다.

개방형 시스템 상호 연결 모델은 작업 네트워크를 구성하는 기술을 일련의 계층으로 그룹화합니다. 상위 계층은 하위 계층 없이 작동할 수 없습니다. OSI 모델에는 7개의 계층이 있습니다.

  • 레이어 7은 최상위 레이어이며, 신청 층. 그것은 컴퓨터 사용자에게 정보를 제공하고 그들로부터 정보를 다시 받습니다.
  • 레이어 6은 프레젠테이션 층. 이렇게 하면 데이터가 네트워크 형식으로 이동하거나 네트워크 형식에서 이동할 때 올바른 형식 또는 상태인지 확인합니다. 암호화 및 암호 해독은 이 계층에서 발생합니다.
  • 레이어 5는 세션 층. 세션은 둘 이상의 장치 간의 네트워크 연결입니다. 이 계층은 연결 시작, 핸드셰이킹, 시간 초과 및 더 이상 필요하지 않은 연결 끊기와 같은 문제와 관련됩니다.
  • 레이어 4는 수송 층. 이것은 조정된 방식으로 네트워크에서 데이터를 이동하는 계층입니다. 이 계층은 전송 속도 및 데이터 볼륨과 관련된 것입니다. TCP/IP의 TCP인 전송 제어 프로토콜은 이 계층에서 작동합니다.
  • 레이어 3은 회로망 층. 여기에서 라우팅 및 패킷 전달이 수행됩니다. 인터넷 프로토콜(TCP/IP의 IP)이 작동하는 계층입니다.
  • 레이어 2는 데이터 링크 층. 모든 장치에 대한 브로드캐스트 또는 특정 MAC 주소에 대한 유니캐스트를 사용하여 직접 주소 지정 가능한 장치 간에 패킷을 보내는 데 사용됩니다.
  • 레이어 1은 물리적 인 층. 이것은 케이블링, 라우터 및 네트워크 스위치를 포함한 물리적 인프라와 관련이 있습니다. Wi-Fi에서 사용되는 전파도 이 범주에 속합니다.

라우터가 테이블에 없는 IP 주소에 대한 패킷을 받으면 전체 네트워크에 브로드캐스트 패킷을 보냅니다. 그것은 효과적으로 “누가 이 IP 주소를 가지고 있습니까?”라고 묻습니다. 이것은 레이어 2 메시지이므로 IP 라우팅에 의존하지 않습니다.

주소가 일치하는 장치는 MAC 주소를 다시 전송하여 응답합니다. 해당 장치의 IP 주소와 MAC 주소를 매핑 테이블에 추가할 수 있습니다. 이제 IP 주소와 MAC 주소 간의 관계가 설정되고 기록되었기 때문에 일반 IP 트래픽을 장치로 라우팅할 수 있습니다.

관련된: 인터넷의 기초: TCP/IP가 40년을 맞이하다

아르핑 커맨드

모든 영리한 ARP 작업은 백그라운드에서 자동으로 진행되어 ARP 테이블을 만들고 유지 관리합니다. 그만큼 arping 명령은 ARP 쿼리의 일부 기능을 터미널 창으로 가져옵니다. OSI 레이어 2에서 작동하며 다음과 같은 경우 장치에서 응답을 요청할 수 있습니다. ping 하지 않습니다.

페도라 36에서는 arping 이미 설치되어 있지만 Manjaro 21 및 Ubuntu 22.04에 설치해야 했습니다.

Ubuntu에서 명령은 다음과 같습니다.

sudo apt install arping

우분투에 arping 설치

Manjaro에서는 다음을 입력해야 합니다.

sudo pacman -Sy arping

Manjaro에 arping 설치

가장 간단한 사용법 arping IP 주소가 있습니다. 이것은 로컬 네트워크에 연결된 직접 주소 지정이 가능한 장치의 주소여야 합니다. 왜냐하면 arping 레이어 2에서 작동하므로 라우팅이 불가능합니다. 당신은 사용해야 할 것입니다 sudo ~와 함께 arping.

sudo arping 192.168.1.17

IP 주소와 함께 arping 사용

Ctrl+C를 눌러 중지합니다. 반환된 정보는 응답 장치의 MAC 주소, 해당 장치의 인덱스 번호입니다. arping 요청 및 왕복 시간 arping 완료를 요청합니다.

의 출력과 출력을 비교하십시오. ping 명령, 아래. 그만큼 ping 명령은 네트워크 패킷 왕복 타이밍에 대한 추가 정보를 반환합니다. 그만큼 arping 명령은 더 적은 타이밍 통계를 제공하지만 장치의 MAC 주소를 포함합니다.

ping 192.168.1.17

IP 주소로 ping 사용

다음과 함께 장치의 네트워크 이름을 사용할 수도 있습니다. arping.

sudo arping fedora-36.local

IP 주소와 함께 arping 사용

당신은 사용할 수 있습니다 -c (카운트) 알려주는 옵션 arping 설정된 요청 수 후에 중지합니다. 이 명령은 알려줍니다 arping 두 번 시도한 다음 중지합니다.

sudo arping -c 2 192.168.1.18

-c 옵션을 사용하여 두 번의 요청 후 arping에 중지하도록 지시

컴퓨터에 여러 네트워크 인터페이스가 있는 경우 다음을 사용할 수 있습니다. -I (인터페이스) 알려주는 옵션 arping 사용할 인터페이스.

당신은 사용할 수 있습니다 ip link 네트워크 인터페이스를 나열하는 명령입니다.

ip link

ip 링크를 사용하여 네트워크 인터페이스 나열

이 컴퓨터에는 세 가지 인터페이스가 있습니다. 그만큼 lo 가상 인터페이스는 동일한 컴퓨터에 있는 소프트웨어 간의 내부 연결을 위한 루프백으로 사용됩니다. 여기에서는 우리에게 쓸모가 없습니다. 이더넷 연결을 사용할 수 있습니다. enp3s0 또는 무선 인터페이스 wlan0.

이 명령은 알려줍니다 arping 우리가 선택한 인터페이스를 사용하고 스스로 선택하지 않습니다.

sudo arping -c 2 -I enp3s0 manjaro-21.local

-I 옵션을 사용하여 특정 네트워크 인터페이스를 사용하도록 arping에 지시

스크립트에서 arping 사용

랩핑으로 arping 스크립트의 루프에서 IP 주소 범위에서 작동하도록 할 수 있습니다. 이 스크립트에서 텍스트를 복사하여 “scan-range.sh”라는 파일에 저장합니다.

스크립트를 편집하고 192.168.1의 모든 항목을 네트워크의 IP 주소로 바꿔야 합니다.

#!/bin/bash

for ((device=$1; device<=$2; device++))
do

  arping -c 1 192.168.1.$device | grep -E "1 response|1 packets received" > /dev/null

    if [ $? == 0 ]; then
      echo "192.168.1.$device responded."      
    else
      echo "192.168.1.$device didn't respond."
  fi
  
done

스크립트는 두 개의 명령줄 매개변수를 허용합니다. 사용하려는 범위의 IP 주소 중 마지막 옥텟으로 사용됩니다. arping 에. 따라서 스크립트에 20과 30을 전달하면 루프가 192.168.1에서 시작됩니다.20 IP 주소 192.168.1을 사용한 후 종료됩니다.30.

매개변수는 다음과 같이 스크립트 내에서 액세스됩니다. $1 그리고 $2. 이것들은 C 스타일에서 사용됩니다. for 고리. 회전할 때마다 for 고리, $device 범위의 다음 IP 주소로 설정됩니다.

스크립트는 같은 것을 사용합니다 arping -c 이미 본 형식이지만 이번에는 범위 내의 각 장치에 단일 ARP 요청만 보내도록 요청합니다.

의 출력 arping 명령은 다음을 통해 파이프됩니다. grep.

그만큼 grep 스크립트에서 구문을 단순화할 수 있습니다. grep “1 응답” 또는 “1 패킷 수신”의 두 문자열 중 하나를 찾고 있습니다. 이는 테스트 컴퓨터의 버전이 다르기 때문입니다. arping 그들은 다른 용어를 사용합니다. 만약에 grep 이 구문 중 하나를 찾으면 종료 값은 0이 됩니다.

사용 중인 버전의 문구가 무엇인지 알 때 arping 사용하면 단순화할 수 있습니다. grep 다른 구를 제거하여 구문.

그만큼 if 문장 테스트 $?—종료된 마지막 프로세스의 종료 코드를 보유하는 변수—이 값이 0인지 확인합니다. 그렇다면 다음을 사용합니다. echo 터미널 창에 성공 메시지를 인쇄합니다. 테스트가 실패하면 grep ARP 요청이 실패했음을 의미하는 문자열 중 하나를 찾지 못했습니다.

다음을 사용하여 스크립트를 실행 가능하게 만드십시오. chmod 명령과 +x 옵션.

chmod +x scan-range.sh

chmod +x 옵션을 사용하여 스크립트를 실행 가능하게 만들기

우리는 그것을 실행하고 15에서 20까지의 IP 범위를 스캔할 것입니다. 이러한 주소 중 일부에는 장치가 연결되어 있지 않으므로 일부 오류가 표시되어야 합니다. 사용하는 것을 기억하십시오 sudo . 우리는 또한 노력할 것입니다 ping 192.168.1.15의 장치.

sudo ./scan-range.sh 15 20
ping 192.168.1.15

스크립트 실행 및 ping 실행

모든 네트워크에서와 마찬가지로 성공과 실패가 혼합되어 있습니다. 그러나 192.168.1.15의 장치가 계층 2 ARP 요청에 응답하더라도 계층 3에는 응답하지 않습니다. ping 요구.

장치를 ping하고 오류를 확인했다면 장치가 연결되어 있고 온라인에 있는지, ping 밖으로 장치 192.168.1.15.

하지만 함께 arping 연결되어 있고 온라인이며 네트워크에 액세스할 수 있는지 확인할 수 있습니다. 이는 라우팅 및 ARP 테이블 문제를 조사하기 시작하도록 문제 해결을 안내합니다.

더 깊은 통찰력

네트워킹 양파에는 많은 계층이 있습니다. 만약에 ping 아무데도 잡히지 않으면 레이어를 드롭 다운하고 무엇을 참조하십시오 arping 당신에게 말할 수 있습니다.

관련된: Nmtui로 Linux Wi-Fi 네트워크를 관리하는 방법