요약

  • RFC 3970은 트래픽 엔지니어링 터널이 자신의 경로 중 최소 하나라도 살아 있으면 터널이 살아 있는 것으로 선언했다. 터널 가용 시간과 주 경로 가용 시간을 별도 항목으로 측정했기 때문에, 집계 상태만으로는 어느 경로가 트래픽을 운반했는지 증명할 수 없었다.
  • MIB는 구성된 경로, 계산된 경로, 시그널링이 기록한 경로를 서로 구분해 유지했으며, 선택 사항이고 기본값으로 비활성화되어 있고 속도가 제한된 알림과 래핑 또는 불연속 카운터는 완전한 이벤트 대장을 구성할 수 없었다.

단일 필드를 보는 운영자는 단일한 답을 원한다. 터널이 살아 있는가? 2005년 1월,RFC 3970은 그 답을 제공했다. 그러나 동시에 그 답이 왜 불완전한지를 보여주는 인접 필드들도 함께 제공했다. 트래픽 엔지니어링 터널은 하나 이상의 경로로 인스턴스화되는 논리적 항목이었고, 최소 한 경로가 살아 있으면 터널도 살아 있는 것으로 간주되었다. 주 경로가 내려가 있어도 대체 경로가 터널 수준의 결과를 지킬 수 있었다.

이는 상태 모델의 결함이 아니었다. 집계의 목적 자체가 그것이었다. 잘못은 집계를 그 안에 담겨 있지 않은 증거로 격상시키는 데서 나온다. RFC 3970은teTunnelTimeUp과teTunnelPrimaryTimeUp을 별도로 노출했다. 관찰자는 터널이 운영된 총 시간과 그 중 주 경로에서 운영된 시간을 각각 계산할 수 있었다. 두 카운터가 존재한 이유는 “가용하다”와 “의도된 경로 위에 있다”가 서로 다른 주장이었기 때문이다.

이 사양은 MPLS 레이블 스위치드 경로 같은 트래픽 엔지니어링 터널을 위한 관리 정보 베이스(MIB)를 정의했다. 요구 수준 설정은RFC 2119를 따랐고, 항목 체계는RFC 2578,RFC 2579,RFC 2580의 SMIv2에서 왔다. 더 넓은 관리 아키텍처는RFC 3411이 기술했고, 적용성 안내문은RFC 3410에 있었다. 이 토대들이 중요한 이유는 MIB가 네트워크 자체가 아니라 관리된 사영(投影)이기 때문이다.

네 가지 경로 진실은 서로 다른 행에 있었다

RFC 3970은 자신의 모델을 터널, 경로, 홉 테이블로 나누었다. 터널은 논리적이었고, 경로가 이를 인스턴스화했으며, 정렬된 홉들이 경로를 기술했다. 이 계층 구조 안에서 표준은 유혹적인 하나로의 합체를 거부했다.

구성된 경로는 관리 시스템이 요청한 내용을 기록했다. 계산된 경로는 구현 의존적인 제약 알고리즘이 선택한 내용을 기록했다. 기록된 경로는 시그널링 프로토콜이 실제 사용되었다고 보고한 내용을 나타냈다. 값이 0이면 계산되거나 기록된 경로가 없다는 뜻이었다. 셋 모두 너머에는 포워딩 카운터와 직접적인 서비스 관찰이 있었다.

이들은 중복 복제본이 아니었다. 운영자는 느슨한 홉을 구성할 수 있고, 알고리즘이 대역폭과 관리 그룹 제약을 만족하는 순서를 채워 넣을 수 있으며, 시그널링은 전혀 다른 무언가를, 혹은 아무것도 수립하지 않을 수 있었다.RFC 2702의 트래픽 엔지니어링 요구,RFC 3209의 RSVP-TE 메커니즘,RFC 3212의 CR-LDP 역사는 관련된 계층이었지, 한 계층에서 다른 계층을 추론할 면허는 아니었다.

경로 상태는 이 구분을 더 날카롭게 했다.down은 시그널링 실패를 뜻했다.dormant는 시그널링되지 않은 백업을 기술했다.ready는 시그널링은 되었지만 아직 트래픽을 운반하지 않음을 의미했다. 오직operational만 시그널링되고 트래픽을 운반함을 의미했다. 따라서 성공한 컨트롤 플레인 동작은 데이터 평면 운반이 시작되기 전에 자신만의 상태를 가졌다.

MIB는 인그레스에서만 적용되었다. 인그레스는 RSVP-TE 같은 프로토콜을 사용해 다른 라우터들이 터널을 수립하는 데 필요한 내용을 알리도록 되어 있었고, 다른 지점으로의 확장은 향후 과제로 남겨졌다. 인그레스의 완전한 행이 모든 트랜짓 구현이나 이그레스 결과를 인증하지는 않았다.

스냅샷은 타임라인이 아니었다

RFC 3970은 패킷 및 옥텟 카운터, 전이 횟수, 경로 변경 횟수, 타임스탬프를 제공했다. 또한 그 어느 것도 연속성 메타데이터 없이는 읽어서는 안 되는 이유를 문서화했다. 패킷과 옥텟 카운터는 관리 서브시스템이 재초기화될 때와 그 밖의 시점에 재설정될 수 있었다.teTunnelDiscontinuityTimer는 가장 최근의 그런 불연속을 표시했다. 검사하지 않은 재설정 경계를 가로지르는 양의 델타는 무의미할 수 있었고, 더 작은 수치가 트래픽이 역전되었다는 증명도 아니었다.

