Skip to main content

Proxmox VE Network Configuration

VM을 만들기 전에 네트워크가 먼저다 — Linux Bridge, VLAN, Bonding, SDN


📌 이 글의 목적

Proxmox VE의 네트워크는 Linux 네트워크 그 자체임. VMware의 vSwitch/dvSwitch와 개념은 같지만 구현 방식이 다르고, Linux 네트워크 지식이 곧 Proxmox 네트워크 역량이 됨.

이 글을 읽고 나면:

  • Linux Bridge 기반 네트워크 구조를 이해하고 설정할 수 있음
  • VLAN으로 네트워크를 분리할 수 있음
  • NIC Bonding으로 이중화/대역폭을 확보할 수 있음
  • SDN(Software Defined Networking)의 개념과 활용 범위를 파악할 수 있음

왜 스토리지보다 네트워크가 먼저인가

NFS, iSCSI 같은 공유 스토리지는 네트워크를 통해 연결됨. Ceph 분산 스토리지도 전용 네트워크가 필요함. VM을 만들 때 "어떤 브릿지에 연결할 것인가"를 선택해야 하므로, 브릿지 구조가 먼저 잡혀 있어야 함.


1. Proxmox 네트워크 기초

1.1 핵심 개념

Proxmox 네트워크의 3가지 핵심 요소:

요소역할VMware 대응
물리 NIC외부 네트워크 연결Physical NIC (vmnic)
Linux BridgeVM/CT를 네트워크에 연결하는 가상 스위치vSwitch / dvSwitch
Bond여러 NIC를 묶어 이중화/대역폭 확보NIC Teaming
VLAN interface트래픽 분리Port Group with VLAN ID

1.2 설정 파일

Proxmox의 네트워크 설정은 Debian 표준을 따름:

# 메인 설정 파일
/etc/network/interfaces

# 설정 적용 명령어
ifreload -a # 서비스 중단 없이 적용 (권장)
systemctl restart networking # 전체 재시작 (위험 — 네트워크 끊김)

⚠️ 네트워크 설정 변경 시 ifreload -a를 사용함. systemctl restart networking은 모든 인터페이스를 내렸다 올리므로 SSH 연결이 끊기고 VM 네트워크에도 영향을 줄 수 있음.

1.3 네트워크 도구

Proxmox에서 자주 사용하는 명령어:

명령어용도예시
ip addrIP 주소 확인ip addr show vmbr0
ip link인터페이스 상태ip link show
ip route라우팅 테이블ip route show
bridge link브릿지 포트 확인bridge link show
bridge fdbMAC 주소 테이블bridge fdb show
ethtoolNIC 상세 정보ethtool eno1
tcpdump패킷 캡처tcpdump -i vmbr0 -n
ss소켓 상태ss -tlnp
cat /proc/net/bonding/bond0Bonding 상태

2. Linux Bridge

2.1 개념

Linux Bridge는 소프트웨어로 구현된 L2 스위치임. 물리 NIC를 브릿지 포트로 연결하면, 브릿지에 연결된 VM/CT가 물리 네트워크와 직접 통신할 수 있음.

동작 원리:

  1. 물리 NIC eno1은 IP를 갖지 않음 (inet manual)
  2. vmbr0 브릿지가 호스트 IP를 가짐
  3. VM이 생성되면 tap 인터페이스가 자동으로 브릿지에 연결됨
  4. CT가 생성되면 veth 인터페이스가 연결됨
  5. 브릿지는 MAC 주소 학습으로 프레임을 적절한 포트로 전달함

2.2 기본 브릿지 설정

설치 시 자동으로 생성되는 기본 설정:

# /etc/network/interfaces

auto lo
iface lo inet loopback

# 물리 NIC — IP 없음 (브릿지 포트로만 사용)
iface eno1 inet manual

# Linux Bridge — 호스트 IP 할당
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
파라미터설명
bridge-ports브릿지에 연결할 물리 인터페이스eno1
bridge-stpSpanning Tree Protocoloff (단일 브릿지면 불필요)
bridge-fdForwarding Delay0 (STP off면 0)

