요약
- RFC 3378은 EtherIP를 기록했다. 이는 이더넷 프레임을 16비트 헤더 뒤에 두고 프로토콜 번호 97을 사용해 IPv4 데이터그램으로 전송한, 의도적으로 매우 작은 메커니즘이었다.
- 그 헤더는 피어 인증, 내부 무결성 검사, 순서 관리, 터널 제어 또는 루프 방지 기능을 전혀 갖지 않았다. 성공적인 캡슐화 해제는 바이트가 게이트웨이에 도달했다는 것만 증명할 뿐, 하나의 안전한 LAN이 IP 경로 위에 확장되었다는 것을 증명하지 않았다.
이더넷은 본래 지역적 추론을 전제한다. 목적지 주소가 세그먼트에 나타나고, 프레임 검사 시퀀스(FCS)가 하나의 링크 전송을 보호하며, 가까운 피어를 위해 설계된 프로토콜은 스위치, 케이블링, 방화벽이 강제하는 경계를 가정할 수 있다. EtherIP는 운영자가 프레임은 유지하면서 그 지역성을 제거할 수 있게 했다.
2002년 9월에 발행된 RFC 3378은 1991년과 1992년에 설계·구현된 프로토콜을 문서화했다. 그 상태는 Informational이었다. 저자들은 EtherIP를 선호되는 미래로 제시하는 대신, 역사적 맥락과 IANA의 IP 프로토콜 번호 97 할당을 설명하기 위해 이를 기술했다. 그들은 L2 터널링 및 의사회로(pseudowire) 커뮤니티의 표준 트랙 작업을 독자에게 명시적으로 안내했다.
그 형식은 거의 소박할 정도였다. IPv4 헤더가 프로토콜 97을 식별했고, 그 뒤에 16비트 EtherIP 헤더가 따랐다. 버전을 나타내는 4비트(값 3)와 예약된 12비트(값 0)였다. 그 다음에는 프레임 검사 시퀀스를 제외한 이더넷 또는 IEEE 802.3 프레임 전체가 이어졌다. 수신자는 버전이 틀리거나 예약 비트가 0이 아닌 패킷을 폐기하고, 프레임을 추출하고, 새 FCS를 계산한 뒤 원격 LAN으로 전송했다.
이 검사들은 신뢰가 아니라 문법을 확립했다. 버전 3과 12개의 0 비트는 발신자를 식별하지 못했다. 출발지 MAC 주소를 승인하지도, 원격 세그먼트를 검증하지도, 특정 프레임이 왜 통과해야 하는지 설명하지도 않았다. EtherIP에는 고유한 터널 식별자, 시퀀스 공간, 재전송(replay) 신호, 피어 협상, 내부 프레임 무결성 필드가 없었다.
누락된 FCS는 미묘한 증거 단절을 만들었다. 원본 이더넷 FCS는 진입 지점에서 끝났다. RFC 3378은 IPv4 헤더 체크섬이 캡슐화된 프레임을 보호하지 않으며 프레임 내부의 상위 계층 프로토콜이 무결성을 제공할 것으로 기대한다고 명시했다. 송출 지점에서 게이트웨이는 새 로컬 전송을 위한 새 FCS를 계산했다. 그 새 검사는 이전에 손상이 발생했더라도 완벽히 유효할 수 있었다. 그것은 마지막 링크에 대한 증거이지, 터널 전체에 대한 영수증이 아니었다.
종단 장치는 자신의 프레임 중 어느 것을 터널링할지 결정할 수 있었다. 브리지와 유사한 장치는 LAN을 무차별적으로(promiscuous) 청취하고, 출발지·목적지 주소, EtherType, 때로는 VLAN 정보를 검사한 뒤 캡슐화할 프레임을 선택할 수 있었다. 목적지가 로컬이거나 로컬 라우터가 계층 3 프로토콜을 처리할 수 있다면 터널링은 불필요했다. 이 규칙들은 환경적 정책이었고, 작은 헤더에 인코딩된 정보가 아니었다.
발신자는 또한 원격 EtherIP 장치의 IP 주소를 필요로 했으며, 이는 보통 목적지 MAC 주소에서 어떤 방식으로든 도출되었다. RFC 3378은 범용 탐색 또는 매핑 서비스를 정의하지 않았다. 따라서 형식에 맞는 패킷이 성공하려면 와이어 형식이 답할 수 없는 두 가지 질문, 즉 어떤 프레임이 터널에 속하는가, 그리고 어떤 원격 게이트웨이가 그 목적지를 대표하는가에 답하는 사전 구성에 의존했다.
브리지와 유사한 동작은 가장 큰 위험을 드러냈다. 여러 게이트웨이가 동일한 트래픽을 잡아 재주입하면 하나의 MAC 프레임이 무한히 순환할 수 있었다. 브로드캐스트 및 멀티캐스트 목적지 주소는 이 위험을 특히 심각하게 만들었다. RFC는 토폴로지가 트리 형태로 제한되어야 한다고 말한 뒤, 그 트리의 구성을 장치를 설정하는 사람에게 맡겼다. EtherIP는 스패닝 트리 프로토콜을 실행하지도, 나쁜 배치를 구원할 홉 카운트를 실지도 않았다.
이 때문에 루프는 데이터 평면의 반복으로 표현되는 제어 평면 실패였다. 모든 게이트웨이가 자신의 로컬 규칙을 올바르게 따르면서도, 결합된 규칙들이 프레임을 이전 세그먼트로 되돌려 보낼 수 있었다. 캡슐화의 성공은 이 실패를 더 안전하게 만들지 않고 더 빠르게 만들었다. 애플리케이션이 유용한 진전을 만들지 못한 채 패킷 카운터만 모든 홉에서 증가할 수 있었다.
보안 경계도 이동했다. 문서는 EtherIP를 허용하는 방화벽이 임의의 통신을 가능하게 할 수 있다고 경고했다. 하나의 로컬 세그먼트를 공유한다고 믿어지는 기계들 사이에서 약한 보호가 용인될 수 있었던 프로토콜은, 그 세그먼트가 IP 네트워크를 넘어 에뮬레이션될 때 노출될 수 있었다. RFC 3378은 거리에서 더 위험해진 지역적 가정의 사례로 당대의 VRRP 규격을 인용했다.
IPsec은 외부 데이터그램에 대한 가능한 보호책 중 하나로 제시되었다. RFC 2401이 당시의 아키텍처를 기술했고, RFC 4301이 나중에 이를 대체했다. 외부 보호는 정책에 따라 피어를 인증하고 전송 중 트래픽을 보호할 수 있었다. 그러나 그것조차 캡처 규칙이 올바른 프레임을 선택했는지, 원격 브리지가 이를 주입해야 하는지, 루프 없는 트리가 존재하는지, 수신 애플리케이션이 페이로드를 받아들이는지는 결정할 수 없었다.
다른 터널링 문서들은 EtherIP가 생략한 것들을 명확히 한다. RFC 2003은 IP 내부의 IP를 기술했고, RFC 2784는 더 일반적인 캡슐화 모델을 갖춘 GRE를 규정했다. RFC 3931은 나중에 L2TPv3에 명시적인 제어 연결과 세션을 제공했으며, RFC 3985는 의사회로 아키텍처를, RFC 4448은 이더넷 의사회로를 규정했다. 이들은 EtherIP에 대한 소급적 업그레이드도, 어떤 배포의 증거도 아닌 역사적 비교 자료다.
RFC 2119의 규범적 어휘는 문서의 소박한 범위 안에서 읽어야 한다. MUST는 헤더 비트를 설정하거나 유효하지 않은 값을 폐기하라는 뜻이었을 뿐, 프로토콜 97이 방화벽을 통과했으며 피어가 신뢰되고 운영자가 트리를 구축했다는 것을 확립하지 않았다. IANA 레지스트리는 번호의 할당을 기록한다. 등록은 패킷을 해석 가능하게 만들 뿐, 허용되거나 보편적이거나 안전하다는 뜻은 아니다.
Lu Heng의 최소 초기 명세(minimum-initial-specification) 관점은 이 설계의 매력을 설명한다. 매우 작은 공통 형식 하나가 더 큰 아키텍처를 정하지 않고도 즉각적인 용도를 열 수 있었다는 것이다. 그의 현실 계층(reality-layers) 관점은 감사 비용을 보여준다. 프레임 선택, 캡슐화, 피어 승인, 라우팅된 운반, 내부 무결성, 캡슐화 해제, FCS 재생성, 원격 주입, 종단 결과는 연결된 단계이지 하나의 사실이 아니다.
EtherIP는 16비트만으로도 프레임을 휴대 가능하게 만들 수 있음을 증명했다. 동시에 그 프레임이 얼마나 많은 것을 담고 있지 않은지도 증명했다. LAN은 프레임 형식 이상이다. 그것은 토폴로지, 관리, 신뢰, 타이밍, 그리고 일련의 지역적 결과다. 터널은 봉투만 옮겼다. 봉투를 안전하게 만드는 모든 것은 여전히 그 주변에서 다시 세워져야 했다.
출처
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





