VirtualBox의 proxmox 5.1에 있는 LXC 컨테이너에서 인터넷에 액세스

VirtualBox의 proxmox 5.1에 있는 LXC 컨테이너에서 인터넷에 액세스

macOS(10.12)의 VirtualBox에 Proxmox VE 5.1을 설치했습니다.

운영 체제는 Debian Strech(Proxmox는 debian을 기반으로 구축됨)이고 2개의 "물리적" 네트워크 인터페이스(VirtualBox에서 구성됨)가 있으며 Host-OnlyNAT NAT인터페이스를 통해 인터넷에 액세스할 수 있습니다.

root@proxmox:~# traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  10.0.3.2 (10.0.3.2)  0.792 ms  0.694 ms  0.625 ms
 2  1dot1dot1dot1.cloudflare-dns.com (1.1.1.1)  2.829 ms  2.818 ms  3.318 ms

데비안 호스트의 /etc/network/interfaces에는 다음이 포함됩니다:

auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet static
    address  192.168.56.101
    netmask  255.255.255.0

auto enp0s8
iface enp0s8 inet static
    address  10.0.3.15
    netmask  255.255.255.0
    gateway  10.0.3.2
#NAT

auto vmbr0
iface vmbr0 inet static
    address  172.16.1.1
    netmask  255.255.255.0
    bridge_ports dummy1
    bridge_stp off
    bridge_fd 0

"Guest", debian은 두 인터페이스(macOS IP: 192.168.56.1, 10.0.3.2)에서 macOS("Host")를 봅니다.

vmbr0proxmox LXC 컨테이너용으로 가상 인터페이스가 생성되었으며 vmbr0의 모든 트래픽을 해당 enp0s8인터페이스(VirtualBox의 NAT 인터페이스)로 보내는 iptables 규칙을 추가했습니다.

iptables -A POSTROUTING -s 172.16.1.0/24 -o enp0s8 -j MASQUERADE -t nat

이것질문문제는 vmbr0네트워크 인터페이스를 사용하여 proxmox 내부에 LXC 컨테이너를 생성할 때 LXC 컨테이너가 인터넷에 액세스할 수 없고 proxmox "마스터"(IP: 172.16.1.1)에 핑을 보낼 수 있지만 그 외에는 아무 것도 없다는 것입니다.

bridge_ports또한 동일한 결과로 enp0s8을 매개변수로 사용해 보았습니다 .

/etc/network/interfacesLXC 컨테이너(Ubuntu 16.04)의 파일에는 다음이 포함됩니다.

auto eth0
iface eth0 inet static
        address 172.16.1.100
        netmask 255.255.255.0
        gateway 172.16.1.1

다른 proxmox 서버에도 매우 유사한 구성이 있지만(VirtualBox 설치가 아닌 베어메탈 서버에서는) 제대로 작동합니다.

컨테이너가 인터넷에 액세스할 수 있도록 네트워크 구성에 무엇이 잘못되었거나 누락되었는지 알려주실 수 있나요?

답변1

가상 머신의 라우팅이 작동하려면 다음이 필요합니다.

  1. 호스트의 올바른 라우팅 구성(여기서 그런 것 같습니다)
  2. 일반적으로 라우팅을 활성화합니다 /proc/sys/net/ipv4/ip_forward(배전 네트워크 도구를 사용하여 영구적으로 수행하거나 에서 직접 수행할 수 있음 /etc/sysctl.*).
  3. 패킷 라우팅 허용 iptables(예: filter/FORWARD체인 및/또는 해당 하위 체인)

관련 정보