Edgio의 새로운 ShakeAlert는 네트워크 이벤트에 대한 가시성을 향상시킵니다.
전 세계적으로 분산된 대규모 네트워크를 운영할 때 하드웨어 장애, 제공업체 중단 및 기타 동작 변경 사항이 정기적으로 발생합니다. 따라서 문제의 첫 징후가 나타날 때 경보를 발생시킬 수 있는 시스템은 작업자 또는 자동화된 시스템에 경보를 울리고 보다 빠른 시정 조치를 가능하게 합니다. 이를 위해 우리는 갑작스런 인터넷 변화를 알리기 위해 공개적으로 이용 가능한 외부 데이터를 기반으로 구축된 경고 시스템인 ShakeAlert를 개발했습니다.
ShakeAlert는 공용 수집기에서 관찰된 BGP(Border Gateway Protocol) 업데이트 스트림에서 CDN이 발생한 경로를 모니터링합니다. 업데이트 양이 급격히 증가하면 ShakeAlert는 Shake 라는 경보를 발생시켜 인터넷의 라우팅 동작이 변경될 수 있음을 알리고, 특히 외부 네트워크가 트래픽을 CDN으로 라우팅하는 방식을 알려줍니다. ShakeAlert는 이러한 업데이트의 내용을 사용하여 영향을 받을 가능성이 있는 PoP(Points-of-Presence), 공급자 및 접두사에 대한 추정치를 추가로 제공합니다.
이 시스템은 미국 지질조사국의 지진 조기 경보 시스템의 이름을 따서 명명되었다. 이 시스템은 더 빠른 움직임을 감지하지만 덜 파괴적인 P파를 감지하고 더 파괴적인 S파가 도착하기 전에 주민들에게 경고함으로써 작동합니다. 여기서는 BGP의 컨트롤 플레인 신호를 데이터 플레인 및 최종 사용자 트래픽의 변경과 관련된 조기 경고 신호로 간주합니다.
배경
인터넷에서 ASE(Autonomous Systems) 간의 라우팅을 용이하게 하기 위해 네트워크는 BGP를 통해 라우팅할 접두사를 전달합니다. 이러한 통신의 일환으로 접두사의 도달 가능성이 변경되면 네트워크는 영향을 받는 접두사와 해당 접두사에 도달하는 데 사용할 경로를 나타내는 알림이라는 일련의 알림을 보냅니다.
인터넷의 정규 운영에서, 이러한 메시지들의 수천은 그들의 라우팅 테이블을 갱신할 때 네트워크들 사이에서 교환된다. 이러한 경로들이 변경될 때마다, 예를 들어, 네트워크 장애, 네트워크 간의 새로운 연결, 또는 계획된 유지보수의 결과로서, 새로운 메시지 세트가 교환될 수 있다. 여기에는 오리진 네트워크에 의해 생성된 변경(예를 들어, 새로운 IP 블록 발표) 또는 오리진으로부터 다운스트림으로 발생하는 변경(예를 들어, 전송 제공자에서의 연결 변경)이 포함될 수 있습니다.
이러한 메시지는 필연적으로 인터넷의 현재 상태에 대한 많은 통찰력을 제공하여 네트워크 간 연결의 이득과 손실을 드러냅니다. 이 정보를 활용하기 위해 많은 조직1 은 많은 네트워크를 피어링하고 수집된 업데이트 메시지를 공개적으로 사용할 수 있도록 하는 경로 수집기라는 서비스를 실행합니다.
연결이 변경되면 업스트림 네트워크에서 BGP 업데이트를 전송하고, 결국 BGP Collector로 이동합니다.
이러한 행동에 대한 감각을 개발하기 위해 몇 가지 초기 관찰을 고려합니다. 우리는 소수의 다른 네트워크에 대한 결과 업데이트 피드를 고려합니다. 두 개의 대규모 CDN 네트워크(CDN A, CDN B), 한 개의 콘텐츠 네트워크(콘텐츠), 두 개의 대규모 ISP(ISP A, ISP B) 및 한 개의 DNS 루트 레터를 고려합니다. 각 유형의 네트워크는 서로 다른 용도로 설계되며 잠재적으로 서로 다른 피어링 정책을 특징으로 합니다. 각 네트워크에 대해 업데이트를 1분 버킷으로 그룹화하고 2021년 1월 한 시간 동안 각 버킷의 메시지 수를 고려합니다.
위 그림은 해당 기간 동안 각 업데이트 빈의 크기를 플롯합니다. 여기서는 대규모 배포를 특징으로 하는 CDN과 많은 피어 및 제공업체가 거의 전체 기간에 걸쳐 가장 많은 업데이트를 생성하는 CDN을 볼 수 있으며, 콘텐츠 네트워크는 상대적으로 뒤쳐져 있습니다. ISP와 루트 문자는 훨씬 적은 업데이트를 생성합니다. 이러한 극적인 규모 차이는 네트워크의 구조, 피어 및 아키텍처가 해당 메시지 볼륨에 상당한 영향을 미칠 가능성이 있음을 나타냅니다. 따라서 다음 섹션에서 논의할 때 시스템이 매개변수 변경에 유연하게 대응할 수 있도록 해야 합니다.
떨림 경보 시스템은
ShakeAlert는 RIPE NCC의 RIS(Routing Information System) 프로젝트2의 일부인 21개의 경로 수집가로부터 라이브 피드를 수신합니다. 데이터는 이러한 피드에서 수신되며 분 단위의 휴지통으로 그룹화됩니다. 그런 다음 각 bin의 업데이트 수를 계산하고 이상값 탐지 알고리즘을 사용하여 bin이 다른 최근 몇 분과 비교하여 비정상적으로 많은 업데이트가 있는지 확인합니다. 이러한 bin이 관찰되는 경우 Shake 를 생성합니다.
이를 위해 ShakeAlert는 마지막 w bin에 표시된 업데이트 수를 슬라이딩 윈도우로 유지하여 이전 w bin보다 많은 업데이트에 대한 정보를 저장하지 않도록 합니다. ShakeAlert가 w bin의 기록을 작성하고 w+1번째 bin이 완성되면, 이전 창의 bin과 비교하여 이 새 bin bw+1의 수를 고려합니다. 일부 잠재적 이상 검출 메커니즘이 사용될 수 있지만(예: 수정된 z 점수 및 표준 편차 추정치, 정적 임계값 및 다양한 변화 검출 기술), 밀도 기반 검출 메커니즘34를 채택합니다.
밀도 기반 이상 탐지를 수행하기 위해, 반경 R 과 이웃 카운트 k를 고려한다. 우리는 우리의 새로운 시간 빈 bw + 1은 새로운 빈의 카운트를 중심으로 반경 R 내의 카운트를 가진 마지막 w 분 동안 k 개 미만의 다른 빈이 있다면 이상값이라고 말합니다. 공식적으로, 어떤 이상값이라도 마지막 w 분 동안 k bins bi 보다 적게 가지므로 |bw+1| – |bi| <R. 우리는 흔들림 경고 또는 단순히 흔들림과 크기로 이러한 흔들림의 업데이트 카운트와 같은 이상치를 참조합니다.
ShakeAlert의 전반적인 감지 프로세스
우리의 가설의 기초는 크고 파괴적인 인터넷 라우팅 변화가 이러한 이벤트 중 가장 큰 이벤트를 발생시킨다는 것입니다. 즉, 상당한 트래픽을 전달하는 라우트는 많은 다운스트림 네트워크와 컬렉터에서 수신될 가능성이 높습니다. 그러나 근본적으로 많은 변경 사항에는 이 범주에 속하지 않는 많은 업데이트 횟수가 포함됩니다. 예를 들어, Anycast 공지를 철회하는 정기 유지 보수.
저장함에 있는 업데이트의 내용은 네트워크 이벤트의 성격에 대한 세부 사항을 드러내기 위해 추가로 관찰될 수 있습니다. 업데이트의 접두사를 사용하여 해당 네트워크 변경에 의해 잠재적으로 영향을 받는 POP 및 Anycast 영역을 확인할 수 있습니다. 업데이트에서 관찰된 경로를 더 자세히 조사하고 영향을 받을 가능성이 가장 높은 업스트림 네트워크를 추정할 수 있습니다. 마지막으로, 인바운드 CDN 트래픽에 대한 알림의 중요도를 기준으로 알림의 중요도를 결정할 수 있습니다.
CDN 배포에서는 360분, k/5의 창을 사용하므로 일반적으로 관찰되는 시간별 행동에 대한 경고를 피할 수 있습니다. 우리는 또한 R을 창에서 관찰 된 빈 크기의 5 백분위수와 95 백분위수 사이의 거리로 간주합니다. 운영 컨텍스트를 늘리기 위해 업데이트에서 관찰된 접두사와 경로를 기반으로 빈을 팝별 시계열로 세분화하여 각각에 대해 개별적으로 경고합니다. 마지막으로, 네트워크 관측에 따라 최소 경고 크기를 설정하는 등 몇 가지 특정 튜닝을 고려합니다.
ShakeAlert의 작동 방식
다음으로, 우리는 흔들림이 야생에서 어떻게 나타나는지를 보여주는 간단한 예를 고려합니다. 2022년 9월의 위의 예에서 우리는 특정 CDN POP에 초점을 맞추고 y축과 선형 스케일을 따라 이전 수치보다 훨씬 작은 업데이트 수를 주목합니다. 이 기간 동안 업데이트 카운트는 갑자기 증가할 때까지 거의 완전히 0이 되어 12:14에 훨씬 더 큰 업데이트 카운트가 생성되고 12:20에 두 번째 스파이크가 생성되며 두 번째 스파이크는 모두 쉐이크를 생성했습니다. 이러한 업데이트는 공급자에 대한 연결이 예상치 않게 중단되어 발생합니다.
평가
쉐이크가 흥미로운 사건을 나타내는지 여부를 측정하기 위해 다음과 같은 분석을 고려합니다. 2022년 여름에 30일 동안 생성된 각 쉐이크에 대해 해당 사이트의 내부 메트릭을 검토하여 쉐이크 발생 후 10분 이내에 변칙적인 동작을 관찰했는지 확인합니다. 당사의 이상 징후의 경우, 라우터 재설정(예: 라우터가 다시 시작되었거나 오프라인으로 전환됨), 제공업체 링크의 BGP 상태 변경(예: 제공업체 BGP 세션이 설정된 상태로 종료됨), 사이트에서 발표된 공지 사항의 변경, 해당 사이트와 최소 5개의 다른 사이트 간에 감지된 패킷 손실 등을 고려합니다.
위의 그림은 30일 동안의 이러한 이벤트의 분석을 보여줍니다. 여기서 우리는 모든 버킷이 적어도 60 %의 쉐이크에 해당하는 이벤트를 가지고 있으며 평균적으로 쉐이크의 80 %가 일치하는 이벤트를 가지고 있음을 알 수 있습니다. 이러한 발견은 가장 큰 흔들림이 중요하고 종종 트래픽에 영향을 미치는 이벤트와 일치한다는 것을 확인합니다. 그러나 일상적인 유지 관리에서 심각한 고장에 이르기까지 이러한 흔들림을 일으킬 수있는 사건의 폭을 더욱 강조합니다.
결론
ShakeAlert는 이미 풍부한 CDN 모니터링에 대한 새로운 시각을 제공합니다. 외부 소스에서 데이터를 가져와 인터넷의 동작에 대한 근본적으로 다른 통찰력을 제공한다는 것을 우리는 알고 있습니다. 시스템에 대한 지속적인 작업에서 우리는 경보의 정확성을 개선하고 자동화된 시정 조치를 활성화하기 위해 데이터를 내부 모니터링과 추가로 결합하는 방법을 모색하고 있습니다.
연구팀, 네트워킹 신뢰성 엔지니어링 팀, 그리고 이 작업을 가능하게 해 준 모든 내부 엔지니어링 팀에 특별한 감사를 드립니다. 또한 Emile Aben, Stephen Strowes, Mingwei Zhang 등 라우팅 데이터에 대한 많은 외부 전문가에게 감사하며, 이 전문가들은 유용한 피드백과 토론을 제공했습니다.
2 시스템은 기본적으로 모든 수집기를 사용할 수 있습니다. 여기서는 WebSocket 인터페이스의 유연성 때문에 RIS에 초점을 맞춥니다.
3 M. 굽타, J. Gao, C. Aggarwal, 그리고 J. Han. 시간 데이터에 대한 이상값 탐지: 조사. 지식 및 데이터 엔지니어링에 대한 IEEE 트랜잭션, 2014.
4 T. Kitabatake, R. Fontugne 및 H. Esaki. BLT: BGP 업데이트 메시지를 마이닝하기 위한 분류 및 분류 도구입니다. 진행 중 INFOCOM ’18, 2018.