네트워크에서 데이터를 전송하려면 목적지의 MAC 주소를 알아야 합니다. 하지만 IP 주소만 알고 있는 경우, 어떻게 MAC 주소를 찾을 수 있을까요? 이때 사용되는 프로토콜이 바로 ARP(Address Resolution Protocol)입니다.
ARP는 네트워크에서 IP 주소를 MAC 주소로 변환하는 역할을 합니다. 컴퓨터가 데이터를 전송할 때, 목적지의 IP 주소만 알고 있으면 ARP를 사용하여 해당 IP 주소에 대한 MAC 주소를 알아냅니다.
ARP 동작 과정
ARP 요청(ARP Request) 전송
송신 노드(컴퓨터 또는 라우터)는 목적지의 MAC 주소를 모르기 때문에, 네트워크에 ARP 요청을 브로드캐스트(Broadcast) 방식으로 전송합니다.
"이 IP 주소(192.168.1.10)를 가진 장치야, 네 MAC 주소를 알려줘!"
ARP 응답(ARP Reply) 수신
대상 장치가 요청을 받으면 자신의 MAC 주소를 포함한 ARP 응답을 송신 노드에게 유니캐스트(Unicast) 방식으로 보냅니다.
"나는 192.168.1.10이고, 내 MAC 주소는 AA:BB:CC:DD:EE:FF야!"
ARP 캐시(ARP Cache) 저장
송신 노드는 받은 MAC 주소를 ARP 캐시 테이블에 저장하여 다음 번에 같은 IP로 패킷을 보낼 때 다시 ARP 요청을 보내지 않도록 합니다.
컴퓨터에서 ARP 캐시 테이블을 확인하려면 다음 명령어를 사용하면 됩니다.
Windows : arp -a
Linux/MacOS : arp -n
이 명령어를 실행하면 현재 저장된 IP-MAC 주소 매핑 목록을 확인할 수 있습니다.
네트워크 장비인 2계층 스위치와 3계층 스위치는 ARP를 다르게 활용합니다.
2계층 스위치는 ARP를 사용하지 않습니다. 그 이유는 MAC 주소 기반으로 동작하기 때문입니다.
2계층 스위치는 MAC 주소 테이블(MAC Address Table, CAM Table)을 사용하여 프레임을 전달합니다.
스위치는 IP 주소를 기반으로 패킷을 전달하는 기능이 없기 때문에, ARP 요청을 직접 처리하지 않습니다.
하지만 ARP 패킷이 스위치를 통과할 수는 있습니다. 즉, ARP 요청과 응답을 전달할 뿐, 직접 응답하거나 생성하지는 않습니다.
3계층 스위치는 라우팅 기능을 수행하기 때문에 ARP를 사용합니다.
3계층 스위치는 라우팅 테이블(Routing Table)을 사용하여 IP 주소 기반으로 패킷을 전달합니다.
특정 서브넷에서 목적지 MAC 주소를 알아야 하는 경우, ARP를 사용하여 IP 주소를 MAC 주소로 변환합니다.
즉, 라우터와 마찬가지로 ARP 요청을 직접 생성하고 응답을 처리할 수 있습니다.
ARP는 네트워크에서 IP 주소를 MAC 주소로 변환하는 필수적인 프로토콜입니다. 2계층 스위치는 ARP를 직접 사용하지 않지만, 3계층 스위치는 ARP를 적극적으로 활용하여 네트워크 통신을 수행합니다.