요약

  • RFC 9922는 재사용 가능한 YANG 스케줄링 타입, 유효성 가드와 상태 필드를 표준화하지만, 트리거되는 동작 자체를 정의하거나 그 충돌을 해결하는 것은 의도적으로 본 문서의 범위에 두지 않는다. 공통 상태는 활성화된 최신 스케줄을 표시할 수 있지만, 그 동작을 지금 누가 여전히 승인하는지는 말해주지 않는다.
  • Daniel Kade는 스케줄 버전, 정확한 동작, 기관 후원자, 현재 정책, 실행 주체를 트리거와 그 결과에 결합하는 발생-권한 영수증을 제안한다. 이는 운영자 통제 제안이며, RFC 9922의 요구사항이 아니고 알려진 배포 실패에 대한 주장도 아니다.

결정 맥락이 이동한 뒤에 스케줄이 깨어난다

미래 동작은 결정과 실행을 분리한다. 그 분리가 바로 스케줄링의 존재 이유다: 직원이 유지보수 창까지 온라인 상태를 유지할 필요가 없고, 수요가 도래하기 전에 자원 예약을 준비할 수 있으며, 새로운 수동 명령 없이 반복 측정을 수행할 수 있다. 그러나 바로 이 지점에서 조용한 범주 오류가 침입한다.

시스템은 반복 표현식이 유효한지, 다음 발생이 허용된 창 안에 있는지, 대상 자원이 가용해 보이는지, 스케줄이 활성화되어 있는지를 답할 수 있다. 이러한 녹색 조건들을 본 운영자는 그것을 하나의 답, 즉 "진행하라"로 읽을 수 있다. 그러나 어느 것도 현재 존재하는 권한 아래에서 이 기관이 여전히 이 동작을 원하는지를 답하지는 않는다.

반복 구성 작업을 생각해 보자. 생성 당시에는 한 네트워크 팀이 대상을 통제했고 서비스 계정이 쓰기 권한을 가졌다. 몇 달 뒤 소유권이 다른 팀으로 이동한다. 마이그레이션 기간 동안 구계정은 기술적으로 여전히 사용 가능하다. 스케줄은 형식이 잘못된 것도 만료된 것도 아니다. 일곱 번째 발생이 정시에 도래한다.

침입자, 소프트웨어 버그, 태만한 관리자가 있을 필요는 없다. 스케줄은 저장된 정의에 충실하면서도 현재의 결정 구조로부터 분리될 수 있다. 중요한 질문은 더 이상 "스케줄러가 규칙을 따랐는가?"가 아니라 "어떤 권한이 이 발생에 대해 이 규칙을 유효하게 만들었는가?"이다.

RFC 9922는 시간적 유효성을 정의하지, 기관적 유효성을 정의하지 않는다

RFC 9922는 2026년 3월에 발행된 IETF의 Standards Track 문서다. 날짜와 시간으로 이벤트, 정책, 서비스 또는 자원을 스케줄링하기 위한 공통 타입과 재사용 가능한 그룹핑을 정의하는ietf-schedule모듈을 명세한다. iCalendar 유사 표현을 포함한 일회성 기간과 반복을 지원하며, 스케줄 검증과 상태 보고를 위한 매개변수를 제공한다.

그 범위는 절제되어 있다. 이 RFC는 스케줄이 트리거하는 동작의 성격에 대해 어떤 가정도 하지 않는다. 스케줄 충돌의 탐지와 해결을 문서 밖에 둔다. 모듈 자체는 그룹핑과 타입만 담고 있으며, 그 자체로는 쓰기 가능한 데이터 노드, 운영 상태 노드 또는 RPC를 노출하지 않는다. 다른 YANG 모듈들이 이를 소비하고 보강한다.

이 모듈 경계는 결함이 아니다. 그룹핑을 재사용 가능하게 만드는 바로 그 조건이다. 경보, OAM 테스트, 정책, LSP, 파괴적 구성 동작을 위한 스케줄이 반복 라이브러리에서 하나의 보편적 승인 이론을 물려받아서는 안 된다.

그러나 이는 "유효"를 정밀하게 읽어야 함을 의미한다.generic-schedule-params그룹핑은validity값을 포함한다. RFC 9922는 이를 스케줄이 시작하기에 더 이상 유효하지 않은 시점으로 정의한다. 설정된 값 이후의 발생은 실행되지 않는다. 최대·최소 시작 횟수, 최대 종료 및 폐기 동작이 다른 시간적 가드를 추가한다.

