네트워크

ARP 개념과 동작방식

다시 보는 2023. 10. 19. 11:35
728x90

ARP는 Address Resolution Protocol의 약자로 네트워크 계층(OSI7 계층에서 3번째 계층)의 주소결정 프로토콜입니다.

 

이더넷 통신에서 상대의 IP는 알고 있지만, MAC주소를 모를 때 사용합니다.

IP는 얼마든지 바뀔 수 있는 주소지만, MAC 주소는 거의 변하지 않습니다.

MAC 주소 변경이 강제로 가능하긴 하지만 보통 고정이라고 여기고 통신합니다.

(악의적인 MAC 주소 변경을 통한 ARP spoofing 공격이 있습니다.)

 

MAC 주소를 모른다면 이더넷 프레임을 만들 수 없기 때문에 통신이 불가능합니다.

따라서 목적지 IP주소를 목적지의 MAC 주소와 대응시키기 위해서 사용하는 것입니다.

 

ARP는 Request와 Response 동작으로 나눠집니다.

 

ARP Request

모든 PC에게 Request 전달

PC A가 PC D의 MAC주소를 알아내기 위해 ARP Request를 시작합니다. 

ARP Request에는

송신자(보낸측) MAC, 송신자 IP, 수신자 MAC(아직 모르니까 000000000000 이렇게 구성), 수신자 IP 

등의 정보가 담겨있습니다.

 

이 Request 요청은 Broadcast를 통해 모든 PC에게 도착합니다.

Broadcast는 방송이라는 영어 뜻 그대로 해당 네트워크의 모든 IP를 대상으로 하는 1:N 통신입니다. 

B와 C는 해당 요청을 받고 A가 찾는 목적지 IP가 자신이 아님을 확인한 뒤 패킷을 버립니다. 

D는 A가 찾는 대상이 자신임을 알고 응답을 보냅니다.

 

ARP Response

Response는 유니캐스트로 동작

 

이때 응답은 Unicast 즉 1:1 통신으로 A에게만 전달됩니다.

응답 패킷에는 

목적지 IP, 목적지 MAC 주소, 송신측 IP, 송신측 MAC 주소가 들어있습니다. 

응답패킷은 D가 A에게 보내는 것이기 때문에, A가 목적지가 됩니다. 

A는 이 응답 패킷의 송신측 MAC 주소를 확인하고 ARP 테이블을 채우게 됩니다.  

  

 

짧막 지식

1. ARP는 CPU에서 직접수행하기 때문에 짧은 시간안에 여러 건 요청이 들어오면 부하가 발생합니다. 

2. ARP는 같은 네트워크에 있는 대상에게만 동작합니다. 즉 LAN은 ARP Request의 도달 범위입니다. 

3. 외부 네트워크라면 ARP 동작은 라우터가 대신 수행합니다. 즉 A는 라우터의 MAC을 ARP 테이블에 매핑시킵니다.

4. MAC 주소는 한 네트워크에서 유일해야 합니다. 반대로 말하면 같은 MAC 주소라도 서로 다른 네트워크에 존재한다면 괜찮습니다. (VMAC 개념)

5. 보안장비 중에는 비인가 장비가 연결되면 해당 MAC 주소와 동일한 MAC 주소를 세팅해서 비인가장비의 통신이 불가능하게 만들기도 합니다.

728x90