ARP(Address Resolution Protocol)
데이터의 송수신 시 호스트의 IP 주소를 아는 것 만으로는 MAC 주소를 이용해 통신하는 네트워크 계층에서 프레임을 전달하는 것은 불가능하다.
때문에 TCP/IP 통신에서 하드웨어 주소 즉, MAC 주소를 알기 위해 ARP(Address Resolution Protocol)를 사용해 IP 와 MAC 주소 간의 동적 Mapping을 제공한다.
동적 Mapping 이라 표현한 이유는 Mapping 이 자동으로 이루어지며 변경이 발생하여도 시스템 관리자에 의해 재구성을 요하지 않은 채 변경이 적용되기 때문이다.
ARP는 IPv4 에서만 사용되며 IPv6의 경우 ICMPv6에 포함되어 있는 NDP(Neighbor Discovery Protocol)을 사용한다.
ARP 패킷 구조
ARP는 하나의 주소를 확인하기 위한 요청 혹은 응답을 포함하는 간단한 프로토콜이다. ARP 메시지의 크기는 ARP가 작동하는 네트워크의 상하위 계층의 주소체계에 따라서 달라진다. 예컨데, IPv4를 사용하는지 IPv6를 사용하는지에 따라서 ARP의 크기도 달라진다. 아래는 ARP 패킷의 대략적인 구조다. 대략적이라고 한 이유는 필드의 크기가 변할 수 있기 때문이다.
Hardware type |
네트워크 프로토콜의 타입. 이더넷은 1 |
Protocol type |
Internetwork 프로토콜의 타입. IPv4는 0x0800 |
Hardware address length |
하드웨어 주소(MAC)의 길이. 이더넷은 6 |
Protocol address length |
상위 레이어 프로토콜의 주소길이. IPv4는 4 |
Operation |
1은 요청. 2는 응답. |
Source hardware address |
요청을 보내는 측의 MAC |
Source IP address |
요청을 보내는 측의 IP 주소 |
Destination hardware address |
응답을 보내는 측의 MAC |
Destination IP address |
응답을 보내는 측의 IP 주소 |
RARP(Reverse Address Resolution Protocol)
ARP와 반대로 MAC 주소와 IP 주소 간의 매핑을 한다.
ARP probe
ARP probe는 sender의 IP주소를 0으로 해서 ARP 요청을 전송한다.
IPv4 주소의 충돌을 감지하기 위해서 사용한다.
호스트에서 IPv4 주소를 이용 할 때(수동, DHCP 또는 다른 방법으로) 이미 사용되는 주소인지 검출하기 위해 ARP probe 패킷을 전달한다.
ARP announcements
ARP는 announcement 프로토콜로도 사용할 수 있다.
이 기능을 이용하면 호스트의 IP 주소나 MAC 주소가 변경될 때, 다른 호스트의 ARP 테이블 정보를 갱신할 수 있다.
ARP는 Destination Hardware address를 0으로 설정하고 Destination protocol address 필드에 Source protocol address 값을 설정해서 브로드캐스팅 한다.
ARP announcement 를 받은 호스트는 Source Hardware address와 중복되는 값을 찾아서 값을 변환한다.
ARP announcements는 요청에 대한 응답을 필요로 하지 않는다.
대신 요청을 받은 호스트는 ARP 테이블에 있는 캐시 항목을 업데이트 한다.
대부분의 운영체제들이 부팅하는 동안에 ARP announements를 수행한다.
운영체제들이 올라오면 이전의 IP - MAC 값이 변경될 수 있는데, 이 값을 다른 호스트에 알려줌으로써 IP - MAC 불일치로 발생할 수 있는 문제를 해결하는데 도움을 준다.
Inverse ARP와 Reverse ARP
Inverse ARP는 IP를 알고 있는 상태에서, IP에 대한 MAC 주소를 알아내기 위해서 사용한다.
Reverse ARP는 반대로 MAC주소에 대한 IP주소를 알아내기 위해서 사용한다
Alternatives to ARP
각 컴퓨터는 자신의 ARP 테이블에 L3 주소(보통 IP주소)와 L2 주소(Ethernet MAC 주소)정보를 관리한다.
모든 현대적인 컴퓨터들은 ARP 패킷을 로컬 네트워크에 브로드 캐스팅하는 것으로 테이블을 유지한다.
1980년 이전에 브로드캐스팅이 매우 많은 자원을 소모한다고 생각하던 시절이 이었다.
그래서 비용을 줄이기 위해서 설정파일로 테이블을 유지하였다.
ARP Stuffing
ARP mediation
MAC address ( Media Access Control address)
- 매체 접근 제어 주소 . 이더넷 하드웨어 주소
IANA에서 관리하고 할당하는 IP 주소와 달리 MAC 주소는 NIC 제조업체에서 정해진 규칙에 의해 임의로 만들어 진 주소를 장치 내부의 영구 메모리에 저장된다.
48bit로 구성된 MAC 주소 중 앞의 24bit는 제조업체 식별 정보이며 나머지 24bit는 NIC의 시리얼 넘버이다.
00:11:22:33:44:55
제조업체 식별번호 시리얼 넘버
NIC (Network Interface Card)
- 네트워크 인터페이스 카드.
네트웍에 접속할수 있게 하기 위해 컴퓨터 내에 설치되는 확장 카드 이다. 주로 랜카드 또는 이더넷 카드라 부른다.
Operation Codes
Number |
Operation Code (op) |
0 |
Reserved |
1 |
REQUEST |
2 |
REPLY |
3 |
request Reverse |
4 |
reply Reverse |
5 |
DRARP-Request |
6 |
DRARP-Reply |
7 |
DRARP-Error |
8 |
InARP-Request |
9 |
InARP-Reply |
10 |
ARP-NAK |
11 |
MARS-Request |
12 |
MARS-Multi |
13 |
MARS-MServ |
14 |
MARS-Join |
15 |
MARS-Leave |
16 |
MARS-NAK |
17 |
MARS-Unserv |
18 |
MARS-SJoin |
19 |
MARS-SLeave |
20 |
MARS-Grouplist-Request |
21 |
MARS-Grouplist-Reply |
22 |
MARS-Redirect-Map |
23 |
MAPOS-UNARP |
24 |
OP_EXP1 |
25 |
OP_EXP2 |
26-65534 |
Unassigned |
65535 |
Reserved |
Hardware type
ARP에 대한 모든 알려진 하드웨어 목록 번호
참조사이트 : http://iana.org/assignments/arp-parameters/
Number |
Hardware Type (hrd) |
0 |
Reserved |
1 |
Ethernet (10Mb) |
2 |
Experimental Ethernet (3Mb) |
3 |
Amateur Radio AX.25 |
4 |
Proteon ProNET Token Ring |
5 |
Chaos |
6 |
IEEE 802 Networks |
7 |
ARCNET |
8 |
Hyperchannel |
9 |
Lanstar |
10 |
Autonet Short Address |
11 |
LocalTalk |
12 |
LocalNet (IBM PCNet or SYTEK LocalNET) |
13 |
Ultra link |
14 |
SMDS |
15 |
Frame Relay |
16 |
Asynchronous Transmission Mode (ATM) |
17 |
HDLC |
18 |
Fibre Channel |
19 |
Asynchronous Transmission Mode (ATM) |
20 |
Serial Line |
21 |
Asynchronous Transmission Mode (ATM) |
22 |
MIL-STD-188-220 |
23 |
Metricom |
24 |
IEEE 1394.1995 |
25 |
MAPOS |
26 |
Twinaxial |
27 |
EUI-64 |
28 |
HIPARP |
29 |
IP and ARP over ISO 7816-3 |
30 |
ARPSec |
31 |
IPsec tunnel |
32 |
InfiniBand (TM) |
33 |
TIA-102 Project 25 Common Air Interface (CAI) |
34 |
Wiegand Interface |
35 |
Pure IP |
36 |
HW_EXP1 |
37 |
HFI |
38-255 |
Unassigned |
256 |
HW_EXP2 |
257-65534 |
Unassigned |
65535 |
Reserved |
'[IT 관련 지식] > [Network]' 카테고리의 다른 글
프로토콜 이란? (0) | 2017.12.28 |
---|---|
네트워크 4계층 (0) | 2017.12.28 |
Juniper Static Routing 설정 방법 (0) | 2017.12.27 |
IGMP Packet Structure (0) | 2017.07.31 |
라우팅 프로토콜 우선순위 (0) | 2017.07.31 |