요약

  • RFC 2386은 자원 가용성과 플로우 요구사항을 이용해 유망한 경로를 찾았지만, 라우팅이 그가 서술한 자원을 실제로 예약하지는 않는다고 명시했다.
  • 이 문서의 실용적 아키텍처는 빠르고 상세한 결정을 도메인 내부에 두고, 도메인 간에는 비교적 안정적인 정보만 교환하도록 했다. 플로우가 설정될 때 각 노드는 여전히 허가 권한을 보유했다.

종이 위에만 존재했던 경로

1990년대 후반의 베스트에포트 라우팅은 의도적으로 좁은 질문에 답했다. 목적지가 어디 있으며, 이용 가능한 경로 중 어느 것이 선호 비용을 갖는가? RFC 2386은 네트워크가 서비스 요구사항에 따라 플로우를 라우팅하려 한다면 어떤 일이 벌어질지 물었다. 경로는 충분한 잔여 대역폭, 감내 가능한 지연, 제한된 지터, 혹은 이들의 조합을 필요로 할 수 있었다. 최단 경로는 쓸모없을 수 있고, 더 긴 경로가 요청을 수용할 수 있었다.

이 변화는 라우팅을 일종의 약속으로 만드는 것처럼 보인다. 라우터가 용량이 어디 있는지 안다면, 단순히 그것을 선택하면 되지 않는가? 프레임워크의 답은 더 절제되어 있었다. QoS 기반 라우팅은 자원 가용성에 관한 지식을 이용해 요청된 서비스를 수용할가능성이 높은경로를 결정한다. 그것은 대역폭을 예약하지 않고, 큐잉 자원을 만들지 않으며, 모든 노드에 플로우 수용을 강요하지 않는다. 자원 예약은 전혀 다른 일을 한다. RSVP는 경로를 따라 자원을 요청할 수 있었지만, 그것 자체로는 충분한 자원을 가진 경로를 발견하지 못했다.

이 구분은 증거의 사다리를 만들었다. 링크는 속성을 측정한다. 라우팅 시스템은 그것을 인코딩하고 광고한다. 다른 노드들은 이미 지연되었거나, 양자화되었거나, 집계되었을 수 있는 뷰를 받는다. 계산이 후보 경로를 지명한다. 설정 중에 각 노드는 실제 로컬 자원을 기준으로 플로우 허가 제어를 수행한다. 상위 정책은 모든 로컬 검사가 용량이 있다고 말하더라도 요청을 거부할 수 있다. 할당과 일관된 포워딩, 그리고 관찰이 이루어진 후에야 누군가 패킷이 실제로 어떤 서비스를 받았는지 말할 수 있다.

지도는 중요했다. 그러나 그것은 영수증이 아니었다.

소모성 지표는 사용될 때 지도를 바꾼다

일반적인 도달 가능성은 비교적 내구적이다. 가용 대역폭은 소모성이다. 어떤 경로가 과소 사용된 것처럼 보여 트래픽을 끌어당기면, 광고된 상태는 더 이상 참이 아닐 수 있다. 라우터들이 새로 "더 나은" 경로를 즉시 쫓으면 트래픽이 다시 흔들릴 수 있다. RFC 2386은 잦은 업데이트와 기회주의적 전환이, 기존 경로가 여전히 플로우 요구사항을 충족하더라도 경로 진동, 지연 변동, 지터를 유발할 수 있다고 경고했다.

이는 신선도를 제어 문제로 만들었다. 업데이트를 빠르게 보내면 네트워크가 잡음에 반응하면서 대역폭과 라우터 CPU를 소모한다. 늦추면 경로 계산이 낡은 정보를 사용한다. 값을 굵게 양자화하면 업데이트가 저렴해지지만 허가에 중요한 구분이 사라진다. 측정을 평활화하면 짧은 과부하가 숨겨질 수 있다. 반대로 모든 변화를 보고하면 제어 평면이 자신이 측정하는 움직임을 증폭할 수 있다.

그래서 이 문서는 업데이트 트리거를 행정적 세부사항이 아니라 경로 안정성의 일부로 다뤘다. 또한 경로 고정(route pinning)을 정의했다. 다른 경로가 미미하게 더 좋아 보일 때마다 플로우를 옮기는 대신 일정 기간 하나의 경로에 유지하는 것이다. 고정이 경로를 영속적으로 만든 것은 아니다. 고정은 수용된 플로우의 연속성을 주변 지도의 끊임없는 수정과 분리했다.

