
VPN은 Virtual Private Network의 약자로 가상 사설 네트워크를 구축하여 인터넷이나 공용 네트워크를 통해 개인 데이터 암호화, IP 주소 마스킹 등 안전하고 은밀하게 데이터를 전송하는 기술이나 서비스를 말합니다.
터널링은 데이터 통신을 안전하게 전송하기 위한 기술입니다.
데이터를 캡슐화하여 전송하기 때문에 보안성을 높일 수 있습니다.
데이터를 여러 네트워크 장치를 통해 전송할 때 터널링은 최종 목적지가 바로 다음 홉에 있는 것처럼 보이게하기에 복잡한 네트워크 경로임에도 단순화하는 효과가 있습니다.
또한 터널링은 특정 네트워크에서 직접 지원되지 않는 프로토콜을 사용할 수 있어 IPv6 패킷을 IPv4 네트워크를 통해 전송할 수 있습니다.
GRE는 Generic Routing Encapsulation의 약자로 일반 라이팅 캡슐화라고 부릅니다. GRE는 여러 터널링 프로토콜 중 하나입니다. 데이터 패킷을 캡슐화하며 다른 암호화 프로토콜을 사용하여 보안성을 높입니다.
아래와 같은 예시 사진을 통해 알아보자면 GRE 헤더는 캡슐화된 패킷에서 사용하는 프로토콜의 유형을 나타냅니다. IP 헤더는 원래 패킷의 IP 헤더와 페이로드를 캡슐화하며 GRE 터널의 양쪽 끝에 있는 라우터만 원래의 비 GRE IP 헤더를 참조하합니다.

* GRE 예시 사진 ©️ Microsoft Learn
Router에 Tunneling을 적용하기 위해서는 아래와 같은 명령어를 작성해야합니다.
Router(config)# interface tunnel 0
Router(config)# tunnel mode gre ip
Router(config-ip)# tunnel source [실제 데이터가 거쳐갈 주소]
Router(config-ip)# tunnel destination [ 실제 목적지 라우터의 주소]
Router(config-ip)# ip add [추가할 터널의 IP] [서브넷 마스크]
Router(config-ip)# exit
Router(config)# ip route [목적지 네트워크 주소] [subnet mask] [next tunnel ip]
인터페이스 터널 생성 및 GRE 모드 설정 -> 터널 소스 및 목적지 설정 -> 터널 IP 주소 및 서브넷 마스크 설정 -> 터널 인터페이스 구성 종료 -> 목적지 네트워크에 대한 경로 설정 순으로 위와 같이 명령어를 작성하였습니다.
터널링은 PC의 Command Prompt에서 아래와 같이 명령어를 작성하여 확인할 수 있습니다.
C:\> tracert [목적지 ip 주소]
명령어를 작성한 후 확인해보면 패킷이 거쳐가는 장치들의 IP 주소와 시간을 확인하실 수 있습니다.