2.3 여러 브릿지 구성

용도별로 브릿지를 분리하는 것이 일반적임:

# /etc/network/interfaces — 2개 브릿지 예시

auto lo
iface lo inet loopback

iface eno1 inet manual
iface eno2 inet manual

# Management + VM 서비스 네트워크
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0

# 스토리지 전용 네트워크 (게이트웨이 없음)
auto vmbr1
iface vmbr1 inet static
address 10.10.10.100/24
bridge-ports eno2
bridge-stp off
bridge-fd 0
# MTU 9000 (점보 프레임 — 스토리지 성능 향상)
mtu 9000

💡 스토리지 네트워크에는 게이트웨이를 설정하지 않음. 게이트웨이는 시스템 전체에 하나만 설정하며, 관리 네트워크(vmbr0)에만 둠. 스토리지 트래픽은 같은 서브넷 내에서만 통신하면 됨.

2.4 Internal Bridge (NAT)

물리 NIC 없이 VM 간 내부 통신 전용 브릿지도 만들 수 있음:

# 내부 전용 브릿지 (물리 포트 없음)
auto vmbr2
iface vmbr2 inet static
address 10.0.0.1/24
bridge-ports none
bridge-stp off
bridge-fd 0

# NAT 설정 (VM이 외부 인터넷 접근 시)
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE

활용 사례:

용도설명
랩 환경 격리VM끼리만 통신, 외부와 분리
멀티티어 구성WAS→DB는 내부 네트워크, Web만 외부 노출
보안 테스트격리된 환경에서 실험

3. VLAN

3.1 왜 VLAN이 필요한가

물리 NIC가 부족하거나, 하나의 NIC로 여러 네트워크를 분리해야 할 때 VLAN을 사용함.

3.2 VLAN 구성 방식

Proxmox에서 VLAN을 설정하는 방식은 3가지:

방식설정 위치장점단점
VLAN-aware Bridge브릿지에서 처리간편, 유연, 권장최소 PVE 4.2+
Traditional VLAN호스트에서 sub-interface전통적 방식, 호환성브릿지 수가 늘어남
VM 내부 VLANGuest OS에서 처리Proxmox 설정 불필요Guest에서 관리, 보안 약함

3.3 VLAN-aware Bridge (권장)

하나의 브릿지에서 VLAN 태깅을 처리함.

# /etc/network/interfaces — VLAN-aware Bridge

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes # ← VLAN-aware 활성화
bridge-vids 2-4094 # ← 허용할 VLAN ID 범위

VM 설정 시 VLAN 지정:

웹 UI에서 VM → Hardware → Network Device → VLAN Tag에 ID 입력.

# CLI에서 VM에 VLAN 태그 설정
qm set 100 --net0 virtio,bridge=vmbr0,tag=20

# 설정 확인
qm config 100 | grep net0
# net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0,tag=20

장점:

  • 브릿지 하나로 여러 VLAN 처리
  • VM별로 VLAN 태그만 바꾸면 네트워크 변경 가능
  • 호스트에서 sub-interface를 만들 필요 없음

3.4 Traditional VLAN (레거시)

VLAN마다 별도의 sub-interface + 브릿지를 만드는 전통적 방식:

# /etc/network/interfaces — Traditional VLAN

iface eno1 inet manual

# VLAN sub-interface 생성
auto eno1.10
iface eno1.10 inet manual

auto eno1.20
iface eno1.20 inet manual

# 관리 네트워크 (Untagged)
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0

# VLAN 10 — 서비스
auto vmbr10
iface vmbr10 inet static
address 10.10.10.100/24
bridge-ports eno1.10
bridge-stp off
bridge-fd 0

# VLAN 20 — DB
auto vmbr20
iface vmbr20 inet static
address 10.10.20.100/24
bridge-ports eno1.20
bridge-stp off
bridge-fd 0

