ARP는 논리적인 IP 주소를 기반으로 물리적인 MAC 주소로 바꾸어주는 주소 해석 프로토콜이다.
즉, IP 주소와 MAC 주소 사이를 연결해준다.
IP 주소와 MAC 주소
구분
구성 체계
기능
IP 주소
가변적인 32-bit 크기의 네트워크 ID, 호스트 ID
IP 주소 기반의 라우팅
MAC 주소
고정적인 48-bit 크기의 OUI와 일련번호
MAC 주소 기반의 스위칭
IP 주소와 MAC 주소의 차이를 정리하면 위 표와 같다.
RARP (Reverse Address Resolution Protocol)
ARP가 IP 주소를 이용해 MAC 주소를 바꾸어주는 프로토콜이었다면 RARP는 MAC 주소를 이용해 IP 주소를 매핑하는 프로토콜이다.
2. ARP 캐시 테이블
ARP 캐시 테이블에 대해서 설명하기 전에 간단한 실습을 할 것이다.
1. 관리자 권한으로 cmd 창을 연 후arp -d명령어 실행
2.ping 8.8.8.8명령어 실행
-> ping : 출발지, 목적지 호스트 사이에 회선의 연결 상태나 목적지 운영체제의 동작 여부를 점검하기 위해 사용
3.arp -a명령어 실행
위 그림을 보면 10.20.1.1번 IP 주소와 00-0c-29-06-0c-54 MAC 주소가 대응 관계를 이루고 있다. 이처럼 IP 주소와 MAC 주소의 대응 관계를 저장한 테이블이 ARP 캐시 테이블이다.
명령어
설명
arp -a
arp 테이블 항목을 보여줌
arp -d
arp 테이블 항목을 제거함
arp 명령어는 위 표와 같다. (다른 옵션도 존재하니 필요하면 구글 검색을 이용하자!)
3. ARP 캐시 테이블이 비어있는 경우
만일 ARP 캐시 테이블이 비우고 ping 명령어를 통해 다른 LAN 영역에 있는 목적지로 데이터를 전송하면 ARP 캐시 테이블은 어떻게 채워질까?
위 그림과 같은 상황을 생각해보자. 출발지의 IP 주소는 10.20.1.2이다.
구분
출발지
목적지
IP 주소
10.20.1.2
8.8.8.8
MAC 주소
00-24-1D-DF-8C-47
ARP 캐시 테이블이 빈 상황에서 ping 8.8.8.8 명령어를 실행할 경우 운영체제는 출발지 네트워크 ID와 도착지 네트워크 ID를 비교한다. 출발지는 10.20.1인 반면 목적지는 8.8.8으로 네트워크 ID가 다르다. 즉, 서로 다른 LAN 영역이기 때문에 목적지 IP 주소를 라우터의 IP 주소로 변경해야 한다.
구분
출발지
목적지
IP 주소
10.20.1.2
10.20.1.1 (라우터 IP 주소)
MAC 주소
00-24-1D-DF-8C-47
동일한 LAN 영역에 위치한 게이트웨이까지 스위칭 통신을 하기 위해 목적지 MAC 주소가 필요하다.
출발지 호스트는 자기가 속한 LAN 영역 전체를 대상으로 10.20.1.1에 대응하는 MAC 주소를 찾기 위해 ARP 질의를 브로드 캐스트 방식으로 전송한다.
브로드캐스트(Broadcast)
자신의 호스트가 속해 있는 네트워크 전체를 대상으로 패킷을 전송하는 일대다 통신 방식
그 후, 10.20.1.1을 사용하는 게이트웨이가 자신의 MAC 주소를 요청한다는 사실을 알기에 유니캐스트 방식으로 자신의 MAC 주소를 출발지 호스트로 전송한다.
유니캐스트 (Unicast)
하나의 송신자가 다른 하나의 수신자로 데이터를 전송하는 방식
구분
출발지
목적지
IP 주소
10.20.1.2
10.20.1.1 (라우터 IP 주소)
MAC 주소
00-24-1D-DF-8C-47
00-26-16-86-F8-0C
위 표처럼 ARP 캐시 테이블에 목적지 MAC 주소가 올라오면 운영체제는 이를 참조해 ping 데이터를 유니캐스트 방식으로 게이트웨이에 전송한다. 이후, 게이트웨이가 IP 주소에 기반한 라우팅 통신을 통해 목적지 호스트가 있는 게이트웨이로 데이터를 전송한다.
이처럼 ARP 요청과 응답이 일어나는 공간을 ARP 영역이라 하며, ARP 동작은 동일한 네트워크 ID를 공유하는 호스트를 대상으로 MAC 주소를 구하는 기능인만큼 ARP 영역 자체가 LAN 영역을 의미한다.