728x90
반응형

1. ARP의 개요

32bit IP 주소: TCP/IP 프로토콜 그룹에서만 동작

물리적 하드웨어 주소: 독자적 주소 체계_데이터 전송 시 목적지 하드웨어 주소를 알아야 함

ARP 기능

IP주소를 대응하는 물리적 하드웨어 주소로 자동적으로 변환하는 보조적 프로토콜

IP데이터 그램을 정확한 목적지 호스트로 보냄

여러 가지 형태의 물리적 하드웨어 주소를 처리

점대점 접속은 ARP를 사용 안함

 

ARP의 전제와 기본 개념

전제: 이더넷 브로드캐스트 네트워크를 전제로 함

기본 개념: 네트워크 인터페이스가 하드웨어 주소를 갖음

2. 예제: ftp 호스트명을 입력했을 때 ARP동작

호스트 A의 실행 ARP는 호스트 B의 IP주소를 포함한 ARP요구 패킷을 LAN에 방송

LAN상의 모든 호스트의 ARP는 ARP 요구 패킷 수신

호스트 B의 ARP 패킷에서 자신의 IP주소 인지

송신한 호스트 A에게 호스트 B의 물리적 하드웨어 주소와 ARP응답 패킷으로 응답

호스트 A에서 ARP 응답 패킷 수신

호스트 B의 IP주소와 물리적 하드웨어 주소의 매핑을 ARP캐시에 저장

호스트 A에서 호스트 B의 물리적 하드웨어 주소를 새로운 캐쉬 엔트리에 있는 정보 이용 & IP 데이터그램을 B로 직접 전달

3. ARP 캐시

각 호스트는 매번 ARP 실행X ARP 캐시에 물리적 주소 임시저장

인터넷 주소로부터 하드웨어 주소로 최신 정보 유지, 관리

정상적인 엔트리 종료 시간: 엔트리가 만들어진 20분 후

ARP 캐시 명령어

arp(8)에서 -a 옵션을 사용함

48비트 이더넷 주소는 콜론(:)으로 구분된 6개의 16진수로 표시

4. ARP 패킷 형식

ARP_다른 네트워크와 이용과 IP주소 이외의 다른 주소도 해결

이더넷 헤더: 14 바이트(6 + 6 + 2)

이더넷 목적지 주소 모든 비트가 1인 주소: 브로드캐스트

이더넷 프레임 유형

LAN상의 호스트 간의 데이터 전송시 목적지 인터페이스를 결정

ARP 요구/응답: 0x0806

Hard와 Prot의 유형과 길이: 다음 4개 필드 유형과 길이 지정

OP: ARP와 RARP의 요구와 응답 구분(1 ~ 4)

송신자와 타겟의 이더넷과 IP 주소_이더넷 헤더 부분과 송신자 하드웨어 주소와 중복 주의

5. ARP 예

존재하지 않는 호스트로의 ARP 요구(ARP Request to a Nonexistent Host)

ARP 캐시 타임아웃

각 호스트 매번 ARP 실행 X ARP 캐시에 물리적인 주소 임시저장

완전 엔트리: 20분 후 종료

불완전 엔트리: 3분 후 종료

엔트리 참조될 때마다 타임아웃 재시작

6. 프록시 ARP

라우터가 ARP 요구에 대한 응답을 대신하는 것 (목적지 호스트가 라우터의 다른 쪽에 연결되어 있을 경우)

gemini % arp -a
netb (140.252.1.183) at 0:80:ad:3:6a:80
-> 한 개의 NIC(MAC 주소)에 여러 IP주소가 물릴 수 X
=> 일반적인 상황 X 파악
sun (140.252.1.29) at 0:80:ad:3:6a:80

= 무차별(promiscuous) ARP OR ARP hack

라우터가 프록시 ARP 대행자(agent)로 동작 -> 같은 네트워크 ID를 갖는 두 물리 네트워크가 존재할 수 있게 함

서브넷 처리 X 예전 브로드캐스트 주소 포맷 사용하는 구식 TCP/IP 구현이 설취된 호스트를 숨기게 위해 사용한 적 있지만, 지금은 중요 X

7. 근거 없는(Gratuitous) ARP

호스트의 초기 가동 환경 설정 시 네트워크 인터페이스가 설정될 때 수행

(자신의 IP주소를 찾는 ARP 요구 보냄)

혹시 다른 호스트가 자신의 주소와 똑같은 IP주소 사용하는지 체크 가능

특징

1. 다른 호스트가 동일 IP 주소 이용 여부 판단 시 사용

-정상적인 상황: ARP 응답 X

-누군가 응답(= 비정상적인 상황)시 나타나는 메세지: "duplicate IP address sent from 이더넷 address: a:b:c:d:e:f"

2. 근거 없는 ARP 보내는 호스트가, 다른 호스트들의 ARP 캐시 상의 MAC 주소를 업데이트하는데 사용

-ARP 캐시는 ARP 요청/응답 모니터링 -> IP주소와 MAC 주소를 저장

호스트가 MAC 주소 임의 변경 + 랜카드 재기동 -> 근거 없는 ARP 회람

-> 다른 호스트들의 ARP 캐시가 당연히 근거 없는 ARP 모니터링해서 저장정보 갱신

=> 서버를 이중화한 상황에서, 특정 서버가 다운 -> 백업 파일 서버가 곧바로 다운된 서버 역할 대신 가능

-백업 서버가 자신의 하드웨어 주소와 다운된 서버 IP 주소로 세팅한 근거 없는 ARP 요청 회람

-> 특징2에 의해 다운된 서버로 보내질 패킷이 모두 백업 서버로 가게 됨

ARP Spoofing

 

8. ARP 명령어

arp -a: 모든 엔트리를 보임

bsdi % arp -a
sun (140.252.13.33) at 8:0:20:3:f6:42
svr4 (140.252.13.34) at 0:0:c0:c2:9b:26

arp -d IP주소: 엔트리 삭제

arp -s IP주소 MAC 주소: 강제 엔틑리 추가

-s 옵션 끝(MAC 주소 뒤)에 아래 플래그 추가 기능

temp: 캐시로부터 타임 아웃(temp 플래그 사용 X -> 보통 엔트리가 계속 남아있음)

pub: ARP 대행자(agent) 기능

9. 요약

ARP(Address Resolution Protocol)

응용이나 시스템 관리자에게 인식되지 않은 채 동작

ARP 캐시

*ARP 운영의 기본

-캐시를 검사하여 조작

-조작하기 위해 arp 명령어 사용

-캐시의 엔트리 나타내고 수정

-타이머 가지고 잇음

프록시 ARP

근거 없는 ARP(Gratuitous ARP)

728x90
반응형
김앩옹