본문 바로가기

서버 리뷰/Proxmox

Proxmox에서 서로 다른 네트워크 대역 간 통신 및 NAT 구성 가이드

728x90
반응형

 

상황 요약

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 환경에서는 브리지 설정이 달라질 수 있습니다.
반응형