요약

  • LACNIC이 7월 28일 게시한 글은 2025년 5월 20일에 관측된 잘못 형성된 BGP Prefix-SID 속성(코드 40)과 10초 만에 15만 건을 넘는 업데이트 피크에서 출발합니다.
  • 이 서사에 따르면 IOS-XR과 SR OS는 해당 속성을 삭제했고, Junos는 이를 전송했으며, EOS는 세션을 리셋했고, 여러 IXP의 라우트 서버가 이를 중계했습니다.
  • RFC 8669는 잘못 형성된 Prefix-SID의 삭제와 기록을 요구하지만, 운용 중인 장비의 버전, 오류 허용 설정, 상속된 정책을 증명하지는 않습니다.
  • 증명 행렬은 공통 이진 벡터를 정확한 버전, 실제 적용 구성, BGP 관계, 취한 조치, 재전송된 바이트의 지문, 그리고 경로에 미친 영향과 연결해야 합니다.

하나의 메시지에 세 가지 반응

7월 28일 LACNIC은 라우팅 보안의 사각지대를 다룬 종합 기사를 발표했습니다. 이 글은 주제를 프리픽스 하이재킹과 경로 누출로만 축소하지 않습니다. 첫 번째 사례는 구체적인 프로토콜 객체입니다. 2025년 5월 20일, 한 BGP UPDATE가 손상된 Prefix-SID 속성을 담고 있었습니다. 이 속성은 옵션이며 전이적이고, 코드는 40입니다.

보고된 경로는 이질적이었습니다. Cisco IOS-XR과 Nokia SR OS는 잘못 형성된 속성을 삭제한 것으로 알려졌습니다. Junos는 이를 필터링하지 않고 메시지를 전송한 것으로 나타났습니다. Arista 라우터 일부는 BGP 세션을 리셋하는 방식으로 반응했고, 여러 교환 지점에서 운용 중인 라우트 서버 역시 이를 중계한 것으로 보입니다. 이 글은 10초 만에 15만 건을 넘는 업데이트와 여러 대형 네트워크와 연관된 경로 변동을 언급하고, Arista가 EOS 4.28.11부터 동작을 변경했다고 밝힙니다.

이 연표는 나쁜 범주를 거부한다는 점에서 유용합니다. 이 메시지는 그 자체만으로 프리픽스 하이재킹도 경로 누출도 아니었습니다. 유효한 ROA는 속성의 내부 바이트를 정상으로 만들지 않습니다. RPKI와 수신자의 파서는 서로 다른 질문에 답합니다.

다만 제조사 이름이 운용 상태를 대신하면, 이 서사는 지나치게 쉽게 일반화됩니다. 제품 계열은 어떤 파서가 설치되어 있었는지, 어떤 패치가 활성화되어 있었는지, 이웃 그룹에서 어떤 UPDATE 처리 옵션이 왔는지 알려주지 않습니다. 경계가 클라이언트였는지, 트랜짓이었는지, 피어였는지, 내부 세션이었는지, 라우트 서버였는지도 알려주지 않습니다.

규범적 규칙은 장비 자산 목록이 아니다

RFC 8669는 Prefix-SID를 TLV 집합으로 기술하고 여러 구문 오류에 대해 명확한 조치를 요구합니다. 너무 짧은 속성, 불가능한 길이, 선언된 한도를 초과하는 TLV는 삭제되어야 하고, 오류는 기록되어야 합니다. 이 문서는 RFC 7606의Attribute discard조치를 참조합니다.

이 규정은 준수 여부를 검증할 수 있게 합니다. 그러나 배포된 모든 소프트웨어의 동작을 저절로 드러내지는 않습니다.

사건 다음 날 Ben Cox가 발표한 보고에는 결정적인 단서가 남아 있습니다. IOS-XR과 SR OS는 RFC 7606이 정의한 오류 허용으로 구성된 경우에만 해당 객체를 필터링한 것으로 나타났다는 것입니다. LACNIC의 표현은 더 직접적입니다. 두 플랫폼은 RFC가 요구하는 대로 동작했다고 합니다. 두 문장이 반드시 모순되는 것은 아니지만, 첫 문장은 운용자가 알아야 하는 변수를 하나 보존합니다.

이는 종합 기사가 부정확하다고 비난하려는 것이 아닙니다. 기사는 요약해야 하고, 학술 조사는 용어를 정규화해야 하며, 세계적 규모의 사건은 거의 완전한 실험 환경을 제공하지 않습니다. 필요한 것은 단서를 희석시키지 않고 열로 만드는 일뿐입니다.

