[Network] Ethernet Frame, ARP, ARP Cache Table

공부한 내용 정리하는 공간입니다.

틀린 내용이 있을 수 있습니다.

모든 지적, 첨언 환영합니다.

Ethernet Frame 구조

DIX 2.0

Destination Address Source Address Type Data FCS (CRC)

 

IEEE 802.3

Destination Address Source Address Length 802.2 Header (LLC) Data FCS (CRC)

ARP (Address Resolution Protocol) Header

3계층에서 만들어지지만 Ethernet Frame의 Data에 포함되어 2계층에서 전송 됨 

Ethernet Frame에서 Type=0x0806

Hardware type LAN 환경 (Ethernet=1)
Protocol type 주소 체계 (IPv4=0x0800)
Hardware length 2계층 주소 길이
(MAC 주소=48bit=6byte)
Protocol length 3계층 주소 길이
(IP 주소=32bit=4byte)
Operation request=1, reply=2
Sender hardware address 송신지 2계층 주소
Sender protocol address 송신지 3계층 주소
Target hardware address 수신지 2계층 주소
(요청 시 0으로 채움)
Target protocol address 수신지 3계층 주소

ARP Cache Table 등록

1. 수신지의 MAC address를 ARP Cache Table에서 확인

2. ARP Cache Table에 정보가 없으면 ARP Header의 수신지 MAC address를 0으로 채운 ARP Request를 브로드캐스트 전송

3-1. 수신지가 브로드캐스트를 받은 경우

ARP Cache Table 확인

정보가 없을 경우 수신지가 본인이면 ARP Cache Table에 등록

Reply 전송

3-2. 다른 호스트가 브로드캐스트를 받은 경우

3-2-1. ARP Cache Table에 정보가 있을 경우

aging time 갱신

수신지가 본인이 아니면 Reply 하지 않음

3-2-2. ARP Cache Table에 정보가 없을 경우

Request를 받아도 ARP Cache Table에 등록하지 않음

수신지가 본인이 아니면 Reply 하지 않음

4. 1의 송신지(Reply의 수신지)가 Reply를 받으면

ARP Cache Table 확인

정보가 없을 경우 수신지가 본인이면 ARP Cache Table에 등록

 


ARP Cache Tabel 공격

Request를 보낸 적이 없는데 Reply를 받아도 절차대로 ARP Cache Table에 등록

이를 이용한 공격이 발생됨 (취약점)