VLAN-aware Bridge가 더 유연하고 관리가 편하므로, 특별한 이유가 없으면 VLAN-aware 방식을 권장함.

3.5 물리 스위치 설정

Proxmox VLAN이 동작하려면 물리 스위치 포트도 Trunk 모드여야 함.

# Cisco 스위치 예시
interface GigabitEthernet0/1
description Proxmox-Node1
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10,20,30
switchport trunk native vlan 1

# HP/Aruba 스위치 예시
interface 1
name "Proxmox-Node1"
trunk trk1 trk
trunk allowed vlan 10,20,30

⚠️ 물리 스위치와 Proxmox의 VLAN ID가 일치해야 함. VLAN 설정 후 통신이 안 되면 물리 스위치 Trunk 설정을 먼저 확인할 것.


4. NIC Bonding

4.1 왜 Bonding인가

목적설명
이중화 (Failover)NIC 하나가 죽어도 네트워크 유지
대역폭 확대여러 NIC의 대역폭을 합산 (모드에 따라)
무중단NIC 교체/케이블 작업 시 서비스 중단 없음

4.2 Bonding 모드

Linux Bonding의 주요 모드:

Mode이름스위치 설정대역폭이중화추천
0balance-rr불필요합산❌ (순서 보장 안됨)
1active-backup불필요1x✅ 가장 안전
2balance-xor불필요합산⚠️
3broadcast불필요1x특수 용도
4802.3ad (LACP)필요합산✅ 성능 최고
5balance-tlb불필요합산(송신)⚠️
6balance-alb불필요합산(양방향)⚠️

추천:

  • 홈랩/간단 환경: Mode 1 (active-backup) — 설정 가장 간단, 스위치 설정 불필요
  • 프로덕션: Mode 4 (802.3ad LACP) — 성능 + 이중화, 스위치 LACP 설정 필요

4.3 Bonding 설정 — Mode 1 (active-backup)

# /etc/network/interfaces — active-backup Bonding

iface eno1 inet manual
iface eno2 inet manual

# Bond 인터페이스
auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100 # 링크 체크 간격 (ms)
bond-mode active-backup
bond-primary eno1 # 주 인터페이스

# Bond 위에 Bridge
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports bond0
bridge-stp off
bridge-fd 0

4.4 Bonding 설정 — Mode 4 (802.3ad LACP)

# /etc/network/interfaces — LACP Bonding

iface eno1 inet manual
iface eno2 inet manual

auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode 802.3ad
bond-lacp-rate fast # 빠른 LACP 교환 (1초)
bond-xmit-hash-policy layer3+4 # IP+포트 기반 로드밸런싱

auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports bond0
bridge-stp off
bridge-fd 0

물리 스위치 LACP 설정:

# Cisco
interface GigabitEthernet0/1
channel-group 1 mode active
interface GigabitEthernet0/2
channel-group 1 mode active
interface Port-channel1
switchport mode trunk

⚠️ LACP 모드 사용 시 반드시 물리 스위치에서도 LACP를 설정해야 함. 한쪽만 설정하면 통신이 안 됨.

4.5 Bonding + VLAN 조합

Bonding 위에 VLAN-aware Bridge를 올리는 실전 구성:

# /etc/network/interfaces — 실전 구성

iface eno1 inet manual
iface eno2 inet manual
iface eno3 inet manual
iface eno4 inet manual

# Management/Service Bond
auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode 802.3ad
bond-lacp-rate fast
bond-xmit-hash-policy layer3+4

# Storage Bond
auto bond1
iface bond1 inet manual
bond-slaves eno3 eno4
bond-miimon 100
bond-mode active-backup

# Management + Service Bridge (VLAN-aware)
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094

# Storage Bridge (점보 프레임)
auto vmbr1
iface vmbr1 inet static
address 10.10.10.100/24
bridge-ports bond1
bridge-stp off
bridge-fd 0
mtu 9000

4.6 Bonding 상태 확인

# Bond 상태 확인
cat /proc/net/bonding/bond0

# 간단 확인
ip link show bond0

