arp
ARP (Address Resolution Protocol)
ARP (주소 해석/결정 프로토콜)
1. ARP 란?
- 논리적인 IP 주소를 (network layer), 물리적인 MAC 주소로 (datalink layer) 연결시켜주는 역할을 하는 프로토콜
- Layer 3 network, layer 2 datalink 계층에서 실행: IP 주소와 MAC 주소를 모두 다룬다.
2. 라우터 상의 ARP 동작
- ARP 요청
- 만일 이전에 전혀 통신한 경험이 없는 LAN(서브네트워크)의 라우터에 외부로부터 데이터 패킷이 전달되어 목적지 호스트를 찾을때,
- 라우터가 최초로 하는 일은 ARP Request packet(ARP 요청 패킷)을 LAN의 전체 노드에 송출함 (broadcast)
- 이때, APP 요청 메세지에는,
. 송신자 자신의 MAC 주소 및 IP 주소, 목적지 IP 주소를 채우지만,
. 목적지의 MAC 주소는 0 으로 채워넣음
- ARP 응답
- ARP 요청 패킷에 포함된 IP 주소와 일치하는 Host는 자신의 IP 주소 및 물리주소를 채워넣은 ARP Reply packet(ARP 응답패킷)을 해당 라우터에게 송출(unicast)함으로써,
- 물리 주소 및 IP 주소 상호간의 관련 정보를 얻게됨
3. ARP 테이블(캐쉬)
- ARP 테이블을 최신으로 유지
- 각 노드(node)는 ARP의 효율적 수행을 위해 ARP 캐쉬를 최신으로 유지하는 일이 필수
- 캐쉬의 각 항목은 새로이 생긴 후로 20분이 지나면 자동적으로 소멸 (RFC 1122)
- 따라서, 자주 사용되는 곳은 ARP cache를 통해 즉각적으로 조회가 가능
- ARP 트래픽 경감
- 만약 ARP 테이블에 조회되는 자료가 없는 경우에만 ARP request packet (ARP 요청 패킷) 을 송출하게 되어 전체적으로 LAN 트래픽을 경감시킴
- ARP 테이블 관련 명령어
- ARP 테이블 내용 확인
. (리눅스, 윈도우즈 등) arp -a
.. IP 주소(호스트 이름), MAC 주소, 유형(동적,정적) 등
. (시스코 장비) show ip arp
- ARP 테이블 삭제 명령어 : (리눅스, 윈도우즈 등) arp -d
- ARP 테이블 내용 확인
3. ARP 패킷 구조
- 패킷 구조
- 패킷 필드 설명
- Hardware type (2 bytes): 사용중인 Hardware 주소 타입을 나타내는 필드.
네트워크 유형을 나타냄.- 1 = Ethernet (10Mb) (0x0001)
- 2 = Experimental Ethernet (3Mb)
- 6 = IEEE 802 Networks
- 11 = LocalTalk
- Protocol type (2 bytes): 어떠한 유형의 프로토콜(IPv4,IPv6,ATM등)을 사용하는가 정의
예) 0x0800은 IPv4 를 의미 - Hardware length (HLEN) (Hardware Address Size) (1 byte): 이더넷의 경우 6
- Protocol Length (1 byte): 논리 주소인 망계층 주소의 크기, IPv4는 4
- Operation Code (2 bytes): 현재 ARP 패킷이 다음중 어떤 종류인지를 가르킴
- 1 = ARP Request(요청)
- 2 = ARP Reply(응답)
- 3 = RARP Request(요청)
- 4 = RARP Reply(응답)
- Sender Hardware Address (Source MAC Address) (6 bytes)
- Sender Protocol Address (Source IP Address) (4 bytes)
- Target Hardware Address (Destination MAC Address) (6 bytes)
- Target Protocol Address (Destination IP Address) (4 bytes)
- Hardware type (2 bytes): 사용중인 Hardware 주소 타입을 나타내는 필드.
참고 사항
- MAC(Media Access Control) address: NIC(Network Interface Card)에 부여된 고유번호.
- PPP(Point-to-Point Protocol)와 같은 점대점 링크에서는 ARP가 사용되지 않음
PPP가 브로드캐스트 형 인터페이스가 아니므로 ARP가 적용되지 않음 - ARP 패킷은 3계층(네트워크계층)을 통해 타 네트워크로 넘어 갈 수 없음
- 기타 참고할 만한 용어: Proxy ARP, Gratuitous ARP, RARP 등
- GARP(Gratuitous ARP): 마스터가 된 노드(router)는 GARP 패킷을 전송한다. GARP를 수신한 노드들은 받은 IP와 MAC 주소를 테이블에 저장한다. IP 충돌 감지 기능이 있고, VRRP에서 사용된다.
- RARP(Reverse Address Resolution Protocol): MAC 주소로 IP 주소를 알아내는 프로토콜 - ARP 관련 표준
- IPv4 RFC 826,1122 (Requirements for internet hosts - communication layers, 1989)
- IPv6 NDP라고하여 ICMPv6에 포함됨 RFC 4861
출처/참고자료
- [stevenjlee] ARP(Address Resolution Protocol) 프로토콜
1. ARP 프로토콜 동작 순서: 같은 네트워크에 있을 때, 다른 네트워크에 있을 때
2. ARP 프로토콜 패킷 분석 - ARP 쉽게 이해하기
1. LAN이란?
2. MAC 주소란?
3. ARP란?
4. ARP Table 생성 과정 - [IBM] ARP
- [정보통신기술용어해설] ARP Address Resolution Protocol
- [정보통신기술용어해설] ARP Packet Format
- [hanajava] ARP and GARP(Gratuitous ARP)
- [Networking Class] ARP(Address Resolution Protocol) [유튜브 동영상] (12분)
Email
답글이 올라오면 이메일로 알려드리겠습니다.