GRE
Generic Routing Encapsulation · 일반 라우팅 캡슐화
는 원래 패킷을 헤더와 바깥 전달 헤더로 감싸 다른 네트워크를 통과시키는 터널 방식이다. 논리 링크를 제공하지만 기본 만으로 암호화·송신자 인증·식 신뢰성을 제공하지 않는다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- · 등 내부 프로토콜을 IP망 위에서 운반한다.
- 터널 인터페이스를 통해 내부 과 바깥 목적지 의 역할을 분리한다.
- 필요하면 보호와 결합하되 캡슐화 크기와 처리 순서를 따로 계산한다.
02어떤 순서로 동작하나
- 내부 목적지의
원래 IP 목적지에 대한 경로가 Tunnel을 가리키면 해당 패킷을 터널로 보낸다.
- ·Outer IP 추가
로 원래 패킷을 감싸고 outer 목적지를 상대 WAN 주소로 둔다. 기본 over 에서 바깥 IP Protocol은 47이다.
- Outer 목적지
상대 WAN까지의 별도 경로로 캡슐화한 패킷을 운반한다. Tunnel 설정과 실제 외부 도달성을 구분한다.
- 수신·디캡슐화
상대가 outer IP·를 처리해 내부 패킷을 꺼낸다. 양끝 캡처의 내부 주소·TTL·크기를 대조하고 내부 목적지로 전달한다.
03먼저 알아둘 용어와 구성요소
- 터널의 바깥 패킷을 실제 전달하는 기반 네트워크다.
- 터널 안의 주소와 논리 연결로 구성되는 별도 통신 문맥이다.
- 바깥 헤더가 다음 프로토콜을 라고 표시하는 값이다.
- 확장에서 터널이나 흐름을 구별하는 데 사용하는 값이다. 암호 키나 인증 수단은 아니다.
- 터널 끝점 사이에서 캡슐화 패킷을 전달하는 바깥쪽 IP 헤더다.
- 터널 안에 실어 보내는 원래 패킷이다.
- 바깥 네트워크를 통해 도달해야 하는 원격 터널 끝점이다.
- 터널 목적지로 가는 경로가 다시 그 터널을 가리키는 등 캡슐화 경로가 순환하는 문제다.
GRE 패킷의 두 IP 헤더로 터널 경로와 오버헤드 확인하기
로 보낸 ping을 캡처하여 외부 운반 주소와 내부 통신 주소를 분리하고 실제 길이 차이를 계산한다.
실습 구성과 전제
- 터널 양 끝의 외부 주소는 기존 IP망으로 서로 도달 가능해야 한다. 터널 목적지로 가는 경로가 터널 자체를 다시 선택하지 않도록 한다.
- 캡처는 Tunnel14의 내부 주소 사이 ping이다. 아래 설정은 구조를 재현하기 위한 문서용 주소 예시이며 캡처의 숫자와 동일한 실행 결과라고 주장하지 않는다.
외부 주소와 내부 주소를 따로 설정한다
- tunnel source와 destination은 원래 IP망으로 운반할 외부 끝점이다. Tunnel 인터페이스의 ip address는 내부 논리 링크 주소이므로 서로 역할이 다르다.
- 예시 R1의 외부 주소는 192.0.2.1, 상대 외부 주소는 198.51.100.2다. 상대 장비는 source·destination을 반대로 지정하고 내부 주소 10.10.14.2/30을 사용한다.
textinterface Tunnel14 ip address 10.10.14.1 255.255.255.252 tunnel source 192.0.2.1 tunnel destination 198.51.100.2 tunnel mode gre ip end show interfaces Tunnel14구조를 재구성한 R1 설정. 192.0.2.1은 실제로 설정된 로컬 인터페이스 주소이고 상대 외부 경로가 이미 존재한다는 조건이다.
확인 기준외부 주소 사이 도달 가능성을 먼저 확인한다. Tunnel up 표시만으로 상대 수신이나 내부 성공이 증명되지는 않는다.
내부 ping을 발생시키고 바깥 링크에서 관찰한다
- 상대 터널 주소로 ping하면 내부 패킷을 로 감싸 외부 끝점으로 운반한다. 캡처는 터널 내부가 아닌 운반 링크에서 해야 외부 IP와 를 함께 볼 수 있다.
- 화면의 외부 IP Protocol은 47, 내부 IP Protocol은 1이다. 바깥 주소와 안쪽 주소가 모두 보이므로 만으로 원래 통신 정보를 감추거나 암호화하지 않는다.
textping 10.10.14.2 source 10.10.14.1 show interfaces Tunnel14문서용 주소로 재구성한 내부 링크 ping. 표시 필터는 를 사용한다.
원본 크기로 보기 ↗- 외부 IPv4 Total Length는 124, Protocol은 Generic Routing Encapsulation (47)이다.
- GRE 아래 내부 IPv4 Total Length는 100이고 Protocol ICMP (1) 및 서로 다른 내부 주소쌍이 보인다.
확인 기준표시 필터 로 선택한 뒤 두 트리를 모두 펼쳐 주소와 Protocol을 비교한다.
보이는 바이트 차이로 캡슐화 비용을 계산한다
- 이 프레임의 외부 IP 길이 124에서 내부 IP 길이 100을 빼면 24바이트다. 헤더 20바이트와 옵션 없는 기본 헤더 4바이트가 더해진 경우와 일치한다.
- 내부 TTL은 255, 외부 TTL은 254로 보인다. 서로 다른 헤더의 TTL이므로 둘의 차이를 터널 안의 라우터 수로 환산하지 않는다.
확인 기준옵션·외부 IP 옵션·추가 이 있으면 오버헤드가 달라진다. 이 한 캡처의 24바이트를 모든 터널의 상수로 쓰지 않는다.
원격 LAN 트래픽은 터널 경로를 추가로 요구한다
- 터널 끝점 사이 ping이 되어도 상대 LAN에 대한 경로가 없으면 그 LAN으로 전달되지 않는다. LAN 경로가 내부 next hop을 가리키는지와 상대편 반환 경로를 확인한다.
- 를 넘는 큰 패킷 문제는 작은 ping 성공으로 배제되지 않는다. 인터페이스 와 DF· 관련 관찰을 별도로 남긴다.
textshow ip route 198.51.100.2 show ip route show interfaces Tunnel14실습 흐름을 재구성한 명령 예시. 장치·인터페이스 이름은 구성에 맞춰 사용한다.
확인 기준외부 끝점 경로와 원격 LAN 경로를 같은 것으로 취급하지 않는다. 외부 끝점이 터널 안으로 재귀 선택되면 구성부터 수정한다.
실습에서 확인한 동작 원리
- 캡처에서 두 IP 헤더를 구별하면 운반 경로와 내부 통신을 따로 설명할 수 있다.
- 보안 기능과 캡슐화 기능은 별개이며 실제 계산은 관측한 헤더 조건을 따른다.
동작·명령 참고 문서
04예제로 따라가기
- 바깥 =1500, 옵션 없음, ·추가 터널 없음인 계산용 예다. 기본 4바이트와 바깥 20바이트가 최소 추가 크기다. 내부 IP 패킷 한계는 1500−20−4=1476바이트다. 옵션 없는 내부 ·라면 데이터 한계는 1476−20−20=1436바이트다.
- Key 4바이트와 Sequence 4바이트를 모두 사용하면 는 12바이트다. 내부 는 1500−20−12=1468바이트로 줄어든다. 내부 1468에서 옵션 없는 데이터는 1428바이트, 확장 헤더 없는 데이터는 1408바이트다. 기본 헤더가 기본 헤더보다 20바이트 크기 때문이다.
- Checksum을 추가하면 다시 4바이트가 줄고 을 적용하면 해당 변환의 헤더·IV·패딩·인증값까지 계산해야 한다. 이 예의 MSS를 모든 VPN의 고정 정답으로 사용하지 않는다.
05혼동하기 쉬운 점과 확인 기준
- 터널 내부 원격망은 Tunnel로, 바깥 터널 목적지는 물리 로 해석돼야 한다. 후자의 조회가 다시 같은 Tunnel을 가리키면 캡슐화에 필요한 출구를 자신에게 재귀적으로 의존한다.
- 기존 WAN 기본 경로가 사라지고 새 기본 경로가 Tunnel로만 남으면 바깥 목적지도 그 기본 경로에 맞을 수 있다. 내부 경로가 늘어난 시점과 경로 변화를 함께 본다.
- 작은 내부 패킷은 통과하지만 큰 패킷에서 반복 재전송이 발생하면 추가 헤더와 DF· 조건을 조사한다. 터널 down과 구분되는 데이터 크기 의존 장애다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.