VPN을 "켜면 안전해지는 무언가"로만 알고 있으면, 정작 회사 VPN이 왜 사내 서버에 접근하게 해주는지 설명하기 어렵습니다. VPN의 원리는 두 단어로 압축됩니다. 터널과 암호화. 이 둘이 어떻게 맞물리는지만 보면 됩니다.
핵심: 터널 안에 암호화된 패킷을 넣는다
VPN(Virtual Private Network)은 공용 인터넷 위에 사설망처럼 동작하는 가상 통로를 만듭니다. 내 컴퓨터가 보내는 원래 패킷을 통째로 암호화한 뒤, 그 암호문을 다시 새 패킷에 담아서(캡슐화) VPN 서버까지 보냅니다. 서버는 받은 패킷을 풀어 원래 패킷을 꺼내 목적지로 전달합니다. 이 "패킷을 감싸 보내는 통로"가 터널입니다.
| 요소 | 역할 |
|---|---|
| 터널링(캡슐화) | 원래 패킷을 새 패킷 안에 감싸 전달 |
| 암호화 | 가로채도 내용을 못 읽게 함 |
| VPN 서버(게이트웨이) | 터널 반대쪽 끝, 복호화 후 목적지로 전달 |
| 가상 인터페이스 | 내 PC에서 터널 입구 역할(tun/wg0) |
이 구조 덕분에 두 가지가 됩니다. 첫째, 중간 경로(카페 와이파이, ISP)에서 패킷을 가로채도 암호화돼 있어 못 읽습니다. 둘째, VPN 서버가 사내망 안에 있으면, 내 패킷이 그 서버를 거쳐 나가므로 마치 회사 안에서 접속한 것처럼 사내 서버에 닿습니다.
패킷이 거치는 흐름
[내 PC] --(암호화+캡슐화)--> [VPN 서버] --(복호화)--> [목적지]
tun0 가상 인터페이스로 진입 사내망/인터넷으로 전달
운영체제 입장에서 VPN은 tun0·wg0 같은 가상 네트워크 인터페이스로 보입니다. 라우팅 테이블이 "특정 대역(또는 전체)은 이 가상 인터페이스로 보내라"고 지정하면, 해당 트래픽이 자동으로 터널을 타게 됩니다.
ip addr show # wg0 / tun0 같은 가상 인터페이스 확인
ip route # 어떤 트래픽이 터널로 가는지 라우팅 확인
WireGuard로 보는 현대 VPN
요즘 많이 쓰는 WireGuard는 이 원리를 단순하게 구현한 예입니다. 양쪽이 공개키/개인키 쌍을 교환하고, 상대의 공개키를 등록해두면 그 키로 암호화된 터널이 만들어집니다.
wg show # 연결된 peer와 핸드셰이크 상태 확인
interface: wg0
public key: (내 공개키)
peer: (상대 공개키)
latest handshake: 23 seconds ago
latest handshake가 갱신되면 터널이 살아 있다는 뜻입니다. 전통적인 IPsec·OpenVPN도 방식은 달라도 "키 교환 → 암호화 터널" 흐름은 같습니다.
요점 정리
- VPN의 본질은 터널링(캡슐화) + 암호화 두 가지다.
- 패킷을 감싸 VPN 서버로 보내므로, 중간에서 가로채도 못 읽고 서버 위치의 망에 속한 것처럼 동작한다.
- OS에는
tun0·wg0같은 가상 인터페이스로 보이고, 라우팅이 트래픽을 터널로 보낸다. - WireGuard는 공개키/개인키로 터널을 맺는 현대적 구현 —
wg show로 핸드셰이크를 확인한다.
라우팅·인터페이스·패킷 흐름을 직접 따라가며 익히는 실습은 네트워크 트랙에서 회원가입 없이 무료로 할 수 있습니다.