지난 번 포스팅을 통하여 ARP에 대한 이론적인 설명을 한 적이 있습니다.
이번 시간에는 이와 비슷한 RARP 개념에 대하여 알아보겠습니다.
RARP의 의미
RARP란 무슨 의미 일까요?
RARP는 Reverse Address Resolution Protocol의 약어 입니다.
말 그대로 ARP 프로토콜의 반대라는 의미 입니다.
무슨 뜻인지 이해가 잘 안 가시죠?
천천히 알아가 봅시다.
우선 ARP프로토콜에 대하여 복습을 해보겠습니다.
ARP 프로토콜은 다음과 같이 동작합니다.
먼저 장비 A는 장비 B의 IP주소만을 알고 있는 상태이며,
장비 B의 MAC주소를 알기 위해 다음 메시지를 네트워크 내 BroadCase합니다.
장비 A :
"나는 장비 A야,
장비 B의 IP주소는 B.B.B.B로 알고 있는데 MAC주소를 모르겠어
장비 B의 MAC주소를 알고 있는 사람이 있다면 나에게 그 주소를 보내줘"
(ARP Request Message)
다른 장비들은 이 broadcast된 메시지를 받고는
"나한테 해당되지 않는 이야기네?"
하면서 이 패킷을 처리하지 않고 버려 버립니다.
그러나 이 패킷은 받은 장비 B는
장비 B :
"어, 이거 나한테 해당되는 얘기네!
내 MAC주소는 ~야"
(ARP Response Message)
하면서 이 메시지를 장비 A에게 응답해줍니다.
바로 이와 같이 동작하여
IP주소를 알고 있는 장비의 MAC주소를 알아내기 위한 protocol이 ARP 프로토콜입니다.
그러면 RARP는 무엇일까요?
Reverse ARP니까 ARP와 반대 방식으로 동작하는 프로토콜인건 맞는 것 같은데..
감이 잘 안 오시죠?
RARP란 이런 겁니다.
자기 자신의 IP주소를 모르고 있는 컴퓨터가 한 대 있습니다.(장비 A)
그리고 이 컴퓨터는 자신의 MAC주소만을 알고 있습니다.
그러면 위 그림과 같이 다음 메시지를 만들어서 네트워크 내에 뿌립니다
"내 MAC주소는 ~~입니다.
혹시 내 IP주소를 알고 있는 분 계시면 저에게 답장 좀 해 주세요"
(RARP Request)
다른 장비들은 이 broadcast패킷을 받고는
처리하지 않고 버립니다.
하지만 이 broadcast를 받은 RARP서버는
이 broadcast패킷을 받자 마자
다음과 같은 메시지를 만들어 A에게 답장해 줍니다
"저는 당신의 IP주소를 알고 있습니다.
MAC주소 ~~에 해당하는 당신의 IP주소는 113.27.1.5입니다"
(RARP Response)
그렇습니다.
위에서 본 예시와 같이,
자기 자신의 IP주소를 모르는 컴퓨터가
자신의 IP주소를 알기 위하여 사용하는 프로토콜이 바로 RARP입니다.
그런데 좀 이상하지 않나요?
어떻게 컴퓨터가 자기 자신의 IP주소를 모를 수가 있을까요?
자기가 자기 IP를 모른다면
대체 누가 자신의 IP를 기억해 준단 말이죠?
현재에 사용되는 DHCP가 개발되기 전에는
각각의 PC들이 자신 컴퓨터의 disk내에 자신의 IP주소가 무엇인지를 저장하고 있었습니다.
하지만 이 시기에
컴퓨터들 중에서 disk와 같은 데이터 저장장치들이 탑재되지 않은 컴퓨터들이 있었습니다.
저장장치가 탑재되지 않았으니
자신의 IP주소가 무엇인지를 저장할 수가 없었을 것이고,
이러한 장비들이 인터넷을 사용하기 위해서는
반드시 외부의 도움이 필요했을 것입니다.
그래서 고안해 낸 방법은 이렇습니다.
"이렇게 저장장치가 탑재되지 않은 컴퓨터들이 인터넷을 사용하도록 할 수 있게 하기 위해
네트워크 내 RARP Server를 하나 짓자.
저장장치가 없는 컴퓨터들이 Booting되고 자신의 IP주소가 무엇인지 궁금하다면
이 RARP Server로 자신의 IP주소가 무엇인지를 물어보게 하고,
RARP Server는 그 응답으로 그 장비에게 IP주소를 알려주도록 하는 시스템을 도입하자"
이것이 바로 Bootstrapping(부트스트래핑)이라 불리는 과정입니다.
이것이 바로 RARP가 탄생하게 된 배경입니다.
저장공간 장치가 탑재되지 않은 미성숙하고 완전하지 않은 컴퓨터들에게 조차
인터넷을 사용할 수 있는 기회를 만들어주기 위하여
RARP라는 system을 개발하고 설계한 네트워크 엔지니어들이 존경스럽습니다.
RARP의 한계점
지금까지 RARP가 무엇인지, 그리고 어떠한 방식으로 동작하는지를 알아보았습니다.
하지만 RARP는 수많은 결점으로 인하여 요즘은 사용되지 않는 기술입니다.
대신 DHCP라는 동적 주소할당 기술이 개발되어 사용되고 있죠.
설명만 들었을 땐 정말 좋아보였던 RARP,
도대체 무엇이 문제였기에 도태된 시스템이 되었을까요?
일단 네트워크 서버마다 RARP Server라는 것을 두어야 한다는 것이 부담스럽습니다.
RARP서버가 제공하는 서비스는 단 하나입니다.
"누가 나에게 '내 IP주소가 무엇인가요?'하고 물어보면
그에게 IP주소를 알려준다"
즉 제공하는 것은 IP주소 하나밖에 없습니다.
하지만 IP주소만으로는 정보가 많이 부족합니다.
자신 IP주소의 subnet mask는 무엇인지,
자신이 속한 default gateway는 무엇인지...등등
필요한 더 많은 정보를 제공하는 RARP를 대체하는 시스템이 필요한 것입니다.
그리고 결정적으로,
오늘날의 네트워크에 있어 필수적인 기능인
동적할당 기능을 제공하지 않고 있습니다.
RARP서버는 내부에 다음과 같은 데이터들을 저장하고 있습니다.
MAC주소 A의 IP주소는 AAAA
MAC주소 B의 IP주소는 BBBB
MAC주소 C의 IP주소는 CCCC
MAC주소 D의 IP주소는 DDDD
바로 이 테이블을 참조하여
어떤 mac주소에서 요청이 왔을 때 어떠한 IP라고 알려주어야 하는지 알 수가 있는 것입니다.
다시 말해, 동적인 주소할당이 아닌
MAC주소에 따라 고정되어 있는 IP주소값을 제공하는 체계이기 때문에
유연한 IP시스템을 구현하기 어렵다는 단점이 있습니다.
이러한 문제들 때문에
RARP에서 DHCP기술이 대세로 자리잡게 되었습니다.
이상 RARP의 의미, 동작 원리와 한계점에 대하여 알아보았습니다.
감사합니다
'Network Science' 카테고리의 다른 글
Address Resolution Protocol (ARP) 완벽히 이해하기 (0) | 2022.04.17 |
---|