이 필드들은 스케줄이 언제 실행될 수 있는지를 답한다. 승인 기관을 식별하지 않고, 생성자가 여전히 역할을 보유한다는 것을 증명하지 않고, 동작을 현재 정책 버전에 결합하지 않으며, 변경된 대상이 재승인이 필요한지를 말하지 않는다. 시간적 유효성과 결정 권한은 일치할 수 있지만, 하나가 다른 하나의 증거는 아니다.

버전이 최신이어도 후원자는 보이지 않을 수 있다

RFC의 상태 그룹핑은 운영적으로 유용하다. 스케줄이 활성화, 비활성화, 완료, 시점 초과 또는 충돌 상태인지를 표시할 수 있다. 버전, 마지막 업데이트, 발생 횟수, 마지막·다음 발생, 마지막 실패 발생과 실패 횟수를 담을 수 있다. 운영자는 버전 7이 활성화되어 있고, 어제 실행되었으며, 두 번 실패했다는 사실을 알 수 있다.

구형 DISMAN-SCHEDULE-MIB와의 비교에서 의미심장한 한계가 드러난다. RFC 9922는 많은 MIB 객체를 YANG 그룹핑으로 매핑하면서schedOwner를 "Not Supported"로 표기한다. 또한 여러 출처에서 스케줄이 도래할 경우 향후 모듈이 출처와 우선순위를 추가할 수 있다고 명시한다.

추론은 좁게 유지되어야 한다. RFC 9922는 소유권 메타데이터를 금지하지 않는다. 소비 모듈이 이를 추가하도록 자유로이 남겨둔다. 많은 제품이 이미 생성자, 승인자, 서비스 신원을 기록하고 있을 수 있다. 표준이 보여주는 증거는 단지 소유자나 후원자가 공통 상태의 일부가 아니라는 점이다.

상태가 경영진용 요약으로 사용될 때 이 누락은 중요해진다. 버전은 출처가 아니다. "마지막 업데이트"는 "마지막 승인"이 아니다. 실패 횟수는 성공한 동작이 더 이상 허용되어서는 안 되었음을 드러내지 못한다.conflicted상태조차 소비 모듈이 더 넓은 의미를 부여하지 않는 한 스케줄링 상태에 관한 것이다.

따라서 보증 관점은 매혹적인 문장, 즉 "현재 스케줄이 성공적으로 실행되었다"에 저항해야 한다. "현재"는 저장된 최신 버전을 가리킬 수 있다. "성공적으로"는 스케줄러가 동작을 호출했다는 사실을 가리킬 수 있다. 어느 단어도 동작 뒤에 있는 현재 권한을 식별하지 않는다.

NACM은 요청을 보호하지만, 이후의 발생에는 이름이 지정된 주체가 필요하다

RFC 8341은 NETCONF와 RESTCONF를 위한 네트워크 구성 접근 통제 모델(NACM)을 정의한다. 인증된 세션을 사용자명과 그룹에 연관시키고, 프로토콜 동작과 데이터스토어 접근에 규칙을 적용하며, 서버가 메시지 처리를 시작할 때 적용 중인 규칙을 사용하도록 요구한다. 누가 관리 객체를 생성, 변경, 삭제 또는 호출할 수 있는지를 통제하는 데 NACM은 필수적이다.

시간 경계 역시 중요하다. RFC 8341은 사용자 세션에서 시작된 요청을 논의하면서, 부팅 중 러닝 구성 로딩과 같은 서버 주도 접근은 사용자 세션 요청으로 강제되지 않음을 명시한다. 이 문장이 모든 스케줄러가 발생을 처리하는 방식을 결정하지는 않는다. 소비 모듈은 발생을 동작으로 모델링하거나, 서비스 주체를 사용하거나, 현재 정책을 재평가하거나, 내구성 있는 위임을 보존할 수 있다.

거버넌스 질문은 정확히 이 모델들 중 어느 것이 적용되는가이다. Alice가 운영 그룹에 속한 상태에서 스케줄을 만들었다면, 일곱 번째 발생은 Alice로서, 스케줄러로서, 컨트롤러로서, 아니면 기관 서비스로서 실행되는가? Alice가 떠나면 스케줄은 중단되어야 하는가, 이전되어야 하는가, 아니면 별도 승인된 위임 아래 계속되어야 하는가? 대상이 보호된 하위 트리로 이동하면 어느 정책 버전이 발생을 통제하는가?

보편적 답은 없다. 백업 작업은 원래 생성자가 부서를 옮겼다는 이유만으로 실패해서는 안 된다. 예정된 트러스트 앵커 변경은 대상이나 증거가 바뀌었다면 새 승인을 필요로 할 수 있다. 일어나서는 안 되는 것은 구현 기본값 안에 숨겨진 우연한 답이다.

스케줄러는 이름이 지정된 실행 주체와 명시적 연속성 규칙을 필요로 한다. 내구성 있는 기관적 승인은 정당하다. 보이지 않는 상속 권한은 그와 같은 것이 아니다.

