본문 바로가기
IT 인터넷/Linux

ARP 캐쉬 상태

by D.Dragon 2020. 8. 31.

ARP 캐쉬 상태

명령

# ip -4 -s nei li
192.168.127.254 dev eth0 lladr 00:90:0b:49:fa:88 ref 1 used 133/0/128 probes 1 REACHABLE
192.168.116.3 dev eth0 lladr c4:00:ad:04:d5:31 used 53/52/34 probes 1 STALE
192.168.116.2 dev eth0 lladr c4:00:ad:13:a3:75 used 115/115/96 probes 4 STALE

used/confirmed/updated

used: 엔트리가 참조되고 지난 시간.
confirmed: 엔트리가 유효함이 확인(ARP response 수신)된 후 지난 시간.
updated: ARP 엔트리 업데이트 된 후 지난 시간.

REACHABLE 상태에 있는 엔트리 중, confirmed 가 /proc/sys/net/ipv4/neigh/{ifname}/base_reachable_time_ms (Default 30초)를 경과하면 엔트리는 STALE 상태가 된다.
STALE 상태에서 ARP request를 전송하면 일시적으로 DELAY 상태가 되었다가 PROBE로 바뀌고, ARP response를 수신하면 REACHABLE 상태가 된다.
ARP response 수신 외에도, TCP/ICMP 등 상위 프로토콜로부터 엔트리 유효 메시지를 받는 경우에도 REACHABLE 상태가 된다.

/proc/sys/net/ipv4/neigh/*/* files

base_reachable_time

neighbor가 발견되면, 엔트리는 적어도 base_reachable_time/2와 3*base_reachable_time/2 사이의 임의의 시간동안 유효한 것으로 간주한다.
엔트리의 유효성은 상위 프로토콜로부터 긍정적 피드백을 받을 경우에도 연장된다. base_reachable_time 기본값은 30이다. 이 파일은 base_reachable_time_ms를 위해서 지금은 사용되지 않는다.

base_reachable_time_ms

base_reachable_time을 대신해서 밀리초 값으로 사용한다.

gc_interval

neighbor 엔트리에 대한 가비지 컬렉터의 실행 주기. 기본값은 30초.

gc_stale_time

stale neighbor 엔트리 검사 주기를 결정. neighbor 엔트리가 stale로 간주되면, 데이터를 전송하기 전에 다시 주소 결정을 한다. 기본값은 30초.

gc_thresh1

ARP 캐쉬에 보존할 엔트리 최소 갯수. 캐쉬의 엔트리 갯수가 이보다 작다면 가비지 컬렉터는 실행하지 않는다.