Summary

  • Craig Johnson의 NANOG 98 사례에서 BGP 출력 규칙의 le 32를 지우자 세션은 유지됐지만 서비스가 광고하던 두 /25는 더 이상 규칙에 맞지 않았다.
  • 에뮬레이터는 구성한 실험망에서 실제 네트워크 운영체제의 철회를 관찰했고, 행동 모델은 수집된 운영망 상태에서 영향을 받는 경로를 계산했다.

BGP 화면의 초록불은 꺼지지 않았다. Craig Johnson가 제시한 예에서 permit 10.20.30.0/24 le 32는 끝의 조건만 빠진 규칙으로 바뀌었다. 서비스는 두 개의 /25를 광고한다. 변경 후 어느 쪽도 규칙을 통과하지 못했다. 예시의 고객 VRF에는 대신 쓸 /24나 기본 경로가 없고, 실험실의 HTTPS 확인은 시간 초과로 끝났다. 이웃 관계의 정상 상태가 서비스의 정상 상태를 증명하지 못했다.

Johnson는 10월 19일 마이애미 NANOG 98에서 이 실험을 소개했다. 그가 만든 내부 플랫폼 Skyforge는 YAML로 선언한 토폴로지에서 버릴 수 있는 실험망을 만든다. netlab이 장비 설정을 준비하고 KNE와 meshnet이 실제 네트워크 운영체제 인스턴스를 띄운다. 명령이 받아들여지는지, 경로가 철회되는지, BGP가 어떻게 반응하는지를 소프트웨어 실행으로 확인할 수 있다. 이 경우 BGP는 연결된 채 /25 두 개가 빠졌다.

실험망은 누군가 넣어 준 세계만 안다. 외부 피어, 학습한 경로, 현재 장애, 돌아오는 경로가 빠져 있으면 실제 망의 결과를 대신할 수 없다. Johnson는 별도로 운영망에서 수집한 설정과 상태를 바탕으로 경로를 계산하는 행동 디지털 트윈을 보여 준다. 같은 사례에서 모델은 사라진 경로와 56개의 출발지·목적지 쌍 중 8개의 변화를 찾았다. 모델은 넓은 범위를 계산하지만 운영체제의 실제 전환이나 애플리케이션 응답을 실행하지는 않는다.

두 결과는 이 변경에 관해 일치했다. 그 일치는 범위를 적어 둬야 쓸모가 있다. 실험은 소프트웨어의 철회를 보여 주고, 모델은 수집된 관계에서의 영향을 보여 준다. 발표 자료의 규모 측정도 한계를 드러낸다. cEOS 100대가 374초에 준비됐고, 250대를 노린 시도는 메모리 부족으로 220대에서 멈췄다. 수정 뒤에는 500대 모두 925초에 준비됐다. Johnson의 플랫폼에서 측정한 값이다. 실험실을 무한히 키우는 대신 어떤 질문을 어떤 증거로 답할지 정해야 한다.

그가 설명한 변경 절차는 git에 수정 내용을 기록하고, 자동 되돌리기를 준비한 채 실험 장비에 적용한 뒤 새 스냅샷으로 검사한다. 슬라이드는 이 절차가 실험 장비에서 실행됐다고 명시한다. 실제 운영 변경을 승인하려면 실험 토폴로지에 서비스 의존성이 들어 있는지, 모델이 충분히 최근의 상태를 수집했는지 확인해야 한다.

출처: NANOG 98 세션 · Johnson의 원본 발표 자료.