top of page
작성자 사진지현 배

ARP table

ARP(Address Resolution Protocol)이란?

ARP는 논리적인 IP 주소를 기반으로 물리적인 MAC 주소로 바꾸어주는 주소 해석 프로토콜

즉, IP 주소와 MAC 주소 사이를 연결해준다.

IP 주소와 MAC 주소

IP 주소와 MAC 주소의 차이를 정리하면 위 표와 같다.

RARP (Reverse Address Resolution Protocol)

ARP가 IP 주소를 이용해 MAC 주소를 바꾸어주는 프로토콜이었다면 RARP는 MAC 주소를 이용해 IP 주소를 매핑하는 프로토콜이다.



ARP 캐시 테이블

ARP 캐시 테이블에 대해서 설명하기 전에 간단한 실습을 할 것이다.

1. 관리자 권한으로 cmd 창을 연 후 arp -d 명령어 실행

2. ping 8.8.8.8 명령어 실행

-> ping : 출발지, 목적지 호스트 사이에 회선의 연결 상태나 목적지 운영체제의 동작 여부를 점검하기 위해 사용


ping 8.8.8.8

3. arp -a 명령어 실행

arp -a

위 그림을 보면 172.30.1.254번 IP 주소와 08-5d-dd-41-6d-79 MAC 주소가 대응 관계를 이루고 있다. 이처럼 IP 주소와 MAC 주소의 대응 관계를 저장한 테이블이 ARP 캐시 테이블이다.


ARP 명령어

ARP 캐시 테이블이 비어있는 경우

만일 ARP 캐시 테이블이 비우고 ping 명령어를 통해 다른 LAN 영역에 있는 목적지로 데이터를 전송하면 ARP 캐시 테이블은 어떻게 채워질까?

위 그림과 같은 상황을 생각해보자. 출발지의 IP 주소는 10.20.1.2이다.

구분출발지목적지IP 주소10.20.1.28.8.8.8MAC 주소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.210.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)

하나의 송신자가 다른 하나의 수신자로 데이터를 전송하는 방식



위 표처럼 ARP 캐시 테이블에 목적지 MAC 주소가 올라오면 운영체제는 이를 참조해 ping 데이터를 유니캐스트 방식으로 게이트웨이에 전송한다. 이후, 게이트웨이가 IP 주소에 기반한 라우팅 통신을 통해 목적지 호스트가 있는 게이트웨이로 데이터를 전송한다.

이처럼 ARP 요청과 응답이 일어나는 공간을 ARP 영역이라 하며, ARP 동작은 동일한 네트워크 ID를 공유하는 호스트를 대상으로 MAC 주소를 구하는 기능인만큼 ARP 영역 자체가 LAN 영역을 의미한다.


다시 한번 위 상황 정리 (ARP Table 생성 과정)


이번에는 ARP Table의 생성 과정에 대해 알아보겠습니다. IP 주소와 MAC 주소가 구비되어있다 하더라도 다른 PC의 IP 주소와 MAC 주소를 모르면 데이터를 전달할 수 없겠죠. 그래서 ARP Table을 생성하여 다른 PC들에 대한 주소 정보를 확보하는 것이 필요합니다.



위의 그림을 토대로 순차적으로 설명하겠습니다. 여기서 짚고 넘어가야 할 점은 PC 0,1,2,3뿐만 아니라 모든 단말들은 자신만의 Routing Table이 있어 자신이 보내려는 패킷의 목적지 IP가 자신이 소속된 IP 대역인지 아닌지 알 수 있다는 것입니다.


1. PC 0(192.168.1.1)은 PC 2(192.168.1.3)에게 데이터를 전달하려고 합니다. 일단 Routing table을 보니 자신과 PC 2가 같은 LAN에 속한다는 것을 알았습니다. 이제 PC 2의 MAC 주소를 알기 위해 ARP Request(Who has 192.168.1.3? Tell 192.168.1.1) 를 뿌립니다.


2. PC 0는 Broadcast(FF:FF:FF:FF:FF:FF)인 ARP Request를 날리고 PC 1, PC 2, PC 3에 전달됩니다. 그리고 ARP Request의 목표인 PC 2가 이에 반응하여 ARP Response(PC 2의 MAC 주소)를 보냅니다.


3. PC 0(192.168.1.1)은 PC 2가 보낸 ARP Reponse를 받고 ARP Table에 PC2의 IP와 MAC 주소를 적습니다. 그리고 데이터를 보내려 목적지 IP를 192.168.1.3으로 지정하면 자연스레 ARP Table을 보고 PC 2의 MAC 주소를 목표로 전달합니다.








https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0





조회수 9회댓글 0개

최근 게시물

전체 보기

Comments


bottom of page