요약

  • RFC 3386은 계층 간 복구 경합을 다뤘다. 광 또는 SDH/SONET 보호가 MPLS나 IP가 우회 준비 중이던 동일한 물리적 장애에 대응할 수 있었다.
  • 홀드오프 타이머는 하위 계층에 유한한 최초 복구 기회를 부여했다. 이는 권한을 조율한 것이지, 서비스나 경로 다양성, 애플리케이션 복구를 입증한 것이 아니었다.

케이블이 끊긴다. 광 장비는 광 손실을 감지한다. SDH/SONET은 회선 장애를 인식한다. MPLS는 레이블이 트래픽을 더 이상 운반하지 않음을 본다. IP는 도달 가능성이 악화되는 것을 본다. 각 계층은 그럴듯한 로컬 대응책을 가질 수 있고, 바로 그 때문에 시스템 전체가 나쁜 전역적 결정을 내릴 수 있다.

모든 제어기가 즉시 반응하면, 상위 계층이 동일한 수요를 재라우팅하는 동안 하위 계층이 회선을 전환할 수 있다. 트래픽은 두 번 이동한다. 예비 용량은 두 번 청구된다. 한 토폴로지에서 계산된 경로는 다른 계층이 그 기반을 몰래 바꾸는 동안 낡아 간다. 이중화처럼 보이던 것이 부분적으로만 정보를 가진 복구 시스템들 사이의 경합이 되는 것이다.

2002년 11월에 Informational 메모로 공개된 RFC 3386은 이를 서비스 제공자의 실무적 문제로 다루었다. 이 문서는 IETF 트래픽 엔지니어링 워킹 그룹의 설계 팀에서 나왔다. 문서는 하나의 복구 프로토콜을 표준화하거나 특정 배치를 인증하지 않았다. 패킷 및 비패킷 네트워크 전반의 생존성과 계층 구조에 관한 단기 요구사항을 모은 것이었다.

가장 시사적인 메커니즘은 소박했다. 한 계층이 기다리게 하는 것이다.

메모는 광 전송과 MPLS 같은 기술 간의 통신과 추상화를 뜻하는 수직 계층 구조와, 한 기술 내부의 영역 또는 행정적 하위 구분 사이의 수평 계층 구조를 구분했다. 수직 복구가 어려웠던 이유는 각 계층이 스스로를 보호하면서 상세한 동작을 다른 계층에게 숨길 수 있기 때문이었다.

RFC 3386은 중첩된 타이머를 느슨한 조율의 기본 형태로 제안했다. 하위 계층이 상위 계층보다 오래 걸리는 경우 상위 계층은 기다릴 수 있었다. 구체적 예에서는 MPLS 복구가 SDH/SONET 보호 전환에 충분한 시간을 남겨야 했다. 하위 계층은 서비스 복구에 대한 임시적인 최초 권리를 받았다.

그 지연에는 대가가 있었다. 타이머가 너무 짧으면 두 계층 모두 동작해 자원을 두고 다퉜다. 너무 길면 상위 계층이 복구할 수 있었던 중단이 연장됐다. 따라서 타이머는 일반적인 성능 조절 장치가 아니었다. 그것은 운영상의 신뢰를 부호화했다. 즉, 이 하위 계층은 이 서비스를 보호하도록 구성되어 있으며 권한이 위로 돌아오기 전에 이만큼의 시간을 받을 자격이 있다는 것이다.

반대 구성은 답을 바꾼다. SDH/SONET 회선이 보호되지 않았거나 하위 계층이 복구를 기대받지 않는다면, 상위 계층은 의례적인 타임아웃을 견뎌서는 안 된다. RFC 3386은 조정 가능한 홀드오프 값 또는 하위에서 상위로의 즉각 장애 통지를 요구했고, 이를 통해 상위 계층이 즉시 동작할 수 있게 했다. 하나의 고정 타이머가 보호된 인프라와 보호되지 않은 인프라를 정직하게 모두 대표할 수는 없었다.

방향은 비대칭이었다. 메모는 상위 계층 장애가 하위 계층 보호를 촉발해서는 안 된다고 밝혔다. 라우팅 장애가 자동으로 광 장애가 되는 것은 아니며, 그 맥락을 갖지 못한 하위 계층이 상위 프로토콜이 불만족스러워한다는 이유만으로 물리 자원을 움직여서는 안 된다.

시간 수치도 문서에 나왔지만, 보기 드물게 유용한 절제를 유지했다. 설계 팀은 사전 확보 용량이 있는 1:1 보호에 100–500밀리초, 사전 계획 용량에 100–750밀리초, 로컬 복구에 50밀리초, 소스 경로 복구에 1~5초를 제안했다. 이 수치는 전파 지연을 제외했다. 저자들은 또한 그 상한이 특정 애플리케이션의 요구를 충족한다는 과학적 증명에 대해 어떤 보증도 하지 않겠다고 밝혔다.

이 단서는 표를 읽는 방식을 바꾼다. 그것은 현장 텔레메트리도 SLA도 아닌 요구사항의 뼈대였다. 50밀리초의 네트워크 동작이 음성 통화, 금융 거래, 애플리케이션 세션이 사용 가능한 상태로 유지됐음을 입증하지 못한다. 감지, 홀드오프, 전환, 수렴, 전파는 시계에서 서로 다른 부분을 차지하며, 최종 연속성 판정은 애플리케이션의 몫이다.