5. Open vSwitch (OVS)

5.1 OVS vs Linux Bridge

항목Linux BridgeOpen vSwitch
설정 난이도낮음높음
성능좋음좋음 (약간 오버헤드)
VLAN 지원bridge-vlan-aware네이티브
GRE/VXLAN
OpenFlow
QoS제한적세밀한 제어
모니터링기본 도구ovsctl, sFlow, NetFlow
SDN 연동
추천대부분의 환경고급 네트워크 필요 시

💡 대부분의 경우 Linux Bridge로 충분함. OVS는 GRE/VXLAN 터널, OpenFlow, 고급 QoS가 필요할 때 사용. 복잡도가 높아지므로 필요하지 않으면 쓰지 않는 것이 좋음.

5.2 OVS 설치 및 설정

# OVS 설치
apt install openvswitch-switch -y

# OVS 브릿지 생성 (/etc/network/interfaces)
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
ovs_type OVSBridge
ovs_ports eno1

allow-vmbr0 eno1
iface eno1 inet manual
ovs_bridge vmbr0
ovs_type OVSPort

# 상태 확인
ovs-vsctl show

6. SDN (Software Defined Networking)

6.1 SDN이란

Proxmox SDN은 웹 UI에서 가상 네트워크를 중앙 관리하는 기능임. PVE 7.0에서 도입되었고, PVE 8.x에서 안정화됨.

6.2 SDN 구성 요소

Zone 타입설명복잡도용도
Simple단순 L2 브릿지낮음테스트, 단순 격리
VLAN802.1Q VLAN 기반낮음일반적인 네트워크 분리
QinQVLAN in VLAN중간고객별 격리 (서비스 제공자)
VXLANUDP 오버레이높음대규모, L3 네트워크 넘어 확장
EVPNBGP + VXLAN매우 높음엔터프라이즈, 다중 사이트

6.3 SDN 설정 예시 — VLAN Zone

웹 UI에서:

  1. Datacenter → SDN → Zones → Add → VLAN

    • ID: myzone
    • Bridge: vmbr0
  2. SDN → VNets → Create

    • ID: vnet10
    • Zone: myzone
    • Tag: 10
  3. SDN → VNets → vnet10 → Subnets → Create

    • Subnet: 10.10.10.0/24
    • Gateway: 10.10.10.1
  4. SDN → Apply (전체 클러스터에 배포)

VM 연결: VM → Hardware → Network → Bridge에서 vnet10 선택.

💡 SDN은 클러스터 환경에서 가장 큰 가치를 발휘함. 단일 노드에서는 수동 설정으로 충분하지만, 3노드 이상의 클러스터에서 네트워크 일관성을 유지하려면 SDN이 편함.

6.4 SDN을 쓸지 말지 판단

상황SDN수동
단일 노드, 홈랩
클러스터, VLAN 2~3개⚠️ 선택
클러스터, VLAN 5개+⚠️
다중 사이트✅ (EVPN)
VXLAN 오버레이 필요

7. 실전 네트워크 설계 패턴

7.1 홈랩 — 최소 구성

NIC 1개, 네트워크 분리 없이 시작.

# /etc/network/interfaces

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0

7.2 홈랩 — VLAN 분리

NIC 1개, VLAN으로 관리/서비스/스토리지 분리.

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 10 20 30

⚠️ VLAN을 쓰려면 관리형(Managed) 스위치가 필요함. 일반 가정용 공유기는 VLAN Trunk를 지원하지 않음.

7.3 프로덕션 — 소규모 (3노드)

NIC 4개, Bonding + VLAN, 스토리지 분리.

네트워크 용도별 분리:

용도인터페이스VLAN서브넷
관리 (웹 UI/SSH)vmbr0 (untagged)192.168.1.0/24
Corosync 클러스터vmbr0 VLAN 5510.5.0.0/24
VM 서비스vmbr0 VLAN 10~2010-2010.10.x.0/24
스토리지 (Ceph/NFS)vmbr110.10.10.0/24
Live Migrationvmbr1 또는 전용10.10.10.0/24 (공유)

