요약
- 초기 인터넷 호스트는 완전히 쓸 수 있는 기본 게이트웨이를 선택했음에도 모든 패킷이 로컬 네트워크를 두 번 통과하게 만들 수 있었습니다. ICMP 리다이렉트는 첫 번째 게이트웨이가 트리거 패킷을 전달한 뒤, 해당 호스트에게 이후 트래픽을 더 적합한 인접 게이트웨이로 직접 보내도록 권고하는 수단이었습니다.
- 이 권고는 결코 라우팅 프로토콜이 되도록 설계된 것이 아니었습니다. 호스트는 메시지가 자신의 현재 첫 홉에서 왔는지, 제안된 게이트웨이가 로컬에서 도달 가능한지 확인한 뒤, 보편적인 지도를 다시 쓰는 것이 아니라 목적지별 캐시만 변경해야 했습니다.
- IPv6는 이 메커니즘을 유지하면서 링크 로컬 출발지, Hop Limit 255, 엄격한 대상 검사를 통해 로컬 경계를 검증하기 쉽게 만들었습니다. SEND는 암호화 기반 권한 부여를 추가할 수 있었지만, 보호된 권고조차 하나의 전달 관계에 대한 주장일 뿐—소유권이나 전역적 진실이 아니었습니다.
불필요한 두 번째 통과
하나의 공유 네트워크에 호스트와 두 라우터가 있다고 상상해 보십시오. 호스트는 라우터 G1을 자신의 기본 게이트웨이로 알고 있습니다. 그러나 특정 원격 목적지에 대해서는 G1 자신의 테이블이 라우터 G2를 올바른 다음 홉으로 가리킵니다. G2는 G1 뒤에 숨겨져 있지 않습니다. 호스트와 같은 로컬 매체에 연결되어 있습니다.
따라서 첫 패킷은 피할 수 있는 여정을 거칩니다. 호스트는 링크를 건너 G1에게 패킷을 보내고, G1은 이를 받아 최선의 다음 홉이 G2임을 확인한 뒤 같은 링크를 다시 건너 G2 쪽으로 패킷을 되돌려 보냅니다. 무엇이 망가진 것도 없고 전달은 성공할 수 있습니다. 그러나 호스트가 기본값보다 더 구체적인 정보를 학습하지 않는 한, 이후 모든 패킷이 같은 삼각형 경로를 반복할 수 있습니다.
이것이 인터넷에서 가장 초기의 라우팅 제안 중 하나 뒤에 있던 작은 기하학이었습니다.RFC 791은 이름, 주소, 경로를 분리했습니다. IP는 독립적인 각 데이터그램에 주소를 실었고, 호스트와 게이트웨이가 다음 라우팅 결정을 내렸으며, 로컬 절차가 선택된 인터넷 주소를 부착된 네트워크상의 전송으로 변환했습니다. 이 프로토콜은 호스트가 라우터들의 완전한 지도를 갖출 것을 요구하지 않았습니다.
이러한 절제 덕분에 기본 라우팅이 가능했습니다. 호스트는 아주 적은 것만 알면서도 많은 네트워크에 도달할 수 있었습니다. 동시에 교정을 위한 자리도 만들어졌습니다. 첫 게이트웨이는 호스트보다 토폴로지를 더 많이 보지만, 다음 로컬 전송을 실행하는 기계는 여전히 호스트였습니다. 문제는 G1이 자신의 라우팅 시스템 전체를 수출하거나 호스트에 대한 지배권을 획득하지 않고 그 관찰을 어떻게 정확히 공유할 수 있는가였습니다.
전달 이후에 보내는 제안
RFC 792는 그 해답을 Redirect라 불렀습니다. 그 설명은 같은 G1/G2 그림을 사용했습니다. G1은 부착된 네트워크상의 호스트로부터 데이터그램을 받습니다. 그 테이블은 목적지 네트워크 X로 가는 길에 G2를 선택합니다. G2와 발신 호스트가 같은 네트워크에 있다면, G1은 호스트에게 X로 향하는 트래픽을 G2에게 직접 보내라고 권고하는 Redirect를 보냅니다.
순서가 중요했습니다. G1은 원래 데이터그램도 전달했습니다. 현재 패킷이 진행하기 전에 발신자가 새 경로를 이해할 것을 요구하지 않았습니다. 전달은 작동 중인 경로를 보존했고, Redirect는 이후 패킷을 위한 최적화를 제안했습니다. 권고와 실행은 별개의 사건이었습니다.
그렇기 때문에 “리다이렉트(redirect)”라는 단어는 오해를 부를 만큼 강하게 들릴 수 있습니다. 이 메시지는 전송 중인 패킷을 가로채 새 권위에 넘겨주는 것이 아니었습니다. G1은 이미 자신의 평범한 전달 책임을 수행한 뒤, 같은 결과를 다음 번에는 로컬 통과를 한 번 덜 거쳐 얻을 수 있다고 한 발신 호스트에게 알려준 것입니다.
ICMP 자체는 신뢰성 보장을 제공하지 않았습니다. RFC 792는 제어 피드백이 IP를 신뢰 가능하게 만들지 않으며, 데이터그램이든 그 제어 보고든 도착이 보장되지 않는다고 명시적으로 경고했습니다. Redirect가 사라져도 기본 경로는 계속 작동할 수 있었습니다. 다음 패킷이 다시 G1을 통과하면 또 한 번 제한된 권고 기회가 생길 수 있었습니다. 침묵이 첫 홉이 최적이라는 증거는 아니었고, 하나의 메시지가 제안된 경로가 계속 최적일 것이라는 증거도 아니었습니다.
영수증으로서의 인용된 패킷
Redirect는 G2의 주소 이상을 담고 있었습니다. 원본 인터넷 헤더와 데이터그램 데이터의 첫 64비트를 포함했습니다. 당시 설계에서 그 정도면 호스트가 피드백을 그것을 유발한 트래픽과 연관 지을 수 있었습니다. 인용된 데이터의 시작 부분에 전송 계층 포트가 있다면 그 포트까지 포함해서 말입니다.
이 인용은 간결한 영수증이었습니다. G1은 “모든 트래픽이 나를 신뢰해야 한다”는 추상적 선언을 보내는 것이 아니었습니다. 호스트가 방금 내보낸 데이터그램, 그리고 G1이 방금 전달 결정을 내린 목적지에 결부된 근거를 돌려준 것입니다. 메시지 유형과 코드는 네트워크, 호스트, 그리고 당시 정의된 type-of-service 변형에 대한 리다이렉트를 구분했고, 게이트웨이 필드는 제안된 다음 홉을 식별했습니다.
그러나 이 인용은 의도적으로 불완전했습니다. G2 너머의 경로, G1의 테이블을 만든 정책, G2가 패킷을 수락할 것이라는 증명, X의 소유자에 대한 인증서가 들어 있지 않았습니다. 그것은 G1에게 보이는 경계를 묘사했습니다. 이 발신지가 나를 사용했고, 나는 이 트래픽을 전달했으며, 다른 이웃이 내가 선택한 다음 홉이라는 것입니다.
이것은 좁은 형태의 네트워크 자원 근거입니다. 인용된 패킷은 운영상의 사건을 식별합니다. 현재 게이트웨이의 위치가 발언할 이유를 줍니다. 제안된 게이트웨이는 실행자를 지명합니다. 그리고 호스트는 여전히 이 메시지가 로컬 상태를 변경하기 위한 규칙을 충족하는지 스스로 판단해야 합니다.
현재 게이트웨이가 메신저여야 했다
원본 패킷 형식만으로 Redirect를 신뢰할 수는 없었습니다. 다음 홉 캐시를 바꿀 수 있는 메시지는 언제나 명백한 제어 표면을 만듭니다. 따라서RFC 1122는 Redirect를 처리할 의무와 함께 메신저와 제안된 실행자 양쪽에 대한 검사를 짝지었습니다.
호스트는 새 게이트웨이가 메시지가 도착한 것과 같은 연결된 서브넷에 있지 않다면 Redirect를 조용히 폐기해야 했습니다. 원격 기계가 호스트가 그 로컬 링크에서 도달할 수 없는 다음 홉을 정당하게 소개할 수는 없습니다. 또한 메시지의 출발지가 명시된 목적지에 대한 현재 첫 홉 게이트웨이가 아니라면 폐기해야 했습니다. ICMP를 구성하는 방법을 아는 것만으로는 경로를 변경할 지위가 생기지 않습니다.
이 검사들이 선의를 증명하지는 않습니다. 침해된 현재 게이트웨이는 여전히 거짓말을 할 수 있고, 공유 링크상의 적대적 참여자는 로컬 권위를 모방하려 할 수 있습니다. 그러나 이 검사들은 중요한 한계를 표현합니다. 이 교정을 제안할 자격이 있는 유일한 라우터는, 호스트가 자신의 상태에서 이미 검증할 수 있는 기존 전달 역할을 가진 라우터입니다.
이 규칙은 제도적이기보다 관계적입니다. 호스트는 G1이 어떤 지역, 표준화 기구 또는 원격 네트워크를 대변하는지 판단할 필요가 없습니다. 더 작은 질문을 던집니다. 이것이 이 목적지에 대해 내가 현재 사용하는 라우터인가, 그리고 제안된 대체 게이트웨이가 이 권고가 도착한 링크를 통해 도달 가능한가?
하나의 목적지, 새 지도가 아님
RFC 1122는 호스트가 무엇을 변경해야 하는지도 좁혔습니다. 그 라우팅 모델은 경로 캐시를 사용했습니다. 유효한 Redirect 이후 호스트는 해당 캐시 항목의 다음 홉 게이트웨이를 교체하여, 그 목적지로 가는 이후 데이터그램이 G2로 직접 갈 수 있게 했습니다.
옛 Network Redirect 코드와 Host Redirect 코드의 구분은 하나의 메시지가 원격 네트워크 전체에 대한 경로를 안전하게 설치할 수 있다고 암시하는 것처럼 보일 수 있습니다. 호스트 요구사항 문서는 그 추론을 거부했습니다. 호스트는 일반적으로 원격 목적지에 적합한 서브넷 마스크를 알지 못합니다. 따라서 Network Redirect를 Host Redirect처럼 취급하도록 지시받았습니다. 즉, 목적지 호스트에 대한 캐시 항목만 갱신하라는 것입니다.
이는 불완전한 지식에 대한 실용적 인정이었습니다. G1은 방금 전달한 패킷에 대해서는 좋은 근거를 가질 수 있지만, X가 커버하는 모든 주소를 정의할 만한 정보까지는 제공하지 않았을 수 있습니다. 좁은 관찰을 넓은 프리픽스로 확장하면 토폴로지가 한 번도 검증된 적 없는 트래픽까지 리다이렉트될 수 있었습니다. 목적지별 상태는 주장을 근거에 비례하도록 유지했습니다.
캐시는 또한 소유권과 다릅니다. 그것은 이 호스트가 현재 조건에서 이후 전달을 어떻게 실행할 의도인지를 기록합니다. 목적지 주소를 할당하지도, 레지스트리 기록을 변경하지도 않습니다. 같은 원격 호스트는 다른 발신지, 다른 인터페이스, 다른 시점에서 다르게 도달될 수 있습니다. 경로가 유용한 것은 바로 로컬이고 수정 가능하기 때문입니다.
탐색은 라우팅이 되지 않았다
호스트는 여전히 초기 라우터를 찾을 방법이 필요했습니다. 정적 구성은 작동했지만 관리 부담을 주고 그 자체로 가용성을 추적할 수 없었습니다. 라우팅 프로토콜 트래픽을 엿듣는 것은 호스트를 로컬 네트워크에서 우연히 돌아가는 어떤 프로토콜에도 노출시켰습니다.RFC 1256은 라우터 요청(Router Solicitation)과 광고(Advertisement)를 도입하여 호스트가 라우터 자신의 라우팅 프로토콜과 무관하게 인접 라우터를 발견할 수 있게 했습니다.
이 문서는 경계에 신중했습니다. 라우터 탐색(Router Discovery)은 라우팅 프로토콜이 아니었습니다. 광고는 어떤 인접 라우터가 가용한지, 그 선호도, 그 정보의 수명을 호스트에게 알려줄 수 있었습니다. 하지만 모든 원격 목적지에 대해 어느 라우터가 최선인지 알려주지는 않았습니다.
호스트는 더 구체적인 항목이 없을 때 선호되는 기본값을 선택했습니다. 그 선택이 특정 목적지에 부적합하다면, 선택된 라우터가 더 나은 이웃을 식별하는 Redirect를 보낼 수 있었습니다. 따라서 탐색과 교정은 두 층을 이루었습니다. 넓고 만료되는 가능한 첫 홉 목록, 그리고 실제 트래픽에 결부된 좁은 관찰이 그 둘입니다.
어느 층도 호스트가 라우터들의 도달성 교환에 참여할 것을 요구하지 않았습니다. 이는 구현과 관리의 분리를 보존했습니다. 호스트에게는 실행자를 선택하고 수정할 만큼의 정보가 필요했지, 또 하나의 라우팅 발신자가 될 만큼의 권한이나 토폴로지는 필요 없었습니다.
라우터가 이를 따르도록 금지된 이유
호스트에게 유용했던 같은 메시지가 라우터 간 학습 채널로 쓰이면 위험했습니다.RFC 1812는 이 분리를 명시했습니다. 라우팅 프로토콜을 사용하는 라우터는 패킷을 전달할 때 ICMP 리다이렉트에서 학습한 경로를 고려해서는 안 됩니다. 라우터에는 라우팅 정보를 교환하기 위한 다른 메커니즘이 있으며, 그 메커니즘과 모순되는 리다이렉트는 루프를 만들 수 있습니다.
이 규칙은 동일한 바이트라도 수신자마다 권위가 동일하지 않음을 드러냅니다. 단순한 기본 경로를 가진 호스트는 Redirect를 목적지별 조언으로 정당하게 사용할 수 있습니다. 라우팅 프로토콜에 참여하는 라우터는 다른 근거 체계, 다른 의존성, 더 넓은 폭발 반경을 가집니다. 로컬 호스트 조언을 라우터 간 경로로 취급하면 패킷 한 개가 촉발한 메시지가 그 체계를 우회할 수 있게 됩니다.
RFC 1812는 생성 측면도 제한했습니다. 라우터는 패킷이 도착한 것과 같은 물리 인터페이스를 통해 전달되고 있고, 패킷의 출발지와 더 나은 다음 홉이 관련 논리 서브넷을 공유하며, 패킷에 IP 소스 경로 옵션이 없는 경우에만 Redirect를 보내야 합니다. Redirect의 출발지 주소는 그것을 받는 목적지 호스트와 같은 논리 서브넷에 속해야 합니다.
각 조건은 하나의 확장 경로를 닫습니다. 다른 인터페이스는 로컬 지름길을 경계 간 경로 지시로 변합니다. 더 나은 다음 홉의 서브넷 밖 발신지는 직접 도달성이 없습니다. 소스 경로는 발신자가 이미 예외적 경로를 지정했다는 뜻입니다. Redirect는 자신이 제거하도록 설계된 단순한 로컬 삼각형에만 속했습니다.
IPv6는 경계를 더 단단히 했다
IPv6는 이 아이디어를 버리지 않았습니다. Redirect를 라우터 탐색, 프리픽스 탐색, 주소 결정, 이웃 도달성과 함께 이웃 탐색(Neighbor Discovery)에 통합했습니다.RFC 4861은 라우터가 호스트에게 더 나은 첫 홉 라우터가 존재한다고 알리거나, 목적지가 실제로 링크상에서 직접 도달 가능한 이웃이라고 알리도록 허용합니다.
검증 규칙은 패킷 안에서 지역성을 보이게 만듭니다. 출발지는 링크 로컬 주소여야 합니다. IPv6 Hop Limit는 255여야 하는데, 이는 라우터가 감소시킨 패킷은 그 값을 가진 채 도착할 수 없다는 뜻입니다. ICMP 체크섬과 코드가 유효해야 합니다. 발신자는 그 목적지에 대한 현재 첫 홉 라우터여야 합니다. 목적지는 멀티캐스트일 수 없습니다. 대상은 링크 로컬 라우터 주소이거나, 라우터가 그 목적지가 링크상 도달 가능하다고 선언하는 경우에는 목적지와 같아야 합니다.
유효한 메시지는 호스트의 Destination Cache를 갱신하고, 제공된 대상 링크 계층 주소는 Neighbor Cache를 갱신할 수 있습니다. 여기서도 변경을 실행하는 것은 수신자입니다. 라우터는 호스트의 테이블 안으로 들어가지 않으며, RFC 4861은 라우터가 Redirect를 수신할 때 자신의 라우팅 테이블을 갱신하는 것을 금지합니다.
IPv6의 Hop Limit 검사는 특히 시사적입니다. 그것은 이웃 라우터가 정직하다는 증명이 아닙니다. 더 작고 기계적으로 유용한 것을 증명합니다. 즉, 이 메시지는 링크 너머에서 전달되어 온 것이 아니라는 것입니다. 이 메커니즘은 청구자가 그 경계 안에서 권한을 가졌는지 묻기 전에, 주장의 지리적 경계를 먼저 방어합니다.
보편적 권위 없는 보안
공유 링크에서 지역성은 필요하지만 충분하지 않습니다. 악의적인 로컬 라우터는 원격의 낯선 이보다 더 위험할 수 있습니다. 호스트는 링크 너머와 통신하기 전에 라우터 정보가 필요하기 때문입니다.RFC 3971은 서명, 암호화적으로 생성된 주소(Cryptographically Generated Addresses), 구성된 신뢰에 근거한 인증 경로로 이웃 탐색 메시지를 보호하는 SEND(Secure Neighbor Discovery)를 기술했습니다.
라우터에 대해, 신뢰 사슬은 광고된 주소 범위를 권한 부여할 수 있습니다. SEND의 Redirect 규칙은 라우터가 어떤 목적지가 링크상 도달 가능하다고 주장할 때 범위 검사를 추가합니다. 서명된 메시지는 발신자가 키를 보유하고, 구성된 인증서 경로 아래에서 유한한 범위에 대해 라우터로서 행동할 권한이 있음을 입증할 수 있습니다.
그러나 이 보호는 과대 해석되기 쉽습니다. 서명은 제안된 다음 홉이 전역적으로 최단이거나, 상업적으로 수용 가능하거나, 영구히 도달 가능함을 증명하지 않습니다. 라우터 권한 부여는 목적지의 소유권을 확립하지 않으며, 운영상의 주소 범위를 어떤 기관의 주권적 영토로 변환하지도 않습니다. 그것은 선택된 신뢰 앵커 아래에서 메시지와 권한 관계를 인증할 뿐입니다.
SEND는 보안 이웃 탐색과 비보안 이웃 탐색의 공존도 기술합니다. 운영자는 둘 다 수락하거나 보안 메시지를 요구하도록 선택할 수 있습니다. 이 선택에는 결과가 따릅니다. 엄격함은 인증되지 않은 로컬 조언을 거부할 수 있고, 호환성은 신뢰 체계가 커버하지 않는 참여자에 대한 노출을 보존할 수 있습니다. 표준은 제어 표면을 정의할 뿐, 현지 배치 판단을 지우지 않습니다.
출처와 근거의 한계
RFC 791은 데이터그램과 라우팅 모델을 제공합니다. RFC 792는 Redirect와 그 원래의 G1/G2 교환을 정의합니다. RFC 1122는 호스트 검증과 목적지 캐시 범위를 제공합니다. RFC 1256은 기본 라우터 탐색을 목적지 선택과 분리합니다. RFC 1812는 라우터의 생성을 제한하고 라우팅 프로토콜 라우터가 Redirect를 통해 학습하는 것을 금지합니다. RFC 3971은 이웃 탐색을 위한 선택적 암호화 권한 부여를 정의합니다. RFC 4861은 IPv6 형식, 검증, 캐시 효과를 정의합니다.
이 문서들은 하나의 보편적 채택 날짜, 현재 운영체제 기본값, 공격과 필터링의 확산을 확립하지 않습니다. 모든 유효한 Redirect가 현명하다는 것, 또는 침묵이 기존 첫 홉이 최적이라는 뜻이라는 것을 증명하지도 않습니다. 이들이 확립하는 것은 더 좁은 역사적 사실입니다. 인터넷은 발신자의 현재 전달 역할, 대상의 링크상 도달성, 수신 호스트 자신의 검증된 상태 변경에 권한이 의존하는 로컬 교정을 설계했다는 것입니다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





