요약
- RFC 4861은 짧은 이웃 도달 불가 감지(NUD) 절차를 통해 실패한 다음 홉을 빠르게 드러냈지만, 개념적 상태 머신은 설정된 무응답 프로브 횟수가 지나면 캐시 항목을 삭제했습니다.
- RFC 7048은 UNREACHABLE 상태를 도입했습니다. 멀티캐스트 프로브와 지수적 백오프 아래에서 대체 경로가 선호될 수 있으면서도 마지막 링크 계층 매핑은 계속 사용 가능한 상태로 남도록 했습니다.
세 번째 응답 없는 프로브
정상 동작하는 IPv6 호스트는 학습한 모든 이웃을 끊임없이 조사하지는 않습니다. RFC 4861은 각 활성 이웃 캐시 항목(Neighbor Cache Entry)에 작은 상태 머신을 부여했습니다. 새로운 긍정적 증거는 항목을 REACHABLE로 만들고, 확인 없이 시간이 흐르면 STALE로 만들지만 그 자체로 트래픽을 유발하지는 않았습니다. 해당 STALE 이웃에게 패킷을 보내야 할 때가 되어서야 항목은 DELAY 상태로 들어가 상위 계층 프로토콜에 전달 진행을 보여줄 짧은 기회를 주었습니다. 그런 증거가 오지 않으면 노드는 PROBE 상태로 진입해 캐시에 이미 있던 링크 계층 주소로 유니캐스트 Neighbor Solicitation을 보냈습니다.
이 경제성이 중요했습니다. 도달 가능성은 항목이 사용될 때 검증되었고, TCP 승인이나 다른 신뢰할 수 있는 상위 계층 신호가 불필요한 프로브를 링크에서 절약할 수 있었습니다. 그러나 개념적 마무리는 단호했습니다. 설정된 횟수만큼 응답 없는 프로브가 지나면 항목은 폐기되었습니다.
RFC 7048은 흔한 기본값을 1초 간격으로 세 번 전송하는 것으로 기술했습니다. 호스트에게 다른 기본 라우터가 있거나 Redirect로 만들어진 항목을 일반 다음 홉 선택으로 대체할 수 있는 경우, 이 빠른 속도는 의도적인 것이었습니다. 그런 경우 타임아웃은 유용한 전환 신호였고, 트래픽이 실패한 선택에 계속 붙어 있지 않도록 막아주었습니다.
그러나 같은 마무리가 대안이 없을 때는 다르게 작동했습니다. 항목을 삭제한다고 다른 라우터나 다른 목적지가 생겨나지는 않습니다. 새 패킷이 도착할 때마다 호스트는 주소 확인을 다시 수행해야 했습니다. 알려진 링크 계층 주소를 겨냥한 유니캐스트 프로브는 반복적인 멀티캐스트 요청으로 바뀔 수 있었고, 그 과정에서 링크를 이미 혼란에 빠뜨리고 있는 일시적 2계층 장애 상황에 작업 부담이 더해졌습니다.
지워지지 않고 도달 불가가 되기
RFC 7048은 이 경계에서 상태 머신을 바꾸었습니다. RFC 4861이 PROBE 상태에서 프로브 한도에 도달하면 항목을 폐기하도록 규정했던 자리에서, 개정 문서는 타임아웃을 늘리고 멀티캐스트 Neighbor Solicitation을 보내 새로운 UNREACHABLE 상태에 진입하도록 했습니다.
이 이름은 의도적으로 안심시키지 않습니다. UNREACHABLE은 작동하는 경로를 보증하지 않습니다. 이 상태의 기본 라우터는 더 이상 '도달 가능한 것으로 알려짐'이 아니므로 다음 홉 선택에서 다른 라우터를 선호할 수 있습니다. Redirect로 만들어진 캐시 항목은 대신 삭제될 수 있으며, 구현체는 그런 도달 불가 리다이렉트를 계속 포워딩 선택으로 사용해서는 안 됩니다.
그러나 일반적인 UNREACHABLE 항목은 기록된 링크 계층 주소를 유지하며, 패킷은 계속 그 주소로 전송될 수 있습니다. 이는 더 나은 경로가 없을 때 잔존 경로를 보존합니다. 그 결과 표준은 하나의 관찰, 즉 여러 차례 응답 없는 프로브라는 사실로 두 가지 서로 다른 질문에 답하는 관행을 버렸습니다. 그 관찰은 반드시 마지막 포워딩 증거를 파괴하지 않고도 선호를 철회할 수 있게 된 것입니다.
이 구분은 가비지 컬렉션도 온전히 남겨둡니다. RFC 7048은 구현체가 RFC 4861의 규칙에 따라 언제든 캐시 항목을 폐기할 수 있으며, 컬렉션 대상으로 UNREACHABLE 항목을 우선할 수도 있도록 허용합니다. 유지는 계속 사용되는 한에서의 프로토콜 옵션이지 메모리에 대한 영구 소유권이 아닙니다.
더 넓은 프로브, 더 느린 리듬
링크 계층 주소만 유지하는 것은 이웃이 같은 링크에서 다른 주소로 이동한 경우 위험할 수 있습니다. 그래서 RFC 7048은 이후 프로브의 대상과 속도를 모두 바꾸었습니다. 구현체는 초기 요청 몇 개를 유니캐스트로 보낼 수 있지만, 최초 재전송 시점으로부터 60초 이내에 멀티캐스트로 전환해야 합니다. 이 더 넓은 질문은 링크 계층 주소가 바뀐 대상도 응답할 수 있게 합니다.
동시에 이전 요청 한도를 넘어 전송을 계속하는 구현체는 지수적 백오프를 적용해야 합니다. RFC 7048은 60초 같은 합리적인 상한으로 간격을 제한할 것을 제안합니다. 그 항목을 사용하는 IPv6 패킷이 없다면, 사용이 재개되거나 항목이 수거될 때까지 재전송을 중단해야 합니다. 지속되는 불확실성은 허용되지만, 고정 비율의 백그라운드 폭격을 정당화하지는 않습니다.
이 문서의 예시 알고리즘은 정확한 타이머 일정을 보편화하지 않으면서도 정책을 가시화합니다. 초기 프로브 뒤 항목을 UNREACHABLE로 표시하고, 그 시점에 대안을 시도하며, 이후 시도는 더 멀리 간격을 두는 방식입니다. 이러한 샘플 상수는 규격 준수를 보여주는 예일 뿐 성능 측정치가 아니며, 모든 구현체가 동일한 수치를 선택해야 한다는 명령도 아닙니다.
구 상수가 정책이 된 이유
RFC 7048은 또 하나의 제도적 사실을 기록합니다. RFC 4861의MAX_MULTICAST_SOLICIT,MAX_UNICAST_SOLICIT,RETRANS_TIMER값들이 IPv6 적합성 테스트의 일부로 굳어진 듯했습니다. 운영 경험상 더 긴 복구 시간이 유용하다는 사실이 드러나더라도, 구현자들은 이 값을 느슨한 제안으로 다루기 어려웠습니다. 따라서 배포된 동작을 바꾸려면 명시적인 표준 개정이 필요했습니다.
RFC 6583은 이를 둘러싼 더 넓은 운영적 맥락을 제공합니다. 대규모 IPv6 서브넷에서 미할당 주소 대량으로 향하는 트래픽은 Neighbor Discovery 큐와 캐시를 채워 기존 흐름을 방해하고 새 기기의 가입을 막을 수 있습니다. 이 문서는 UNREACHABLE 전이를 정의하지는 않지만, 재전송·멀티캐스트·캐시 동작을 무해한 로컬 세부 사항으로 취급할 수 없는 이유를 설명해 줍니다.
이 역사는 단순히 'IPv6가 더 오래 기다리는 법을 배웠다'는 이야기가 아닙니다. RFC 7048은 실패를 맥락에 민감하게 만들었습니다. 대안이 존재할 때는 초기 임계값이 여전히 트래픽을 다른 곳으로 옮길 수 있었습니다. 대안이 없을 때는 구현체가 마지막 매핑을 유지하고 더 넓게 프로브하며, 불확실성이 이어지는 동안 컨트롤 플레인 부담을 줄일 수 있었습니다. '도달 불가'는 잊으라는 자동 명령이 아니라 하나의 라우팅 판단이 되었습니다.
출처
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





