요약

  • RFC 10041은 OSPF가LSLinkInfinity(0xffff)를 사용해 링크를 해당 SPF 계산에서 제외할 수 있도록 하지만, 에어리어의 링크 상태 데이터베이스에 표현된 모든 라우터가 Unreachable Link 기능을 광고한 이후에만 가능합니다.
  • 에어리어에 합류하는 구형 라우터는 이 조건을 취소할 수 있습니다. 기능 LSA 전파 중에 라우터들이 같은 메트릭을 서로 다르게 해석해 일시적 포워딩 루프를 형성할 수 있습니다.
  • Daniel Kade는 구성 인벤토리가 포워딩을 증명한다고 가장하지 않으면서, 라이브 라우터 명단·기능 증거·영향받는 링크·수렴 구간·재계산 및 롤백 조건을 고정하는 에어리어 의미론적 활성화 영수증을 제안합니다.

하나의 숫자, 두 개의 포워딩 세계

인접한 두 라우터가 동일한 링크 상태 광고를 본다고 상상해 보십시오. 라우터 A는 메트릭 65,535를 보고 해당 링크를 최단 경로 계산에서 제거합니다. 라우터 B는 같은 값을 보고 이 링크를 매우 비싸지만 도달 가능한 최후의 수단으로 유지합니다. 두 동작 모두 각자 구현한 규칙 아래에서는 옳을 수 있습니다. 그러나 함께 있으면 패킷을 서로 되돌려 보낼 수 있습니다.

RFC 10041은 최대 링크 메트릭에 대한 기존 OSPF 해석을 변경합니다. RFC 2328의 구형 동작은0xffff를 도달 가능한 것으로 취급했습니다. 새로운 Unreachable Link 기능은 이 값에 더 강한 의미를 부여합니다. 즉, 해당 SPF 계산에서 링크를 고려하지 말라는 것입니다.

이 변경은 실제 모델링 문제를 해결합니다. OSPF 링크는 트래픽 엔지니어링이나 RFC 9350의 Flexible Algorithm을 위해 계속 보여야 하지만, 기본 홉 바이 홉 토폴로지에는 들어가지 않아야 할 수 있습니다. 링크를 광고하는 것은 유용하지만, 기본 SPF가 그것을 선택하도록 허용하는 것은 아닙니다.

그러나 동일한 비트가 하나의 에어리어 안에서 두 가지 의미를 안전하게 가질 수는 없습니다. 따라서 RFC 10041은 새 의미론을 집합적 조건에 묶습니다.

만장일치는 구성된 것이 아니라 관찰된 것

지원 라우터는 에어리어 스코프의 Router Information LSA에 기능 비트를 광고합니다. 라우터는 에어리어 LSDB에서 Router-LSA로 표현된 모든 라우터가 해당 기능을 광고하지 않는 한,LSLinkInfinity를 도달 불가능으로 해석해서는 안 됩니다.

이는 "업그레이드 계획이 완료되었다"는 것보다 강합니다. "컨트롤러가 모든 기기가 이 기능을 지원한다고 말한다"는 것과도 다릅니다. 프로토콜 조건은 각 라우터가 실제로 보는 링크 상태 데이터베이스 안에 존재합니다.

비지원 라우터 수가 0으로 떨어지면 에어리어는 새 의미론적 상태에 들어갈 수 있습니다. 구형 라우터가 합류하거나 기능 광고가 사라져 수가 0에서 다시 올라가면, 라우터는 호환 해석으로 돌아가야 합니다. 두 전환 모두 경로 재계산을 요구합니다.

따라서 지배 단위는 박스나 소프트웨어 이미지가 아닙니다. 그것은 시간적으로 한정된 에어리어 전체 명제입니다. 즉, 이 관찰 지점과 시점(epoch)에서 에어리어에 참여하는 모든 라우터가 동일한 해석을 신호했다는 것입니다.

수렴은 위험한 구간을 만든다

에어리어 스코프 LSA는 모든 곳에 동시에 도착하지 않습니다. RFC 10041은 이전에 완전한 지원이 있던 에어리어에 구형 라우터가 합류하는 경우를 명시적으로 언급합니다. 라우터들은 새 비지원 멤버를 점진적으로 발견합니다. 전파 동안 일부는 여전히0xffff를 도달 불가능으로, 다른 일부는 도달 가능으로 취급할 수 있습니다.

이 불일치는 일시적 루프를 만들 수 있습니다. 한 라우터는 최대 비용 링크를 유지하므로 이웃을 향해 포워딩하고, 이웃은 그 링크를 제외하고 다른 계산에 따라 트래픽을 되돌려 보냅니다.

위험은 단순히 "구형 라우터가 존재한다"는 것이 아닙니다. 에어리어의 의미론적 상태는 바뀌었지만 관찰은 아직 수렴하지 않은 그 구간입니다. 변경 전 기능 확인만 담은 배포 기록은 그 구간 동안 네트워크가 무엇을 믿었는지 설명할 수 없습니다.

