GRE 터널링은 시스코에서 만든 기술이다.
IP 를 캡슐화 하여 종단간의 통신을 가능하게 해주는 것이다.
GRE 터널링은 유니캐스트는 물론이고 멀티캐스트/브로드캐스트 패킷들을 모두 지원한다. 따라서 좀더 이상적인 VPN(Virtual Private Network) 환경을 만들 수 있다.
다음 구성도를 보면서 GRE 터널에 대한 이해를 높혀보자.
일단, 제일 위에 위치한 상단 라우터에서 각 지점의 PC가 사용하는 네트워크 대역의 라우팅 정책이 없다고 가정하자.
A지점과 B 지점의 사용자 PC 간에 통신이 불가한 상황이다.
이러한 경우 GRE 터널링을 이용하면 상단의 라우터에서 별도의 라우팅 정책 없이도 지점간 PC의 통신이 가능하게 된다.
GRE 터널은 "IP Encapsulation" 이다. 즉 IP 헤더를 캡슐화 하여 A지점과 B지점 라우터의 IP로 감싼 후 통신을 한다.
당연히 A지점, B지점의 라우터가 GRE 터널링을 지원해야 해야 가능하다.
GRE 동작에 대한 이해를 높히기 위해 다음을 참고하자.
일단 네트워크 대역이 아래와 같다고 한다.
위와 같이 4개의 네트워크 대역이 존재한다.
상단 라우터에는 별도의 라우팅 테이블이 추가적으로 설정되어 있지 않기 때문에 A지점과, B지점의 네트워크 대역을 알지 못한다.
(상단 라우터는 192.168.100.0/24, 192.168.200.0/24 를 모름)
그렇기에 당연히 지점간 PC 통신이 불가하다.
GRE 터널링 기술을 각 지점 라우터에서 사용하면 지점간 PC들의 통신이 원활히 이루어 지게 되는데 아래 그림을 통해 패킷의 모양이 어찌 변하는지를 잘 살펴보도록 하자.
A지점의 192.168.100.1 사용자가 B 지점의 192.168.200.1 로 통신을 시도하게 되면..
- A지점과 A지점 라우터 사이
- 출발지 IP : 192.168.100.1
- 목적지 IP : 192.168.200.1
- A 지점 라우터와 상단 라우터 사이 (GRE 터널 적용 지점)
- 원래의 IP 정보 (192.168.100.1 -> 192.168.200.1) 를 캡슐화하여 GRE 터널로 감싸게 된다.
- GRE 터널후 출발지 IP : 172.16.1.254
- GRE 터널후 목적지 IP : 172.16.2.254
- 172.16.1.254 와 172.16.2.254 의 IP 는 상단 라우터가 알고 있는 대역이므로 정상적으로 처리 가능함.
- 상단 라우터와 B 지점 라우터 사이 (GRE 터널 적용 지점)
- 전 단계와 마찬가지로 IP 정보 및 GRE 터널 정보 유지
- B 지점 라우터와 B 지점 사이
- GRE 터널에 의해 캡슐화 하여 감쌌던 실제 IP 정보를 푼 후 B지점으로 전달
- 출발지 IP : 192.168.100.1
- 목적지 IP : 192.168.200.1
위와 같이 패킷 플로우가 전달되기 때문에 각 지점간 PC 들의 통신이 원활이 이루어 지게 된다.
GRE는 IP 헤더를 GRE 터널 정보로 캡슐화(Encapsulation) 하여 전달하는 형태의 터널링이다.
다음은 내부적으로 테스트 했던 샘플 패킷이다. (위 IP 정보와는 다름)
붉은색으로 감싼 부분이 GRE 에 의해 캡슐화된 패킷 정보이다.
참고하면 좋겠다.
GRE 를 정리하면 다음으로 요약 할 수 있다.
- 시스코에서 개발한 터널링 기술
- 이반 터널링 기술의 목적과 같이 통신이 불가한 환경을 VPN 환경과 같이 구현
- IP 캡슐화를 이용하지만 별도의 암호화 기술을 이용하지 않음
- 때문에 속도는 빠르나, 보안성에는 취약함. (데이터가 그대로 노출됨)
끝~