1. 네트워크 가상화 및 VPN
(1) 네트워크 구조
🔹 언더레이 네트워크 (Underlay Network)
- 실제 물리적 네트워크를 의미 (라우터, 스위치, 물리적 서버로 구성)
- 패킷이 이동하는 물리적 경로(케이블, IP 네트워크 등)
- 오버레이 네트워크를 위한 기반 네트워크 역할
🔹 오버레이 네트워크 (Overlay Network)
- 언더레이 네트워크 위에 소프트웨어적으로 구축되는 가상 네트워크
- IP 터널링, VPN, VXLAN, SDN 같은 기술을 사용
- 기존 네트워크의 제약을 벗어나 자유롭게 확장 가능
터널링 (Tunneling)
오버레이 네트워크를 만들기 위해 사용 (GRE, IPSec)
터널링 → 하나의 방 → 하나의 네트워크 → 스위치간의 연결 → 가상의 vswitch
(∵ 같은 네트워크 → 같은 스위치)
✅서로 다른 물리서버(VM)간의 네트워크 연결을 하기위해서
오버레이 네트워크를 통해 서로 다른 서버의 VM들이 같은 대역에 있는 것처럼 보이지만, 사실 언더레이 네트워크 위에서 터널링을 통해 패킷이 전달되어 연결이 가능함
다른 물리서버 간의 가상의 네트워크를 형성 → 캡슐화로 목적지까지 패킷 전달 후 캡슐화 해제
🔽 물리 네트워크(언더레이) 위에 가상 네트워크(오버레이)를 올리는 개념
[오버레이 네트워크] (VPN, VXLAN, GRE, SDN)
┌──────────────────┐
│ 가상 네트워크 (Logical Network)
└──────────────────┘
↑ 터널링
[언더레이 네트워크] (물리적 네트워크, IP 네트워크)
┌──────────────────┐
│ 실제 물리 네트워크 (Switch, Router)
└──────────────────┘
(2) VPN (Virtual Private Network)
사설 네트워크끼리의 오버레이 네트워크, 터널링 활용
- Server-Client VPN: 클라이언트가 VPN 서버에 접속하여 원격 접속
- Site-to-Site VPN: 네트워크 간 터널링을 통해 서로 연결
🔹 VPN 종류
유형 | 설명 | 사용 예시 |
Server-Client VPN | 사용자가 VPN 서버에 접속하여 원격 네트워크에 연결 | OpenVPN, VyOS |
Site-to-Site VPN | 두 개의 사설 네트워크(지사-본사)를 연결하는 방식 | IPSec VPN, VyOS |
🔹 VPN 구조
🔽 Server-Client VPN & Site-to-Site VPN 비교
1️⃣ Server-Client VPN (개별 사용자가 원격으로 연결)
┌───────┐ VPN 터널 ┌──────────────┐
│Client │ ◀──────────▶ │ VPN Server │── 사설 네트워크
└───────┘ └──────────────┘
2️⃣ Site-to-Site VPN (지점 간 네트워크 연결)
┌─────────┐ VPN 터널 ┌─────────┐
│지사 LAN │ ◀──────────▶ │ 본사 LAN │
└─────────┘ └─────────┘
(3) Open vSwitch (OVS)
가상 네트워크끼리의 오버레이 네트워크
- 소프트웨어 기반 가상 스위치로, SDN 및 오버레이 네트워크 구현 가능
- GRE Tunnel, VXLAN 같은 터널링 기술을 활용하여 VM 간 네트워크를 연결
2. 서버 가상화 (Hypervisor)
하드웨어 수준에서 여러 개의 가상 머신(VM)을 실행
(1) 가상화 기술 분류
- Type 1 (베어메탈 하이퍼바이저): 하드웨어에서 직접 실행 (KVM, VMware ESXi, Hyper-V)
- Type 2 (호스트 기반 하이퍼바이저): 운영체제 위에서 실행 (VMware Workstation, VirtualBox)
1️⃣ Type 1 (베어메탈 하이퍼바이저)
┌─────────────────────────┐
│하이퍼바이저 (KVM, ESXi) │
├─────────────────────────┤
│ 가상 머신 (VM) │
│ 가상 머신 (VM) │
└─────────────────────────┘
(하드웨어 위에서 직접 실행)
2️⃣ Type 2 (호스트 기반 하이퍼바이저)
┌───────────────────────────────┐
│ 호스트 OS (Linux, Windows) │
├───────────────────────────────┤
│ 하이퍼바이저 (VirtualBox) │
├───────────────────────────────┤
│ 가상 머신 (VM) │
│ 가상 머신 (VM) │
└───────────────────────────────┘
(호스트 OS 위에서 실행)
(2) 가상화 방식
- 전가상화 (Full Virtualization): OS를 수정하지 않고 가상화 (VMware, KVM)
- 반가상화 (Paravirtualization): OS가 가상화 환경을 인식하고 일부 직접 실행, 빠름 (Xen)
1️⃣ 전가상화 (Full Virtualization)
┌─────────────────────┐
│ 가상 머신 (OS) │ ← OS가 가상화 하드웨어를 인식하지 못함
├─────────────────────┤
│ 하이퍼바이저 (KVM) │ ← 가상화 기능을 완전히 담당
└─────────────────────┘
2️⃣ 반가상화 (Paravirtualization)
┌────────────────────────────┐
│ 가상 머신 (OS, Xen 지원) │ ← 가상화 환경을 인식하여 일부 직접 처리
├────────────────────────────┤
│ 하이퍼바이저 (Xen) │
└────────────────────────────┘
(3) KVM (Kernel-based Virtual Machine)
- 리눅스 커널이 하이퍼바이저 역할함(굳이 구분하자면 Type1), 전가상화 지원
- VM 실행 및 VM 간 마이그레이션 기능 제공
┌─────────────────────────┐
│ Linux Kernel (KVM) │
├─────────────────────────┤
│ 가상 머신 (VM1) │
│ 가상 머신 (VM2) │
└─────────────────────────┘
(리눅스가 직접 하이퍼바이저 역할)
(4) XEN
- Type 1 하이퍼바이저로 하드웨어 위에서 직접 실행, 반가상화에서 성능 우수(전가상화도 지원)
- Dom0(특수한 제어 가상 머신, 독립적 하이퍼바이저 역할)이 있어 VM을 관리하는 역할을 수행
- Dom0 (Domain 0): Xen을 제어하는 특수한 VM, 하드웨어 및 다른 VM(DomU) 관리
- DomU (Unprivileged Domain): 일반적인 게스트 VM
┌───────────────────────────┐
│ 가상 머신 (DomU) │ ← 사용자 VM
│ 가상 머신 (DomU) │
├───────────────────────────┤
│ Xen Hypervisor │ ← Type 1 하이퍼바이저
├───────────────────────────┤
│ 가상 머신 (Dom0) │ ← Xen 제어 및 관리
└───────────────────────────┘
(하드웨어 위에서 직접 실행)
3. 컨테이너 가상화 (Container Virtualization)
(1) 컨테이너 가상화 개념
- 서버 가상화보다 가볍고 빠른 방식
- VM은 하드웨어를 가상화하지만, 컨테이너는 OS 레벨에서 가상화
(2) 주요 기술
- Docker → 컨테이너 생성 및 관리
- Kubernetes → 여러 개의 컨테이너를 오케스트레이션
1️⃣ Docker (컨테이너 실행)
┌─────────────────┐
│ Docker Daemon │
├─────────────────┤
│ 컨테이너 1 │
│ 컨테이너 2 │
└─────────────────┘
2️⃣ Kubernetes (컨테이너 오케스트레이션)
┌──────────────────────┐
│ Kubernetes Cluster │
├──────────────────────┤
│ Pod 1 (컨테이너) │
│ Pod 2 (컨테이너) │
└──────────────────────┘