운영자는 최소 세 순간을 관찰해야 합니다. 의도된 전환, 만장일치 조건을 바꾸는 첫 LSDB 증거, 그리고 대표 라우터들이 공통 해석 아래 재계산을 마친 시점. 구성 푸시는 그 자체로 어느 하나도 아닙니다.

0xfffe는 다른 약속을 보존한다

OSPF는 이미 최대 메트릭을 여러 가지 더 부드러운 신호에 사용했습니다. Stub Router Advertisement는 라우터를 경유하는 트랜짓을 억제합니다. LDP-IGP 동기화는 레이블 배포가 따라잡는 동안 비용을 올립니다. 계획된 링크 종료 전의 Graceful link shutdown은 링크를 억제합니다. 이 경우들은 "이 간선이 없다"가 아니라 "최후의 수단으로만 사용하라"를 원합니다.

RFC 10041은0xffff가 도달 불가능을 의미할 수 있게 되면 그 의미를 보존하기 위해MaxReachableLinkMetric(0xfffe)를 정의합니다. RFC 5443, 6987, 8379, 8770도 이에 맞춰 갱신됩니다.

한 단계의 수치 차이가 중요한 거버넌스 경계를 담고 있습니다.0xfffe는 비상 도달성을 유지합니다. 만장일치 기능 아래의0xffff는 해당 SPF에서 링크를 제거합니다. 둘을 모두 "높은 메트릭"으로 뭉개버리는 대시보드와 변경 티켓은 운영자의 실제 의도를 버립니다.

오토 코스팅은 또 다른 엣지 케이스를 만듭니다. 역대역폭 기반 수식은 느리지만 유효한 링크에 대해 자연스럽게 최대값을 산출할 수 있습니다. RFC 10041을 지원하는 구현은 그 계산값을0xfffe로 상한해야 하며, 산술이 "비용이 높은"을 실수로 "도달 불가능"으로 바꾸지 않도록 합니다.

도달 가능성에는 여러 의미가 있다

광고된 도달 불가능 링크가 반드시 물리적으로 내려간 것은 아닙니다. 그것은 트래픽 엔지니어링 데이터베이스를 위해 계속 보일 수 있고,LSLinkInfinity를 같은 방식으로 적용하지 않는 메트릭 선택을 사용하는 Flex-Algorithm에서 사용 가능할 수 있습니다. 반대로0xfffe에 놓인 링크는 동작 중이지만 트랜짓에 대해 의도적으로 억제된 것일 수 있습니다.

이 구분이 중요한 이유는 소유하는 팀이 다르기 때문입니다. 물리 운영은 광·인터페이스·인접성 존재 여부를 알고, IGP 정책은 기본 토폴로지를 제어하고, TE 시스템은 제약 경로를 계산하고, Flex-Algorithm 정책은 별도의 계산을 정의하며, 포워딩 하드웨어는 결과를 설치합니다.

RFC 10041은 하나의 계산 규칙을 변경합니다. TE 터널이 선택되었거나, Flex-Algorithm 경로가 프로그램되었거나, 패킷이 흘렀거나, 물리 회선이 고장 났다는 것을 증명하지 않습니다. 좋은 기록은 정확한 동사를 명명해야 합니다. 광고됨, 해석됨, 제외됨, 계산됨, 설치됨 또는 관찰됨.

관리 접근은 에어리어의 어휘를 바꿀 수 있다

RFC 10041은 RFC 9129의 OSPF 관리 모델을 증강하는 YANG 모듈을 포함합니다. 기능과 인터페이스별 도달 불가능 광고는 구성 가능하며, 기본값은 기능을 광고하지 않는 것입니다.

그 쓰기 가능 노드는 민감합니다. 무단 변경은 라우터가 도달 불가능 해석을 채택하는 것을 막거나, 링크가 도달 불가능으로 광고되게 할 수 있습니다. 읽기 접근도 공격자에게 유용한 토폴로지 제어 세부를 드러낼 수 있습니다. RFC는 보안·상호 인증된 NETCONF 또는 RESTCONF 전송과, RFC 8341의 NACM을 통한 경계화된 권한 부여를 가리킵니다.

권한 부여와 안정성은 별개입니다. 침해된 라우터는 기능 광고를 빠르게 바꿔 반복적인 SPF 계산을 강제할 수 있습니다. RFC 10041은 RFC 8405의 SPF 백오프 알고리즘을 권고합니다. 백오프는 계산 엔진을 변동(churn)에서 보호하고, 접근 제어는 누가 변경을 일으킬 수 있는지 제한합니다. 어느 쪽도 에어리어 전체가 수렴했다는 증명이 아닙니다.

에어리어 의미론적 활성화 영수증

