IMT2000 3GPP - 일반 라우팅 캡슐화

Generic Routing Encapsulation
IMT2000 3GPP - 일반 라우팅 캡슐화
통신 규약
목적네트워크 터널링
개발자시스코 시스템즈
서론1994[1]
RFCRFC1701, RFC1702, RFC2784

GRE(Generic Routing Encapsulation)는 시스코 시스템즈가 개발한 터널링 프로토콜로, 인터넷 프로토콜 네트워크를 통해 가상 점대점 링크 또는 점대점 링크 내부에 다양한 네트워크 계층 프로토콜캡슐화할 수 있습니다.[2]

사용 예시

  • PPTP와 함께 VPN을 생성합니다.
  • IPsec VPN과 함께 연결된 네트워크 간에 라우팅 정보를 전달할 수 있도록 합니다.
  • 이동성 관리 프로토콜에서.
  • PCF(Packet Control Function)에 IP 데이터를 캡슐화하기 위한 A8/A10 인터페이스.
  • LinuxBSD는 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 캡슐화 (제안된 표준)

참고 항목

참고문헌

  1. ^ 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. 정보적인.
  2. ^ US 7801021B1, Nikolaos Triantafillis; Robert J. Ordemann & Simon D.Barber, "일반적인 라우팅 캡슐화 터널 킵얼라이브", 2010-09-21 발행, Cisco Technology Inc.에 할당되었습니다.
  3. ^ 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. 정보적인.
  4. ^ 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. 제안된 표준.
  5. ^ 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. 제안된 표준.
  6. ^ G. Dommety (September 2000). Key and Sequence Number Extensions to GRE. Network Working Group. doi:10.17487/RFC2890. RFC 2890. 제안된 표준.
  7. ^ 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에 의해 업데이트됨.
  8. ^ 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. 정보적인.

외부 링크