GRE 터널의 기본 구조
GRE 터널은 세 계층의 헤더로 구성됩니다. 가장 안쪽의 페이로드 패킷(IPv4, IPv6 등 임의의 네트워크 계층 프로토콜) 위에 GRE 헤더(최소 4바이트)를 추가하고, 최외층에 운반 프로토콜 헤더(보통 IPv4)를 붙입니다. 터널 엔드포인트는 이 구조를 통해 서로 직접 연결된 것처럼 동작합니다.
캡슐화 및 역캡슐화 프로세스
패킷이 터널 인터페이스로 라우팅되면, 라우터는 GRE 헤더를 앞에 붙이고 페이로드 프로토콜 타입을 기록합니다. 그 다음 외부 IP 헤더를 추가하여 프로토콜 필드를 47(IANA 할당 GRE 프로토콜 번호)로 설정한 후 언더레이 인터페이스로 전송합니다. 수신 터널 엔드포인트는 GRE 헤더와 외부 IP 헤더를 제거하여 원본 페이로드를 복원하고, 페이로드의 TTL을 감소시킨 후 라우팅 테이블에 따라 전달합니다.
실무 주의사항과 제한사항
TTL 감소 시 루핑 방지를 위해 역캡슐화된 패킷의 목적지가 터널 양쪽 끝이 아닌지 확인해야 합니다. 표준 GRE는 경로 MTU 발견을 구현하지 않아 터널 내 단편화가 발생할 수 있으며, IPv6 운반 또는 페이로드는 RFC 2784 기본 사양에 포함되지 않습니다. RFC 2890 확장을 통해 선택적으로 키 필드와 순서 번호 필드를 추가하여 다중 가상 사설망 환경에서 트래픽 흐름을 식별하고 모니터링할 수 있습니다.