ARP(Address Resolution Protocol)
4.1 ARP의 개요
하드웨어 주소를 알려주는 역할 이더넷, 와이파이와 같은 MAC Address쓰는 것에서 필요함
- 주소 결정 프로토콜로 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 자동적으로 변환하기 위해 사용되는 프로토콜이다.
- IP 데이터 그램을 정확한 목적지 호스트로 보냄
32-> 48비트 : ARP
48 -> 32비트 : RARP
ARP의 전제 : 이더넷 브로드캐스트 네트워크를 전제로 함
ARP의 기본 개념 : 네트워크 인터페이스가 하드웨어 주소를 가짐
cmd (arp -a) FF FF FF FF FF FF ...
호스트 A의 실행 ARP -> 호스트 B의 IP 포함한 ARP 요구 패킷을 LAN에 Broadcast
> LAN상의 모든 호스트의 ARP는 ARP 요구 패킷 수신
> 호스트 B의 ARP 패킷에서 자신의 IP 주소 인지
> 송신한 호스트 A에게 호스트 B의 물리적 하드웨어 주소와 ARP 응답 패킷으로 응답
> 호스트 A에서 ARP 응답 패킷 수신함
> 호스트 B의 IP주소와 물리적 하드웨어 주소의 매핑을 ARP 캐시에 저장
> 호스트 A에서 호스트 B의 물리적 하드웨어 주소를 새로운 캐시 엔트리에 있는 정보 이용 + IP 데이터그램을 B로 직접 전달
4.3 ARP 캐시
ARP 캐시에 물리적 주소 저장 > 20분 정도 저장 후 지워짐
arp -a 명령어 사용,
캐시 지우기는 관리자 권한이 필요함
4.4 ARP 패킷 형식
ARP link layer 이더넷 헤더가 붙는다 : 14byte (6+6+2)
이더넷 목적지 주소 모든 비트가 1인 주소 : 브로드캐스트
이더넷 프레임의 유형 :
- LAN상의 호스트 간의 데이터 전송시 목적지 인터페이스를 결정
- ARP 요구/응답 : 0x0806
4.5 ARP 예
bsdi % arp -a
bsdi % telnet svr4 discard 버려주세요
Trying 140.252.13.34…
Connected to svr4.
Escape character is `^]` . ^]
Telnet> quit
Connection closed
*중요한건 Request, Reply ..
- ARP 캐시 타임 아웃 : 각 호스트는 ARP캐시에 물리적인 주소를 임시 저장하는데,
완전 엔트리 : 20분 후 종료. 불완전 엔트리 : 3분 후 종료 된다.
엔트리가 참조될 때마다 타임아웃 재시작
4.6 프록시 ARP
proxy 라는 단어는 네트워크에서 여러 상황에서 사용 한다.
- cloud server에 접속하기 위한 entry 역할 proxy server
- 개인이 사용하게 되면 한국에 있는 사람이 미국에 있는 사이트에 접속하려하면 proxy에게 모든 요청, 응답
나의 정보를 드러내지않고 ...
proxy 는 뭔가를 대리한다는 의미!
>> proxy ARP 는 ARP 를 대리하는 것 ! 라우터가 ARP 요구에 대한 응답을 대신하는 것 ( 목적지 호스트가 라우터의 다른 쪽에 연결되어 있을 경우 )
다른 이름: 무차별 (promiscuous) ARP 또는 ARP hack
라우터가 프록시 ARP 대행자로 동작하여, 같은 네트워크 ID를 갖는 두 물리 네트워크가 존재할 수 있게 한다.
4.7 근거 없는(Gratuitous) ARP
불필요한, 쓸데없는 ARP : 자신의 IP를 찾는 ARP 보냄
1. 다른 호스트가 자신의 주소와 같은 IP주소를 사용하는지 체크
답장이 없어야 나 혼자 쓰는것! 누군가가 응답하면 누군가가 내 IP를 쓰고 있다는 뜻... 중복된 IP입니다~
2. 내 IP에 해당하는 MAC address를 알기 위해 사용 (바꾼 경우)
> 서버를 이중화한 상황에서, 특정 서버가 다운되었을 때 백업 파일 서버가 곧바로 다운된 서버의 역할을 대신하도록 할 수 있음
*ARP Spoofing
4.8 ARP 명령어
-a : 모든 엔트리를 보임
-d IP 주소 : 엔트리의 삭제
-s IP 주소 MAC 주소 : 강제 엔트리 추가