터널링(Tunneling)
1. 용어 정리
- 데이터 스트림을 인터넷 상에서 가상의 파이프를 통해 전달시키는 기술[1]
- 컴퓨터 네트워크에서 터널링 프로토콜을 사용하면 네트워크 사용자는 기본 네트워크가 직접 제공하지 않는 네트워크 서비스에 접근하거나 제공할 수 있다[2]
2. 터널링의 특징
- 호스트와 호스트 사이에 통신이 어떤 프로토콜을 사용하던 간에 일단 터널이 구성되면, 그 안에 원래 내용물(패킷)은 감싸지기(캡슐화) 때문에 내용물이 무엇인지는 중요하지 않게 됨[3]
- 특정 프로토콜을 지원하지 않는 네트워크를 통해 외부 프로토콜을 실행 할 수 있다[2]
- 기본 네트워크 서비스만을 사용하여 제공하기에는 비실용적이거나 안전하지 않은 서비스를 제공할 수 있다. 예를 들면 실제 네트워크 주소가 회사 네트워크의 일부가 아닌 원격 사용자에게 회사 네트워크 주소를 제공 할 수 있다[2]
- 터널링은 트래픽 데이터를 다른 형태로 재패키징하기 때문에, 터널을 통해 실행되는 트래픽의 성격이 숨겨진다[2]
3. 터널링과 캡슐화의 차이
- 캡슐화는 OSI 7 계층을 참조하여 통신을 하기 위해 하위계층에서 상위계층 데이터를 포장하는 개념이다[3]
- 터널링은 계층이 동일하거나 하위의 다른 프로토콜을 숨기기 위해 상위에서 데이터를 캡슐화하고, 외부 네트워크를 통과하여 목적지에 도착한뒤 다시 디슐화까지 하는 통신과정을 일컫는 말이다[3]
4. 터널링의 구성 요소[3]
- 승객 프로토콜(Passenger Protocol): 캡슐화가 되어야 할 프로토콜(애플토크, CLNS, IP, IPX)
- 전달 프로토콜(Carrier Protocol): 캡슐화 시킬 프로토콜(GRE, IP-in-IP, L2TP, MPLS, STUN, DLSw+)
- 전송 프로토콜(Transport Protocol): 전달 프로토콜을 끌고 갈 프로토콜(IP)
=> 즉, 내부 네트워크에서만 사용되는 승객 프로토콜을 전달 프로토콜의 데이터 안에 집어 넣은 뒤 전송 프로토콜을 통해 목적지로 이동시키는 것이다. 목적지에 도착하면 출발지에서 하였던 캡슐화를 거꾸로 하여 전달 프로토콜 안에 들어있던 승객 프로토콜을 동작시켜 원하는 목적지로 이동한다.
Reference
[1] [정보통신기술용어해설] http://www.ktword.co.kr/abbr_view.php?m_temp1=1708
[2] [위키피디아] https://en.wikipedia.org/wiki/Tunneling_protocol
[3] [네이버블로그] https://m.blog.naver.com/PostView.nhn?blogId=ccw928&logNo=220610767590&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F