요약

  • RFC 3469는 MPLS 복구를 감지, 홀드오프, 통지, 스위칭, 실제 트래픽 복귀로 나누었으며, 제어 조치를 완료한 것이 마지막 사건은 아니었다.
  • 미리 설정된 복구 경로도 장애를 공유하거나, 예약 용량이 없거나, 축소된 서비스를 제공하거나, 네트워크가 영구적 조치를 기다리는 동안 트래픽을 보호하지 못한 채 남을 수 있었다.

백업 회선은 이미 운영자의 다이어그램에 그려져 있었다. 레이블도 할당되어 있었다. 관리 시스템은 그 경로를 “보호”라고 불렀다. 그런데 실제 운용 경로가 실패했을 때, 그 어떤 사실도 중요한 질문에 답하지 못했다. 지금 트래픽이 다른 경로를 사용할 수 있는가?

2003년 2월 정보 문서(Informational memo)로 발표된 RFC 3469는 그 불확실성을 하나의 프레임워크로 바꾸었다. 특정 프로토콜을 규정한 것도, 배포를 인증한 것도 아니었다. 재시작 동작은 범위 밖이었다. 이 문서의 기여는 편리하게 쓰이던 단어복구를 서로 다른 기계, 팀, 시계가 소유한 사건들로 해체한 데 있었다.

첫 번째 구분은 재라우팅과 보호 스위칭 사이에 있었다. 재라우팅은 장애 후 새 경로나 경로 구간을 만들었다. 보호 스위칭은 장애 전에 설정된 복구 경로를 사용했다. 둘은 경쟁 관계가 아니었다. 네트워크는 준비된 우회 경로로 빠르게 전환하고, 반안정 상태에 들어가고, 라우팅이 수렴하도록 한 뒤 나중에 트래픽을 더 적합한 운용 경로로 옮길 수 있었다.

그 순서는 백업 경로 객체가 왜 약한 증거였는지 설명한다. 미리 설정된 경로는 실패한 링크나 노드에서 운용 경로와 겹칠 수 있었다. 레이블은 있지만 예약 대역폭은 없을 수 있었다. 다른 목적으로 만들어진 경로를 단지 허용 가능하다고 사전 검증한 것일 수도 있었다. 운용 경로보다 먼저, 또는 함께 실패할 수도 있었다. 제어 평면에 존재한다는 사실만으로는 공동 비상 상황에서 어떤 자원을 사용할 수 있는지 거의 알 수 없었다.

RFC 3469는 초기 복구 주기에 다섯 구간을 두었다. T1은 장애 발생에서 감지까지였다. T2는 MPLS 조치 전의 선택적 홀드오프였다. T3는 감지 노드가 로컬에서 복구할 수 없을 때 장애 표시 신호(Fault Indication Signal)를 경로 스위치 LSR(Path Switch LSR)로 전달했다. T4는 경로 병합 LSR(Path Merge LSR)과의 교환을 포함한 복구 작업을 포괄했다. T5는 마지막 제어 조치 후 시작되어, 트래픽이 다시 장애 지점에 도착했을 때에야 끝났다.

마지막 구간은 많은 현대 대시보드에 대한 조용한 교정이다. “스위치 완료”는 “트래픽 복구”가 아니다. 레이블은 바뀌었지만 패킷은 여전히 전파 중이거나, 대기열에 쌓이거나, 폐기되거나, 순서를 벗어나 도착하거나, 부족한 자원을 두고 경쟁하고 있을 수 있다. 정직한 시계는 구성 트랜잭션이 아니라 관찰된 트래픽에서 멈춘다.

그것조차 초기 복구일 뿐이다. RFC 3469는 되돌림(reversion)을 별도로 모델링했다. 장애의 수리가 감지되어야 했고, 클리어 홀드오프가 안정성을 시험할 수 있었고, 클리어 통지가 이동할 수 있었고, 되돌림 작업이 실행될 수 있었으며, 그다음 트래픽이 선호 경로로 돌아와야 했다. 즉시 스위치백이 항상 바람직한 것은 아니었다. 수리된 경로가 흔들리면, 성급함이 또 다른 장애를 만들었다. 메이크비포브레이크(make-before-break)는 손실과 재정렬을 줄일 수 있었지만, 여전히 관찰된 완료가 필요했다.

세 번째 주기는 동적 재라우팅을 다뤘다. 라우팅 프로토콜이 수렴하면, 네트워크는 새 운용 경로를 계산하고 설정할 수 있었고, 선택적으로 제한된 홀드다운을 기다린 뒤 다시 전환하고 새 경로의 트래픽을 관찰할 수 있었다. 따라서 빠른 보호는 시간을 벌어 주었다. 반드시 최종 토폴로지를 제공한 것은 아니었다.

이 프레임워크는 경로 설정과 자원 할당을 독립적인 차원으로 만들었다. 복구 경로는 미리 설정되거나, 사전 검증되거나, 요구 시 설정될 수 있었다. 자원은 미리 예약되거나 장애 후에만 예약될 수 있었다. RFC 3469는 운용 경로의 성능 보장을 유지할 수 있는 경로를동등(equivalent)하다고 불렀고, 그럴 수 없는 경로를제한(limited)이라고 불렀다. 제한 경로는 저하된 서비스가 서비스 없음보다 나을 수 있다는 바로 그 이유로 유용했지만, 보이지 않는 영구 상태가 되어서는 안 되었다.

