GENEVE
개요
Geneve(Generic Network Virtualization Encapsulation)는 다양한 오버레이 프로토콜들의 장점을 결합하고 확장성 있게 설계된 최신 프로토콜이다.[1]
크게는 VXLAN, NVGRE(Network Virtualization using Generic Routing Encapsulation)을 결합했다고 한다.
방식 자체는 VXLAN과 다를 게 1도 없으니 자세히 설명하지 않겠다.
구조
Geneve 헤더는 가변적인 크기를 가지는데, 고정적인 필드 부분도 VXLAN에 비해 헤더를 야무지게 쓴다.
Variable-Length Options 부분이 가변적으로 추가될 수 있는 필드이다.
- Ver - 2 비트
- 버전 정보를 나타내는 필드로 현재는 0으로 설정되며, 다른 버전의 패킷은 버리도록 돼있다.
- Opt Len - 6 비트
- 옵션 헤더 비트 길이를 나타내는 필드로, 기본으로 설정되는 헤더를 제외한 영역의 헤더의 크기를 나타낸다.
- 이 값에 4 바이트를 곱한 값이 가변 길이 필드의 길이로 설정되어, Geneve 헤더는 최대 260 바이트 가량을 사용할 수 있다.
- O - 1 비트
- 컨트롤 패킷으로 터널의 엔드포인트만 사용하며, 이를 기반으로 패킷 처리 순서를 정한다.
- C - 1 비트
- 중요 여부를 나타내는 필드로, 1로 설정되면 터널 엔드포인트는 반드시 핵심적인 옵션들을 해석해야만 한다.
- 무슨 말인지는 아래에서 알 수 있다.
- Rsvd - 6 비트 - 예약 필드
- Protocol Type - 16 비트
- 뒤에 전달되는 페이로드의 프로토콜을 나타내는 필드로, 보통 이더넷 프레임이 오기 때문에 0x6558로 설정된다.
- VNI - 24 비트
- Reserved - 8 비트
- Variable-Length Options
- 가변 길이 필드로, 옵션 단위로 붙일 수 있다.
가변 길이 필드의 옵션은 아래와 같은 구조로 이뤄진다.
각 옵션은 Type과 Length, 그 이후에 값이 붙는다고 하여 TLV 형식이라고 부른다.
- Option Class - 16 비트
- 타입에 대한 네임스페이스를 나타내는 필드로 조직이나 벤더가 각자 값을 지정할 수 있다.
- Type - 8 비트
- 어떤 옵션인지 유형을 지정하는 필드로, 가장 앞 비트를 1로 채우면 중요한 옵션임을 나타낸다.
- 위에서 C 비트가 설정되면 이 옵션은 절대로 무시되지 않는다.
- R - 3 비트 - 예약 필드
- Length - 5비트
- 데이터 크기를 나타내는 필드로, 위와 같이 4 바이트를 곱한 값이 데이터 크기를 나타낸다.
- Variable-Length Option Data
- 값에 해당하는 필드
관련 문서
EXPLAIN - 파생 문서
이름0 | related | 생성 일자 |
---|
기타 문서
Z0-연관 knowledge, Z1-트러블슈팅 Z2-디자인,설계, Z3-임시, Z5-프로젝트,아카이브, Z8,9-미분류,미완이름1 | 코드 | 타입 | 생성 일자 |
---|---|---|---|
4W - 실리움 라우팅 모드 실습 - native, vxlan, geneve | Z8 | published | 2025-08-09 20:22 |