메모는 보호와 복구도 구분했다. 보호는 사전에 마련된 자원에 의존했다. 복구는 장애 이후 새 경로를 선택했다. 사전 확보 보호는 용량을 커밋했고, 사전 계획 보호는 용량을 공유하거나 이중으로 예약할 수 있었다. 공유 예비 용량은 평상시 활용률을 높였지만, 여러 서비스가 동시에 장애를 겪으면 희소성 결정을 만들었다.

복구와 선점 우선순위는 그 결정을 가시화했다. 더 높은 우선순위 트래픽은 먼저 복구될 수 있고, 용량이 부족하면 낮은 우선순위나 잉여 트래픽은 밀려날 수 있었다. 따라서 "백업이 존재한다"는 말은 불충분했다. 운영자는 용량이 예약되어 있는지, 공유되는지, 이미 점유 중인지, 선점 가능한지, 그리고 설계상 대비하는 동시 장애에 충분한지 알아야 했다.

공유 위험 그룹이 물리적 경계를 제공했다. RFC 3386은 SRG를 하나의 장애 또는 장애 유형에 의해 공동으로 영향을 받는 요소들의 집합으로 정의했다. 두 논리 링크가 동일한 콘듀잇, 광케이블, 통행권, 광 링 또는 사무소를 공유할 수 있었다. 계산된 대안 경로가 MPLS에서는 토폴로지적으로 구별되면서도 동일한 하위 계층 장애 도메인에 붙어 있을 수 있는 것이다.

로컬 복구와 경로 복구는 또 하나의 트레이드오프를 드러냈다. 장애 지점 근처의 복구는 빠를 수 있지만 결과 경로가 비효율적일 수 있고 이후 헤드엔드의 재그루밍이 필요할 수 있었다. 소스 기반 재라우팅은 자원을 더 효율적으로 쓸 수 있지만 보통 더 오래 걸렸다. 다시 패킷을 운반한 첫 경로가 반드시 운영자가 유지해야 하는 안정 경로는 아니었다.

수평 경계에도 자체적인 접수 문제가 있었다. RFC 3386은 영역 간 신호 전달이 복구 성공 여부를 전달하기를 원했다. 그 결과가 없으면 연결 반대편은 불필요한 작업을 수행하거나 원격 세그먼트가 여전히 다운된 경로를 유지할 수 있었다. 복구 요청, 복구 시도, 복구 결과는 별개의 기록이었다.

이후 문서들은 원래의 절충을 지우지 않으면서 어휘를 다듬었다. RFC 4427은 공통 복구 언어를 정의했다. RFC 4428은 다계층 복구와 중복 동작의 위험을 검토했다. RFC 7347은 MPLS 전송 보호를 위해 프로비저닝 가능한 홀드오프 개념을 유지했다. RFC 7926은 이후 클라이언트 계층과 서버 계층 간 추상화가 공유 위험 정보를 어떻게 감출 수 있는지 보여주었다. 이들은 설계 사고의 연속성이며, RFC 3386의 목표가 보편적으로 배치됐다는 증거가 아니다.

Lu Heng의 최소 초기 사양 관점은 메모가 모든 것을 아는 계층 간 제어 평면보다 작고 상호운용 가능한 메커니즘 집합을 선호한 이유를 명확히 한다. 복구 순서, 장애 통지, 타이머는 최소 계약이 필요한 공유 결정이었다. 내부 알고리즘과 토폴로지는 로컬에 남을 수 있었다. 조율에 한 계층이 모든 다른 계층의 주권자가 될 필요는 없었다.

현실 계층의 관점은 타이머가 말할 수 없는 것을 드러낸다. 구성된 하위 계층 보호 체계, 감지된 장애, 전환 명령, 완료된 전환, 복원된 MPLS 경로, 수렴된 IP 경로, 정상 동작하는 애플리케이션은 서로 다른 사실이다. 타이머 만료는 경과 시간만을 증명한다. 숨겨진 계층에 대한 가정을 그 계층으로부터의 접수 기록으로 승격시킬 수 없다.

따라서 RFC 3386의 영속적 교훈은 "광을 기다려라"가 아니다. 복구 권한을 명시적이고 임시적인 것으로 만들라는 것이다. 동작이 기대되는 계층의 이름을 붙이고, 그것이 실제로 커버하는 장애 도메인을 기록하고, 그 동작에 기한을 부여하고, 그 동작을 사용할 수 없을 때 즉시 에스컬레이션 경로를 제공하고, 완료 접수를 보존하라. 그리고 가장 중요한 경계에서 서비스를 검증하라.

회복력 있는 네트워크는 복구 메커니즘이 가장 많은 네트워크가 아니다. 그 메커니즘들이 언제 동작할지, 언제 기다릴지, 언제 제어를 돌려줄지를 알고, 그리고 누구도 기다림을 서비스가 돌아왔다는 증거로 착각하지 않는 네트워크이다.

출처