Justin-book

가상 네트워크 (Virtual Networking)

2025-10-27

요약

  • 가상 네트워크(Virtual Network) 는 실제 하드웨어 없이 소프트웨어로 구성된 논리적 네트워크이다.
  • 물리적 네트워크 위에 생성되어, VM(가상머신) · 컨테이너(Docker) · 클라우드 인스턴스 간 통신을 가능하게 한다.
  • 실제 NIC를 에뮬레이션하거나, 브리지·NAT·오버레이 형태로 네트워크를 구성한다.

가상 네트워크는 실제 하드웨어를 소프트웨어로 에뮬레이션한 논리적 네트워크 계층이다. 이 구조 덕분에 개발자는 하나의 노트북에서 “가상의 데이터센터”를 만들 수 있으며, 클라우드·컨테이너·Kubernetes 환경은 모두 이 원리를 기반으로 동작한다.

“가상 네트워크는 물리적 제약을 제거하고, 연결의 자유를 제공한다.”

핵심 요약

  1. 가상 네트워크는 “물리적 네트워크의 논리적 복제본”이다.
  2. Hypervisor 또는 Container Runtime이 가상 NIC와 스위치를 생성한다.
  3. Bridge / NAT / Host-only / Overlay 네트워크 모드가 대표적이다.
  4. 클라우드(VPC), Kubernetes, Docker 모두 내부적으로 이 원리를 사용한다.

1. 가상 네트워크의 구조 개념

flowchart LR VM1["VM1 (10.0.2.15)"] --> VSW["가상 스위치 (vSwitch)"] VM2["VM2 (10.0.2.16)"] --> VSW VSW --> HOST["Host OS (192.168.0.100)"] HOST --> PHY["물리 NIC (enp3s0)"] PHY --> ROUTER["라우터 / 인터넷"] style VM1 fill:#e0f2fe,stroke:#0284c7 style VM2 fill:#e0f2fe,stroke:#0284c7 style VSW fill:#fef9c3,stroke:#facc15 style HOST fill:#dcfce7,stroke:#16a34a
  • vSwitch(Virtual Switch) : 가상 머신 간의 스위칭 담당
  • vNIC(Virtual NIC) : 가상 장치가 실제 네트워크에 접근하는 가상 인터페이스
  • Host OS의 NIC : 물리적 네트워크와 연결되는 실제 인터페이스

2. 가상 네트워크의 주요 모드

