카테고리 없음

3장 ARP 캐시 테이블의 이해

studylida 2023. 2. 24. 21:00

3장 ARP 캐시 테이블의 이해

지금까지 공부한 것을 바탕으로 IP주소와 맥주소의 차이점을 정리하면 다음과 같다.

구분 구성 체계 기능
IP 주소 가변적인 32비트 크기의 네트워크 ID와 호스트 ID IP 주소 기반의 라우팅
맥 주소 고정적인 48비트 크기의 OUI와 일련번호 맥 주소 기반의 스위칭

IP 주소와 맥 주소를 연결해주는 ARP 기능에 대해 알아보자.

먼저 명령 프롬프트 창에서 arp -d 명령어를 입력한 뒤 ping 8.8.8.8 명령어를 입력한다. Ping 명령어는 출발지 호스트와 목적지 호스트 사이에서 회선의 연결 상태나 목적지 운영체제의 동작 여부 등을 점검하기 위해 사용되는 명령어이다.

이제 arp -a 명령어를 입력하면 다음 내용을 확인할 수 있다.

인터넷 주소 물리적 주소 유형
192.168.0.1 00-26-66-86-f8-0c 동적

이는 인터넷 주소 192.168.0.1과 물리적 주소 00-26-66-86-f8-0c가 대응 관계를 나타내고 있음을 말한다. 이처럼 IP 주소와 맥 주소의 대응 관계를 저장한 테이블을 ARP 캐시 테이블이라고 한다. 이는 2장에서 배웠던 도메인 네임과 IP 주소의 대응 관계를 관리하는 DNS 서비스 기능과 유사하다.

위에서 입력했던 명령어의 동작 과정은 다음과 같다.

Ping 8.8.8.8 명령어를 엔터한다. 엔터라는 행위는 이제 모든 처리를 운영체제에 맡긴다는 의미다.

엔터를 누르면 운영체제는 자기가 사용하는 서브넷 마스크 255.255.255.0을 갖고 출발지 IP 주소와 목적지 IP 주소를 각각 192.168.0.13 255.255.255.0과 8.8.8.8 255.255.255.0으로 설정한 뒤 출발지 네트워크 ID와 목적지 네트워크 ID를 비교한다. 출발지 네트워크 ID 192.168.0번과 목적지 네트워크 ID 8.8.8.8번은 다르다. 목적지가 출발지와 다른 LAN 영역에 있다는 의미이다.

출발지와 상이한 LAN 영역에 있는 목적지로 데이터를 전송하기 위해 운영체제는 목적지 IP 주소를 라우터의 IP 주소로 변경한다. 이때 목적지는 8.8.8.8에서 192.168.0.1으로 바뀐다.

이제 기본 게이트웨이에 해당하는 목적지 맥 주소를 알아야 한다. 그래야 출발지 호스트와 동일한 LAN 영역에 위치한 게이트웨이까지 스위칭 통신할 수 있기 때문이다. 현재 출발지 호스트에서는 목적지 맥 주소를 모른다. 때문에 출발지 호스트에서는 자기와 동일한 네트워크 ID를 사용하는 모든 호스트, 다시 말해 자기가 속한 LAN 영역 전체를 대상으로 192.168.0.1번에 대응하는 맥 주소를 구하기 위해 ARP 질의를 브로드캐스트 방식을 이용해 전송한다. 브로드캐스트 방식은 자신과 동일한 네트워크 ID를 사용하는 모든 호스트에게 데이터를 전송하는 방식이다.

출발지 호스트가 속한 LAN 영역의 모든 호스트는 출발지 호스트로부터 ARP 브로트캐스트 질의를 받고, 이 중에서 192.168.0.1번을 사용하는 게이트웨이가 자신에 대한 맥주소를 192.168.0.13번에서 요청한다는 사실을 알기에 자신의 맥 주소를 유니캐스트 방식으로 전송한다. 유니캐스트 방식은 특정한 호스트에게 데이터를 전송하는 방식이다.

하여 이러한 과정을 통해 변경된 ARP 캐시 테이블의 내용은 다음과 같다.

구분 출발지 목적지
IP 주소 192.168.0.13 192.168.0.1
맥 주소 00-24-1D-DF-8C-47 00-2666-86-F8-0C

이처럼 ARP 캐시 테이블에 목적지 맥 주소가 올라오면 운영체제에서는 ARP 캐시 테이블을 참조해 핑 데이터를 유니캐스트 방식에 따라 게이트웨이까지 전송한다. 이후부터는 게이트웨이가 IP 주소에 기반한 라우팅 통신을 통해 전송한다.

지금까지 말한 것을 정리하면 다음과 같다.

1. 운영체제는 출발지 서브넷 마스크를 기준으로 출발지 네트워크 ID와 목적지 네트워크 ID를 비교해 목적지가 스위칭 통신의 대상인지, 라우팅 통신의 대상인지 판단한다.
2. 운영체제는 ARP 캐시 테이블에 접근해 목적지 맥 주소를 검색한다. 목적지가 스위칭 통신의 대상이면 실제 목적지 IP 주소에 해당하는 맥 주소를 ARP 캐시 테이블에서 검색하고, 목적지가 라우팅 통신의 대상이면 라우터 IP 주소에 해당하는 맥 주소를 ARP 캐시 테이블에서 검색한다.
3. ARP 캐시 테이블에 목적지 맥 주소가 있다면 운영체제는 곧바로 해당 맥 주소를 참조해 목적지까지 유니캐스트 방식으로 전송한다. 만약 목적지 맥 주소가 없다면, 운영체제는 자신이 속한 LAN 영역 전체를 대상으로 APR 브로드캐스트 질의를 전송한다.
4. 출발지 호스트와 동일한 LAN 영역에 속한 목적지 호스트는 ARP 유니캐스트 응답을 출발지 호스트에게 전송한다.
5. 운영체제는 ARP 유니캐스트 응답을 통해 휙득한 목적지 맥 주소를 ARP 캐시 테이블에 반영한다.
6. 운영체제는 사용자가 전송하고자 하는 실제 데이터를 ARP 캐시 테이블에 기반해 목적지 호스트로 유니캐스트 방식에 따라 전송한다.

ARP 요청과 응답을 정확히 이해하기 위해서는 ARP 헤더를 알아야 한다. 이는 11장에서 더 자세히 살펴본다.

한편 그림 3-5와 같이 ARP 요청과 응답이 일어나는 공간을 ARP 영역이라고 한다.


ARP 동작이 동일한 네트워크 ID를 공유하는 호스트를 대상으로 맥 주소를 구하는 기능인 만큼 ARP 영역 자체가 곧 LAN 영역 자체를 의미한다. 이것은 LAN 영역에 대한 또 다른 차원의 개념에 해당한다.

지금까지 배운 LAN 영역에 대한 여러 관점에 따른 정의는 다음과 같다.

관점 정의
네트워크 ID 동일한 네트워크 ID를 공유하는 공간
스위칭 맥 주소에 기반해 내부 통신이 가능한 공간
ARP 영역 단일한 ARP 영역을 생성하는 공간