ㅇ ARP 헤더(=Address Resolution Protocol)(28)
레이어에서 L2와 L3 사이에 있으며 종단 간 연결에서 노드 간의 연결을 보장하기 위해 수행됩니다.
ㅁ 동일한 목적지 IP로 패킷을 전송할 경우 매번 매핑할 MAC을 찾기 위해 ARP를 실행할 수 없기 때문에 ARP 캐시가 존재한다.
ㅁIP! 맥?
ㅇ ARP 캐시 갱신
ㅁ 주기적 타이머에 의해 노드가 승인되지 않으면 캐시를 지우고 ARP 요청을 재전송
ㅁ 리눅스 ARP 캐시 갱신 주기
> 120초
ㅁ Windows ARP 캐시 갱신주기
> Linux보다 약간 더 깁니다.
ㅇ ARP 헤더 필드 – 프로토콜 종류(2)
ㅁ L3 로그 보기
Ex)
IP=0x0800
ARP=0x0806
ICMP=0x0808
등
ㅇ ARP 헤더 필드 – 하드웨어 종류(2)
ㅁ L2 로그 보기
Ex)
Ethernet Frame=1
IEEE 802 Network=6
ARCNET=7
Frame Relay=15
ATM=16
HDLC=17
Fiber Channel=18
ATM=19
Serial Line=20
등
ㅇ ARP 헤더 필드 – 하드웨어 크기(1)
ㅁ 타겟 MAC 사이즈
ㅇ ARP 헤더 필드 – 프로토콜 크기(1)
ㅁ 대상 IP 크기
ㅇ ARP 헤더 필드 – opcode(2)
ㅁ ARP 패킷의 용도 표시
ARP Request=1
ARP Response=2
RARP Request=3
ARP Reply=4
DRARP Request=5
DRARP Reply=6
DRARP Error=7
InARP Request=8
InARP Reply=9
ㅇ ARP 헤더 필드 – 발신자 MAC 주소(6)
ㅁ 소스 MAC
ㅇ ARP 헤더 필드 – 발신자 IP 주소(4)
ㅁ 소스 IP
ㅇ ARP 헤더 필드 – 목적지 MAC 주소(6)
ㅁ 대상 MAC
ㅇ ARP 헤더 필드 – 목적지 IP 주소(4)
ㅁ 목적지 IP
ㅇ ARP 요청 패킷 생성 시 주소 입력 과정
1) 목적지 IP간 매핑 정보인 경우 <-> 대상 MAC이 ARP 캐시 테이블에 있음
> 원본 패키지 생성
2) 목적지 IP간 매핑 정보가 없는 경우 <-> 거기에 있는 ARP 캐시 테이블의 대상 MAC
> ARP 요청 생성 또는 주기적인 재전송에 의해 ARP 요청이 발생하며, ARP 요청이 발생하면 목적지 IP는 <-> 연결된 대상 MAC을 알 수 없으므로 대상 MAC은 00:00:00:00:00:00으로 설정됩니다. Ethernet v2 프레임을 구성할 때 대상 MAC은 FF:FF:FF:FF:FF:FF로 설정됩니다. 수신 NIC가 MAC 불일치 패킷을 삭제하지 못하도록 합니다.
3) 이후 수신자는 요청 패킷의 전송 주소로 ARP 응답과 Ethernet v2 프레임에 주소 정보를 씁니다.
ㅇ GARP(= 무상 ARP)
ㅁ “불필요하다”라는 뜻
ㅁ IP 변경, 재부팅, NIC 교체 등의 경우 Source IP와 Destination IP가 동일한 다른 장비로 ARP 요청을 보내 자신의 MAC에 알립니다.
> 수신측 ARP 캐시 테이블에 해당 캐시 정보가 존재하는 경우 활성화된 호스트에 ARP 응답을 요구하지 않고 새로운 MAC 정보를 등록/업데이트(보안 취약점)
ㅇ IP 충돌 확인
ㅁ GARP 전송 후 ARP 응답 수신 시 IP 충돌
ㅁ GARP가 아니더라도 해당 IP를 목적지 IP로 브로드캐스트 전송 후 응답하는 호스트의 수를 확인하여 확인할 수 있다.