정밀함에는 저장 비용이 따랐다

결정은 목적지별, 출발지-목적지 쌍별, 또는 플로우별로 이루어질 수 있다. 더 세밀한 입도로 갈수록 하나의 요청을 하나의 경로에 맞출 확률은 높아진다. 동시에 라우팅 상태도 커진다.

목적지만 기준으로 하는 라우팅은 모든 출발지의 트래픽을 동일한 선택을 따라 같은 목적지로 보낸다. 출발지-목적지 라우팅은 트래픽의 출처를 구분할 수 있었지만 여전히 상이한 플로우들을 묶었다. 플로우별 라우팅은 가장 정밀한 적합성을 제공했지만 상태 비용도 가장 컸다. 더 나쁜 것은, 상태 상실이 정확성 위험을 만들었다는 점이다. 어떤 라우터가 플로우별 경로를 잊고 일반 목적지 포워딩으로 되돌아가는 동안 앞선 라우터가 여전히 특수 경로를 사용한다면, 패킷이 서로 불일치하는 두 현실 사이에서 루프를 돌 수 있었다.

따라서 더 많은 상태는 단순히 더 많은 지식이 아니었다. 그것은 유지할 더 많은 메모리, 상실할 더 많은 동기화, 진단할 더 많은 장애 양상이었다. 운영적 질문은 네트워크가 상세한 경로를 계산할 수 있는가가 아니라, 그 상세에 의존하는 모든 포워딩 결정이 경로의 수명 동안 일관성을 유지할 수 있는가였다.

집계는 불확실성과 함께 규모를 샀다

계층적 집계는 익숙한 해법을 제안했다. 도메인은 많은 링크와 내부 경로를 더 작은 표현으로 요약할 수 있었다. 그 덕분에 거대한 네트워크가 계산 가능해지고 운영자는 내부 토폴로지를 숨길 수 있었다. 그러나 동시에 정보를 지웠다.

RFC 2386은 그 결과를 담백하게 서술했다. 계산이 집계된 상태로 플로우를 수용한 뒤, 실제 그 beneath에 요청된 서비스를 지원하는 경로가 존재하지 않음을 발견할 수 있다는 것이다. 요약이 사기적이지는 않았다. 그것은 자신이 신뢰할 수 있게 답할 수 있는 것보다 더 정밀한 결정을 지원하라는 요구를 받는 손실성 있는 투영이었다.

크랭크백(crankback)은 하나의 대응이었다. 노드에서 설정이 실패하면 부분 설정이 다른 경로를 선택할 수 있는 더 이른 지점까지 물러날 수 있었다. 이는 잘못된 예측을 유한한 탐색으로 바꾼다. 그러나 크랭크백은 설정 시간을 소모하고, 일부 트래픽 조건에서는 성능을 악화시킬 수 있었다. 그것은 허가 제어를 대체하는 것이 아니라 그 곁에 있어야 했다.

순서가 중요하다. 집계 상태가 탐색 범위를 좁힌다. 후보 경로가 설정을 시작한다. 로컬 노드가 현재의 자원과 마주한다. 실패는 거부 또는 대안에 대한 통제된 시도로 이어진다. 첫 단계를 "보증"이라고 부르면 아키텍처가 필요로 하는 그 회복 경로 자체를 없애는 일이 된다.

자율 시스템 사이의 최소 공통 계층

이 RFC의 가장 영향력 있는 선택은 행정 경계에 관한 것이었다. 자율 시스템(AS) 내부에서는 실험을 장려했다. 링크 상태 방식, 프로브, 정적 프로비저닝, 온디맨드 계산 등 여러 설계가 경쟁할 수 있었다. 시스템 사이에서는 상호작용이 단순하고, 일관되며, 안정적이기를 바랐다.

이것은 완벽한 프로토콜이 도래하기 전의 잠정적 타협일 뿐만 아니었다. 고도로 동적인 도메인간 상태는 확장성이 나쁘고, 운영자가 공개하기를 원하지 않는 정보를 노출하며, 먼 라우터들에게 검증할 수 없는 조건의 손실성 뷰를 제공할 것이다. 프레임워크는 대신 설계된 토폴로지와 용량에 기반한 비교적 소박한 정보를 선호했다. 도메인간 지표는 장애나 국소 과부하 같은 예외적 조건에 따라 바뀌어야지, 설계 한계 내에 도달하는 개별 플로우마다 바뀌어서는 안 되었다.