같은 날의 NANOG 교환이 그 이유를 보여줍니다. 이 토론은 EOS의 동작을 버그 899981에 연결하고 4.28.11, 4.29.8, 4.30.6, 4.31.2 브랜치의 수정을 인용합니다. 참여자들은 이 버전들이 정확히 그 메시지에 대해 완전히 통제된 응답을 만들었는지도 문제 삼습니다. 이어진 JANOG 57의 Arista 발표는 IOS XR, SR OS, Junos, EOS 사이의 상호작용을 다룹니다. 일관된 자료이지만, 네 플랫폼에서 공개된 매개변수로 실행된 단일 재현 실험은 아직 아닙니다.

메시지 피크는 장애 수를 측정하지 않는다

15만이라는 수치는 제어 평면의 증폭을 묘사합니다. 정확하게 유지하려면 단위를 보존해야 합니다. 원본 그래프는 수집기가 관측해 10초 동안 평균한 메시지 비율을 보여줍니다. 이 수치는 15만 개의 고유 프리픽스, 세션, 라우터, 네트워크 또는 중단을 세지 않습니다.

인용된 이름들도 기술적 목록이 아닙니다. Starlink, Disney, Zscaler, ByteDance와 연관된 경로가 변동할 수 있었지만, 이를 통해 각 조직에 설치된 버전, 바이트를 전송한 이웃, 모든 사용자가 받은 영향을 추론할 수는 없습니다.

발신 AS의 의도는 알려져 있지 않습니다. 저자들 스스로 이 범주가 잘못 설정된 재배포, 두 번 실행된 스크립트, 소프트웨어 결함에서 생길 수 있음을 인정합니다. 위험 클래스에 이름을 붙인다고 해서 사건이 자발적 공격이 되는 것은 아닙니다.

준수 검증표 만들기

LACNIC은 이 증거를 개선하기 위해 라우터 감사자가 될 필요가 없습니다. 모든 시험에 동일하게 적용되는 정화된 테스트 벡터에 기반한 날짜가 표시된 행렬을 기사에 첨부할 수 있습니다.

각 행은 UPDATE의 불변 지문, 코드 40, 플래그, 선언된 길이, TLV 결함으로 시작합니다. 이어서 플랫폼, 정확한 버전, 패치 식별자, 템플릿·그룹·이웃 매개변수 상속 후 실제 적용된 구성을 명시합니다.

경계는 이름 붙여야 합니다. iBGP에서 허용 가능한 정책이 클라이언트, 트랜짓 제공자, 피어, 라우트 서버에게는 거부될 수 있습니다.route server라는 표기는 공통 소프트웨어도 공통 필터링도 증명하지 않습니다.

결과는 리셋, 주소 패밀리 비활성화, treat-as-withdraw, 속성 삭제, 수용, 기타 조치를 구분해야 합니다. 메시지가 다시 나온다면 정화된 사본의 지문으로 바이트가 변경되었는지 확인할 수 있습니다. 나오지 않는다면 비전파가 명시적으로 기록되어야 합니다. 마지막으로 검증표는 이 결정을 세션 상태 및 시험 중의 Adj-RIB-In, Loc-RIB, FIB 변동과 연결합니다.

공개 출판물에는 이웃 주소, 클라이언트 이름, 비밀, 전체 구성이 필요 없습니다. 원본 캡처는 보호된 채로 유지될 수 있습니다. 벡터, 방법, 수집 손실, 집계 결과, 수정 사항, 재시험 날짜는 공개할 수 있습니다.

이 규율은 역할 분담을 회복합니다. RFC는 조치를 정의합니다. 제조사는 코드를 작성하고 수정합니다. 운영자는 버전과 정책을 선택합니다. 라우트 서버 운영자는 무엇을 운반할지 결정합니다. LACNIC은 방법을 문서화하고 배포합니다. 지역 결정에 대한 권한을 얻지는 못합니다.

이 자료로 단정할 수 없는 것

출처는 LACNIC이 메시지를 발신했거나, 영향받은 장비를 운용했거나, 사건을 중단할 수 있었음을 보여주지 않습니다. 사용자 모집단, 동일한 지속 시간, 단일 세계적 장애를 측정하지 않습니다. 특정 브랜드의 영구 결함도 증명하지 않습니다.

이 사건은 RPKI를 반박하지 않습니다. 오리진 검증은 프리픽스–AS 쌍의 승인을 다룹니다. 옵션 전이 속성의 구문적 유효성은 별개의 통제 체계에 속합니다. 이 둘을 합치면 바로 이 사건이 드러내는 책임이 가려집니다.

따라서 가장 견고한 결론은 겸손한 것입니다. LACNIC은 구현 간 분기의 훌륭한 사례를 제공했습니다. 다음 소프트웨어 업데이트 이후에도 이 결론이 유효하려면, 이제 표가 세 동사 각각이 어떤 조건에서 관측되었는지 말해야 합니다.

출처