Tunnel 통신 - packet이 만들어지는 과정
첫 번째 10.10.10.0/24내에 있는 10.10.10.1이라고 하는 ip를 가지고 있는 pc가 10.10.20.0/24내에 있는 10.10.20.1 pc와 통신을 한다고 하면, IP header에 Source IP Address는 자신의 ip address인 10.10.10.1로 설정하고, Destination IP Address에는 목적지인 10.10.20.1로 만들어서 포워딩을 할 것입니다, 그런데 인터넷망에서는 사설 ip address가 라우팅이 되지 못합니다. 그래서 ip address를 변경해야 합니다. 그런데 문제는 Destination IP Address를 10.10.20.1을 222.2.2.2로 변경한다면 Router2까지는 도착하겠지만 Router2에서는 목적지 10.10.20.1이 없어졌기 때문에 어디로 포워딩을 해야 하는지 알 수 없게 됩니다. 따라서 인터넷상에서는 목적지를 공인 ip address로 하는데 사설 ip address도 없으면 안 됩니다. 그래서 나온 해결 방법이 ip header 하나를 더 입히는 방법입니다. 즉 L3를 다시 L3로 encapsulation 하는 것입니다. 원래 있던 ip header를 그대로 두고 새로운 ip header를 하나 더 붙이는데 때 Source IP Address를 공인 IP address인 111.1.1, Destination IP Address를 222.2.2.2로 설정을 해서 packet을 포워딩하는 것입니다. 그러면 인터넷망에 있는 장비들은 원래 목적지인 10.10.20.1은 볼 필요도 없이 새로 붙은 header에 있는 Destination IP Address인 222.2.2.2만 보고 routing을 해서 Router2까지 패킷을 전달이 될 것입니다. 그러면 Router2는 패킷을 받았더니 목적지가 자기 자신일 것입니다. 그럼 Router2는 그 packet을 받아서 de-encapsulation을 하게 되면 또다시 L3 header가 나올 것입니다. 거기의 목적지는 10.10.20.1일 것입니다. 그래서 Router2는 de-encapsulation 한 다음 목적지 ip address인 10.10.20.1을 보고 routing을 시켜서 destination까지 포워딩 해주게 되면 통신이 가능하게 됩니다. 그러면 10.10.10.0/24과 10.10.20.0/24가 상호 간의 통신이 가능하게 됩니다.
여기에서 원래 header를 original header, 새롭게 만들어진 header를 tunnel header라고 부릅니다. 우리가 구성한 내용에서 보면 tunnel header는 단순히 인터넷망에서 포워딩하기 위한 용도로 사용됩니다. 즉 네트워크에서 터널은 A에서 B로 간다라고 할 때 중간 경로가 C, D 구간을 지나가야 한다면 C, D로 가기 위한 header를 더 붙이게 되는데 이러한 기술을 전부다 Tunnel이라고 합니다. 터널에서는 original header를 볼 필요가 없습니다. 그 이유는 밖에 있는 헤더만 보고 routing을 시키면 되기 때문입니다. 따라서 본래의 데이터를 보지 않는다 그런 개념에서 Tunnel 이란 용어를 붙이게 된 것입니다. 그리고 새로운 header가 붙었기 때문에 실제 tunnel처럼 중간에 다른 경로로 못 빠져나갑니다. 즉 터널이라고 하는 것은 어떤 구간에서 packet을 전달하기 위해서 새로운 header를 붙이는 기술을 말합니다.
Tunnel의 종류
1. GRE Tunnel 은 Tunnel Header (Source IP Address, Destination IP Address)+ GRE Header + Original Header(Source IP Address, Destination IP Address)로 구성되어 있습니다.
2. IPSec Tunnel은 Tunnel Header (Source IP Address, Destination IP Address)+ ESP/AH Header + Original Header(Source IP Address, Destination IP Address)로 구성되어 있습니다.
3. MPLS Tunnel은 Label 기반으로 통신하게 됩니다. 그래서 L3 header외에 Label이 라는 것이 붙게 되는데 tunnel이라고 하면 그 Label이 실제 목적지로 가기 위한 Label, 밖에 Router2로 가기 위한 Label(tunnel Label)이 되겠습니다.
'IT-Network' 카테고리의 다른 글
[OSI 7 Layer] Layer3 - Switch 용어 (Maximum Throughput) (0) | 2022.11.05 |
---|---|
[OSI 7 Layer] Layer3 - Switch 용어 (Bandwidth, Throughput, goodput) (0) | 2022.11.04 |
Network Tunnel의 이해 (0) | 2022.11.03 |
[OSI 7 Layer] Layer3 - Network Layer Best Path 기준의 필요성 (0) | 2022.11.02 |
[OSI 7 Layer] Layer3 - Network Layer 역할 (0) | 2022.11.01 |
댓글