7.4 프로덕션 — 대규모

NIC 6개+, 완전 분리, SDN.

BondNIC용도브릿지
bond0eno1+eno2관리 + Corosyncvmbr0
bond1eno3+eno4VM 서비스 (VLAN-aware)vmbr1
bond2eno5+eno6스토리지 (Ceph)vmbr2

8. 트러블슈팅

자주 발생하는 문제

Q: VLAN 설정 후 VM이 네트워크에 접속 안 됨

# 1. 물리 스위치 Trunk 설정 확인
# 2. 브릿지가 VLAN-aware인지 확인
bridge vlan show

# 3. VM의 VLAN 태그 확인
qm config 100 | grep net

# 4. 호스트에서 VLAN 트래픽 확인
tcpdump -i eno1 -e vlan -n

# 5. ARP 확인
arping -I vmbr0 10.10.10.1

Q: Bonding 후 네트워크 불안정

# Bond 상태 확인
cat /proc/net/bonding/bond0

# LACP 협상 확인 (Mode 4)
# Partner Mac Address가 00:00:00:00:00:00이면 스위치에서 LACP 미설정
cat /proc/net/bonding/bond0 | grep -A5 "Partner"

# 케이블/포트 확인
ethtool eno1 | grep "Link detected"
ethtool eno2 | grep "Link detected"

Q: MTU 불일치로 큰 패킷이 안 보내짐

# 경로상 모든 인터페이스의 MTU 확인
ip link show | grep mtu

# MTU 테스트 (9000 점보 프레임)
ping -M do -s 8972 10.10.10.101
# 성공하면 MTU 9000 통과
# 실패하면 경로에 MTU < 9000인 구간 존재

Q: 네트워크 변경 후 SSH 끊김

# 원격이 아닌 콘솔(IPMI/iDRAC/iLO)에서 복구
# 백업된 설정으로 복원
cp /etc/network/interfaces.bak /etc/network/interfaces
ifreload -a

💡 네트워크 설정 변경 전에 항상 백업: cp /etc/network/interfaces /etc/network/interfaces.bak


9. VMware 네트워크 대응표

VMwareProxmox비고
vSwitchLinux Bridge (vmbr)기본 가상 스위치
dvSwitchOVS or SDN분산/중앙 관리
Port GroupVLAN Tag (bridge-vlan-aware)VM에 VLAN 할당
VMkernel Port호스트 IP on Bridge/VLAN관리, vMotion, 스토리지
NIC TeamingLinux Bondingactive-backup, LACP
vMotion NetworkMigration NetworkDatacenter → 설정에서 지정
NSXSDN (EVPN/VXLAN)기능 차이 큼
Traffic Shapingtc (Linux) / OVS QoS
Promiscuous ModeBridge 설정기본 허용

정리

Proxmox 네트워크는 Linux 네트워크 그 자체임. Linux 네트워크를 알면 Proxmox 네트워크를 자유자재로 다룰 수 있음.

실전 가이드:

환경구성최소 NIC
홈랩 (시작)vmbr0 1개1
홈랩 (VLAN)vmbr0 VLAN-aware1 + 관리형 스위치
프로덕션 (소규모)bond0 + bond1, VLAN-aware4
프로덕션 (대규모)bond × 3, SDN6+

핵심 원칙:

  1. 관리/서비스/스토리지 트래픽은 분리함 — 최소 논리적(VLAN), 가능하면 물리적(별도 NIC/Bond)
  2. 프로덕션이면 Bonding은 기본임 — active-backup으로 시작, LACP 가능하면 전환
  3. 스토리지 네트워크는 점보 프레임(MTU 9000)을 씀 — 경로 전체가 동일 MTU여야 함
  4. 설정 변경 전에 백업하고, ifreload -a로 적용함

다음 글

Storage Configuration — LVM, ZFS, NFS, iSCSI, Ceph 스토리지 구성


🔗 관련 문서


📝 참고 자료