요약

  • RFC 1256의 기본 광고 수명은 1,800초였다. 이는 갱신되지 않은 동적 학습 라우터를 호스트가 잊기 전까지 기다릴 수 있는 최대 시간이지, 30분 이내에 트래픽이 페일오버된다는 약속이 아니다.
  • RFC는 기본 7.5~10분 광고 주기가 전송 계층 세션 타임아웃 전에 첫 홉 블랙홀을 감지하기엔 너무 느리다고 명시적으로 밝히고 있으며, RFC 1122는 데드 게이트웨이 감지를 별도의 호스트 기능에 할당한다.

게이트웨이 장애에서 불편한 부분은 항상 장애 자체가 아니다. 호스트가 여전히 그 게이트웨이가 목록에 있어야 한다고 믿는 구간이 그것이다. 이 믿음은 라우터가 포워딩 능력을 잃은 뒤에도 남아 있을 수 있다.

1991년 9월,RFC 1256은 수동으로 관리하는 주소 목록이나 특정 라우팅 프로토콜에 대한 의존 없이 호스트가 인접 라우터를 학습할 수 있는 방법을 제시했다. 라우터는 ICMP 라우터 광고를 보냈고, 호스트도 인터페이스가 시작될 때 소수의 라우터 요청(Router Solicitation)을 보낼 수 있었다. 이 체계는 멤버십을 발견 가능하게 만들었다. 그 설계에서 가장 시사적인 선택은 그 멤버십이 얼마나 오래 신뢰할 만하게 유지되어야 하는가였다.

기본값들은 의도적으로 조용했다. 라우터의 최대 광고 간격은 600초였고, 기본 최솟값은 그중 75퍼센트인 450초였다. 다음 간격은 해당 범위 내에서 무작위화되었기 때문에 평범한 광고는 정확히 맞춰지지 않고 대략 7.5~10분마다 도착했다. 광고된 수명은 최대 간격의 3배인 1,800초, 즉 30분이 기본값이었다.

그 수명은 로컬 상태의 한 조각에 대한 임대였다. 호스트가 인접 라우터의 광고를 수락하면 그 주소를 기본 라우터 목록에 추가하고 광고된 값으로 타이머를 시작했다. 이후의 광고는 타이머를 갱신했다. 타이머가 만료되면 동적으로 학습된 항목은 제거되었다. 정적으로 구성된 라우터는 달랐다. 구성되었다는 이유만으로 이 만료 타이머를 갖지 않았다.

"30분"을 페일오버 설정으로 읽고 싶은 유혹이 있다. RFC는 정반대를 말한다. 기본 광고 비율과 수명은 여러 라우터가 하나의 링크를 공유하더라도 오버헤드를 낮게 유지하지만, 그 기본값만으로는 전송 계층 세션이 타임아웃되기 전에 첫 홉 블랙홀을 감지하기에 충분하지 않다고 설명한다. 운영자는 더 짧은 값을 구성할 수 있었다. 표준은 그렇게 했다고 말하지 않는다.

발견(discovery)과 생존 판정(liveness)은 서로 다른 질문에 답하기 때문에 이 구분이 중요하다. 광고는 요컨대 "이 주소는 이 간격 동안 갱신 없이 이 선호도로 인접 라우터로 제공된다"고 말한다. 특정 목적지로의 패킷이 지금 그 라우터를 통과할 수 있는지는 검증하지 않는다. RFC 1256은 자신이 라우팅 프로토콜이 아니라고 말한다. 모든 목적지에 대한 최적 경로를 선택하지 않는다. 리다이렉트는 다른 질문, 즉 이미 라우터를 통해 보낸 목적지에 대해 더 나은 첫 홉이 존재하는지를 다룬다.

RFC 1122는 아키텍처의 나머지 절반을 명시한다. IP 계층은 실패한 다음 홉 게이트웨이를 감지하고 대안을 선택해야 하지만, 1989년 표준 저자들은 완전히 만족스러운 일반 알고리즘이 아직 등장하지 않았다고 밝혔다. 지속적인 핑은 비싸고 확장 불가능하다는 이유로 배제되었다. 대신 상위 및 하위 계층이 IP에 조언할 수 있었다. 승인된 TCP 세그먼트는 긍정적 증거이고, 반복되는 전송 실패나 링크 계층 신호는 부정적 증거가 될 수 있다. RFC 1256의 타이머는 그 판단을 대체하려는 것이 결코 아니었다.

시작 시 요청은 초기 지식으로 가는 더 빠른 경로를 제공했을 뿐, 영구적인 하트비트가 아니었다. 호스트는 최대 3개의 요청을 3초 간격으로 보낼 수 있었고, 유효한 광고가 도착하면 멈춰야 했다. 이후에는 주기적 광고가 목록을 최신 상태로 유지했다. 침묵은 결국 항목을 지웠다. 그러나 그것 자체로 경로가 언제 사용 불가능해졌는지 확립하지는 않았다.

따라서 이 역사적 설계는 30분짜리 장애보다는 두 종류의 증거를 분리하는 것에 관한 것이다. 라우터 탐색(Router Discovery)은 구성을 절약하고 자신을 알린 대상에 대한 유한한 기억을 유지했다. 데드 게이트웨이 감지는 현재의 포워딩, 트래픽, 다른 계층의 신호에 대해 추론해야 했다. 만료 타이머를 서비스 복구 약속으로 읽으면 이 두 역할이 무너지고, RFC가 명시적으로 거절한 보증을 부여하게 된다.

근거는RFC 1256과RFC 1122 §3.3.1.4의 호스트 요구사항에 있다. 이들은 프로토콜 기본값과 설계 경계를 확립하지만, 특정 운영체제·네트워크·사용자가 실제 게이트웨이 장애에서 얼마나 빨리 복구했는지는 확립하지 않는다.