모드설명외부 연결 여부예시
Bridge Mode실제 네트워크에 직접 연결O가상머신이 동일 LAN에 속함
NAT ModeHost의 IP를 통해 외부로 나감O (공유기처럼)VirtualBox 기본
Host-Only호스트와 가상머신 간만 통신X개발/테스트용
Overlay가상 터널로 다른 호스트와 연결OKubernetes CNI, VXLAN
flowchart TD subgraph Bridge["Bridge Mode"] A["VM1 (192.168.0.50)"] --- SW["Bridge ↔ LAN Switch"] end subgraph NAT["NAT Mode"] B["VM2 (10.0.2.15)"] --> R["NAT Router
192.168.0.100"] end subgraph Host["Host-Only"] C["VM3 (192.168.56.10)"] --- H["Host (192.168.56.1)"] end subgraph Overlay["Overlay (VXLAN)"] D["Pod A (10.244.1.5)"] -- Tun0 --> E["Pod B (10.244.2.7)"] end

3. VirtualBox 예시

모드내부 IP외부 접근설명
NAT10.0.2.x가능외부 인터넷 연결은 가능하지만 외부에서 접속 불가
Bridged192.168.0.x가능가상머신이 실제 네트워크의 한 노드처럼 동작
Host-Only192.168.56.x불가개발 환경에서 내부 테스트용
flowchart LR VM["Ubuntu VM (10.0.2.15)"] --> NAT["VirtualBox NAT Gateway (10.0.2.2)"] NAT --> HOST["Host (192.168.0.100)"] HOST --> ISP["인터넷"]

4. Docker 네트워크 구조

네트워크 이름설명CIDR 예시
bridge기본 Docker 네트워크 (컨테이너끼리 통신 가능)172.17.0.0/16
host호스트 네트워크와 동일Host IP 동일
none네트워크 연결 없음없음
custom bridge사용자 정의 브리지 네트워크172.20.0.0/16
flowchart LR C1["Container A (172.17.0.2)"] --> DSW["docker0 Bridge"] C2["Container B (172.17.0.3)"] --> DSW DSW --> HOST["Host OS (eth0)"] HOST --> NET["LAN/Internet"]

docker network ls 명령어로 생성된 가상 네트워크를 확인할 수 있다. docker network inspect bridge 로 상세 구조와 IP 대역 조회 가능.


5. Kubernetes CNI 기반 구조

flowchart TB POD1["Pod A
10.244.1.10"] --> CNI["CNI Plugin (Flannel / Calico)"] POD2["Pod B
10.244.2.11"] --> CNI CNI --> NODE1["Node1 (192.168.0.11)"] CNI --> NODE2["Node2 (192.168.0.12)"] NODE1 --> ROUTER["Cluster Router"] NODE2 --> ROUTER ROUTER --> INTERNET["외부 서비스 (API / DB)"]
  • CNI(Container Network Interface) 는 Kubernetes에서 네트워크 생성을 담당하는 표준.
  • Flannel, Calico, WeaveNet 등이 대표 플러그인이다.
  • 각 Pod는 고유한 IP를 가지고, CNI가 오버레이 터널(VXLAN/IPIP)을 통해 서로 통신한다.

6. 실제 예시① — VMware 가상 서버 환경

구성IP 대역설명
vSwitch0 (Bridge)192.168.10.0/24사내망과 직접 연결
vSwitch1 (Host-only)172.16.10.0/24테스트용 독립 네트워크
vSwitch2 (NAT)10.0.0.0/24인터넷 접근용
VM1192.168.10.50실제 서버망과 통신
VM210.0.0.10NAT 기반 외부 접근 가능

7. 실제 예시② — 클라우드 VPC (AWS 기준)

서브넷CIDR용도설명
Public Subnet10.0.1.0/24외부 접근 가능EC2, Load Balancer
Private Subnet10.0.2.0/24내부 서비스용API, Worker
DB Subnet10.0.3.0/28외부 비공개RDS, Redis 등
flowchart LR PUB["Public Subnet
10.0.1.0/24"] --> NATGW["NAT Gateway"] NATGW --> PRIV["Private Subnet
10.0.2.0/24"] PRIV --> DB["DB Subnet
10.0.3.0/28"] PUB --> IGW["Internet Gateway"]

AWS, GCP, Azure 모두 내부적으로 “오버레이 네트워크”를 사용한다. VPC 내부의 트래픽은 실제 물리 경로가 아닌 소프트웨어 터널을 통과한다.


8. NAT 네트워크와의 비교 요약

항목NAT 네트워크가상 네트워크 (Bridge / Overlay)
구조사설 → 공인 변환논리적 네트워크 복제
접근성외부에서 접근 제한내부 가상환경 내 접근 가능
목적인터넷 공유, 주소 절약가상환경 내 통신 분리
예시ipTIME 공유기, 기업 NATDocker, Kubernetes, VMware

9. 실무 팁

  • ✅ VirtualBox, Docker, VMware 모두 가상 스위치(vSwitch) 개념 동일
  • ✅ 클라우드의 VPC/Subnet도 결국 “소프트웨어 정의 네트워크(SDN)”
  • ✅ Kubernetes에서는 CNI 선택에 따라 네트워크 구조가 달라짐
  • ✅ 가상 네트워크 디버깅 시 ping, ip a, brctl show, docker network inspect 필수