이렇게 두 개의 서로 다른 시계가 생겼다. 도메인은 짧은 시계로 상세한 로컬 조건에 반응할 수 있다. 이웃들은 설계된 능력, 도달 가능성, 정책에 대한 더 느린 진술을 받는다. 공통 계층은 모든 내부 사실을 재현하려 하지 않으면서 기대를 조율했다.

이 구분은 결정권도 보존했다. 원격 광고는 어떤 도메인이 명시된 전제 하에 무엇을 지원할 준비가 되어 있는지 말할 수 있다. 진입 경계는 여전히 집계 수요를 추적하고 허가 제어를 적용했다. 도메인은 과잉 트래픽을 거부하거나, 베스트에포트로 처리하거나, 다른 정책을 발동할 수 있었다. 광고는 도메인 바깥의 경로 계산기에 로컬 자원의 소유권을 이전하지 않았다.

비용은 빠진 영수증을 드러냈다

RFC 2386은 금전적 비용을 하나의 가능한 라우팅 정책으로 고려했다. 공급자는 서로 다른 요구사항을 가진 플로우를 운반하는 예상 비용을 공표할 수 있고, 경로는 여러 도메인에 걸쳐 비용을 결합할 수 있었다. 여기서 불편한 질문이 제기된다. 약속된 QoS가 실제로 전달되지 않았다면 무엇을 청구해야 하는가?

이 질문이 중요한 이유는 제어 평면이 증명할 수 없는 것이 무엇인지 드러내기 때문이다. 경로 광고는 능력을 보고했다. 예약은 할당을 보고했다. 어느 쪽도 모든 도메인에 걸친 종단 간 전달을 필연적으로 측정하지는 않았다. 지연, 지터, 손실, 처리량은 여전히 관찰이 필요했다. 그 영수증 없이, 약속에 붙은 가격은 성능의 증거보다 더 먼 곳까지 여행할 수 있었다.

보안 절은 같은 요점을 반대 방향에서 짚었다. QoS 요청은 검증되어야 했고, 자의적인 요청은 자원 고갈 공격이 될 수 있었다. 요청자가 선언한 필요는 스스로를 승인하지 않는다. 정책, 폴리싱, 과금이 그것을 제한할 수 있었지만, 이 문서는 형식적 보호가 여전히 남은 과제라고 인정했다.

이후의 메커니즘들이 명확히 한 것

이 프레임워크는 여러 문서의 가운데에 있었다. RFC 2205는 RSVP의 수신자 개시 예약 설정을 정의했다. RFC 2210, 2211, 2212는 통합 서비스(Integrated Services)와 제어부하 서비스 또는 보증 서비스가 그 시그널링과 어떻게 연관되는지 서술했다. 1999년 RFC 2676은 QoS 라우팅 메커니즘과 OSPF 확장을 문서화했다. RFC 3272는 나중에 라우팅을 측정, 모델링, 제어, 평가의 더 넓은 트래픽 엔지니어링 주기 안에 배치했다. RFC 3630은 트래픽 엔지니어링 링크 속성을 배포하기 위한 OSPF 확장을 정의했다.

이후의 문서들을 RFC 2386의 프레임워크가 보편적으로 배치되었다는 역방향 증거로 읽어서는 안 된다. 그들은 이 문서의 구분이 지속되었음을 보여준다. 속성은 광고되어 경로 계산에 의해 소비될 수 있다. 시그널링 프로토콜은 자원을 요청할 수 있다. 운영자는 용량을 엔지니어링할 수 있다. 측정은 결과를 검증할 수 있다. 이 기능들을 결합하는 것이 유용한 이유는 바로 어느 하나도 다른 것의 정직한 대체물이 아니기 때문이다.

RFC 2386은 적응형 라우팅을 두 가지 근본 행위로 서술했다. 상태를 수집하는 것과 그것으로부터 경로를 계산하는 것이다. 그 지속되는 교훈은 이 행위들을 둘러싼 경계들의 집합이다. 상태는 시계 아래에서 관찰된다. 광고는 범위와 정책에 의해 변형된다. 계산은 후보를 산출한다. 허가는 로컬 현실에 자문한다. 예약은 자원 상태를 바꾼다. 포워딩과 측정은 결과를 드러낸다.

경로는 여전히, 지도가 권한을 갖지 못한 모든 계층에서 허가를 필요로 했다.

출처