IMT2000 3GPP - 일반 라우팅 캡슐화
Generic Routing Encapsulation통신 규약 | |
목적 | 네트워크 터널링 |
---|---|
개발자 | 시스코 시스템즈 |
서론 | 1994[1] |
RFC | RFC1701, RFC1702, RFC2784 |
GRE(Generic Routing Encapsulation)는 시스코 시스템즈가 개발한 터널링 프로토콜로, 인터넷 프로토콜 네트워크를 통해 가상 점대점 링크 또는 점대점 링크 내부에 다양한 네트워크 계층 프로토콜을 캡슐화할 수 있습니다.[2]
사용 예시
- PPTP와 함께 VPN을 생성합니다.
- IPsec VPN과 함께 연결된 네트워크 간에 라우팅 정보를 전달할 수 있도록 합니다.
- 이동성 관리 프로토콜에서.
- PCF(Packet Control Function)에 IP 데이터를 캡슐화하기 위한 A8/A10 인터페이스.
- Linux 및 BSD는 Cisco 장비와 상호 운용 가능한 GRE 터널을 통해 임시 IP를 설정할 수 있습니다.
- DDoS(분산 서비스 거부)로 보호되는 장치를 보호되지 않는 끝점에 연결합니다.
프로토콜 스택 예제
OSI 모델 레이어 | 의전 |
---|---|
7. 세션 | X.225 |
6. 수송 | UDP |
5. 네트워크(GRE 캡슐화) | IPv4 |
4. 인캡슐레이션 | GRE |
3. 네트워크 | IPv6 |
2. 자료링크 | 이더넷 |
1. 피지컬 | 이더넷 물리 계층 |
OSI에서의 프로토콜 계층화 원리에 기초하여, 프로토콜 캡슐화, 구체적으로 GRE가 아닌, 계층화 순서를 깨뜨립니다.하나는 다른 하나의 캐리어 역할을 하는 두 개의 서로 다른 프로토콜 스택 사이의 분리기로 볼 수 있습니다.
배송 규약
IP 내에서 직접 캡슐화된 GRE 패킷은 IPv4 헤더의 Protocol 필드[3] 또는 IPv6 헤더의 Next Header 필드에서 IP 프로토콜 유형 47을 사용합니다.[4]
성능상의 이유로 GRE는 UDP 패킷으로 캡슐화될 수도 있습니다.[5]동일 비용 다중 경로 라우팅을 사용하면 더 나은 처리량을 달성할 수 있습니다.
패킷 헤더
확장 GRE 패킷 헤더 (RFC 2890)
GRE 패킷 헤더의[6] 확장 버전은 다음과 같습니다.
확장 GRE 헤더 형식 간격띄우기 옥텟 0 1 2 3 옥텟 조금 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 C K S 예약 0 버전 프로토콜 유형 4 32 체크섬(선택사항) 예약 1(옵션) 8 64 키(옵션) 12 96 시퀀스 번호(선택사항)
- C (1비트)
- 체크섬 비트.체크섬이 있으면 1로 설정합니다.
- K (1비트)
- 키 비트.키가 있으면 1로 설정합니다.
- S (1비트)
- 시퀀스 번호 비트.시퀀스 번호가 있는 경우 1로 설정합니다.
- 예약 0(9비트)
- 예약 비트. 0으로 설정합니다.
- 버전 (3비트)
- GRE 버전 번호. 0으로 설정합니다.
- 프로토콜 유형(16비트)
- 캡슐화된 페이로드의 에테르 프로토콜 유형을 나타냅니다. (IPv4의 경우 16진수 0800입니다.)
- 체크섬(16비트)
- C 비트가 설정된 경우 표시되며, GRE 헤더 및 페이로드에 대한 체크섬이 포함됩니다.
- 예약 1(16비트)
- C 비트가 0으로 설정된 경우 존재합니다.
- 키(32비트)
- K 비트가 설정된 경우 표시되며, 응용 프로그램별 키 값을 포함합니다.
- 시퀀스 번호(32비트)
- S 비트가 설정된 경우 존재하며, GRE 패킷의 시퀀스 번호를 포함합니다.
표준 GRE 패킷 헤더 (RFC 2784)
표준 GRE 패킷 헤더 구조는[7] 아래 그림과 같습니다.
표준 GRE 헤더 형식 간격띄우기 옥텟 0 1 2 3 옥텟 조금 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 C 예약 0 버전 프로토콜 유형 4 32 체크섬(선택사항) 예약 1(옵션)
- C (1비트)
- 체크섬 비트.체크섬이 있으면 1로 설정합니다.
- 예약 0(12비트)
- 예약 비트. 0으로 설정합니다.
- 버전 (3비트)
- GRE 버전 번호. 0으로 설정합니다.
- 프로토콜 유형(16비트)
- 캡슐화된 페이로드의 에테르 프로토콜 유형을 나타냅니다. (IPv4의 경우 16진수 0x0800이고, IPv6의 경우 0x86DD입니다.)[4]
- 체크섬(16비트)
- C 비트가 설정된 경우 표시되며, GRE 헤더 및 페이로드에 대한 체크섬이 포함됩니다.
- 예약 1(16비트)
- C 비트가 설정된 경우 표시되며, C 비트의 내용은 0으로 설정됩니다.
원본 GRE 패킷 헤더 (RFC 1701)
새로운 구조는 원래의 구조를 대체했습니다.[1]
원본 GRE 헤더 형식 간격띄우기 옥텟 0 1 2 3 옥텟 조금 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 C R K S s 리커브 깃발 버전 프로토콜 유형 4 32 체크섬(선택사항) 간격띄우기(옵션) 8 64 키(옵션) 12 96 시퀀스 번호(선택사항) 16 128 라우팅(옵션, 가변 길이)
원래의 GRE RFC는 패킷 헤더에 현재 표준에서 더 이상 쓸모가 없게 된 추가 필드를 정의했습니다.
- C (1비트)
- 체크섬 비트.체크섬이 있으면 1로 설정합니다.
- R (1비트)
- 라우팅 비트.Routing(루팅) 및 Offset(오프셋) 정보가 있는 경우 1로 설정합니다.
- K (1비트)
- 키 비트.키가 있으면 1로 설정합니다.
- S (1비트)
- 시퀀스 번호 비트.시퀀스 번호가 있는 경우 1로 설정합니다.
- s (1비트)
- 원본 경로 비트가 엄격합니다.
- 반복(3비트)
- 재귀 제어 비트.
- 플래그(5비트)
- 나중에 사용할 수 있도록 예약하고, 0으로 설정합니다.
- 버전 (3비트)
- 0으로 설정합니다.
- 프로토콜 유형(16비트)
- 캡슐화된 페이로드의 에테르 프로토콜 유형을 나타냅니다.
- 체크섬(16비트)
- C 비트가 설정된 경우 표시되며, GRE 헤더 및 페이로드에 대한 체크섬이 포함됩니다.
- 간격띄우기(16비트)
- R bit 또는 C bit가 설정된 경우 표시되며, R bit가 설정된 경우에만 유효한 정보를 포함합니다.활성 소스 경로 항목에 대한 라우팅 필드 내의 오프셋을 나타내는 오프셋 필드.
- 키(32비트)
- K 비트가 설정된 경우 표시되며, 응용 프로그램별 키 값을 포함합니다.
- 시퀀스 번호(32비트)
- S 비트가 설정된 경우 존재하며, GRE 패킷의 시퀀스 번호를 포함합니다.
- 라우팅(변수)
- R bit가 설정된 경우 존재하며, 소스 경로 항목의 목록을 포함하므로 길이가 가변적입니다.
PPTP GRE 패킷 헤더
PPTP(Point-to-Point Tunneling Protocol)는 아래와 같은 변형 GRE 패킷 헤더 구조를 사용합니다.PPTP는 PPTP GRE 패킷이 전송되는 GRE 터널을 만듭니다.
PPTP GRE 헤더 형식 간격띄우기 옥텟 0 1 2 3 옥텟 조금 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 C R K S s 리커브 A 깃발 버전 프로토콜 유형 4 32 키 페이로드 길이 키콜ID 8 64 시퀀스 번호(선택사항) 12 96 승인 번호(옵션)
- C (1비트)
- 체크섬 비트.PPTP GRE 패킷의 경우 0으로 설정됩니다.
- R (1비트)
- 라우팅 비트.PPTP GRE 패킷의 경우 0으로 설정됩니다.
- K (1비트)
- 키 비트.PPTP GRE 패킷의 경우 이 값은 1로 설정됩니다. (모든 PPTP GRE 패킷은 키를 운반합니다.)
- S (1비트)
- 시퀀스 번호 비트.PPTP GRE 데이터 패킷을 나타내는 시퀀스 번호가 제공되면 1로 설정합니다.
- s (1비트)
- 원본 경로 비트가 엄격합니다.PPTP GRE 패킷의 경우 0으로 설정됩니다.
- 반복(3비트)
- 재귀 제어 비트.PPTP GRE 패킷의 경우 0으로 설정됩니다.
- A (1비트)
- 승인번호가있습니다.PPTP GRE 승인 패킷을 나타내는 승인 번호가 제공되면 1로 설정합니다.
- 플래그(4비트)
- 플래그 비트.PPTP GRE 패킷의 경우 0으로 설정됩니다.
- 버전 (3비트)
- GRE 버전 번호.PPTP GRE 패킷의 경우 1로 설정됩니다.
- 프로토콜 유형(16비트)
- PPTP GRE 패킷의 경우 16진수 880B로 설정됩니다.
- 키 페이로드 길이(16비트)
- GRE 헤더를 포함하지 않고 페이로드의 크기를 포함합니다.
- 키 호출 ID(16비트)
- 패킷이 속한 세션에 대한 피어의 통화 ID를 포함합니다.
- 시퀀스 번호(32비트)
- S 비트가 설정된 경우 존재하며, GRE 페이로드 시퀀스 번호를 포함합니다.
- 승인 번호(32비트)
- A 비트가 설정된 경우 존재하며, 송신자가 수신한 가장 높은 GRE 페이로드 패킷의 시퀀스 번호를 포함합니다.
기준
- RFC 1701: GRE(Generic Routing Encapsulation) (정보)
- RFC 1702: IPv4 네트워크를 통한 일반 라우팅 캡슐화 (정보)
- RFC 2637: 점대점 터널링 프로토콜 (정보)
- RFC 2784: GRE(Generic Routing Encapsulation) (제안된 표준, RFC 2890에 의해 업데이트됨)
- RFC 2890: GRE로의 키 및 시퀀스 번호 확장 (제안된 표준)
- RFC 8086: GRE-in-UDP 캡슐화 (제안된 표준)
참고 항목
- Generic Routing Encapsulation을 사용한 네트워크 가상화 - GRE를 통해 L2 패킷 전송
참고문헌
- ^ a b S. Hanks; T. Li; D. Farinacci; P. Traina (October 1994). Generic Routing Encapsulation (GRE). Network Working Group. doi:10.17487/RFC1701. RFC 1701. 정보적인.
- ^ US 7801021B1, Nikolaos Triantafillis; Robert J. Ordemann & Simon D.Barber, "일반적인 라우팅 캡슐화 터널 킵얼라이브", 2010-09-21 발행, Cisco Technology Inc.에 할당되었습니다.
- ^ S. Hanks; T. Li; D. Farinacci; P. Traina (October 1994). Generic Routing Encapsulation over IPv4 networks. Network Working Group. doi:10.17487/RFC1702. RFC 1702. 정보적인.
- ^ a b C. Pignataro; R. Bonica; S. Krishnan (October 2015). IPv6 Support for Generic Routing Encapsulation (GRE). Internet Engineering Task Force (IETF). doi:10.17487/RFC7676. ISSN 2070-1721. RFC 7676. 제안된 표준.
- ^ E. Crabbe; E. Crabbet; T. Herbert (March 2017). L. Yong (ed.). GRE-in-UDP Encapsulation. Internet Engineering Task Force (IETF). doi:10.17487/RFC8086. ISSN 2070-1721. RFC 8086. 제안된 표준.
- ^ G. Dommety (September 2000). Key and Sequence Number Extensions to GRE. Network Working Group. doi:10.17487/RFC2890. RFC 2890. 제안된 표준.
- ^ D. Farinacci; T. Li; S. Hanks; D. Meyer; P. Traina (March 2000). Generic Routing Encapsulation (GRE). Network Working Group. doi:10.17487/RFC2784. RFC 2784. 제안된 표준.RFC 2890에 의해 업데이트됨.
- ^ K. Hamzeh; G. Pall; W. Verthein; J. Taarud; W. Little; G. Zorn (July 1999). Point-to-Point Tunneling Protocol (PPTP). Network Working Group. doi:10.17487/RFC2637. RFC 2637. 정보적인.
외부 링크

- IMT-2000 3GPP-Generic Routing Encapsulation, Cisco의 서브프로토콜 홈페이지
- 범용 라우팅 캡슐화, Cisco DocWiki의 엔트리(이전의 "인터넷 작업 기술 핸드북"으로 알려짐)