ARP와 RARP
쉽게 말하면
같은 동네(네트워크) 안에서 실제로 데이터를 건네줄 때는 IP 주소가 아니라 랜카드 번호(MAC 주소)가 필요해요. 그래서 "192.168.0.1 쓰는 분, 랜카드 번호 좀 알려 주세요!" 하고 동네 전체에 외치는 게 ARP예요. 한 번 알아낸 답은 잠시 메모(ARP 캐시)해 둬요. RARP는 반대로 MAC으로 IP를 묻는 옛 방식이에요.
시험용 정의
ARP(Address Resolution Protocol)는 IP 주소로 MAC 주소를 알아내는 프로토콜이다. 요청은 브로드캐스트, 응답은 유니캐스트로 오고, 결과는 ARP 캐시에 잠시 저장한다(윈도우 arp -a). RARP는 반대로 MAC 주소로 IP 주소를 알아내는 옛 프로토콜로, 지금은 DHCP가 대신한다.
비유로 이해하기
아파트 방송이다. "302호 사시는 분(IP), 문패 번호(MAC) 알려 주세요"라고 단지 전체에 방송하면(브로드캐스트) 302호만 직접 와서 알려 준다(유니캐스트). 수첩(ARP 캐시)에 적어 두면 한동안 다시 방송하지 않는다.
자세히
그림으로 보기: ARP 로 MAC 주소 알아내기
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| MAC 주소 | 랜카드 고유 번호(48비트). 같은 네트워크 안 전달에 쓴다 |
| 브로드캐스트 / 유니캐스트 | 모두에게 보내기 / 한 대에게만 보내기 |
| ARP 캐시 | IP ↔ MAC 짝을 잠시 저장한 표 |
| 기본 게이트웨이 | 다른 네트워크로 나가는 출구 라우터 |
동작 순서
- 보낼 IP의 MAC을 ARP 캐시에서 찾는다
- 없으면 ARP 요청을 브로드캐스트한다 ("192.168.0.1 누구?")
- 그 IP를 가진 장비가 자기 MAC을 담아 응답한다
- 캐시에 저장하고 프레임을 보낸다
목적지가 다른 네트워크면 상대 IP가 아니라 기본 게이트웨이의 IP로 ARP를 해서 라우터의 MAC으로 보낸다.
관련 개념
| 이름 | 뜻 |
|---|---|
| RARP | MAC → IP. 디스크 없는 단말이 부팅할 때 쓰던 방식 (BOOTP, DHCP로 대체) |
| GARP(Gratuitous ARP) | 자기 IP로 ARP를 보내 IP 중복을 확인하거나 변경을 알림 |
| 프록시 ARP | 라우터가 다른 네트워크 장비 대신 ARP에 응답 |
| ARP 스푸핑 | 가짜 ARP 응답으로 캐시를 오염시켜 통신을 가로채는 공격 |
명령어
| 명령 | 뜻 |
|---|---|
| arp -a | ARP 캐시 보기 (윈도우·리눅스) |
| arp -d | 캐시 항목 삭제 |
| arp -s IP MAC | 정적 항목 추가 (스푸핑 방어에 쓰기도 함) |
| ip neigh | 리눅스의 ARP(이웃) 표 |
기출에서 더 나온 것
| 말 | 뜻 |
|---|---|
| ARP 캐시 수명 | 알아낸 IP-MAC 대응은 일정 시간만 보관하고, 쓰지 않으면 지운다. 새로 등록된 항목에도 수명(TTL)이 있어 매번 다시 묻지 않으면서도 바뀐 주소를 따라간다 |
| ARP 캐시의 수명 | 알아낸 IP와 MAC의 짝은 캐시에 일정 시간만 둔다. 쓰지 않으면 지우고, 새로 등록된 항목에도 수명이 있다. 그동안은 같은 상대에게 다시 묻지 않는다 |
시험에 이렇게 나와요
- ARP → IP 주소를 MAC(하드웨어) 주소로 바꾼다, 요청은 브로드캐스트
- ARP 캐시 → 알아낸 IP-MAC 대응을 일정 시간 보관, 쓰지 않으면 지움 (매번 다시 묻지 않음)
- 새로 등록된 항목에도 수명(TTL)이 있다
확인 문제
Q1. PC가 같은 네트워크의 192.168.0.1에게 처음 프레임을 보내려 한다. 상대의 MAC 주소를 알아내려고 보내는 ARP 요청은 어떻게 전달될까?
- 192.168.0.1에게만 유니캐스트로
- DNS 서버에게
- 같은 네트워크 전체에 브로드캐스트로
- 기본 게이트웨이에게만
정답 보기
3번 같은 네트워크 전체에 브로드캐스트로
ARP 요청은 누가 그 IP를 쓰는지 모르니 브로드캐스트(목적지 MAC FF:FF:FF:FF:FF:FF)로 보내고, 해당 장비만 자기 MAC을 담아 유니캐스트로 응답한다.
Q2. MAC 주소를 이용해 IP 주소를 알아내는 프로토콜은?
- RARP
- ICMP
- DNS
- ARP
정답 보기
1번 RARP
RARP다. ARP는 반대로 IP 주소로 MAC 주소를 알아낸다. ICMP는 오류 보고, DNS는 이름을 IP로 바꾼다.
Q3. 윈도우에서 ARP 캐시를 확인하는 명령은?
- ipconfig /all
- arp -a
- arp -d
- route print
정답 보기
2번 arp -a
arp -a다. -d는 ARP 캐시 항목을 지운다. ipconfig /all은 내 컴퓨터의 네트워크 설정을, route print는 라우팅 표를 보여 준다.
Q4. 목적지가 다른 네트워크에 있을 때 PC가 ARP로 MAC을 찾는 대상은?
- DHCP 서버
- DNS 서버
- 목적지 서버
- 기본 게이트웨이
정답 보기
4번 기본 게이트웨이
다른 네트워크로 가는 프레임은 게이트웨이(라우터)의 MAC으로 보낸다.
Q5. ARP 요청 패킷은 어떤 방식으로 보내나?
- 유니캐스트
- 멀티캐스트
- 애니캐스트
- 브로드캐스트
정답 보기
4번 브로드캐스트
누가 그 IP를 가졌는지 모르므로 같은 망 전체에 묻는다. 응답은 유니캐스트로 온다.
Q6. ARP 캐시에 대한 설명으로 옳은 것은?
- 라우터에만 있다
- 알아낸 IP와 MAC의 짝을 일정 시간 보관한다
- 통신할 때마다 반드시 새로 묻는다
- 한 번 등록되면 영원히 남는다
정답 보기
2번 알아낸 IP와 MAC의 짝을 일정 시간 보관한다
항목마다 수명이 있어 쓰지 않으면 지워진다.
헷갈리기 쉬운 O·X
ARP 응답은 항상 브로드캐스트로 전달된다.
정답 보기
X 요청이 브로드캐스트, 응답은 유니캐스트.
ARP 스푸핑은 가짜 ARP 응답으로 다른 장비의 ARP 캐시를 오염시키는 공격이다.
정답 보기
O 중간자 공격에 쓰인다.
ARP는 OSI 3계층(네트워크 계층)과 2계층 사이를 잇는 프로토콜로 분류된다.
정답 보기
O TCP/IP에서는 인터넷 계층으로 분류한다.