강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

리눅스마스터1급 : 네트워크 명령어 arp

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 네트워크 명령어 arp

 

 

 

arp“Address Resolution Protocol”의 약자로서 동일한 네트워크 내에 존재하는 호스트들의 IP 주소와 ethernet 주소(MAC 주소)를 확인하는 명령어이다.

 

 

 

, 특정 네트워크 내에 어떤 호스트들이 존재하는지를 확인할 수 있는 것이 바로 arp 명령어이다.

 

 

 

arp는 이를 위해 리눅스의 /proc/net/arp에 기록된 ARP 관련 정보를 참조한다.

 

 

 

 

 

그런데 우리가 흔히 사용하는 SSH, FTP, WWW 등의 모든 인터넷 서비스들은 IP 주소를 사용하여 다른 서버와 통신하지만, 하드웨어적인(물리적인) 관점에서의 실제 통신은 ethernet 주소(MAC 주소, HW address)라고 하는 것을 사용하여 이뤄진다.

 

 

 

, ARP라는 프로토콜을 이용하여 IP 주소를 ethernet 주소로 매칭한 후에 실제 통신은 ethernet 주소를 통하여 이뤄지는 것이다.

 

 

 

따라서 정확한 통신이 이뤄지기 위해서는 ethernet 주소와 매칭되는 IP 주소를 알아야 하며, 이를 위하여 ARP(Address Resolution Protocol)IP 주소를 ethernet 주소로 변경(IPv4에서 IP 주소는 32bit로 구성되어 있으며 이와 매칭되는 ethernet 주소는 48bit로 구성되어 있다)시켜 주는 역할을 한다.

 

 

 

그리고 이와 반대로 ethernet 주소를 IP 주소와 매칭시키는 과정을 RARP(Reverse Address Resolution Protocol)라고 한다.

 

 

 

 

이렇게 ARP로 상대방의 ethernet 주소(MAC 주소)와 매칭하는 간단한 과정은 다음과 같다.

 

 

 

통신을 원하는 서버에서 현재 네트워크 내의 모든 서버들에게 “ARP Request”라고 하는 패킷을 송신한다.

 

 

 

그리고 이 패킷에는 통신하고자 하는 IP 주소가 포함되어 있으며 이 패킷을 받은 호스트들 가운데 해당 IP 주소에 해당하는 호스트는 자신의 ethernet 주소를 송신한 서버에게로 보내게 되는데 이를 “ARP Reply”라고 한다.

 

 

 

이렇게 두 서버간의 ARP를 이용한 통신 대상 서버의 확인이 완료되면 IP 주소가 아닌 ethernet 주소를 이용하여 SSH, FTP, WWW 등의 통신이 이뤄지게 된다.

 

 

 

 

 

리눅스 시스템에는 커널(kernel)ARP 캐시 정보라는 데이터가 있는데, 이 정보는 현재 시스템에서 보관하고 있는 IP 주소와 MAC 주소들이 저장되어 있으며, 시스템의 통신 상태에 따라서 종종 변경된다.

 

 

 

이 정보는 /proc/net/arp 에 저장되어 있다.

 

 

 

arp 명령어로 여러 방법으로 ARP 캐시를 다루는 작업을 할 수 있다.

 

 

 

다음은 리눅스 시스템에서 사용하는 arp 명령어의 옵션에 대해 간략하게 정리한 것이다.

 

 

 

 

 

옵션

설명

-a

 

ARP 캐쉬 테이블에 저장되어 있는 모든 호스트 정보를 출력한다.

 

-s

 

ARP 캐쉬 테이블에 저장된 특정 IP에 대한 MAC 주소를 변경한다.

 

-d

 

ARP 캐쉬 테이블에 저장된 특정 MAC 주소를 삭제한다.

 

-i

 

eth0과 같은 네트워크 인터페이스를 지정한다.

 

-n

 

Resolving을 하지 않은 IP 주소를 출력한다.

 

-v

 

자세한 모드(verbose)로 결과를 출력한다.

 

 

/proc/net/arp 파일에는 현재 동일 네트워크 내에 존재하는 호스트들의 IP 주소와 MAC 주소(ethernet 주소), 기본 H/W 정보타입 등이 저장되어 있다.

 

 

 

여기에서 HW addreess 부분이 ethernet 주소인데, IP 주소와 마찬가지로 유일하게 식별되는 이 MAC 주소를 가지고 실제 통신이 이뤄지는 것이다.

 

 

 

 

 

 

 

 

 

# cat /proc/net/arp

IP address HW type Flags HW addreess Mask Device

192.168.0.158 0x1 0x2 00:1A:92:93:B7:B6 * eth0

192.168.0.100 0x1 0x2 00:C0:26:27:E5:CB * eth0

192.168.0.1 0x1 0x2 00:0F:EA:91:22:F0 * eth0

192.168.0.155 0x1 0x2 00:21:00:22:2A:50 * eth0

 

 

 

 

 

arp 명령어를 이용하여 동일 네트워크 내에 존재하는 호스트들에 대한 ethernet 주소 정보를 확인하기 위해 아무 옵션 없이 arp 명령을 내리면 된다.

 

 

 

 

 

 

 

 

 

# arp

Address HW type HWaddress Flags Mask Iface

192.168.0.158 ether 00:1A:92:93:B7:B6 C eth0

192.168.0.100 ether 00:C0:26:27:E5:CB C eth0

192.168.0.1 ether 00:0F:EA:91:22:F0 C eth0

192.168.0.155 ether 00:21:00:22:2A:50 C eth0

 

 

 

 

 

 

 

 

 

arping

 

 

특정 호스트에 ARP Request 패킷에 의해 ping을 보낸다.

 

 

 

 

arping [-AbDfhqUV] [-c count] [-w deadline] [-s source] -I interface destination

 

다음은 간단하게 yahoo.co.krarping를 해본 것이다.

 

 

 

 

 

# arping yahoo.co.kr

ARPING 68.180.206.184 from 220.73.136.167 eth0

Unicast reply from 68.180.206.184 [00:0D:28:22:2C:3F] 0.862ms

Unicast reply from 68.180.206.184 [00:0D:28:22:2C:3F] 0.869ms

Unicast reply from 68.180.206.184 [00:0D:28:22:2C:3F] 0.865ms

Unicast reply from 68.180.206.184 [00:0D:28:22:2C:3F] 0.947ms

Unicast reply from 68.180.206.184 [00:0D:28:22:2C:3F] 0.899ms

Unicast reply from 68.180.206.184 [00:0D:28:22:2C:3F] 0.923ms

Unicast reply from 68.180.206.184 [00:0D:28:22:2C:3F] 3.727ms

Sent 7 probes (1 broadcast(s))

Received 7 response(s)

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,806 개
  • 현재 접속자 :  86 명