요약

  • RFC 2439는 불안정성을 로컬 상태 변수로 다뤘다. 철회가 경로의 merit 지수를 올리고, 지수 감쇠가 그 값을 낮추며, 별도의 차단 임계값과 재사용 임계값이 경로가 사용 불가 상태가 되었다가 다시 사용 가능해지는 시점을 결정했다.
  • 이후의 경험은 이 기억이 평범한 수렴 과정에서 잘 연결된 프리픽스에 불이익을 줄 수 있음을 보여주었다. RFC 7196은 댐핑을 폐지하지 않았다. 더 보수적인 임계값과, 필요하면 계산만 하고 실제로 차단하지 않는 선택적 모드를 권고했다.

경로의 과거가 경로의 현재 일부가 되다

1990년대의 BGP 업데이트는 어떤 목적지에 도달할 수 있는지에 대한 서술일 뿐 아니라, 수신 라우터와 그 발표를 전달받는 피어들의 라우터에서 프로세서 시간도 소모했다. RFC 2439는 비교적 안정적인 경로의 수렴을 늦추지 않으면서 반복되는 라우팅 변경을 줄이는 방법을 제시했다. 이것은 Standards Track 제안이었고, 저자들은 1998년까지 상용 구현과 배포가 이미 존재했다고 보고했다. 이 당시의 기록은 그 시기에 대한 증거일 뿐, 현재의 구성에 대한 주장이 아니다.RFC 2439RFC 2439 기록

핵심은 최신 UPDATE 이상을 기억하는 것이었다. 외부 BGP 경로를 수신하는 라우터는 경로 식별자별로 merit 지수를 유지할 수 있었다. 도달 가능에서 도달 불가능으로 전환할 때마다 페널티가 더해지고, 경로가 안정적으로 유지되면 지수 감쇠가 누적된 값을 줄였다. 이 점수는 케이블이 끊겼거나 피어가 불성실하다는 진단이 아니었다. 그것은 라우터가 최근에 관찰한 경로 변경을 나타내며, 그 라우터가 해당 경로를 사용하고 광고할지 여부에 영향을 미쳤다.RFC 2439

이 구분은 도달 가능성이 복구되는 시점과 사용 가능성이 복구되는 시점 사이에 시차를 만들었다. 컷오프, 즉 차단 임계값은 경로가 보류될 시점을 결정했다. 더 낮은 재사용 임계값은 보류된 경로가 다시 사용될 수 있는 시점을 결정했다. 최대 보류 시간은 차단 기간의 상한을 뒀다. 도달 가능성, 누적 페널티, 차단 상태, 최적 경로 선택은 서로 연관되어 있지만, 어느 하나도 같은 사실이 아니었다. 수신 라우터가 여전히 차단 상태로 취급하는 동안에도 피어가 그 경로를 다시 광고할 수 있었다.RFC 2439

기억은 일반적인 지연 타이머가 아니었다

RFC 2439는 경로 광고를 제한하는 두 가지 방식을 논의했다. 고정 타이머, 즉 나중에 최소 경로 광고 간격(Minimum Route Advertisement Interval)으로 알려진 방식은 업데이트의 속도를 조절했다. 이에 반해 안정성 민감 방식은 경로의 변경 이력에 의존했다. 점수가 컷오프 이하로 유지되면 광고를 사용할 수 있었고, 한 번 차단되면 감쇠된 값이 재사용 임계값을 넘을 때까지 계속 사용할 수 없었다. 이로써 댐핑은 모든 경로 변경 후 동일한 대기 기간을 두는 것이 아니라, 이전의 불안정성에 따라 조건화되었다.RFC 2439BGP-4

매개변수는 서로 다른 효과를 갖는 정책 선택이었다. 반감기는 경로가 도달 가능한 동안 점수가 얼마나 빨리 떨어지는지를 정했고, 구현은 도달 불가능한 동안 다른 감쇠율이나 감쇠 없음을 사용할 수 있었다. 더 높은 컷오프는 차단 전에 더 많은 변경을 용인했다. 더 낮은 재사용 임계값은 복구 전에 더 많은 안정성을 요구했다. RFC 2439의 예시 설정은 이 값들을 하나의 보편적인 타이머로 환원할 수 없는 이유를 보여준다. 한 예에서 경로는 두세 번의 철회 후 차단될 수 있었고, 재사용 전에 약 1.5~2.5 반감기에 해당하는 안정적인 광고가 필요했다. 이는 명시된 가정 하의 모델이며, 모든 라우터에 대한 약속이 아니다.RFC 2439