저는 RFC 10041 배포를 위한에어리어 의미론적 활성화 영수증을 제안합니다. 이것은 Daniel Kade의 거버넌스 제안이며, 추가적인 IETF 요구 사항이 아닙니다.

영수증은 에어리어 식별자와 스코프로 시작합니다. 자산 인벤토리가 아니라 Router-LSA를 통해 관찰된 라우터 명단을 고정합니다. 각 라우터에 대해 Router Information LSA에 대한 경계화된 참조, 기능 상태, 시퀀스 또는 신선도 증거, 관찰 지점을 저장합니다.

다음 절은 전환을 기록합니다. 변경 소유자, 의도된 활성화 또는 취소, 비지원 라우터 수의 이전 값과 새 값, 첫 결정적 LSA, 전파 기간, 수렴 카나리아로 선정된 라우터를 식별합니다. 이후의 합류 또는 탈퇴는 새 epoch를 열며, 기존 영수증을 조용히 수정하지 않습니다.

링크 절은 의도를 분리합니다. 영향받는 간선마다 활성 의미론 아래 제외되는0xffff, 도달 가능하지만 억제되는0xfffe, TE 또는 Flex-Algorithm 사용 여부, 오토 코스트 상한을 기록합니다. 별도 증거 없이 링크를 물리적으로 내려간 것으로 표시하지 않습니다.

결과 절은 경로 재계산과 대표 라우터로부터의 경계화된 경로 또는 넥스트홉 비교를 기록합니다. 루프 카나리아는 의미론적 전환 동안 상호 넥스트홉, TTL 만료 신호, 급격한 트래픽 손실을 찾습니다. 포워딩 증명은 LSDB 합의와 구별됩니다.

마지막으로 영수증은 롤백 조건을 명시합니다. 비지원 라우터의 등장, 기능 증거의 소실 또는 시효 경과, 일관되지 않은 LSDB 뷰, 반복되는 기능 플래핑, 관찰된 루프. 누가 광고를 비활성화할 수 있는지, 폴백 동안0xffff링크가 어떻게 처리되는지, 에어리어를 언제 재평가할 수 있는지를 보존합니다.

전체 LSDB 덤프, 기기 자격 증명, 민감한 토폴로지 지도가 공개될 필요는 없습니다. 해시, 개수, 경계화된 식별자, 시간 창, 통제된 링크 참조가 공격 계획을 게시하지 않고 전환을 감사 가능하게 만들 수 있습니다.

의미론적 상태는 설계상 일시적이다

IANA 레지스트리는 기능 비트에 지속적인 식별자를 부여하고, IANA가 관리하는 YANG 모듈은 구현이 미래의 레지스트리 변경을 추적하게 합니다. 그러나 새 의미를 사용할 에어리어의 실제 권한은 의도적으로 취소 가능합니다.

그 취소 가능성은 강점입니다. 업그레이드된 라우터가 구형 이웃에게 새 의미론을 강제하는 것을 막습니다. 동시에 운영상 의무를 만듭니다. 시스템은 만장일치가 끝나는 시점을 알아채야 합니다.

따라서 모니터링은 명단 변경, 기능 LSA 신선도, 여러 지점에서 본 비지원 라우터 수, 재계산 이벤트, 플래핑 비율, 각 특수 메트릭의 링크, 오토 코스트 출력을 추적해야 합니다. 증거는 라우터 합류, 에어리어 병합, 소프트웨어 다운그레이드, 기능 철회, LSA 노화 이벤트 또는 정책 변경과 함께 만료됩니다.

RFC 10041의 더 깊은 교훈은 프로토콜 의미가 공유 상태가 될 수 있다는 것입니다. 하나의 광고 속 비트는 그 자체로 충분한 권한을 지니지 않습니다. 합의 속에서 관찰된 에어리어만이 OSPF의 최대 메트릭을 비싼 길에서 아예 없는 길로 바꿀 수 있습니다.

출처

  1. Lu Heng — Data Sovereignty: Technical vs Practical Realities
  2. Lu Heng — Why BTW Media Exists
  3. Lu Heng — Running-Code Primacy
  4. RFC 10041 — Advertising Unreachable Links in OSPF
  5. RFC 2328 — OSPF Version 2
  6. RFC 5340 — OSPF for IPv6
  7. RFC 5443 — LDP IGP Synchronization
  8. RFC 6987 — OSPF Stub Router Advertisement
  9. RFC 7770 — OSPF Router Information Advertisement
  10. RFC 8341 — Network Configuration Access Control Model
  11. RFC 8379 — OSPF Graceful Link Shutdown
  12. RFC 8405 — SPF Back-off Delay Algorithm
  13. RFC 8770 — OSPFv3 Stub Router Advertisement
  14. RFC 9129 — YANG Data Model for OSPF
  15. RFC 9350 — IGP Flexible Algorithm
  16. IANA — OSPF Parameters