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)
'Computer Science > 네트워크' 카테고리의 다른 글
[TCP/IP Networks] 7. TCP: Transmission Control Protocol (0) | 2022.10.01 |
---|---|
[TCP/IP Networks] 6. UDP: User Datagram Protocol (0) | 2022.10.01 |
[TCP/IP Networks] 4. Internet Protocol (0) | 2022.09.24 |
[TCP/IP Networks] 3. Link Layer (0) | 2022.09.22 |
[TCP/IP Networks] 2. Introduction (0) | 2022.09.18 |