신뢰할 수 있는 시계가 동작을 승인할 수는 없다

RFC 9922는 시간을 보안 의존성으로 올바르게 다룬다. 부정확한 시간은 잘못된 간격으로 동작을 트리거할 수 있다. 매우 빈번한 반복은 비정상 동작을 숨기거나 시스템을 계속 바쁘게 유지할 수 있다. 트리거 시각과 동작 결과의 상세 로그가 없으면 인시던트 추적이 어려워진다.

주변 표준들은 시간 문제를 신중히 나눈다. RFC 3339는 인터넷 타임스탬프를 정의한다. RFC 7317은 YANG 관리 시스템에 시간대와 NTP 구성을 제공한다. RFC 8915의 Network Time Security는 시간 동기화를 인증하고, 리플레이를 탐지하며, 응답을 요청에 결합한다.

이 통제들은 02:00이 실제로 02:00이었고 시간 패킷이 인증된 출처에서 왔다는 증거를 강화한다. 그러나 유지보수 동작이 여전히 허용된 상태로 남아 있음을 증명하지는 않는다. 인증된 시계가 정확히 제시간에 무단 동작을 트리거할 수 있다. 반대로 정당한 동작이 시계 오류로 오작동할 수도 있다.

발생 기록은 두 증명을 분리해 보관해야 한다. 시간 출처와 불확실성은 한쪽에, 권한과 정책 결정은 다른 쪽에. 둘을 하나의 "유효" 배지로 결합하면 어느 명제가 실패했는지가 숨겨진다.

예약된 자원 통제는 지연 동작 표면을 보여준다

RFC 8413은 운영자가 미래 LSP를 위한 트래픽 엔지니어링 자원을 예약하는 이유를 설명한다. 경로는 지금 계산되고 용량이 예약될 수 있으며, LSP는 요청된 창이 시작될 때에만 수립된다. 프레임워크는 미래 LSP 정보가 자원 예약과 상관되어 운영자가 왜 자원이 배정되었는지를 보고, 선점을 처리하고, 취소 후 해제할 수 있어야 한다고 명시한다. 얼마나 예약할 수 있는지와 재최적화가 어떻게 진행되는지는 운영자 정책이 결정한다.

RFC 8934는 그 설계를 PCEP 메커니즘으로 옮긴다. 스테이트풀 PCE는 예약된 LSP 상태를 유지할 수 있고, 시작 시각에 PCC가 셋업을 개시하며, 만료 시 예약된 속성에 따라 LSP를 제거할 수 있다. 생성, 수정, 동기화, 실제 활성화는 서로 다른 시점에 일어난다.

그 RFC들에는 승인 실패를 문서화한 내용이 없다. 이들은 지연 통제 표면을 보이게 한다. 경로가 여전히 제약을 만족할 수 있고, 예약 데이터베이스가 동기화될 수 있으며, 시작 시각이 정확할 수 있다. 그러나 고객 요청이 다른 곳에서 취소되었을 수 있고, 후원자가 더 이상 서비스를 통제하지 않을 수 있으며, 운영자의 정책이 바뀌었을 수 있다.

자원 가용성, 프로토콜 유효성, 결정 권한은 독립적인 조인이다. 신뢰할 수 있는 자동화는 하나가 다른 하나를 대신하는 대신, 셋 모두를 보여야 한다.

발생-권한 영수증

실용적 수리는 공통 스케줄링 모듈을 다시 여는 것이 아니다. 소비 모듈이 스케줄을 중요 결과를 낳는 동작에 결합하는 지점에 간결한 권한 영수증을 붙이는 것이다.

각 발생에 대해 — 또는 암호학적으로 경계 지어진 동등한 저위험 발생 계열에 대해 — 영수증은 다음을 기록해야 한다:

  • 안정적인 스케줄 식별자, 현재 버전, 정확한 정의 해시;
  • 반복 인스턴스, 계획 시각, 관측된 트리거 시각;
  • 동작과 대상 클래스, 민감한 값에 대한 보호된 커밋먼트;
  • 생성자와 현재 기관 후원자, 사람과 내구성 있는 서비스 역할의 구분;
  • 생성 시점의 승인 근거와 현재 정책 또는 위임 버전;
  • 실행이 이루어지는 주체와 현재 허용-거부 결과;
  • 시간 출처와 관련 불확실성;
  • 스케줄 충돌, 우선순위, 선점, 로컬 정책 처분 여부;
  • 의도 상태 커밋먼트, 적용 상태 관측, 동작 결과;
  • 실패, 취소, 의도적 미실행의 이유; 그리고
  • 대체(supersession) 및 수정 링크.

