본문 바로가기

공부하자/IT

[네트워크] ARP, RARP

728x90
반응형

ARP, RARP

 


ARP ( Address Resolution Protocol  ) MAC address IP address를 매핑하는 목적으로 사용합니다.

 

MAC address는 모든 네트워크 장비가 가지고 있는 물리적인 주소입니다.

반면 IP address는 논리적인 주소입니다

 

내가 A라는 회사에서 211.101.10.1이라는 IP address를 사용하다가 B회사로 옮기게 되면 B회사에 맞는 네트워크 대역의 IP address를 사용함으로써 IP address가 바뀔 수도 있습니다.

하지만 내 컴퓨터의 NIC(랜카드)의 고유번호인 MAC address는 변경되지 않죠.


IP Address
는 알고 있지만 실제 통신을 위한 MAC Address를 알아 내기 위한 Protocol 입니다.



ARP
는 라우터 뿐만 아니라 호스트에서도 사용됩니다.

 

인터넷에서 모든 노드(라우터,호스트)들은 각각 인터넷주소(IP주소)를 가지고 있습니다. 그래서 인터넷 여기저기로 패킷이 오갈 수 있는 것이지요. 그런데, 노드는 이 인터넷 주소 말고, 지역적으로 사용할 수 있는 Link Layer Address(L2)를 가지고 있습니다. 보통, 이것은 Physical adddess, MAC주소, Ethernet 주소와 동일하게 됩니다.

 

기본적으로 패킷전달은 이 L2주소로 지역내에서 전달됩니다. 같은 네트워크 내에서 호스트와 호스트, 호스트와 라우터 간에는 L2주소를 가지고 패킷이 전달됩니다.

 

A컴퓨터가 IP address 192.168.10.1 "바다"라는 데이터를 보내야 한다고 할 때,

192.168.10.1이라는 위치는 알고 있지만 정작 그 IP address를 누가 사용하는지 모릅니다.

그래서 "192.168.10.1을 누가 쓰고 있니?"라고 외치게 됩니다.

이때 B컴퓨터가 자기를 찾는다는 것을 알고 그 외침에 대답을 하죠.

"192.168.10.1은 난데? ?"

"..B컴퓨터 너냐? 너한테 줄거 있으니까 MAC address좀 알려주라."

라고 A컴퓨터는 B컴퓨터의 MAC address를 요청합니다.

B컴퓨터는 A컴퓨터에게 자신의 MAC address를 알려주고 그제서야 실질적인 데이터를 주고받게 되는 것이죠.

이 과정에서 사용되는 프로토콜이 바로 ARP입니다.

 

다시 말해서 실제로 데이터를 주고받기 위해서는 서로간의 MAC address를 이용한다는 것입니다.

IP address는 단지 상대방의 위치만 알려줄 뿐입니다.

 

그래서 IP address는 논리적 주소, MAC address는 물리적 주소라고 하는 것이죠.

 

rarp(reverse arp) arp와 반대의 경우로 mac address를 이용하여 ip address를 알고자 할 경우에 사용되어지는 프로토콜입니다.

 

 

○ 패킷을 전송하는 절차의 예
0.
호스트 A에서 호스트 B IP 패킷을 보내려 합니다.
1.
현재 호스트A는 호스트B IP주소는 알고 있습니다, 그러나 L2주소(이더넷주소)는 모르고 있습니다.
2.
호스트 A는 호스트B L2주소를 알기 위해서 ARP Request 패킷을 뿌립니다. 뿌려진 ARP Request는 같은 네트워크 내의 모든 노드에게 전달됩니다.
3.
호스트 C ARP Request 를 받았지만, 자기 IP주소를 이야기하고 있지 않으므로 그냥 무시합니다.
4.
호스트 B ARP Request를 받아보니, "호스트A라는 놈이 자기(호스트B) IP주소를 가지고 L2주소(MAC주소,Ethernet주소)를 알고 싶어하는 구나"라는 것을 인지하고, 호스트A에게 자기의 L2 주소를 ARP Response를 주어 응답해줍니다.
5.
호스트 A는 호스트 B로부터 온 ARP Response 를 받고, "오호, 호스트B L2주소가 xx:xx:xx:xx:xx:xx 로구나"하고 알게 됩니다.
6.
이제 호스트 A는 호스트 B L2주소를 써서 직접 IP패킷을 전송합니다.
7.
몇 초뒤 호스트 A는 호스트 B에게 IP패킷을 보내려 합니다. 호스트 A에게는 ARP캐쉬가 있어서 최근에 사용한 ARP Table을 가지고 있습니다. 그래서 앞의 1~5단계를 생략하고 바로 호스트 B L2주소를 이용하여 IP패킷을 직접 전송합니다.
8.
호스트 A ARP Cache (ARP Table)은 한참 사용하지 않으면 없어집니다.

 

일반적으로 TCP/IP패킷은 다음과 같이 생겼습니다.
[MAC
헤더] + [IP 헤더] + [TCP헤더] + [TCP 데이터그램]

 

PC에서 arp -a 명령을 내리면 ARP cache가 출력되는 것입니다. Dynamic 이라고 한 것은 자동으로 ARP패킷을 전송해서 얻은 것으로, 한참 사용하지 않을 경우 없어집니다.

 

arp -s 명령을 써서 강제로 해당 IP L2주소를 세팅할 수 있는데 이때는 static 으로 표시되고, 직접 지우기 전에는 안 없어집니다. arp -d 를 하면 ARP cache를 모두 지울수 있습니다.

한가지 더 RARP (Reverse ARP) ARP와 반대되는 기능을 수행합니다. , MAC Address를 가지고 IP Address를 알기 위해 사용됩니다.

반응형