요약

  • RFC 2113은 모든 패킷에 동일한 분류 비용을 지우지 않으면서도 전달 경로상의 라우터에게 패킷을 더 면밀히 검토하도록 요청하는 4옥텟 IPv4 옵션을 정의했다.
  • RFC 6398은 나중에 이 특권이 개방된 인터넷 전역의 종단 간 의존성이 아니라 통제된 신뢰 경계 안에 속해야 하는 이유를 보여주었다.

패킷 안에 실려 온 주의 요청

보통의 포워딩은 라우터가 다음 홉을 고를 만큼의 헤더 상태만 읽으면 된다. RSVP와 IGMP는 다른 문제를 제기했다. 라우터를 향하지 않은 일부 패킷도 경로상의 라우터에게 상당한 작업을 요구했다. 모든 패킷을 깊이 검사하는 것은 고속 경로에 부담을 줬을 것이다. RFC 2113은 대신 이 예외를 눈에 보이게 만들었다.

Router Alert는 4옥텟이다. 타입 148은 복사되는 컨트롤 옵션 번호 20을 담고, 다음 옥텟은 길이가 4임을 알리며, 마지막 두 옥텟은 값을 담는다. 원래 값 0은 라우터가 패킷을 검토해야 함을 뜻했다. 1부터 65535까지의 값은 예약되었다.

이 지시문은 특정 애플리케이션을 지명하지 않는다. 이를 인식하는 라우터는 더 면밀히 살펴보고—가령 IP 프로토콜 필드를—추가 처리가 필요한지 판단한다. 호스트는 이 옵션을 무시한다. 인식하지 못하는 라우터도 무시하며, 인식하는 라우터는 알 수 없는 값을 조용히 무시한다. 이 표식은 분류를 요청할 뿐, 발신자를 인증하지도 않고 희소한 처리 능력을 요구할 자격을 증명하지도 않는다.

RFC 2113에는 이미 이 트레이드오프가 담겨 있었다. 의존하는 프로토콜은 옵션이 빠지면 오작동할 수 있다. 필요 없이 표식된 패킷은 고속 경로를 벗어나 더 느리게 이동할 수 있다. 이 설계는 예외적 작업으로 들어가는 명시적인 문을 만들어, 일반 트래픽을 전면 검사로부터 보호했다.

문은 공격 표면이 되었다

RFC 6398은 그 결과를 기록했다. 구현은 표식된 트래픽의 전부 또는 대부분을, 컨트롤 플레인 애플리케이션들이 공유하는 느린 경로로 넘길 수 있다. 원치 않는 Router Alert 패킷의 홍수는 그 용량을 소모시키고, 무관한 컨트롤 트래픽까지 드롭되게 만들 수 있다. 사전에 식별된 라우팅 피어와의 관계와 달리, Router Alert를 실은 IPv4 패킷은 임의의 출발지·목적지 주소로 도착할 수 있다.

분류 우선순위 판단은 어렵다. 다음 프로토콜 번호만으로는 같은 트랜스포트를 공유하는 애플리케이션들을 항상 구분할 수 없다. 2옥텟 Router Alert 값은 IANA 레지스트리를 갖게 되었지만 여전히 대략적인 구분만 제공하며, 구현들도 이를 일관되게 다루지 않았다. 따라서 이 옵션은 원하는 주의와 원치 않는 주의 사이의 보편적 경계를 제공하지 못한다.

이후의 지침은 Router Alert를 지우지 않았다. 대신 의존이 정당화될 수 있는 조건을 다른 곳으로 옮겼다. 애플리케이션은 개방된 인터넷에서 독립된 행정 도메인을 넘어 종단 간으로 이 옵션의 처리에 의존해서는 안 된다. 다만 하나의 통제된 도메인 안에서는 신뢰할 수 있는 발신원, 필터링, 레이트 리밋이 이 요청을 한정할 수 있다. 터널링은 표식된 패킷을 코어 라우터를 노출하지 않고 프로바이더 코어를 가로지를 수 있고, 수밀(water-tight) 및 누출 통제 오버레이는 주의가 허용되는 지점을 정확히 지정할 수 있다.

RFC 2711은 비교 경계를 제공할 뿐, IPv4 형식이 아니다. IPv6의 Router Alert는 자체 타입과 2옥텟 값 규칙을 갖는 Hop-by-Hop 옵션이다. 공유되는 교훈은 더 좁다. 라우터의 주의를 요청하는 패킷 실린 요청은, 네트워크가 누가 요청할 수 있는지와 그 비용이 어디에서 지불되는지를 통제할 때만 유용하다.

출처