이것이 사람이 매 분 승인을 클릭하도록 요구하는 것은 아니다. 서명된 정책 결정이 정의된 동작 클래스, 대상 집합, 위험 상한, 발생 범위를 커버할 수 있다. 스케줄 버전, 후원자, 대상, 정책, 충돌 조건 또는 요청된 효과가 바뀌면 만료되어야 한다.

영수증이 사용자명, 토폴로지, 구성을 공개할 필요도 없다. 공적 책임 표면은 후원자 클래스, 정책 식별자, 해시, 관리자, 처분을 노출할 수 있다. 보호된 증거는 운영 세부를 보존한다.

요점은 "왜 이것이 실행되었는가"를 "언제 실행되었는가"와 같은 해상도로 답할 수 있게 만드는 것이다.

강한 반론이 경계를 개선한다

첫 번째 반론은 연속성이다. 기관 스케줄은 휴가, 인사 이동, 계정 순환을 넘어 살아남아야 한다. 맞다. 영수증은 사람에서 내구성 있는 기관 후원자로의 의도적 이전을 지원해야 한다. 연속성을 강화하는 것이지, 네트워크를 떠난 직원에게 결부시키는 것이 아니다.

두 번째는 비용이다. 모든 고빈도 발생마다 복잡한 정책을 재평가하면 시스템이 감당하지 못할 수 있다. 경계 지어진 승인 임대는 범위, 정책 버전, 무효화 트리거가 명시적이라면 결정을 분할 상환할 수 있다. 결과는 영속적인 생성 시점 권한이 아니라 현재의, 검사 가능한 승인 창이다.

세 번째는 중복이다. NACM, 오케스트레이터, 기존 감사 플랫폼이 이미 이 데이터의 상당 부분을 기록하고 있을 수 있다. 그렇다면 영수증은 기존 증거 위의 조인이 될 수 있다. 시험 기준은 독립적인 운영자가 구두 지식에 의존하지 않고 스케줄 버전, 현재 권한, 정확한 발생, 결과를 연결할 수 있는가이다.

네 번째는 모듈성이다. RFC 9922는 동작의 의미를 의도적으로 모른다. 그래서 통제가 소비 모델 또는 운영 감사 계층에 속한다. 이 제안은 표준의 경계를 존중하며, 일반성을 태만함으로 취급하지 않는다.

증거의 한계

이 분석은 표준을 읽은 것이며 운영 환경을 읽은 것이 아니다. 특정 벤더, 운영자 또는 오픈소스 구현이 오래된 권한의 스케줄을 실행한다는 것을 보여주지 않는다. 침해, 중단, 악용, 손실, 정책 위반을 입증하지 않는다. 기존 시스템에 소유자 필드, 서비스 주체, 재승인, 상세 로그가 없다는 것을 보여주지도 않는다.

또한 제안된 영수증을 IETF 요구사항으로 만들지 않는다. RFC 9922는 합의된 Standards Track 문서다. 그 그룹핑들은 정의된 상호운용성 문제를 해결하며, 보안 섹션은 동작별 고려사항을 그것을 재사용하는 모듈들에 명시적으로 할당한다.

지지 가능한 결론은 더 좁다. 스케줄은 RFC 9922가 표준화한 시간적·운영적 어휘에서 최신일 수 있으면서도, 그것에 결합된 동작의 권한은 별개의, 서술되지 않은 사실일 수 있다. 실행이 지연되면 기관은 권한이 내구적인지, 이전되는지, 재평가되는지, 철회되는지를 결정해야 한다. 그 결정이 기록되지 않으면 "활성화됨"은 데이터가 감당할 수 있는 것보다 더 큰 주장이 된다.

출처

  1. https://heng.lu/the-policy-mirror/
  2. https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
  3. https://heng.lu/on-why-btw-media-exists-and-why-reality-not-advocacy-is-the-product/
  4. https://www.rfc-editor.org/info/rfc9922/
  5. https://www.rfc-editor.org/rfc/rfc9922.html
  6. https://www.rfc-editor.org/rfc/rfc8341.html
  7. https://www.rfc-editor.org/info/rfc8413/
  8. https://www.rfc-editor.org/rfc/rfc8934.html
  9. https://www.rfc-editor.org/rfc/rfc3339.html
  10. https://www.rfc-editor.org/rfc/rfc7317.html
  11. https://www.rfc-editor.org/rfc/rfc8915.html
  12. https://www.rfc-editor.org/rfc/rfc8342.html
  13. https://www.rfc-editor.org/rfc/rfc7950.html
  14. https://www.rfc-editor.org/rfc/rfc6241.html
  15. https://www.rfc-editor.org/rfc/rfc8040.html