터널 나이, 총 가용 시간, 주 경로 가용 시간은TimeTicks를 사용했다. 이 값들은 약 16개월 후 래핑되었다. RFC는 이를 명시적으로 구간 측정으로 제시하고 관리 스테이션에 래핑을 반영하도록 지시했다. 따라서 가용률을 계산하는 산술에는 두 관측치, 그 타임스탬프, 에이전트의 연속성 및 래핑 처리가 필요했다. 큰 절대 수치 하나가 영원한 기록은 아니었다.

알림은 역사로서 의도적으로 손실이 많았다. up, down, active-path-change, reroute 알림은 각각 변화가 빠를 때 분당 최대 하나로 제한되어야 했다. 알림은 선택적 준수 그룹을 이루었고teNotificationEnable이 false이면 비활성화되었으며, 그 기본값도 false였다. 트랩을 하나도 받지 못한 수집기는 안정성, 비활성화된 생성, 선택적 기능의 부재, 전달 손실, 혹은 조절된 구간 중 무엇이든 바라보고 있을 수 있었다.

두 알림 유형의 구분도 똑같이 시사적이었다. “변경(changed)”은 활성 경로가 바뀌었거나 다른 경로가 활성화되었음을 의미했다. “재경로 지정(rerouted)”은 활성 경로는 그대로인데 그 경로의 경로가 바뀌었음을 의미했다. 이벤트 어휘 안에서조차 경로의 신원과 경로의 배치는 별개였다.

자유 인덱스는 예약이 아니라 초대였다

터널을 만들려면 관리 애플리케이션이 먼저teNextTunnelIndex를 읽어야 했다. 그러나 두 애플리케이션이 같은 후보 값을 읽을 수 있었다. SNMP SET이 도착해야만 에이전트가 그 값이 여전히 미사용인지 판단했다. 한 경쟁자는 성공하고 다른 하나는 실패해 다시 읽어야 했다. 읽기는 그럴듯한 다음 값을 제공했을 뿐, 소유권을 부여하지 않았다.

경로와 홉 목록도 비슷한 행 수명 주기 메커니즘을 따랐다. 일부 수정은 해당 터널이나 경로를notInService로 두고 속성을 변경한 뒤active로 되돌리는 과정을 요구했으며, 이는 경로를 다시 시그널링할 수 있었다.RowStatus=active는 개념적 행의 관리 수명 주기에 대한 지시였지, 패킷이 네트워크를 통과했다는 영수증이 아니었다.

준수 역시 계층으로 나뉘었다. 최소 구현은 모든 필수 항목을 읽기 전용으로 노출할 수 있었다. 완전 준수는 명시된 쓰기 능력까지 지원했다. 알림은 선택 사항으로 남았다. 따라서 “RFC 3970을 구현한다”는 말은 관리자가 터널을 만들 수 있고, 모든 이벤트를 받을 수 있고, 경로를 변경할 수 있다는 것을 입증하지 않았다.

MIB는 TE 터널을Interfaces MIB와, 조건부로IP Tunnel MIB와 연관 지을 수 있었다.RFC 3811에서 MPLS 텍스트 규약을 가져왔다. 이 연결들은 관리 항목에 공통 식별자와 유형을 부여했을 뿐, 인터페이스 행, IP 캡슐화, 시그널링된 경로, 실제 전달된 애플리케이션을 하나의 사실로 만들지는 않았다.

읽기 권한은 드러낼 수 있고, 쓰기 권한은 재경로 지정할 수 있었다

보안 절은 관리 가시성을 권력으로 다루었다. 관리 그룹을 바꾸면 include·exclude 제약의 의미가 달라졌다. 경로 테이블을 바꾸면 대역폭, 상태, 경로가 변할 수 있었다. 무단 쓰기는 플래핑이나 장애를 일으킬 수 있었다. 무단 읽기는 터널 엔드포인트, 트래픽 규모, 경로 속성과 경로를 노출할 수 있었는데, 일부 사업자에게는 상업적으로 민감한 자료였다.

그래서 RFC 3970은 SNMPv3의 인증 및 프라이버시 메커니즘을 권고하고 이전 버전은 만류했다. 그러나 암호학적 인증은 여전히 누가 관리 서비스에 도달했는지만 답했다. 어떤 주체가 어떤 항목에 대해 GET이나 SET를 할 수 있는지는 운영자가 승인해야 했다. 신원, 허용된 동작, 네트워크 결과는 서로 구분되어 있었다.

유지되는 기록, 즉RFC Editor 정보 페이지,에라타 검색,IETF Datatracker는 상태를 확정하고 정정 사항을 보고한다.RFC 9141은 이후 연락처 정보의 폐기된 워킹그룹 아카이브 참조를 정정했다. 그러나 그 어떤 출처도 배포 현황, 벤더 행동, 가용성, 사건을 측정하지 않는다.

지속되는 교훈은 MIB에 진실이 없었다는 것이 아니다. MIB는 여러 좁은 진실을 동시에 운반했다. 터널 상태는 경로를 요약했고, 경로 상태는 시그널링과 운반을 분리했으며, 경로 항목들은 연속된 결정을 보존했고, 카운터는 연속성을 요구했으며, 알림은 운영상의 절제를 위해 완전성을 희생했다. 관리 시스템은 각 값이 자신이 관찰한 것—그리고 그 이상은 아무것도—정확히 말하도록 허용될 때에만 신뢰할 수 있었다.

출처