상황 요약
Proxmox VE 환경에서 두 개의 서로 다른 네트워크 대역(192.168.0.x와 10.10.10.x)을 사용하는 VM 또는 컨테이너 간의 통신을 설정하고, NAT를 통해 외부 네트워크(인터넷) 접근을 가능하게 하고자 합니다. 주요 요구 사항은 다음과 같습니다:
- 네트워크 대역:
- 192.168.0.x/24: Proxmox 호스트와 일부 VM이 속한 네트워크(외부 네트워크와 연결).
- 10.10.10.x/24: 내부 VM이 속한 사설 네트워크.
- 통신 목표:
- 192.168.0.x와 10.10.10.x 간의 상호 통신 가능.
- 10.10.10.x 네트워크의 VM이 NAT를 통해 인터넷에 접근 가능.
- 제약 조건:
- 단일 물리적 NIC(예: eno1)를 사용.
- Proxmox 호스트가 라우터 역할을 수행.
이 가이드는 Proxmox 호스트의 네트워크 인터페이스 설정, IP 포워딩 활성화, iptables를 사용한 NAT 구성, 그리고 VM 네트워크 설정을 포함합니다.
구성 단계
1. Proxmox 호스트 네트워크 설정
Proxmox 호스트의 네트워크 인터페이스를 설정하여 두 네트워크 대역을 관리할 수 있도록 합니다. /etc/network/interfaces
파일을 편집합니다.
# 백업 생성
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
# 편집
sudo nano /etc/network/interfaces
다음과 같이 설정을 추가하거나 수정합니다:
auto lo
iface lo inet loopback
# 물리적 인터페이스 (외부 네트워크와 연결)
auto eno1
iface eno1 inet manual
# 외부 네트워크 브리지 (192.168.0.x)
auto vmbr0
iface vmbr0 inet static
address 192.168.0.102/24
gateway 192.168.0.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
# 내부 네트워크 브리지 (10.10.10.x)
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
설명:
vmbr0
: 외부 네트워크(192.168.0.x)와 연결된 브리지로, Proxmox 호스트의 관리 IP(192.168.0.102)를 갖습니다.vmbr1
: 내부 사설 네트워크(10.10.10.x)를 위한 브리지로, 게이트웨이 IP(10.10.10.1)를 갖습니다.post-up
: IP 포워딩을 활성화하고, 10.10.10.x 네트워크의 트래픽을 NAT를 통해 외부로 라우팅합니다.
2. 네트워크 설정 적용
설정을 적용하려면 네트워크를 재시작하거나 시스템을 재부팅합니다.
sudo ifreload -a
# 또는
sudo systemctl restart networking
참고: 네트워크 설정 오류로 인해 호스트 접근이 차단될 수 있으므로 콘솔 접근이 가능한지 확인하세요.
3. IP 포워딩 영구 활성화
IP 포워딩이 재부팅 후에도 유지되도록 /etc/sysctl.conf
를 편집합니다.
sudo nano /etc/sysctl.conf
다음 줄을 추가하거나 주석을 제거합니다:
net.ipv4.ip_forward=1
설정을 적용합니다:
sudo sysctl -p
4. VM 네트워크 설정
각 VM의 네트워크 인터페이스를 설정하여 적절한 브리지에 연결합니다.
192.168.0.x 네트워크의 VM
Proxmox 웹 GUI에서 VM의 네트워크 설정을 다음과 같이 구성합니다:
- Bridge: vmbr0
- VLAN Tag: 없음
- IP 설정: VM 내부에서 수동 설정
VM 내부(예: Ubuntu)에서 네트워크 설정 예시:
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
ens18:
addresses:
- 192.168.0.103/24
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
설정 적용:
sudo netplan apply
10.10.10.x 네트워크의 VM
Proxmox 웹 GUI에서 VM의 네트워크 설정을 다음과 같이 구성합니다:
- Bridge: vmbr1
- VLAN Tag: 없음
- IP 설정: VM 내부에서 수동 설정
VM 내부(예: Ubuntu)에서 네트워크 설정 예시:
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
ens18:
addresses:
- 10.10.10.2/24
gateway4: 10.10.10.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
설정 적용:
sudo netplan apply
5. 방화벽 및 라우팅 확인
두 네트워크 간 통신을 허용하려면 Proxmox 호스트의 방화벽 설정을 확인합니다.
sudo iptables -L -v -n
NAT 규칙이 올바르게 설정되었는지 확인합니다:
sudo iptables -t nat -L -v -n
필요한 경우, 추가 방화벽 규칙을 설정하여 특정 트래픽을 허용하거나 차단합니다. 예:
# 10.10.10.x에서 192.168.0.x로의 트래픽 허용
sudo iptables -A FORWARD -s 10.10.10.0/24 -d 192.168.0.0/24 -j ACCEPT
sudo iptables -A FORWARD -d 10.10.10.0/24 -s 192.168.0.0/24 -j ACCEPT
참고: iptables 규칙은 재부팅 시 초기화될 수 있으므로, iptables-persistent
패키지를 설치하여 규칙을 저장합니다.
sudo apt-get install iptables-persistent
6. 테스트
설정이 완료된 후, 네트워크 통신을 테스트합니다.
- 10.10.10.x → 192.168.0.x:
# 10.10.10.2 VM에서 ping 192.168.0.103
- 192.168.0.x → 10.10.10.x:
# 192.168.0.103 VM에서 ping 10.10.10.2
- 인터넷 접근:
# 10.10.10.2 VM에서 ping 8.8.8.8 curl google.com
7. 문제 해결
문제가 발생할 경우 다음을 확인하세요:
- IP 포워딩:
cat /proc/sys/net/ipv4/ip_forward
가 1인지 확인. - iptables: NAT 및 포워딩 규칙이 올바르게 적용되었는지 확인.
- VM 네트워크: VM의 게이트웨이와 DNS 설정이 정확한지 확인.
- Proxmox 방화벽: 데이터센터 또는 노드 수준에서 방화벽이 트래픽을 차단하고 있는지 확인.
추가 참고 사항
- 더 복잡한 네트워크 구성을 위해 Proxmox의 SDN(Software Defined Network) 기능을 사용할 수 있습니다.
- 보안을 강화하려면 방화벽 규칙을 세밀하게 조정하고, 불필요한 포트를 차단하세요.
- 이 가이드는 단일 NIC를 가정했으며, 다중 NIC 환경에서는 브리지 설정이 달라질 수 있습니다.
'서버 리뷰 > Proxmox' 카테고리의 다른 글
Proxmox 내부 VM 접속을 위한 Guacamole vs RustDesk 비교 (0) | 2025.05.13 |
---|---|
Proxmox GPU 패스스루 설정 가이드 (0) | 2025.05.11 |
Zabbix를 사용한 Proxmox 네트워크 모니터링 (1) | 2025.05.07 |
Proxmox VE 콘솔 가이드: noVNC, xterm.js, SPICE (0) | 2025.05.04 |
Proxmox 폐쇄망 VM 구축 가이드 (0) | 2025.05.03 |