터널 이름은 누가 소유했는지 묻기 전까지 인벤토리 행처럼 보인다. 이름은 지금 무언가 연결되어 있다는 사실만 알려 준다. 서비스가 누구의 것인지, 무엇에 접근할 수 있는지, 터널을 만든 구성이 승인한 구성인지는 알려 주지 못한다. 함대 규모에서는 그 세 가지 질문이 곧 인벤토리이고, 터널은 가장 최근의 관찰일 뿐이다.

하나의 서비스, 세 개의 기록

의도한 서비스는 테넌트가 권리를 가진 대상이다. 즉 ID, 프리픽스, 리소스, 라이프사이클 상태이다. 배포된 구성은 그것을 실현해야 하는 생성된 정책이다. 관찰된 세션은 무언가 연결되었다는 런타임 증거이다. 이들을 하나의 표로 취급하면 서로 다른 세 종류의 진실이 동시에 세 가지로 틀린 한 행에 눌려 담긴다.

RecordAnswersGoes stale when
Intended serviceWho may reach whatA contract changes and nobody edits the record
Deployed configurationWhat the gateway was toldA device is edited by hand
Observed sessionWhat is running nowTelemetry stops or a session ends

실무적 시험은 각 기록이 단독으로 답할 수 있는 질문이다. 이 프리픽스는 누구의 것인가 묻으면 의도한 서비스 기록이 답한다. 게이트웨이가 어떤 정책을 가졌는가 묻으면 배포된 기록이 답한다. 이번 주에 누가 썼는가 묻으면 세션 기록이 답한다. 자기 질문에 답하지 못하는 열이 가장 먼저 고쳐야 할 열이다.

기록할 것은 테넌트이지 인터페이스가 아니다

재연결 후에도 살아남는 식별자를 각 서비스에 부여하라. 임시 터널 인터페이스나 세션 번호는 고객과 무관한 이유로 바뀌고, 그중 하나를 키로 삼은 인벤토리는 링크가 흔들릴 때마다 새 행을 만든다. 대신 테넌트와 서비스를 키로 삼고, 그 키에 관찰을 붙여라.

기록에는 책임 테넌트와 운영자, 수용된 피어 또는 사용자 ID, 자격 증명의 사본이 아닌 참조, 보호된 프리픽스, 라우팅 컨텍스트, 허용된 리소스, 의도한 라이프사이클 상태가 필요하다. 자격 증명 자료는 지원되는 비밀 저장소에 속한다. 개인 키를 품은 인벤토리는 환경의 두 번째이자 더 허술하게 보호된 사본이 되어 버린다.

생성된 구성에는 소유자와 버전이 있다

자동화는 이것을 더 쉽게 만들고 더 잘 숨긴다. 성공적으로 실행된 생성기는 템플릿이 렌더링되었다는 증거일 뿐, 모든 장비가 출력과 일치한다는 증거가 아니다. 언젠가 누군가 장애 중에 게이트웨이를 손으로 바꾸고, 그 변경이야말로 기록할 가치가 가장 큰 것이다. 이후 어떤 실행도 재현하지 못하는 유일한 변경이기 때문이다.

배포된 정책을 만든 리비전을 기록하고,직접 수정한 내용은 조용히 덮어쓰지 말고 조정해야 할 차이로 남겨라. 여기서 조정이 곧 산출물이다. 생성기의 성공과 장비의 실제 상태는 비교해야 할 두 사실이며, 같다고 가정해서는 안 된다.

세션은 증거이지 권한이 아니다

배포가 RADIUS 회계를 쓰는 곳에서는 RFC 2866이 작업할 구체적 필드를 제공한다. Acct-Status-Type 은 시작과 중지를 구분하고, 한 세션에 속한 기록은 Acct-Session-Id 을 공유한다. 그 필드가 있으면 대시보드 요약을 믿지 않고도 세션이 언제 시작되고 끝났는지 재구성할 수 있다.

회계 식별자는 런타임 증거이다. 어떤 테넌트가 서브넷을 소유하는지 규정하지 않고, 무엇에도 접근 권한을 주지 않는다. 게이트웨이와 서비스 ID에 연관 짓고, 수집 시각을 관찰 옆에 둬라. 보고가 빠진 것은 사용이 없었다는 뜻이 아니라 텔레메트리 장애일 수 있고, 오래된 기록은 접근이 지금도 살아 있다는 증거가 아니다.

폐기도 같은 결합을 쓴다

서비스를 제거한다는 것은 의도한 접근, 자격 증명, 실행 중인 세션을 그 순서대로 각각의 소유자를 통해 제거하는 것이다. 그다음 폐기된 구성이 장비에서 사라졌는지, 허용된 경로가 더 이상 해석되지 않는지 확인하라. 지난 분기에 떠난 고객이 터널 이름만 지우고 경로를 지우지 않아 프리픽스 목록에 계속 남아 있어서는 안 된다.

이 중 어느 것도 기능마다 장비 한 대나 특정 자동화 제품을 요구하지 않는다. 운영 요구는 더 좁고 더 어렵다. 고객, 그 고객의 의도한 접근, 배포된 정책, 현재의 런타임 증거가 누군가의 터널 이름 기억에 기대지 않고 결합될 수 있어야 한다. 먼저 세 기록을 세우고, 그다음 그것을 유지하는 도구를 고르라.

관련 글