이 설계는 댐핑이 어디서 작동해야 하는지에도 경계를 뒀다. RFC 2439는 외부 피어로부터 수신한 업데이트에 적용하도록 명시하며, iBGP를 통해 학습하거나 광고되는 경로에 댐핑을 적용하면 라우팅 루프가 발생할 수 있음을 경고했다. 또한 경로 식별자에 NLRI를 포함하고, 기본값으로 AS 경로도 포함하도록 제안했다. 목적지 프리픽스에만 붙는 페널티는 그 목적지에 이르는 특정 경로에 붙는 페널티와 다른 이야기를 할 수 있다.RFC 2439

구현 세부사항이 누가 부담을 지는지 바꾸다

RFC 4277의 2006년 운영 검토는 조사한 당시의 구현들이 RFC 2439의 요구와 달리 고유한 NLRI 또는 AS 경로별로 경로 이력을 유지하지 않았다고 보고했다. 밀집 메시 네트워크에서는 이것이 목적지를 지나치게 공격적으로 차단할 수 있으며, 최악의 경우 한 번의 장애만으로도 그렇게 될 수 있다고 했다. 이런 부정적 영향이 실제로 관찰되었다고도 보고했다. 이는 범위가 한정된 구현 보고서이지, 모든 라우터가 이렇게 동작했다는 증명이 아니다. 이 검토는 별도로 지속적인 오류에 대한 피어 세션 댐핑을 논의했는데, 이는 경로별 플랩 댐핑과 같은 것이 아니다.RFC 4277RFC 2439

2014년에 RFC 7196은 또 다른 비용을 서술했다. 토폴로지가 풍부하면 정상적인 수렴 동안 더 많은 UPDATE 메시지가 생기므로, 잘 연결된 사이트는 바로 여러 경로와 피어를 갖고 있다는 이유로 불이익을 받을 수 있다. 그 문서가 인용한 측정은 더 높은 차단 임계값에서 차단된 프리픽스가 줄어들면서도 업데이트율 감소 효과를 어느 정도 유지함을 발견했다. 해당 1주간 연구에서는 차단을 하지 않는 경우 대비 임계값 6,000에서 업데이트율이 19% 감소했고, 2,000 대비 차단된 프리픽스가 90% 적었다고 보고했다. 임계값 12,000에서는 프리픽스의 0.22%만 차단되고 시간당 평균 11%의 감소가 나타났다고 했다. 이는 인용된 1주간 연구의 결과이며, 보편적 예측이 아니다.RFC 7196

RFC 7196은 덜 파괴적이면서도 어느 정도 공격적인 댐핑을 원하는 운영자에게는 최소 6,000, 보수적인 운영자에게는 12,000의 임계값을 권고했다. 동시에, 기존의 운영 구성을 깨뜨리지 않도록 구현은 기존의 설정 가능한 기본값을 바꾸면 안 된다고 했다. 또한 차단은 실제로 하지 않으면서 어떤 경로가 차단될지 계산하는 테스트 모드를 허용했다. 2014년의 대답은 보정과 관측 가능성이었지, 댐핑이 항상 해롭거나 하나의 설정이 모든 토폴로지에 맞는다는 주장이 아니었다.RFC 7196

따라서 이 역사적 변화는 단순히 "댐핑 켜기, 그다음 댐핑 끄기"가 아니다. RFC 2439는 경로의 과거가 즉각적인 재사용에 불리하게 작용하게 만들어 혼란을 억제하려 했다. RFC 4277은 경로 식별과 구현이 그 페널티를 넓힐 수 있음을 보여주었다. RFC 7196은 정상적인 수렴과 잘 연결된 상태를, 차단하기 전에 측정되어야 할 비용으로 다뤘다. 이 메커니즘은 반복되는 업데이트를 줄일 수 있었지만, 회복된 경로의 사용을 늦출 수도 있었다. 이 RFC들 중 어느 것도 댐핑 점수를 끊긴 링크, 나쁜 출처, 또는 보편적 서비스 중단의 증거로 만들지 않는다.RFC 2439RFC 4277RFC 7196확장 가능한 라우팅 설계 원칙RFC 2439 Datatracker 기록

출처