익숙한 보호 비율은 서로 다른 비용을 수반했다. 1+1 보호에서는 트래픽이 복제되고 병합 지점이 한 복사본을 선택했으며, 용량이 지속적으로 소비되었다. 1:1 보호에서는 예비 경로가 장애가 이를 밀어낼 때까지 선점 가능한 낮은 우선순위 트래픽을 실을 수 있었다. 1대다 및 다대다 설계는 용량을 더 공격적으로 공유했으므로, 동시 장애 집합과 보호 계획이 결정적이었다. “백업이 하나 존재한다”는 말은 누가 그것을 받을지를 말해 주지 않았다.

토폴로지는 확인 방식도 바꾸었다. 로컬 복구는 실패한 링크나 이웃 근처에서 반응해 긴 통지 경로를 피할 수 있었다. 전역 복구는 더 큰 세그먼트를 보호하고 아마도 더 분리된 경로를 사용할 수 있었지만, 복구 지점에 경보가 필요했다. 대체 이그레스는 정확히 예전 경로를 재생성하지 않고도 포워딩을 복원할 수 있었다. 우회 터널은 많은 복구 경로를 집계하면서 동시에 그중 일부에만 충분한 자원을 보유할 수 있었다.

복구가 반드시 모든 패킷을 포괄하는 것도 아니었다. 이 프레임워크는 선택된 보호 트래픽 부분과 묶인 경로 그룹을 허용했다. 성공적인 프리미엄 클래스는 일반 트래픽의 손실과 공존할 수 있었다. MPLS 헤더 EXP 비트에 대한 역사적 언급은 이제 RFC 5462의 후대 트래픽 클래스 용어를 통해 읽어야 한다. 지속되는 핵심은 옛 레이블이 아니라 선택적 권한이다.

장애 자체에도 계층이 있었다. 경성 경로 또는 링크 실패는 성능 저하와 달랐다. 저하된 상태는 장애 선언이 되기 전에 프로비저닝된 임계값을 넘었다. 하위 계층이 더 빠른 신호를 제공할 수 있었다. 조건을 감지한 노드는 전환 권한이 있는 다른 노드로 FIS를 보낼 수 있었다. 따라서 관찰, 선언, 통지, 조치는 하나가 아니라 네 개의 기록이었다.

전환 후 네트워크는 또 다른 결정에 직면했다. 되돌림 모드(revertive mode)에서는 선호 원래 경로가 안정되면 트래픽이 그리로 돌아갔다. 우회 중에는 하나뿐인 복구 경로가 이미 사용 중이어서 해당 트래픽이 보호되지 않을 수 있었고, 실패한 선호 경로의 자원은 예약된 채 남아 있었다. 비되돌림 모드(non-revertive mode)에서는 우회 경로가 새 운용 경로가 되거나, 수리된 경로가 보호가 되거나, 새로 최적화된 쌍이 구축될 수 있었다. 초록색 포워딩 그래프에도 여전히 큰 2차 장애 노출이 담길 수 있었다.

RFC 3469는 이를 두 가지 척도로 포착했다.복구 시간은 감지, 홀드오프, 통지, 작업, 트래픽 복귀를 포함했다.전체 복원 시간은 트래픽이 복구 시나리오에서 이를 운반하도록 설계된 링크를 사용할 때까지 지속되었다. 두 시간은 초기 복구가 이미 동등하고 영구적일 때만 같았다. 그 구분은 단일 페일오버 수치보다 더 많은 정보를 준다.

이 메모의 비교 기준은 기록을 더 넓혔다. 설정 취약성, 백업 용량, 추가 지연, 보호 품질, 패킷 재정렬, 상태 오버헤드, 손실, 커버리지였다. SONET 유사 50밀리초 기준은 스위칭에 관한 엔지니어링 목표였으며, 운영 원격 측정값도, 종단 간 보장도 아니었다.

후속 작업은 메커니즘과 용어를 제공했다. RFC 4090은 RSVP-TE 빠른 재라우팅을 표준화했다. RFC 4426, RFC 4427, RFC 4428은 복구 용어와 다계층 분석을 정교화했다. RFC 5714는 IP 빠른 재라우팅의 틀을 세웠다. 이들은 문제가 진화했음을 보여 주지만, 특정 RFC 3469 계획이 실행되었다거나, 두 경로가 물리적으로 분리되었다거나, 애플리케이션이 건강하게 유지되었다는 것을 증명하지는 않는다.

Lu Heng의 실행 코드 렌즈는 마지막 규율을 제공한다. “구성됨”, “미리 설정됨”, “복구됨”은 포워딩과 트래픽 확인이 일치할 때까지 상징적 상태다. 최소 명세 렌즈는 RFC 3469가 하나의 보편적 복구 알고리즘 대신 조합 가능한 프리미티브를 정의한 이유를 설명한다. 현실 계층 렌즈는 장애, 경보, 스위치, 패킷, 애플리케이션 결과를 분리해 유지한다.

역사적 교훈은 모든 네트워크에 더 많은 백업 경로가 필요하다는 것이 아니다. 백업 경로는 복구 주장의 한 구성 요소일 뿐이라는 점이다. 누가 장애를 보았고, 누가 선언했고, 누가 트래픽을 이동할 권한을 가졌고, 어떤 자원이 실제로 사용 가능했고, 패킷이 어디에서 다시 나타났고, 어떤 품질이 살아남았고, 보호가 언제 다시 복원되었는지를 기록하라. 그때에야복구라는 단어가 구성에 인코딩된 희망이 아니라 하나의 사건을 설명한다.

출처