개발 창고/Server

[Linux] How to use "arp" command

로이제로 2023. 11. 9. 22:00
반응형

 

How to use ARP(Address Resolution Protocol)

IP주소를 MAC주소로 변환하는 프로토콜

 메일을 보내기 위해서는 상대방의 이메일 주소를 알아야 하고 전화를 하기 위해서는 전화번호를 알아야 하듯이, 시스템 간 통신을 위해서는 서로의 MAC Address를 알아햐 합니다. 하지만, 사람이 집을 찾아 이사하듯 시스템도 이사를 다니기도 하고 (A시스템을 Stand Alone에서 Cloud로 옮기거나, 서버 로드밸런싱을 위해 앞단에 L4를 두는 등의 이동), MAC Address가 들어있는 LAN카드를 교체하는 경우도 발생합니다. 그러면 이 때마다 송신자가 수신자의 MAC Address를 알아야 할까요? 당연히 그렇지 않습니다. 송신자는 상대방의 IP만을 알고 있고, 해당 IP를 갖는 MAC Address를 탐색합니다. 이때 사용되는 프로토콜이 ARP입니다. (반대의 개념으로 RARP가 있습니다.)

 

ARP 프로토콜 동작 순서

   동일 네트워크에 있을 때

 동일 네트워크에 있을 때 단말들의 MAC 주소는 중계 장치(예, 허브, 스위치 등)가 MAC 주소 테이블 정보를 저장하고 관리하고 있으므로 내부에 단말들이 MAC 주소를 가지고 통신할 수 있게 됩니다.

 

  동일 네트워크에 없을 때

 동일 네트워크에 없을 때 IP주소 가지고 통신하므로 ARP 프로토콜을 이용하여 MAC 주소 간 변환을 통해 통신을 하게 됩니다.

 

ARP 명령어

arp --help 결과

주요 옵션
내용
-a   지정한 호스트 내용 출력 (default : 모든 호스트)
-s --set 호스트의 하드웨어 주소(호스트 MAC Address)를 추가
-d --delete 지정한 호스트를 목록에서 삭제
-v --verbose ARP 상태 출력
-f --file 파일에 있는 목록을 추가

 

항목 설명

arp 결과 화면

항목 내용
Address metadata가 저장되어 있는 주소 (인스턴스의 메타데이터)

확인방법
$> curl http://{Address}/latest/meta-data
HWtype 각 Address에 있는 장비의 하드웨어 타입입니다. 여기서는 네트워크 카드 타입인 ehter가 보여지고 있습니다.
HWaddress MAC 주소로 ARP응답을 받으면 이 값이 저장됩니다.
Flags Mask 아이피 주소 마스킹 값입니다.

C : 사설망으로 ARP를 통해 동적으로 엔트리가 학습된 경우
M : 메모리에 수동으로 입력/추가된 경우
P : Publish. 호스트에게 ARP요청과 ARP 응답인 패킷에 응답하도록 알림
Iface Address에 있는 통신 중인 장비의 네트워크 카드 명입니다.
반응형