요약

  • IPv4 옵션 7은 4옥텟짜리 슬롯을 유한하게 예약해 두었고, 협조하는 포워딩 시스템은 패킷의 경로를 결정하지 않고도 이 슬롯에 자신의 주소를 기록할 수 있었습니다.
  • 라우터 요구 사항은 한때 이 옵션을 처리하는 것을 기본 동작으로 만들었지만, 기록 용량의 한계, 인증의 부재, 토폴로지 노출 우려는 이후 기본적으로 폐기하는 정책을 뒷받침했습니다.

한 번에 4바이트씩

Record Route는 소박한 지시에서 시작했습니다. 옵션 타입은 7이고, 그 뒤에 길이, 포인터, 경로 데이터 영역이 따라왔습니다. 송신자는 전송 전에 영역 전체를 할당하고 0으로 채웠습니다. 포인터의 최소 유효 값은 4였으며, 32비트 인터넷 주소가 들어갈 다음 위치를 가리켰습니다.

인터넷 모듈이 데이터그램을 포워딩할 때 이 옵션을 찾아 지정된 슬롯에 자신의 주소를 기록하고 포인터를 4만큼 전진시켰습니다. RFC 1812는 이후 라우터에 대해 주소 선택을 더 정밀하게 규정했습니다. 논리적 출력 인터페이스의 주소를 사용하고, 해당 인터페이스에 번호가 없는 경우에는 안정적인 라우터 ID를 사용하라는 것이었습니다. 따라서 기록되는 것은 패킷이 향하는 환경에서 의미가 있는 주소였으며, 물리적 장비에 대한 보편적 이름이 아니었습니다.

이 옵션은 커질 수 없었습니다. 포인터가 선언된 길이를 지나쳤다면 기록 영역이 가득 찬 것이므로, 포워딩은 추가 기록 없이 계속되었습니다. 옥텟이 1~3개 남아 있어 주소를 담을 수 없는 여백만 남았다면, RFC 791은 원래 데이터그램을 오류로 간주해 폐기하도록 했으며, 이때 ICMP Parameter Problem은 허용되었습니다. Record Route는 이후 단편으로 복사되지 않고 한 번만 나타날 수 있었습니다.

익숙한 최대 9개 주소라는 상한도 같은 제약에서 나옵니다. IPv4 헤더는 최대 60옥텟이며, 고정부가 20옥텟을 차지합니다. 남은 40옥텟의 옵션 영역에서 타입, 길이, 포인터가 3옥텟을 쓰므로 37옥텟이 남고, 이는 9개의 완전한 주소에 딱 맞습니다. 이는 Record Route가 옵션 공간을 사실상 혼자 쓸 때의 상한이며, 9개의 유효한 홉이 반드시 응답한다는 약속이 아닙니다.

경로에 권한이 없는 기록

이 이름은 Loose and Strict Source and Record Route와 혼동을 부릅니다. 그 옵션들은 송신자가 제공한 주소를 전송 경로 지정에 사용했습니다. 타입 7은 그렇지 않았습니다. 타입 7은 일반 라우팅이 선택한 경로 위의 시스템에게 관찰을 덧붙이도록 요청했을 뿐입니다. 참여자는 사실상 "내가 사용한 출력 식별자는 이것이다"라고 말할 수 있었지만, 옵션은 그에게 패킷을 어디로 보낼지 알려주지 않았습니다.

기록 항목 자체도 자신을 인증하지 않았습니다. 형식에는 서명도, 안정적인 장치 식별자도, 모든 중간 라우터가 참여했다는 증명도 없었습니다. 빈 슬롯은 경로가 예약된 영역보다 짧았다는 의미일 수 있습니다. 그러나 필터링, 통과 정책, 호스트 지원 부재, 단편화, 예상과 다른 경로를 반영했을 수도 있습니다. 채워진 목록조차도 협조하는 인터페이스에 대한 유한한 시야였지, 완전하고 독립적으로 검증 가능한 토폴로지가 아니었습니다.

호스트 요구 사항은 이러한 조건부 유용성을 반영했습니다. RFC 1122는 Record Route의 발신과 처리를 선택 사항으로 만들었습니다. 다만 ICMP Echo 교환에서는 수신한 옵션을 잘라내지 않고 갱신해 돌려보내야 했으므로, 결과 목록이 왕복 경로를 기술할 수 있었습니다. 이는 유용한 진단 동작이었지만, 여전히 관련된 모든 경계가 옵션을 통과시켜 주는 데 의존했습니다.

19년을 사이에 두고 나타난 두 가지 기본값

1995년의 RFC 1812는 라우터가 포워딩하는 패킷에서 Record Route를 지원하도록 요구했습니다. 구현은 옵션을 그대로 통과시키는 스위치를 제공할 수 있었지만, 그 스위치는 기본값으로 처리 모드가 되어야 했습니다. 이 문서는 토폴로지 노출 우려를 인정하면서도 진단 협력을 기본 경로에 두었습니다.

2014년의 RFC 7126은 정반대의 운영 출발점을 권고했습니다. Record Route는 네트워크 토폴로지를 파악하는 데 도움이 될 수 있으나 작은 용량이 그 활용을 제한한다는 것이었습니다. 옵션에 의존하는 ping 진단은 이 옵션이 차단되면 깨지지만, 광범위한 폐기 정책 때문에 이미 임의의 경로에서 그런 기법은 사실상 불가능했다는 점도 인정했습니다. 라우터, 방화벽, 보안 게이트웨이에는 타입 7을 폐기, 무시, 전체 처리 중에서 옵션별로 선택할 수 있는 설정을 노출하고, 문서화된 기본값을 "폐기"로 만들 것을 권고했습니다.

출처